-
Notifications
You must be signed in to change notification settings - Fork 4.1k
kv: PushTxn(PUSH_TIMESTAMP) without Raft consensus #94728
Description
Currently, a PushTxn request that has a high-enough priority to push a transaction rewrites that transaction's record with a new write_timestamp. This new write timestamp is treated as the minimum commit timestamp of the pushee.
The rewrite incurs a Raft consensus round. As a result, reads need to perform writes to move conflicting transactions out of their way. This is undesirable.
We could avoid this by having the pusher bump the timestamp cache using the transactionPushMarker. The pushee could then check this timestamp cache entry when committing, even when its record already exists. This is similar to how things behave today (since lazy_txn_record_creation.md), except we currently only check the transactionPushMarker when creating the txn record. After this change, we would do so when committing.
Jira issue: CRDB-23102
Epic CRDB-25218