Before any worker starts, swath spends one delimiter=/ request asking S3
where the directories are, and turns the answer into starting ranges. A directory name says
nothing about how many objects are behind it, so this is a guess — and it is the only free
information the engine will ever get.
Grouped by first path segment, with runs of six or more digits generalized so dated sibling directories collapse into one row — a grouping choice for this table only.
| Gate outcome | Times |
|---|
To split a range swath needs a boundary key, and it does not need one that exists —
start-after accepts any byte string. The pivots below are verbatim from this
run. The odd-looking ones are synthesized coordinates, not object names: a trailing
: is one byte past 9, so it means "past every key ending in a
digit here".
| Mechanism | Splits | Sample pivots, verbatim |
|---|
Horizontal is the keyspace weighted by objects — equal width means an equal number of objects — and vertical is time running downward. Each rectangle is one range over the slice it owned and the time it owned it, coloured by which original seed guess it descends from. Because width is objects, a rectangle's area is roughly the work it did.
Wide and short is a big slice eaten fast. A tall thin column is a serial tail — a dense region that could not be divided, outliving everything around it.
The same events replayed in order, on the same axis. Bands are live ranges, filled to each worker's cursor; ticks are split pivots as they commit.