Skip to content

A simple implementation of Bloom Filters using murmur3, Super Fast Hash and marvin32 hashing algorithms.

Notifications You must be signed in to change notification settings

younisshah/blooming-bella

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

###blooming-belle - A simple implementation of Bloom Filters

What?

Bloom filter is a space efficient, probabilistic data structure, designed to test the membership of elements to a set.

Trade-offs?

Being a space efficient data structure is it may return false positives, but always returns definite negatives.

Applications?

Testing for non-membership saves resources such as calls to a web server, checking a proxy cache. Google Chrome uses bloom filters as a check for malicious URLs.

blooming-bella

A bloom filter for integers. Uses mummur3,Super Fast Hash and marvin32 hashing algorithms

Example

 bella, err := blooming_bella.NewBella(1000, 0.01)

	if err != nil {
		log.Fatal(err)
	}
	bella.Add(10)
	bella.Add(121)
	bella.Add(13)
	bella.Add(111)

	fmt.Println(bella.Test(10)) // => true
	fmt.Println(bella.Test(104)) // => false
	fmt.Println(bella.Test(110)) // => false
	fmt.Println(bella.Test(13)) // => true

New

Added Super Fast Hashing algorithm

TODO

  • Calculate "ideal" number of hash functions to use.
  • Dynamically "generate" the hash functions. What does it mean to be alive?

About

A simple implementation of Bloom Filters using murmur3, Super Fast Hash and marvin32 hashing algorithms.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages