[Tutorial] Run your own satellite (part 17) - Placement

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.