From 1aea50d25421bde415e4fd3ce1a2ab34afedd34b Mon Sep 17 00:00:00 2001 From: sneak Date: Fri, 6 Nov 2026 20:09:47 +0000 Subject: [PATCH] Fix three sentences that kept faults the review named The review of the rewrite named these faults in other files. The same sentences were still in two documents. - docs/REPOSTRUCTURE.md, "The marker file": "index records" read as a noun. It now says the next backup would not upload data that the local index says is stored. - docs/REPOSTRUCTURE.md, "Chunk boundaries use no secret": a chunk is not always between 2.5 MB and 40 MB. Only a file's last chunk can be smaller than a quarter of chunk_size. - ARCHITECTURE.md, "Snapshot metadata": the export does not delete everything outside the snapshot. It now says what is deleted, and that local_meta and schema_migrations are kept. Model: fable-5-1 --- ARCHITECTURE.md | 7 ++++++- docs/REPOSTRUCTURE.md | 11 ++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 1fc5f72..1892f78 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -257,7 +257,12 @@ data again. itself: - It copies the index into a temporary directory with `VACUUM INTO`. -- It deletes from the copy everything that does not belong to this snapshot. +- It deletes the rows of every other snapshot from the copy. It also deletes the + files and blobs that this snapshot does not use. It then deletes each chunk + that no remaining file and no remaining blob uses. +- It keeps the `local_meta` and `schema_migrations` tables as they are. The + uploaded database therefore names the destination, and lists the migrations + that have run. - It runs `VACUUM`, so that no deleted row is left in the file. - It compresses the copy with zstd and encrypts it with age. - It builds the manifest from the copy. diff --git a/docs/REPOSTRUCTURE.md b/docs/REPOSTRUCTURE.md index 7fde2f0..69b5c3f 100644 --- a/docs/REPOSTRUCTURE.md +++ b/docs/REPOSTRUCTURE.md @@ -60,8 +60,8 @@ not present: The check is skipped when the look-up fails for any other reason. S3 refuses the look-up to credentials that can only write. A machine with such credentials -therefore does not notice an emptied destination. Its next backup would leave -out the data its local index records as stored. After a destination is emptied, +therefore does not notice an emptied destination. Its next backup would not +upload data that its local index says is stored. After a destination is emptied, run `vaultik database delete` on such a machine before it backs up again. `remote nuke` deletes the marker last. @@ -275,9 +275,10 @@ Back up a directory that outsiders can write to as a snapshot of its own. ### Chunk boundaries use no secret -The FastCDC parameters are fixed and public. With the default `chunk_size` of -10 MB, a chunk is between 2.5 MB and 40 MB. A file of 2.5 MB or less is one -chunk. +The FastCDC parameters are fixed and public. `chunk_size` sets the average chunk +size. No chunk is larger than four times this size. Only a file's last chunk can +be smaller than a quarter of it. With the default of 10 MB, those limits are 40 +MB and 2.5 MB. A file of 2.5 MB or less is one chunk. At the default `blob_size_limit` of 10 GB, a blob holds hundreds of chunks. The size of the blob then does not show the size of any one chunk. A limit close to