Skip to content

RFC 0067 detached table commits, RFC 0068 graph commit record, and their Lance fences - #725

Closed
ragnorc wants to merge 1 commit into
mainfrom
claude/rfc-0066-0067-detached-commits
Closed

ragnorc wants to merge 1 commit into
mainfrom
claude/rfc-0066-0067-detached-commits

Conversation

@ragnorc

@ragnorc ragnorc commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • RFC 0067, detached table commits: every content effect stages as a Lance detached commit from its manifest pin, the manifest publishes (target, staged, uuid) pins in one CAS as today, and promotion replays the recorded transaction linearly. No recovery sidecar, no restore compensation, no HEAD-equals-pin invariant. Evidence in the RFC: 14 Lance probes (7 rerun on Lance 12.0.0-rc.1), an engine prototype for mutation, load, merge, ensure-indices and Optimize, S3 runs on RustFS, process kills, two-process races, an old-binary check, manifest-byte measurements, and a 312-cell failure-window matrix.
  • RFC 0068, graph commit record: the sequel that replaces the __manifest fold with one immutable record per graph commit; includes the change-set idea for the feed and merge.
  • Fences in lance_surface_guards.rs for the four Lance behaviours RFC 0067 depends on, including the self-conflict rule that decides which transaction kinds may be staged detached (Update, Delete, Rewrite, CreateIndex conflict with their twin; Append, ReserveFragments and delete-only UpdateConfig rebase).

No engine behaviour changes. The prototype is on spike/rfc-0066-detached-prototype for reference and is not for merge.

Checks

  • cargo test -p omnigraph-engine --test lance_surface_guards (42 passed, 1 ignored)
  • cargo clippy -p omnigraph-engine --all-targets -- -D warnings -W clippy::dbg_macro
  • cargo fmt --all --check, scripts/check-docs.py, typos, scripts/check-agents-md.sh, scripts/check-workflow-action-pins.py

…record, with Lance fences

RFC 0067 replaces the recovery sidecars with detached table commits,
publication of (target, staged, uuid) pins and promotion by transaction
replay; RFC 0068 is its sequel, one immutable commit record per graph
commit. Both are drafts with their probe, prototype, S3, cross-process
and failure-matrix evidence recorded; the prototype itself lives on the
spike/rfc-0066-detached-prototype branch and is never merged.

The four substrate behaviours the design depends on become
lance_surface_guards fences: a stale linear commit rebases over a moved
HEAD at zero retries, a detached commit is private and chains, replay
lands an identical twin, and a replay over its own twin is refused only
for self-conflicting transaction kinds.
@ragnorc

ragnorc commented Sep 17, 2026

Copy link
Copy Markdown
Contributor Author

Consolidated into #744, which carries this stack's complete history merged with current main and revalidated as one tree.

@ragnorc ragnorc closed this Sep 17, 2026
@azimafroozeh
azimafroozeh deleted the claude/rfc-0066-0067-detached-commits branch September 29, 2026 15:15
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.

1 participant