HyperLogLog
Penghitung nilai berbeda yang tidak menyimpan satu pun di antaranya. Ia menjawab “berapa banyak yang berbeda?” dengan ketelitian sekitar satu persen, memakai memory yang tidak ikut membesar bersama jawabannya.
Di mana ini benar-benar dipakai
Redis menyediakannya sebagai tipe bawaan, dan Google, Presto, serta Elasticsearch semuanya memakainya. Menghitung pengunjung unik dengan set exact memakan memory sebanding dengan jumlah pengunjungnya; HyperLogLog menghitungnya dalam sekitar 12 KB, entah ada sepuluh ribu atau sepuluh miliar.
Jaminannya
- selaluNilai register tidak pernah turun.
- terbatasEstimasi bisa meleset ke dua arah, sekitar satu standard error.σ ≈ 1.04/√m
Cara kerjanya
Ia tidak menyimpan item. Ia menyimpan runtun nol terpanjang yang terlihat di setiap register, beralasan bahwa runtun panjang itu langka, lalu menghitung nilai distinct dari situ.
Flajolet, Fusy, Gandouet & Meunier, AofA 2007
Hasil bacaan
Berjalan…