Merged against directly built, two streams of 30,000
Merged against directly built, two streams of 30,000
Each row builds one summary over the first stream, a second over the other, merges them, and compares the result with a summary built over both streams end to end. The bar is the fraction of the state that came out identical. HyperLogLog, Count-Min, bottom-k reproduce the direct summary exactly — every register, every cell — so a system can shard a stream across machines and lose nothing at all. Misra-Gries does not: its guarantee survives the merge and its state does not, so two systems that merged in different orders hold different keys and both are correct.
Drawn at 700 × 254, wide on the page.
Everything above is what merge-check returns with no arguments; the caption is the
generator's own, computed from the numbers in the drawing rather than written beside it.
2 essays call
merge-check. The drawing above is what it returns with no arguments at all; every
call below passes it something, because a placement that passes nothing draws whichever
member of the family the generator happens to default to rather than the one its essay
argues about — which is what optcheck and figfill exist to catch.
Where it is called
Changing this generator changes every one of these figures.