docs: attribute the DuckLake read-while-ingest lock to the right backend (#71) - #195
Draft
db-tycoon-stephen wants to merge 1 commit into
Draft
docs: attribute the DuckLake read-while-ingest lock to the right backend (#71)#195db-tycoon-stephen wants to merge 1 commit into
db-tycoon-stephen wants to merge 1 commit into
Conversation
…end (#71) analyze.md justified the Rill Parquet bridge by claiming SQLite-backed DuckLake catalogs hold an exclusive lock. Wrong backend. The lock belongs to the catalog's metadata database: a DuckDB-backed catalog (`ducklake:foo.ducklake`, the default) is a DuckDB file, and DuckDB locks a database file to one process. A SQLite-backed catalog (`ducklake:sqlite:foo.sqlite`) is multi-process safe — Rill 0.86 was verified reading one live during ingest with zero lock conflicts. The v0.1.3 probe that produced the original claim attached `ducklake:.../catalog.ducklake` — no `sqlite:` prefix — so it hit the DuckDB-file backend while being labelled SQLite. - analyze.md: replace the rationale with the bridge's actual merits (no extension, no attach, no live connection) plus a dated correction. - motherduck-cloud-sync.md: same claim, same fix. Not named in #71. - releases/v0.1.3.md: the "full rationale" analyze.md links to. Appended a dated correction instead of rewriting a shipped release note. CHANGELOG entry under a new [Unreleased]. The 0.1.3 CHANGELOG entry keeps its original wording — released entries are a record, and [Unreleased] now documents the correction. Refs #71 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
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.
Fixes #71 (PTC-42).
What
docs/commands/data/analyze.mdjustified the Rill Parquet bridge with:That names the wrong backend. The lock belongs to the catalog's metadata database, not to DuckLake and not to SQLite:
ducklake:foo.ducklake, the default) — a.ducklakefile is a DuckDB database, and DuckDB locks a database file to one process. Two processes →Conflicting lock.ducklake:sqlite:foo.sqlite) — multi-process safe. Rill 0.86 was verified reading one live during ingest with zero lock conflicts.The v0.1.3 probe that produced the original claim attached
ducklake:.../catalog.ducklake— nosqlite:prefix — so it hit the DuckDB-file backend while being labelled SQLite.The Parquet bridge is still a sound default, just for different reasons: it needs no DuckLake extension, no catalog attach, and no live warehouse connection, so
--rilloutput works anywhere Rill does. The pages now say that instead.Scope: #71 names one line; there were two live pages
docs/commands/data/analyze.mddocs/recipes/motherduck-cloud-sync.mddocs/releases/v0.1.3.mdanalyze.mdlinks to — fixing onlyanalyze.mdwould send readers one hop to the same errorCHANGELOG.md[Unreleased] → FixedentryTwo judgment calls worth a reviewer's attention
Release notes got an appended correction, not a rewrite. A shipped release note records what was believed at the time; silently editing it erases that the project once held a wrong belief and deferred real work over it. The note is dated and marked "left in place for the record." Same reasoning for the
0.1.3CHANGELOG entry, which keeps its original wording —[Unreleased]is where the correction belongs.No link to the DuckLake proposal. The natural destination for the full evidence is
docs/proposals/ducklake-layered-storage.md, but that file only exists on #74's branch andmkdocs --strictwould fail on the broken link. These pages link to #71 and #74 on GitHub instead. Worth switching to the in-repo path once #74 lands.Left alone deliberately
docs/proposals/v0.1.6-and-v0.1.7-open-questions.mdrepeats the belief in four places — including one that has it backwards ("DuckDB-backed catalog, which may avoid the SQLite lock issue"). Archived proposal, not in nav, not user-facing. Happy to add a correction note if reviewers want it.Verification
mkdocs build --strict— cleanruff check/ruff format --check(pinned 0.15.20) — pass, 103 files formattedpytest— 706 passed, 3 skipped.tests/test_recipe_doctests.pyparsesdocs/recipes/, so the edited recipe is covered.Note on issue closing
Fixes #71won't auto-close on merge — GitHub only auto-closes for the default branch, and this targetsv0.1.12perCONTRIBUTING.md. #71 and PTC-42 need closing by hand when this ships, or when the release branch reachesmain.Evidence
Spike investigation of 2026-06-21 (DuckDB 1.5.3, ducklake
e6a3bd0a, real Rill 0.86, dbt-duckdb 1.10.1). Full design and results in #74.🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.