Generator

Merged against directly built, two streams of 30,000

Rendered here at the parameters it defaults to, with every essay that calls it — which is the same list as the blast radius of changing it.
Merged against directly built, two streams of 30,000Each 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.HyperLogLog1024/1024 identicalCount-Min256/256 identicalbottom-k128/128 identicalMisra-Gries20/36 identicalfraction of the state that merged to the identical value→ 1,974→ 10,291→ 2,322→ 8,766two streams of 30,000 · 2,007 distinct keys in the union3 of 4 merge exactly

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.

The library, page 3 of 5 — where merge-check sits