Skip to content

Conversation

@teskje
Copy link
Contributor

@teskje teskje commented Oct 23, 2025

This commit changes PersistClient::open_writer to not perform schema registration anymore. This enables the creation of WriteHandles with schemas that haven't been made durable, a feature necessary to ensure we can perform schema migrations in 0dt read-only mode without the risk of poisoning durable state.

Writing to a shard with an incompatible schema is unsound, so CaA calls now assert that a schema has been registered. Persist users that plan to perform writes must ensure that they register the write schema before creating the write handle. Usually they should do that when they create new shards.

Motivation

Tips for reviewer

Checklist

  • This PR has adequate test coverage / QA involvement has been duly considered. (trigger-ci for additional test/nightly runs)
  • This PR has an associated up-to-date design doc, is a design doc (template), or is sufficiently small to not require a design.
  • If this PR evolves an existing $T ⇔ Proto$T mapping (possibly in a backwards-incompatible way), then it is tagged with a T-proto label.
  • If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label (example).
  • If this PR includes major user-facing behavior changes, I have pinged the relevant PM to schedule a changelog post.

This commit changes `PersistClient::open_writer` to not perform schema
registration anymore. This enables the creation of `WriteHandle`s with
schemas that haven't been made durable, a feature necessary to ensure we
can perform schema migrations in 0dt read-only mode without the risk of
poisoning durable state.

Writing to a shard with an incompatible schema is unsound, so CaA calls
now assert that a schema has been registered. Persist users that plan to
perform writes must ensure that they register the write schema _before_
creating the write handle. Usually they should do that when they create
new shards.
@teskje teskje changed the title persist: explicit schema registration [poc] persist: explicit schema registration Oct 23, 2025
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.

1 participant