Understanding Probabilistic Data Structures
Probabilistic data structures are a group of data structures that are extremely useful for big data and streaming applications. Generally speaking, these data structures use hash functions to randomize and compactly represent a set of items. Collisions are ignored but errors can be well-controlled under certain threshold. Comparing with error-free approaches, these algorithms use much less memory and have constant query time. They usually support union and intersection operations and therefore can be easily parallelized.
-
Membership Query - Bloom Filter
-
Cardinality Estimation - HyperLogLog
-
Frequency Estimation - Count-Min Sketch
-
Frequency Estimation: Count-Mean-Min Sketch
-
Locality-sensitive hashing (LSH)
