Repository navigation
feat(txn): serializable snapshot isolation for transaction blocks - #442
Merged
Merged
Conversation
Remove the ShardVersion and WriteVersion types. Columnar WAL records, sync wire types, and shared identifiers no longer carry per-write version stamps. Transactions read a snapshot cut instead.
Record type 65 names no record type. Readers and writers drop the foreign version header fields.
Add version chains, cuts, and per-segment version tables. Mutations record history, install rows at a version, and purge history. Readers select blocks by cut. Row materialization returns every stored version.
Add a node filter that hides live nodes written after a cut and admits soft-deleted nodes ended after it. Add versioned search, export, and insert operations to the collection.
Remove the home-version meta plan. Add restore key and version purge meta plans. Read and write plans carry snapshot cuts.
…tions Nodes exchange their oldest held snapshot on the health ping to derive the cleanup horizon. Raft groups carry ordinal floors and a sequencer cut floor. The Calvin sequencer forwards entries and wakes catch-up waiters. Sequencer types carry an incarnation.
…tes to the core loop
farhan-syah
force-pushed
the
fix/txn-snapshot-isolation
branch
from
November 2, 2026 07:53
3aa68e9 to
3dd4d31
Compare
The test seeds a stored user with an empty password to check that CredentialStore::open refuses empty derived credentials. No production credential comes from it.
…g propose test The message now states the expected outcome in plain words.
The test overwrites 100 rows a few times instead of one row hundreds of times. The writes take few statements, so they finish inside the history window on a slow runner before any pass trims them.
5 of 8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
BEGIN ... COMMITsaw different data on each page.What changed
COMMITchecks the read and write sets on every replica. A conflict fails with40001.txn_snapshot_max_age_secsfails with40001.COMMITfails inside a transaction with25001.[quarantine_storage]is removed.UPDATE ... FROM/MERGENULLs,INSERT ... SELECTrollback,LAST_VALUEcache,detect_i64_codecpanic, Calvin leader restart, restore of old versions.Lite breaks: new plan-op fields and
MetaOparms,TileEntry.placement, required sync fields (checksum 0 refused), strictErrorDetails/TextFieldsdecoding,RecordType::GraphNodeCascaderemoved.How to check
txn_serializable_conflicts,txn_snapshot_reads,version_cleanup_horizon.--retries 0.Closes #430
Closes #370