cockroachdb / cockroachdb/cockroach

opt: enable new implementation of SELECT FOR UPDATE under serializable

Open
#114,737 5 comments 0 reactions 0 assignees View on GitHub
A-read-committed A-sql-optimizer C-performance docs-done docs-known-limitation T-sql-queries
Dominant language
Go
Stars
32.5k
Forks
4.1k
PR merge metrics
PR metrics pending

Description

In 23.2 we are previewing a new implementation of SELECT FOR UPDATE which fixes several known issues. This new implementation is the default under Read Committed isolation, and is available under under Serializable isolation with `optimizer_use_lock_op_for_serializable`, but is not yet the default under Serializable isolation. We would like to also make it the default under Serializable isolation. This issue tracks the work needed to make it the default.

- [ ] Make locking a physical property required by Lock and enforced by LookupJoin.
- [ ] Clarify optimization policy around volatility w.r.t. SFU (or remove volatility property from SFU). (See https://github.com/cockroachdb/cockroach/issues/105110 for example, which we'll have to think about.)
- [ ] https://github.com/cockroachdb/cockroach/issues/104556
- [ ] https://github.com/cockroachdb/cockroach/issues/114282
- [ ] https://github.com/cockroachdb/cockroach/issues/114712
- [x] https://github.com/cockroachdb/cockroach/issues/114751
- [ ] https://github.com/cockroachdb/cockroach/issues/116836
- [ ] https://github.com/cockroachdb/cockroach/issues/116838
- [ ] https://github.com/cockroachdb/cockroach/issues/121479
- [ ] https://github.com/cockroachdb/cockroach/issues/121809
- [ ] https://github.com/cockroachdb/cockroach/issues/121917
- [ ] https://github.com/cockroachdb/cockroach/issues/127869
- [ ] https://github.com/cockroachdb/cockroach/issues/77476
- [ ] https://github.com/cockroachdb/cockroach/issues/145377
- [ ] https://github.com/cockroachdb/cockroach/issues/159493
- [ ] https://github.com/cockroachdb/cockroach/issues/171222

Jira issue: CRDB-33658
Epic CRDB-38938

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.