Skip to content

sql: graduate the bounded staleness isolation level - #38414

Open
antiguru wants to merge 1 commit into
mainfrom
claude/bounded-staleness-graduation-7smiot
Open

sql: graduate the bounded staleness isolation level#38414
antiguru wants to merge 1 commit into
mainfrom
claude/bounded-staleness-graduation-7smiot

Conversation

@antiguru

Copy link
Copy Markdown
Member

Motivation

bounded staleness <duration> shipped in v26.29 behind
enable_bounded_staleness_isolation, which has been defaulting on since. The
level 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_isolation surface.

Description

  • Removes enable_bounded_staleness_isolation from the feature-flag table.
    check_transaction_isolation_feature_flag now gates only strong session serializable, which is still flagged behind enable_session_timelines. The
    shared check and the session-default scrub in command_handler therefore
    stay in place; only the bounded staleness arm and the comment's example
    change.
  • An environment that persisted the removed parameter via ALTER SYSTEM is
    unaffected: an unknown system parameter in catalog storage is warned about
    and ignored at startup (catalog/apply.rs, catalog/open.rs).
  • Drops {{< public-preview />}} and the Public preview. cell from the
    isolation-level reference. The {{< if-released "v26.29" >}} guards are kept,
    since older Self-Managed versions still lack the level entirely.
  • Parallel workload no longer gates BoundedStalenessReadAction on the flag or
    flips 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.slt loses the feature-flag sections and
    keeps the role-default coverage: ALTER ROLE ... SET of the level, and a
    fresh session picking it up as its starting isolation.
  • test/testdrive/bounded-staleness.td no longer enables the flag; the
    happy-path coverage is otherwise unchanged.
  • The mz-sql unit test for the shared isolation gate now exercises strong session serializable (rejected with the flag off, accepted with it on) and
    asserts bounded staleness passes ungated.

Release note: This release makes the bounded staleness isolation level
generally available.


Generated by Claude Code

`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
@antiguru
antiguru marked this pull request as ready for review August 22, 2026 06:54
@antiguru
antiguru requested review from a team as code owners August 22, 2026 06:54
@antiguru
antiguru requested a review from maheshwarip August 22, 2026 06:54
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