Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Saturated bloomfilter size #666

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Commits on Aug 29, 2018

  1. Configuration menu
    Copy the full SHA
    c329500 View commit details
    Browse the repository at this point in the history
  2. add scalafmt's algebird

    cesarcolle committed Aug 29, 2018
    Configuration menu
    Copy the full SHA
    dd53848 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2018

  1. Configuration menu
    Copy the full SHA
    d81a4d0 View commit details
    Browse the repository at this point in the history
  2. Add faillur test

    cesarcolle committed Aug 30, 2018
    Configuration menu
    Copy the full SHA
    8043f7a View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2018

  1. Fix twitter#632 : BloomFilter saturated exception

    From the paper linked to the size estimation of a bloomfilter,
    we have a inegality mixing t = number bits to 1 of the filter, m=width of filter, numHash=k
    
            nl <= S-1(t-1)
            nr >= S-1(t+1)
    S-1 is defined like :
    
    	S-1(t) = ln(1 - t/m) / k.ln(1 - 1/m)
    
    problem occur when _t = m_
    
    	S-1(m) = ln(0) / k.ln(1 - 1/m)
    
    but *ln(-1/m)* is not correct.
    
    problem is :
    
    	ln( 1 - 1/m) < 0
    The scala maths library give :
    
    	scala> val infinity = scala.math.log(0) / -42
    	infinity: Double = Infinity
    
    	scala> infinity.round.toInt
    	res24: Int = -1
    
    just add special case for the S-1 function.
    cesarcolle committed Sep 7, 2018
    Configuration menu
    Copy the full SHA
    ee3b2db View commit details
    Browse the repository at this point in the history