What is filter vs upload-filter vs selector vs invariant vs download-selector vs cohort-requirements
| Field | Question it answers | Phase | Affects pieces already stored? |
|---|---|---|---|
| filter | Which nodes may belong to this placement at all? | Upload, repair, download | Yes. Pieces on non-matching nodes are out of placement and get repaired. |
| upload-filter | Which of those may receive new data? | Upload only | No. Repair won’t move pieces because of it. |
| selector | Of the eligible nodes, which do I pick (and how spread out)? | Upload (and repair/balancer when choosing replacement nodes) | No, it only picks new nodes. |
| invariant | Is this segment’s current set of nodes well spread? | Repair | Yes. It flags clumped pieces as unhealthy. |
| download-selector | Of the nodes holding pieces, which do I hand to the client? | Download | No. |
| cohort-requirements | When does the uplink consider an upload successful enough? | Upload, enforced by the client | No. |
Which field shows up where
| Field | Upload | Download | Repair |
|---|---|---|---|
filter |
Yes, builds the pool | Yes, narrows the nodes | Yes, marks out-of-placement |
upload-filter |
Yes, adds to the pool | No | No |
selector |
Yes, draws nodes | No | Probably, for replacements |
invariant |
No | No | Yes, flags clumped pieces |
download-selector |
No | Yes | No |
cohort-requirements |
Sent to the client, checked there | No | No |
The order how fields is used:
upload: filter + upload-filter, then selector.
download: filter, then download-selector.
repair: invariant and filter used, selector only comes back into play when repair needs replacement nodes.
selector vs invariant
Used at different times: selector prevents bad spread when you write, and invariant detects bad spread afterward. Nothing links them.