$key
$key : string
Which tiers hold one object.
A set rather than a single value, because a replica tier and its neighbour hold the same key and both answers are true. One tier means the object moved; several mean it was copied.
This is a cache over the buckets, not the record. The truth is which bucket the key is actually in, and TieredProvider falls back to probing when there is no row here, so a lost table costs one extra request per miss rather than a lost object. TierPlacementRebuilder puts it back by listing each tier, which is what makes it safe for an uninstall to drop the table.
__construct(string $key, list$tiers = [], int $bytes = 0, int $recorded = 0) : mixed
Constructs a placement.
| string | $key | The object key, exactly as the bucket holds it. |
| list |
$tiers | Tier indexes. Sorted and deduplicated, so two callers that learned the same tiers in a different order produce the same record. |
| int | $bytes | The object's size, for the per-tier totals a report shows. |
| int | $recorded | Unix timestamp this placement was last written. |
When the key is empty, a tier index is negative, or the size is negative.
isEmpty() : bool
Whether nothing holds it.
A placement with no tiers is not the same as no placement at all: it records that every tier was asked and none had the object, which is the answer a verify pass needs to report rather than a gap to fill in.
TRUE when no tier holds it.
with(int $tier, int $at = 0) : self
The same placement with one more tier.
| int | $tier | Tier index to add. |
| int | $at | Unix timestamp to stamp the record with, or zero to keep the existing one. |
When the tier index is negative.
A new placement.