Class/Object

io.epiphanous.flinkrunner.algorithm.membership

StableBloomFilter

Related Docs: object StableBloomFilter | package membership

Permalink

case class StableBloomFilter[T](funnel: Funnel[T], m: Long, d: Int, FPR: Double) extends Product with Serializable

Implements the stable bloom filter from the paper by F. Deng and D. Rafiei. Approximately detecting duplicates for streaming data using stable bloom filters. In SIGMOD, pages 25–36, 2006.

We use heap storage (an array of Longs). This implies M=m*d can be set as high as about 125 giga-bits.

T

the type of funnel used

funnel

a Guava funnel for taking input

m

number of cells (see the paper, m is a Long but m/floor(63/d) must fit in a 32-bit Int)

d

bits per cell (see the paper, should lie in [1,63] but often set to 1, 2 or 3)

FPR

expected false positive rate (should lie in (0,1))

Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. StableBloomFilter
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new StableBloomFilter(funnel: Funnel[T], m: Long, d: Int, FPR: Double)

    Permalink

    funnel

    a Guava funnel for taking input

    m

    number of cells (see the paper, m is a Long but m/floor(63/d) must fit in a 32-bit Int)

    d

    bits per cell (see the paper, should lie in [1,63] but often set to 1, 2 or 3)

    FPR

    expected false positive rate (should lie in (0,1))

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. val FPR: Double

    Permalink

    expected false positive rate (should lie in (0,1))

  5. val K: Int

    Permalink

    number of hash functions used

  6. val M: Long

    Permalink

    total memory required

  7. val Max: Int

    Permalink

    cell value to set upon insertion

  8. val P: Int

    Permalink

    number of cells to decrement on each insertion

  9. def add(item: T): Boolean

    Permalink

    Insert a stream element into the filter.

    Insert a stream element into the filter.

    item

    the item to insert

  10. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  11. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. val d: Int

    Permalink

    bits per cell (see the paper, should lie in [1,63] but often set to 1, 2 or 3)

  13. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  14. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. val funnel: Funnel[T]

    Permalink

    a Guava funnel for taking input

  16. def get(i: Long): Long

    Permalink

    Gets the current value of the i'th cell.

    Gets the current value of the i'th cell.

    i

    the cell to get (in [0, m))

  17. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  18. val hasher: HashFunction

    Permalink

    murmur3 128 guava hashing function generator

  19. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  20. val m: Long

    Permalink

    number of cells (see the paper, m is a Long but m/floor(63/d) must fit in a 32-bit Int)

    number of cells (see the paper, m is a Long but m/floor(63/d) must fit in a 32-bit Int)

  21. def merge(another: StableBloomFilter[T]): StableBloomFilter[T]

    Permalink

    Merge another filter into this filter.

    Merge another filter into this filter.

    another

    the other filter

  22. def mightContain(item: T): Boolean

    Permalink

    Return true if this SBF might contain the requested item.

    Return true if this SBF might contain the requested item.

    item

    the item to check

  23. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  24. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  25. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  26. val random: Random

    Permalink

    random number generator for decrementing cells

  27. val storage: Array[Long]

    Permalink

    heap storage for our bits

  28. val storedBits: Int

    Permalink

    number of bits used per unit storage

  29. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  30. val w: Int

    Permalink

    number of longs used for storage

  31. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped