Count a platform manifest as its index's, and list the unrecorded copies of upstream images
The store's tools counted each platform of an upstream image apart from its index, so a kept copy read as unrecorded and a let-go index's bytes were never counted as freed. The copies no record names are now listed for the controller's mirrors verb, and a dry run says what stays yet names a platform collection would take (hq ADR 0257, issue 321).
This commit is contained in:
@@ -50,6 +50,18 @@ it lists. The store's collector removes every blob no manifest marks, so these n
|
||||
| `named-document` | a one-layer manifest the controller keeps under a tag (hq to-be 45 §9) | no |
|
||||
| `unrecorded` | no record names it | **never**, by any tool (ADR 0189 §3) |
|
||||
|
||||
**A platform manifest takes the state of the recorded index naming it** (hq ADR 0257). An upstream
|
||||
image is an index over several platforms, and each platform manifest is a manifest of the repository in
|
||||
its own right; the controller lets an index go with the platform manifests only it names, so they are
|
||||
counted as the index's. Two indexes naming one platform give it the more keeping state. An index no
|
||||
record names leaves its platform manifests unrecorded with it.
|
||||
|
||||
**Unrecorded copies of upstream images** are listed in `unrecorded_mirrors`: each manifest at the top of
|
||||
a repository only the build's mirror writes (`upstream/<host>/<path>`, or a module's `<module>/on-<argument>`
|
||||
from before hq ADR 0257) that no record names, with what it and its platforms mark alone. They are the
|
||||
input to the controller's `mirrors` verb, which records them as the mesh's on a person's word; the sweep
|
||||
then decides about them as about every other copy. This tool removes none of them.
|
||||
|
||||
The records come from the controller's `artifacts` verb, asked with the references already let go of;
|
||||
when that answer is too large to carry, it is asked without them and the answer says so.
|
||||
|
||||
@@ -60,6 +72,11 @@ lets go of (ADR 0189 §2), so a real run asks its `collect` with `why` and `conf
|
||||
every kept archive first and records the run as a hand-act. Bytes come back at the store's nightly
|
||||
collection, which runs with the store held still.
|
||||
|
||||
An index goes with the platform manifests it names that no kept index of its repository also names, as
|
||||
the controller's sweep lets them go (hq ADR 0257). The controller reads only its records; the store's
|
||||
files show what else names a platform, so a dry run lists in `platforms_named_by_what_stays` every
|
||||
manifest that stays and would lose a platform it names — to be read before a real run.
|
||||
|
||||
## Tests
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user