concurrency: implement latching changes to support SHARED locks #102264
Labels
A-kv-transactions
Relating to MVCC and the transactional model.
A-read-committed
Related to the introduction of Read Committed
C-bug
Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.
T-kv
KV Team
Describe the problem
Currently, non-locking read requests acquire read latches at their read timestamp. This isolates them from concurrent writers at equal or lower timestamps. However, this permits write requests at higher timestamps to proceed, as they do not conflict with such non-locking reads.
The expectation with Shared locks is that they should protect the read at higher timestamps as well. This makes the current read latch semantics inadequate. As proposed in the Shared locks RFC, shared lock requests should acquire read latches at max timestamp instead of the requests's timestamp. This ensures they don't conflict with concurrent reads (reads that acquire shared locks or non-locking reads) but do conflict with all concurrent writes.
Jira issue: CRDB-27371
The text was updated successfully, but these errors were encountered: