Contribution Date
Contribution Project
Contribution Details
Reconcile the integrity scrub from an object inventory when the store has one
AWS-native item 4. At scale the scrub heads one object per placement —
four hundred thousand round trips a cycle. A backend that publishes an
inventory (S3 does; SeaweedFS does not) can be asked once and the window
checked against the manifest instead.
- dam-store: a Capabilities.object_inventory flag, an InventoryEntry, and
a BlobStore::inventory() method whose default refuses (so a driver that
does not publish one is never read as holding nothing). FakeS3Store
serves one opt-in, matching the size and blake3 head reports.
- dam-pipeline: integrity::scrub dispatches on the capability — manifest
when present, per-object head otherwise. The verdicts are identical
(verify now takes the found size and checksum from either source) and
the first-byte probe runs either way, since no manifest can tell a
truncated object from a whole one. Regression test drives the manifest
path to verified/corrupt(x2)/missing.
The S3 driver keeps object_inventory=false until its manifest reader and
the Terraform that configures Inventory land (the follow-up); today every
backend still takes the head path, so behaviour is unchanged.
Contribution Issue Link
Files count
0
Patches count
1