Langsung ke instrumen
Sketch LabEnglish

Menjawab pertanyaan tentang data yang lebih besar daripada yang bisa Anda simpan.

Bloom filter, Count-Min sketch, dan HyperLogLog masing-masing menjawab satu pertanyaan tentang aliran data — tanpa menyimpan datanya. Situs ini menjalankannya berdampingan dengan struktur exact, jadi Anda bisa melihat kedua jawaban sekaligus dan tahu persis berapa harga jalan pintasnya.

Set exact berisi satu miliar URL berukuran puluhan gigabyte dan tinggal di disk. Filter yang menjawab pertanyaan tentang satu miliar URL yang sama berukuran beberapa ratus megabyte dan tinggal di memory. Itulah seluruh pertukarannya, dan itu dilakukan dengan sengaja.

Mulai dari Bloom filteryang paling sederhana dari keempatnya, dan di sanalah asimetrinya paling jelas
Bit arrayilustrasi — 128 bit

Satu item → tiga slot, dialamatkan oleh tiga hash. Salah satunya sudah diset oleh item sebelumnya — itulah sebabnya “ya” selalu hanya petunjuk, sedangkan “tidak” adalah bukti.

Set exact — modelled
76.29 MiB
Bloom filter — teralokasi
1.14 MiB

1,000,000 URL pada false-positive rate 1%, 7 hash. Angka filter adalah yang dialokasikan rumus sizing; angka exact adalah model per-entry dari lib/exact, dan diberi label modelled karena jejak memory Set yang sebenarnya adalah urusan engine.

Struktur

atau pilih salah satu di bawah

Tawarannya

Setiap struktur di sini menawar hal yang sama: hash ke array berukuran tetap, terima bahwa collision menimbulkan kerusakan yang terbatas, lalu berhenti menyimpan itemnya sama sekali.

Memory berhenti tumbuh mengikuti data. Harganya adalah error rate — yang bisa dihitung di muka, sehingga ia parameter desain, bukan cacat.

Asimetri

Setiap jaminan bersifat satu arah, dan arahnya penting. Jawaban “tidak” dari Bloom filter adalah bukti; jawaban “ya” hanyalah petunjuk. Asimetri itulah sebabnya sebuah database bisa memakainya untuk melewati pembacaan disk dengan aman — “ya” yang salah hanya membuang satu pembacaan, “tidak” yang salah akan kehilangan data, dan “tidak” yang salah tidak mungkin terjadi.

Alat