Contextfulv0.23.0

Docs / Specification

contract store · 10-store.md · 11-snapshot.md · 12-time.md · 13-replica.md · 14-drain.md · 15-endpoint.md · 16-collect.md · 17-merge.md · 18-pull.md · guide · card

Bucket collection

A bucket keeps every object a push writes until a collect deletes it. contextful sync collect unlists, then deletes, the objects no reader needs: objects the bucket manifest no longer lists, a superseded snapshot’s parts and sidecars, the run directories an aged snapshot folds, and the generation manifests past a retained count. Every snapshot’s _manifest.json stays.

collect

Unlisting and deleting the bucket objects no reader needs, and the generation manifests past the retained count.

unsettled: Does a collect reclaim another project’s unlisted objects when the generations it prunes are the last to name them? owner: store affects: store.collect

Scenarios

A collect, from the manifest commit to the generation manifests it deletes.

Sequence diagram Sequence diagram. 4 participants, 6 messages. Participants: collect (C), manifest.json (M), objects (O), push (P). 1. collect → objects: upload each new _collected.json 2. collect → manifest.json: replace If-Match, collected records 3. push → manifest.json: replace If-Match on the older ETag 4. manifest.json --> push: condition lost, re-merge drops collected keys 5. collect → objects: delete recorded objects no retained generation lists 6. collect → objects: delete generations past the count bucket collectcollect manifest.jsonmanifest.json objectsobjects pushpush upload each new_collected.json replace If-Match,collected records replace If-Match on theolder ETag condition lost, re-mergedrops collected keys delete recorded objectsno retained generationlists delete generations pastthe count