Repository navigation
log: one writer comes from ownership; drop the racing-writer framing - #27
Conversation
Two writers on one mailbox break SoA ownership, so the log does not handle that case. The comments again say the version checks report a broken deployment; they no longer present it as a race the log must reconcile. ISS-LOG-RACING-WRITER is excluded (never observed; it came from reading Lance's commit code). The one finding that holds with a single writer is recorded as ISS-LOG-NON-BATCH-VERSION: a non-batch Lance version on the log dataset stops the log. Doc comments and board only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 063c8dc252
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| //! `Append` instead of failing it, and the check after the append detects | ||
| //! the race only once that batch is durable; replay then refuses the log | ||
| //! until it is reconciled (ISS-LOG-RACING-WRITER). | ||
| //! [`LogError::Diverged`], never accepted. One writer comes from ownership |
There was a problem hiding this comment.
Do not describe racing appends as never accepted
When two Log instances pass the pre-append version check concurrently, Lance rebases both appends and this method discovers the mismatch only after Dataset::write has made the batch durable. It returns Diverged without updating the resident table, but the write was still accepted on disk and can make replay refuse the log—as the retained issue description itself states. Calling this “never accepted” hides an important error contract and may lead callers or operators to retry without reconciling an already-written batch.
Useful? React with 👍 / 👎.
…#22-#25 D-QRY-1 points at the D-CMR set algebra (relalg prototype, #1546), D-QRY-5 at the D-CMR-5 preimage hop, D-FLOW-1 at graph-flow-lance. New ask ISS-LG-GRAPHFLOW-LANCE-PATHS; the preflight pin issue is still open at c21bd165. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
Reverts the racing-writer framing #26 put into
hubspo-store::log.Two writers on one mailbox break SoA ownership (iron rule 11), so the log does not handle that case. It was never observed in a run; it came from reading Lance's commit code.
log.rs: doc comments only. The version checks again report a second writer as a broken deployment, which is what ownership excludes; they no longer describe a race the log must reconcile. No logic changes.ISSUES.md:ISS-LOG-RACING-WRITERis now EXCLUDED. Only its Status line changed, per the file's rule.ISS-LOG-NON-BATCH-VERSION, the one finding that holds with a single writer. A Lance version that is not a batch (CreateIndex, UpdateConfig, Restore) makes every later commit fail and replay refuse the log. The roadmap item "an index onrow" would add such a version, and the resident fold already made that index unnecessary.The exploration map for the excluded case, lance-graph #1467, is closed unmerged.
Checks:
cargo fmt --all --check;cargo clippy -p hubspo-store --features lance --all-targets --no-deps -D warnings;cargo docwith-D warnings;cargo test -p hubspo-store --features lance(14 tests) — all pass.🤖 Generated with Claude Code
https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
Generated by Claude Code