-
Notifications
You must be signed in to change notification settings - Fork 0
design: path-local persistent bundle derivation #86
Copy link
Copy link
Open
Labels
area:runtimeRuntime portability or public API behaviorRuntime portability or public API behaviorarea:storageStorage, Git objects, manifests, or persistenceStorage, Git objects, manifests, or persistencestatus:needs-designRequires a design before implementationRequires a design before implementationtype:designDesign doc or proof-plan workDesign doc or proof-plan worktype:sliceTurn-sized proof work under a goalpostTurn-sized proof work under a goalpost
Description
Activity
Metadata
Metadata
Assignees
Labels
area:runtimeRuntime portability or public API behaviorRuntime portability or public API behaviorarea:storageStorage, Git objects, manifests, or persistenceStorage, Git objects, manifests, or persistencestatus:needs-designRequires a design before implementationRequires a design before implementationtype:designDesign doc or proof-plan workDesign doc or proof-plan worktype:sliceTurn-sized proof work under a goalpostTurn-sized proof work under a goalpost
Problem
Applications with immutable sharded indexes can read one bundle member in bounded work, but changing a few members requires callers to enumerate and rebuild the complete bundle. This preserves payload deduplication but makes incremental materialization O(total members), repeats direct-edge validation, and prevents the storage layer from reusing unchanged fanout nodes.
The immediate evidence is git-warp incremental materialization: adding five nodes to a retained 100-node corpus still emitted 166 blob writes, 220 object metadata checks, and 399 targeted tree lookups. The current flat-property profile rebuilds every shard rather than deriving a new root from the old root.
Required design
Specify a lawful git-cas operation such as
bundles.derive()orbundles.update()that accepts a retained base bundle plus ordered puts/deletes and returns a staged immutable bundle. Existing validated support should be reused without weakening integrity; only changed fanout paths should be rewritten when the persisted layout permits it.Acceptance criteria
Downstream
Needed for truly sublinear retained-index updates in git-warp and other git-cas consumers.