Skip to content
About
Main content
Law

Error falls as one over the square root

Approximation buys space at a square-root rate: the error of an estimate from m independent observations is proportional to 1/√m. To halve the error you need four times the memory.

Observations
independent observations: registers, retained hashes, ring positions
Constant
set by the estimator (1.04 for HyperLogLog, about 1 for k minimum values and for virtual nodes)

Trade-off: Exactness vs. approximation

How it behaves

One input on the horizontal axis, the others held fixed.

HyperLogLog (c = 1.04)k minimum values, virtual nodes (c ≈ 1)
Data table
Standard error by observations kept
Observations mseriesStandard error
10HyperLogLog (c = 1.04)32.9%
11.5HyperLogLog (c = 1.04)30.6%
13.3HyperLogLog (c = 1.04)28.5%
15.4HyperLogLog (c = 1.04)26.5%
17.8HyperLogLog (c = 1.04)24.7%
20.5HyperLogLog (c = 1.04)23%
23.7HyperLogLog (c = 1.04)21.4%
27.4HyperLogLog (c = 1.04)19.9%
31.6HyperLogLog (c = 1.04)18.5%
36.5HyperLogLog (c = 1.04)17.2%
42.2HyperLogLog (c = 1.04)16%
48.7HyperLogLog (c = 1.04)14.9%
56.2HyperLogLog (c = 1.04)13.9%
64.9HyperLogLog (c = 1.04)12.9%
75HyperLogLog (c = 1.04)12%
86.6HyperLogLog (c = 1.04)11.2%
100HyperLogLog (c = 1.04)10.4%
115HyperLogLog (c = 1.04)9.68%
133HyperLogLog (c = 1.04)9.01%
154HyperLogLog (c = 1.04)8.38%
178HyperLogLog (c = 1.04)7.8%
205HyperLogLog (c = 1.04)7.26%
237HyperLogLog (c = 1.04)6.75%
274HyperLogLog (c = 1.04)6.28%
316HyperLogLog (c = 1.04)5.85%
365HyperLogLog (c = 1.04)5.44%
422HyperLogLog (c = 1.04)5.06%
487HyperLogLog (c = 1.04)4.71%
562HyperLogLog (c = 1.04)4.39%
649HyperLogLog (c = 1.04)4.08%
750HyperLogLog (c = 1.04)3.8%
866HyperLogLog (c = 1.04)3.53%
1KHyperLogLog (c = 1.04)3.29%
1.15KHyperLogLog (c = 1.04)3.06%
1.33KHyperLogLog (c = 1.04)2.85%
1.54KHyperLogLog (c = 1.04)2.65%
1.78KHyperLogLog (c = 1.04)2.47%
2.05KHyperLogLog (c = 1.04)2.3%
2.37KHyperLogLog (c = 1.04)2.14%
2.74KHyperLogLog (c = 1.04)1.99%
3.16KHyperLogLog (c = 1.04)1.85%
3.65KHyperLogLog (c = 1.04)1.72%
4.22KHyperLogLog (c = 1.04)1.6%
4.87KHyperLogLog (c = 1.04)1.49%
5.62KHyperLogLog (c = 1.04)1.39%
6.49KHyperLogLog (c = 1.04)1.29%
7.5KHyperLogLog (c = 1.04)1.2%
8.66KHyperLogLog (c = 1.04)1.12%
10KHyperLogLog (c = 1.04)1.04%
11.5KHyperLogLog (c = 1.04)0.968%
13.3KHyperLogLog (c = 1.04)0.901%
15.4KHyperLogLog (c = 1.04)0.838%
17.8KHyperLogLog (c = 1.04)0.78%
20.5KHyperLogLog (c = 1.04)0.726%
23.7KHyperLogLog (c = 1.04)0.675%
27.4KHyperLogLog (c = 1.04)0.628%
31.6KHyperLogLog (c = 1.04)0.585%
36.5KHyperLogLog (c = 1.04)0.544%
42.2KHyperLogLog (c = 1.04)0.506%
48.7KHyperLogLog (c = 1.04)0.471%
56.2KHyperLogLog (c = 1.04)0.439%
64.9KHyperLogLog (c = 1.04)0.408%
75KHyperLogLog (c = 1.04)0.38%
86.6KHyperLogLog (c = 1.04)0.353%
100KHyperLogLog (c = 1.04)0.329%
115KHyperLogLog (c = 1.04)0.306%
133KHyperLogLog (c = 1.04)0.285%
154KHyperLogLog (c = 1.04)0.265%
178KHyperLogLog (c = 1.04)0.247%
205KHyperLogLog (c = 1.04)0.23%
237KHyperLogLog (c = 1.04)0.214%
274KHyperLogLog (c = 1.04)0.199%
316KHyperLogLog (c = 1.04)0.185%
365KHyperLogLog (c = 1.04)0.172%
422KHyperLogLog (c = 1.04)0.16%
487KHyperLogLog (c = 1.04)0.149%
562KHyperLogLog (c = 1.04)0.139%
649KHyperLogLog (c = 1.04)0.129%
750KHyperLogLog (c = 1.04)0.12%
866KHyperLogLog (c = 1.04)0.112%
1MHyperLogLog (c = 1.04)0.104%
10k minimum values, virtual nodes (c ≈ 1)31.6%
11.5k minimum values, virtual nodes (c ≈ 1)29.4%
13.3k minimum values, virtual nodes (c ≈ 1)27.4%
15.4k minimum values, virtual nodes (c ≈ 1)25.5%
17.8k minimum values, virtual nodes (c ≈ 1)23.7%
20.5k minimum values, virtual nodes (c ≈ 1)22.1%
23.7k minimum values, virtual nodes (c ≈ 1)20.5%
27.4k minimum values, virtual nodes (c ≈ 1)19.1%
31.6k minimum values, virtual nodes (c ≈ 1)17.8%
36.5k minimum values, virtual nodes (c ≈ 1)16.5%
42.2k minimum values, virtual nodes (c ≈ 1)15.4%
48.7k minimum values, virtual nodes (c ≈ 1)14.3%
56.2k minimum values, virtual nodes (c ≈ 1)13.3%
64.9k minimum values, virtual nodes (c ≈ 1)12.4%
75k minimum values, virtual nodes (c ≈ 1)11.5%
86.6k minimum values, virtual nodes (c ≈ 1)10.7%
100k minimum values, virtual nodes (c ≈ 1)10%
115k minimum values, virtual nodes (c ≈ 1)9.31%
133k minimum values, virtual nodes (c ≈ 1)8.66%
154k minimum values, virtual nodes (c ≈ 1)8.06%
178k minimum values, virtual nodes (c ≈ 1)7.5%
205k minimum values, virtual nodes (c ≈ 1)6.98%
237k minimum values, virtual nodes (c ≈ 1)6.49%
274k minimum values, virtual nodes (c ≈ 1)6.04%
316k minimum values, virtual nodes (c ≈ 1)5.62%
365k minimum values, virtual nodes (c ≈ 1)5.23%
422k minimum values, virtual nodes (c ≈ 1)4.87%
487k minimum values, virtual nodes (c ≈ 1)4.53%
562k minimum values, virtual nodes (c ≈ 1)4.22%
649k minimum values, virtual nodes (c ≈ 1)3.92%
750k minimum values, virtual nodes (c ≈ 1)3.65%
866k minimum values, virtual nodes (c ≈ 1)3.4%
1Kk minimum values, virtual nodes (c ≈ 1)3.16%
1.15Kk minimum values, virtual nodes (c ≈ 1)2.94%
1.33Kk minimum values, virtual nodes (c ≈ 1)2.74%
1.54Kk minimum values, virtual nodes (c ≈ 1)2.55%
1.78Kk minimum values, virtual nodes (c ≈ 1)2.37%
2.05Kk minimum values, virtual nodes (c ≈ 1)2.21%
2.37Kk minimum values, virtual nodes (c ≈ 1)2.05%
2.74Kk minimum values, virtual nodes (c ≈ 1)1.91%
3.16Kk minimum values, virtual nodes (c ≈ 1)1.78%
3.65Kk minimum values, virtual nodes (c ≈ 1)1.65%
4.22Kk minimum values, virtual nodes (c ≈ 1)1.54%
4.87Kk minimum values, virtual nodes (c ≈ 1)1.43%
5.62Kk minimum values, virtual nodes (c ≈ 1)1.33%
6.49Kk minimum values, virtual nodes (c ≈ 1)1.24%
7.5Kk minimum values, virtual nodes (c ≈ 1)1.15%
8.66Kk minimum values, virtual nodes (c ≈ 1)1.07%
10Kk minimum values, virtual nodes (c ≈ 1)1%
11.5Kk minimum values, virtual nodes (c ≈ 1)0.931%
13.3Kk minimum values, virtual nodes (c ≈ 1)0.866%
15.4Kk minimum values, virtual nodes (c ≈ 1)0.806%
17.8Kk minimum values, virtual nodes (c ≈ 1)0.75%
20.5Kk minimum values, virtual nodes (c ≈ 1)0.698%
23.7Kk minimum values, virtual nodes (c ≈ 1)0.649%
27.4Kk minimum values, virtual nodes (c ≈ 1)0.604%
31.6Kk minimum values, virtual nodes (c ≈ 1)0.562%
36.5Kk minimum values, virtual nodes (c ≈ 1)0.523%
42.2Kk minimum values, virtual nodes (c ≈ 1)0.487%
48.7Kk minimum values, virtual nodes (c ≈ 1)0.453%
56.2Kk minimum values, virtual nodes (c ≈ 1)0.422%
64.9Kk minimum values, virtual nodes (c ≈ 1)0.392%
75Kk minimum values, virtual nodes (c ≈ 1)0.365%
86.6Kk minimum values, virtual nodes (c ≈ 1)0.34%
100Kk minimum values, virtual nodes (c ≈ 1)0.316%
115Kk minimum values, virtual nodes (c ≈ 1)0.294%
133Kk minimum values, virtual nodes (c ≈ 1)0.274%
154Kk minimum values, virtual nodes (c ≈ 1)0.255%
178Kk minimum values, virtual nodes (c ≈ 1)0.237%
205Kk minimum values, virtual nodes (c ≈ 1)0.221%
237Kk minimum values, virtual nodes (c ≈ 1)0.205%
274Kk minimum values, virtual nodes (c ≈ 1)0.191%
316Kk minimum values, virtual nodes (c ≈ 1)0.178%
365Kk minimum values, virtual nodes (c ≈ 1)0.165%
422Kk minimum values, virtual nodes (c ≈ 1)0.154%
487Kk minimum values, virtual nodes (c ≈ 1)0.143%
562Kk minimum values, virtual nodes (c ≈ 1)0.133%
649Kk minimum values, virtual nodes (c ≈ 1)0.124%
750Kk minimum values, virtual nodes (c ≈ 1)0.115%
866Kk minimum values, virtual nodes (c ≈ 1)0.107%
1Mk minimum values, virtual nodes (c ≈ 1)0.1%

Worked examples, recomputed

Every number the mechanisms quote for this relationship is recomputed from it, so none of them disagrees with it.

Where it appears

Each mechanism states it in its own names. The general symbol each name stands for is shown with it.