sql: graduate the bounded staleness isolation level - #38414
Open
antiguru wants to merge 1 commit into
Open
Conversation
`bounded staleness <duration>` has been serving reads in public preview with its feature flag defaulting on. Drop the flag and the preview annotation so the level is a supported part of the `transaction_isolation` surface. `enable_bounded_staleness_isolation` is removed from the feature-flag table, and `check_transaction_isolation_feature_flag` now gates only `strong session serializable`. The shared check and the session-default scrub in `command_handler` stay, since that level is still flagged. An environment that persisted the removed parameter is unaffected: an unknown system parameter in catalog storage is warned about and ignored at startup. Test changes: `test/sqllogictest/bounded_staleness.slt` loses the gating sections and keeps role-default coverage (a fresh session picks up an `ALTER ROLE ... SET` of the level); `test/testdrive/bounded-staleness.td` no longer enables the flag; the `mz-sql` unit test for the shared isolation gate now exercises `strong session serializable`, with bounded staleness asserted as ungated. Parallel workload runs the bounded staleness read action unconditionally instead of gating on the flag, and the flag leaves the LaunchDarkly consistency allowlist. Release note: This release makes the bounded staleness isolation level generally available. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PfeCp5oXaZ9RayUSdD5aJb
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.
Motivation
bounded staleness <duration>shipped in v26.29 behindenable_bounded_staleness_isolation, which has been defaulting on since. Thelevel is documented as public preview and still carries the gating machinery
that a preview needs. This graduates it: the flag goes away and the docs drop
the preview annotation, so bounded staleness is a supported part of the
transaction_isolationsurface.Description
enable_bounded_staleness_isolationfrom the feature-flag table.check_transaction_isolation_feature_flagnow gates onlystrong session serializable, which is still flagged behindenable_session_timelines. Theshared check and the session-default scrub in
command_handlerthereforestay in place; only the bounded staleness arm and the comment's example
change.
ALTER SYSTEMisunaffected: an unknown system parameter in catalog storage is warned about
and ignored at startup (
catalog/apply.rs,catalog/open.rs).{{< public-preview />}}and the Public preview. cell from theisolation-level reference. The
{{< if-released "v26.29" >}}guards are kept,since older Self-Managed versions still lack the level entirely.
BoundedStalenessReadActionon the flag orflips the flag, and the flag leaves the LaunchDarkly consistency allowlist
(it never had an LD flag, so it was listed under
KNOWN_MISSING_FROM_LD).Not included: a release-note entry in
doc/user/content/releases/_index.md.That file has no section for the in-flight version, so the GA note belongs with
the release-notes commit for whichever release this lands in.
Verification
test/sqllogictest/bounded_staleness.sltloses the feature-flag sections andkeeps the role-default coverage:
ALTER ROLE ... SETof the level, and afresh session picking it up as its starting isolation.
test/testdrive/bounded-staleness.tdno longer enables the flag; thehappy-path coverage is otherwise unchanged.
mz-sqlunit test for the shared isolation gate now exercisesstrong session serializable(rejected with the flag off, accepted with it on) andasserts bounded staleness passes ungated.
Release note: This release makes the bounded staleness isolation level
generally available.
Generated by Claude Code