Skip to content

apollo_consensus_orchestrator,apollo_batcher,apollo_batcher_types: drop accessed_keys from blob#14808

Open
yoavGrs wants to merge 1 commit into
accessed-keys-atomic-writefrom
remove-accessed-keys-from-blob
Open

apollo_consensus_orchestrator,apollo_batcher,apollo_batcher_types: drop accessed_keys from blob#14808
yoavGrs wants to merge 1 commit into
accessed-keys-atomic-writefrom
remove-accessed-keys-from-blob

Conversation

@yoavGrs

@yoavGrs yoavGrs commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Remove the os_input-gated accessed_keys: AccessedKeys field from AerospikeBlob and its dead
plumbing: the matching BlobParameters field, the blob construction, and the now-unused
CentralObjects.accessed_keys (its only reader was the blob build). The batcher still computes
the block's accessed keys for the committer and for trimming initial_reads; only the blob no
longer carries them.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

@reviewable-StarkWare

Copy link
Copy Markdown

This change is Reviewable

yoavGrs commented Jul 15, 2026

Copy link
Copy Markdown
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@yoavGrs
yoavGrs force-pushed the remove-accessed-keys-from-blob branch from a3b312a to 7181c50 Compare July 15, 2026 07:33
@yoavGrs yoavGrs changed the title apollo_consensus_orchestrator,apollo_batcher,apollo_batcher_types: drop accessed_keys from AerospikeBlob apollo_consensus_orchestrator,apollo_batcher,apollo_batcher_types: drop accessed_keys from blob Jul 15, 2026
@yoavGrs
yoavGrs marked this pull request as ready for review July 15, 2026 08:31
@yoavGrs yoavGrs self-assigned this Jul 15, 2026
@cursor

cursor Bot commented Jul 15, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Narrow removal of dead blob serialization; batcher storage and initial_reads behavior for os_input are unchanged.

Overview
Removes the os_input-gated accessed_keys field from the Cende / central blob path so it is no longer serialized on AerospikeBlob, BlobParameters, or CentralObjects, and drops the orchestrator wiring that copied batcher accessed_keys into the next-height blob. Central-object JSON tests no longer strip accessed_keys before comparing to the Python blob.

The batcher still builds block accessed_keys for commit_proposal, commitment tasks, and trimming initial_reads before those reads go on the blob; only the duplicate blob payload is gone. A small move/clones tweak passes accessed_keys by value into the commitment path after initial_reads trimming.

Reviewed by Cursor Bugbot for commit ceea775. Bugbot is set up for automated code reviews on this repo. Configure here.

@yoavGrs
yoavGrs requested a review from itamar-starkware July 15, 2026 08:31
@yoavGrs
yoavGrs force-pushed the remove-accessed-keys-from-blob branch from 7181c50 to 15d5ccb Compare July 22, 2026 07:50
…op accessed_keys from blob

Remove the os_input-gated `accessed_keys: AccessedKeys` field from `AerospikeBlob` and its dead
plumbing: the matching `BlobParameters` field, the blob construction, and the now-unused
`CentralObjects.accessed_keys` (its only reader was the blob build). The batcher still computes
the block's accessed keys for the committer and for trimming `initial_reads`; only the blob no
longer carries them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

apollo_batcher: pass accessed_keys by move instead of clone in decision_reached

The clone became redundant once CentralObjects.accessed_keys was dropped: the write task was the
last consumer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@yoavGrs
yoavGrs changed the base branch from main to graphite-base/14808 July 22, 2026 08:03
@yoavGrs
yoavGrs force-pushed the remove-accessed-keys-from-blob branch from 15d5ccb to ceea775 Compare July 22, 2026 08:03
@yoavGrs
yoavGrs force-pushed the graphite-base/14808 branch from 64a743e to 34fca2e Compare July 22, 2026 08:03
@yoavGrs
yoavGrs changed the base branch from graphite-base/14808 to accessed-keys-atomic-write July 22, 2026 08:03

@itamar-starkware itamar-starkware left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One constructor was missed by the removal: crates/central_systest_blobs/src/cende_blob_regression_test.rs:250 (impl From<BlockData> for BlobParameters) still initializes the deleted field, so the crate no longer compiles with the feature:

$ cargo check -p central_systest_blobs --features os_input --tests
error[E0560]: struct `BlobParameters` has no field named `accessed_keys`
  --> crates/central_systest_blobs/src/cende_blob_regression_test.rs:250:13

CI stays green only because apollo_storage_os_input_ci.yml doesn't build central_systest_blobs with os_input (the crate's feature forwards to apollo_consensus_orchestrator/os_input). Fix — drop the two stale lines:

             #[cfg(feature = "os_input")]
             recent_state_commitment_infos: vec![],
-            #[cfg(feature = "os_input")]
-            accessed_keys: Default::default(),
             #[cfg(feature = "os_input")]
             initial_reads: Default::default(),

Consider also adding central_systest_blobs to the os_input CI workflow (separate PR is fine) so the next blob-shape change can't break it silently.

Otherwise LGTM — verified the blob field had no remaining reader (the parity test always stripped it, i.e. the python schema never had it), the batcher still computes accessed keys locally for the committer and the initial_reads trim, and the clone() drop at batcher.rs:1011 is a strict win.

@itamar-starkware+AGNT made 1 comment.
Reviewable status: 0 of 5 files reviewed, all discussions resolved (waiting on yoavGrs).

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.

3 participants