perf(storage): rewrite hot cache and volume WAL overlay - #1562
Merged
Merged
Conversation
75 tasks
joshuajbouw
added a commit
that referenced
this pull request
Aug 18, 2026
Bind the graphical Home and personal renderer model to the existing resource, storage, and execution-provider architecture. Treat semantic scenes as untrusted projections, Spaces as composition rather than authority, and refresh the storage integration order around PRs #1535 and #1562.\n\nRefs #1564\n\nSigned-off-by: Joshua J. Bouw <[email protected]>
joshuajbouw
added a commit
that referenced
this pull request
Aug 18, 2026
Bind the graphical Home and personal renderer model to the existing resource, storage, and execution-provider architecture. Treat semantic scenes as untrusted projections, Spaces as composition rather than authority, and refresh the storage integration order around PRs #1535 and #1562. Refs #1564 Signed-off-by: Joshua J. Bouw <[email protected]>
Reimplement owner-scoped KV hot reads and a single-sync transaction WAL against the post-#1535 AstridVolume durable engine. Committed WAL state is served from a pending overlay before canonical arena/root fold, WAL bytes live in the transactions.wal volume region, and the existing KV batch API is reused rather than duplicated. Closes #1561 Assisted-by: OpenAI Codex: Grok 4.6 Signed-off-by: Joshua J. Bouw <[email protected]>
joshuajbouw
force-pushed
the
codex/hot-kv-read-cache
branch
from
August 20, 2026 00:42
9ff1178 to
a4e5254
Compare
joshuajbouw
marked this pull request as ready for review
August 20, 2026 00:43
Keep WAL/cache semantics. Default KvReadCacheConfig retains nothing until a reserved or governed budget is supplied. Split oversized durable/mod.rs and group.rs into named modules without comment-stripping or include! shards. Disclose ReadyKvRoot, current_kv_root_if_ready, and FaultPoint::AfterWalPublication. Add volume-backed WAL crash/reopen, torn-tail, and disabled-policy replay regressions. Assisted-by: OpenAI Codex: Grok 4.6 Signed-off-by: Joshua J. Bouw <[email protected]>
Construct the opt-in 64 MiB budget from const NonZeroUsize values so clippy -D warnings no longer requires missing_panics_doc, and backtick MiB in the rustdoc to satisfy doc_markdown. Assisted-by: OpenAI Codex: Grok 4.6 Signed-off-by: Joshua J. Bouw <[email protected]>
5 tasks
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.
Linked Issue
Closes #1561
Summary
Rewrite of the owner-scoped KV hot cache and single-sync transaction WAL onto post-#1535
AstridVolume. The previouscodex/hot-kv-read-cachecommits conflicted with the owned-filesystem cut; this head is a new implementation on currentmain(3f82d81e) that keeps the issue's semantics: bounded conditional batches, governed hot reads, one WAL sync per accepted group, and committed state served from a pending overlay before canonical arena/root fold.WAL bytes live in the
transactions.walvolume region rather than a hostPathBuf. New WAL publication is opt-in (TransactionWalPolicy; default remains the legacy arena-then-root path). Recovery still replays an existing WAL even when new writes are disabled. The existing KV batch API is reused rather than duplicated.This replaces the conflicting pre-#1535 draft on this PR number. Head SHA:
a4e52546.Changes
KvReadCacheConfig/KvReadCacheCapacity), disabled unless an embedding opts in and reserves chargeengine/durable/wal/DurableEnginePolicy::with_transaction_wal; WAL file is a volume region (transactions.wal)[Unreleased]Verification
cargo test -p astrid-storage --lib --locked— 746 passed (storage library suite on this head)cargo fmt --all -- --checkgit diff --checkNot re-run on this rewrite: the original SurrealKV exact-durability comparison (~0.509x to ~0.947x of SurrealKV on the development machine). That measurement belonged to the pre-#1535 branch. This PR preserves the cache/batch/WAL semantics and ships the volume-backed rewrite; it does not claim a fresh SurrealKV number until that bench is re-run against
AstridVolume.Test Plan
cargo test -p astrid-storage --lib --lockedcargo clippy -p astrid-storage --all-targets --all-features --locked -- -D warningscrates/astrid-storageAI / Tool Assistance
Assisted-by: OpenAI Codex: Grok 4.6
Codex reimplemented the cache and WAL overlay against
AstridVolumein an isolated worktree (/tmp/astrid-1562-volume-wal-cache), including tests and the changelog entry. Human owns review, merge, and any re-benchmark against SurrealKV.How it was reviewed:
Checklist
[Unreleased])Signed-off-bytrailer.