Skip to content

sql,kv: experiment with non-locking RC checks and cascades#162157

Draft
DrewKimball wants to merge 5 commits intocockroachdb:masterfrom
DrewKimball:experiment
Draft

sql,kv: experiment with non-locking RC checks and cascades#162157
DrewKimball wants to merge 5 commits intocockroachdb:masterfrom
DrewKimball:experiment

Conversation

@DrewKimball
Copy link
Copy Markdown
Collaborator

sql: add settings for non-locking RC checks+cascades

This commit adds a cluster setting - session setting pair to control
experimental non-locking RC check and cascade behavior.

sql,kv: add DisallowIntentTimestampChange flag for writes

This commit adds a flag DisallowIntentTimestampChange to write batches
which causes write intents to have lock-like behavior. In particular,
intents for pending txns are not rewritten if this flag is set, so the
read/write blocking behavior extends from the txn's write timestamp
when the intent was written, not just the final commit timestamp.
Likewise, an intent that is resolved after its txn has committed
bumps the tscache to block writes from the intent's timestamp up
to the final commit timestamp, similar to replicated locks.
This flag is set for RC write intents when the new setting is on.

sql: refresh reads after RC mutation statements

This commit adds a read refresh to the end of read-committed statements
that have mutations. This will be used in combination with prior commits
to enable non-locking RC checks and cascades.

opt: skip RC check+cascade locking when setting is on

sql: add logic tests for non-locking RC checks and cascades

This commit adds a cluster setting - session setting pair to control
experimental non-locking RC check and cascade behavior.
This commit adds a flag DisallowIntentTimestampChange to write batches
which causes write intents to have lock-like behavior. In particular,
intents for pending txns are not rewritten if this flag is set, so the
read/write blocking behavior extends from the txn's write timestamp
when the intent was written, not just the final commit timestamp.
Likewise, an intent that is resolved after its txn has committed
bumps the tscache to block writes from the intent's timestamp up
to the final commit timestamp, similar to replicated locks.
This flag is set for RC write intents when the new setting is on.
@blathers-crl
Copy link
Copy Markdown

blathers-crl Bot commented Feb 2, 2026

Your pull request contains more than 1000 changes. It is strongly encouraged to split big PRs into smaller chunks.

🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf.

@cockroach-teamcity
Copy link
Copy Markdown
Member

This change is Reviewable

This commit adds a read refresh to the end of read-committed statements
that have mutations. This will be used in combination with prior commits
to enable non-locking RC checks and cascades.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants