You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
148600: kvcoord: transform replicated, locking Get requests r=arulajmani,yuzefovich a=stevendanna
A replicated locking Get request is a write that we would like to defer until commit time. We do this by transforming it to an unreplicated locking Get. At flush time, if no other write has been performed on that key, we send a replicated locking Get to ensure we have exclusion on the key all the way until the commit timestamp.
Epic: none
Release note: None
148660: concurrency: don't consider lock acquisitions at higher epochs idempotent r=arulajmani a=stevendanna
Stateful transaction retries that result from an IntentMissingError happen at the same WriteTimestamp as the previous attempt.
Thus, sequences like the one included in the test:
- Req0: Put@epo=0 (not included below since it has no lock table side effects)
- Req1: Get(Exclusive, Unreplicated)`@epo=0`
- Req2: Get(Shared, Replicated)`@epo=0`
- Req3: Put@epo=0
- IntentMissingError on some unrelated key.
- Req4: Put@epo=1 (retry of Req0)
Would not result in the unreplicated lock being cleared from the lock table, even though it would be cleared on most other types of retries.
Fixes#148635
Release note: None
Co-authored-by: Steven Danna <[email protected]>
0 commit comments