-
Type:
Sub-task
-
Status: Resolved (View Workflow)
-
Priority:
Major
-
Resolution: Done
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:
-
Sprint:K Sprint #1 - Platform, K Sprint #2 - Platform, K Sprint #3 - Platform
Strong transaction isolation can be broken by deletes. Transactions rely on entry versions to guarantee isolation. However, missing entries do not have versions, and thus optimistic locks used for non-existent keys are unreliable in transactions. This can result in concurrent transactions modifying a map without being detected. Transactional primitives need to track tombstones while transactions are open to ensure optimistic locking can be performed on empty keys.