Repository navigation
Conversation
antiguru
force-pushed
the
freshness/compute-recording
branch
from
October 29, 2026 07:46
68ed429 to
5c0125f
Compare
antiguru
force-pushed
the
freshness/compute-recording
branch
from
October 29, 2026 11:51
5c0125f to
c3050e5
Compare
antiguru
force-pushed
the
freshness/compute-recording
branch
from
October 29, 2026 20:20
c3050e5 to
6bcc505
Compare
antiguru
force-pushed
the
freshness/compute-recording
branch
from
October 30, 2026 09:24
6bcc505 to
15b7b94
Compare
antiguru
force-pushed
the
freshness/compute-recording
branch
from
October 30, 2026 09:51
15b7b94 to
f9ec3fb
Compare
antiguru
force-pushed
the
freshness/compute-recording
branch
2 times, most recently
from
November 2, 2026 04:09
b927895 to
bb491e7
Compare
Pure move of the inline test module of the compute instance controller to instance/tests.rs, ahead of adding instance-level tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LD5gyKhqBoA2DEzJk8jR1R
The compute instance keeps one freshness recorder per collection, driven by advances of the global write frontier, and one per replica collection, driven by Frontiers responses. Rows go to the global and per-replica freshness histograms with measure end_to_end and the workload-class labels of the existing lag histogram. Collections installed after initialization start recording at their creation, so hydration counts as latency. Collections installed during bootstrap, and all collections after recording is switched on, start at their first observed frontier. A rehydrated replica keeps its recorders, so its regressed frontier does not count arrivals twice. Dropped collections discard their open periods. Recording is off in read-only mode and without the recording flag, and switching the flag off drops all recorder state. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LD5gyKhqBoA2DEzJk8jR1R
A recording created with an as-of that reflects nothing, as `[0]` for a collection over a snapshotting source, started at its first observed frontier. A first frontier near the epoch charged the decades since as latency, and the catch-up overloaded environmentd. A collection created after initialization now starts at the latest of what its as-of reflects, its creation time, and the retention before the first observation. A recording that starts at its first observation is floored by the wall-clock time at which it was built, so it leaves a hole instead. The recorder configuration reads the histogram retention. Dropping a collection or removing a replica finishes the recordings and writes their open periods, which were discarded before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LD5gyKhqBoA2DEzJk8jR1R
The storage controller records freshness histograms with the same code in the next change, so the module starts out in storage-client, which both controllers depend on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LD5gyKhqBoA2DEzJk8jR1R
A log collection logs one replica, so its contents differ between replicas, and a global histogram of it mixes unrelated frontiers. Its global recording is gone, and its per-replica recordings run from the replica's creation until the replica goes away, which emits their open periods. Rehydration keeps per-replica recordings so a replica that reports from its as-of again does not count arrivals twice. A rehydrated replica's logs start over, though, so for log collections rehydration ends the old recording and the new one starts at the replica's creation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LD5gyKhqBoA2DEzJk8jR1R
Finishing a recording records the arrivals that the period book deferred, which needs the collection's tree, the wall-clock time and the recorder configuration. The compute controller resolves the tree when a collection or replica goes away and passes all three. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LD5gyKhqBoA2DEzJk8jR1R
antiguru
force-pushed
the
freshness/compute-recording
branch
from
November 2, 2026 17:17
bb491e7 to
0692319
Compare
This branch has not been deployed
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.
Records the arrival-weighted latency histogram for compute collections, globally and per replica, at every write frontier advance. Introspection log collections are recorded per replica only, since each logs one replica and a global histogram would mix unrelated frontiers. Their recording ends with the replica and starts fresh after a rehydration. Moves the instance tests to their own file first, and puts the recording module in
mz-storage-client, where the storage controller uses it next.Part of P-CPU-328, design in #40320. Recording and reporting are behind
enable_wallclock_freshness_recordingandenable_wallclock_freshness_reporting, both off in production, so this changes nothing users see.🤖 Generated with Claude Code
https://claude.ai/code/session_01LD5gyKhqBoA2DEzJk8jR1R