-
Notifications
You must be signed in to change notification settings - Fork 4.1k
kv: read committed transactions should not wait on PENDING intents #102014
Description
Sibling issue of #94729. When a read committed transaction encounters an intent (with any isolation level), or when a transaction (with any isolation level) encounters a read committed intent, the push should not block.
From the Read Committed RFC:
Instead of waiting on these conflicting intents until the intent's transaction completes, the non-locking readers will perform a "status check" RPC in the form of a PushTxn(PUSH_TIMESTAMP) to the transaction record of encountered intent to determine its visibility. If the intent's transaction has already been committed or aborted, the reader must initiate and wait for intent resolution and then observe the post-resolution state. However, if the intent's transaction is in progress, the reader can push the minimum commit timestamp of the intent holder to prevent it from committing at or before the reader's read timestamp. The reader can then proceed to ignore the intent and continue with its scan.
Jira issue: CRDB-27217
Epic CRDB-26539