org.apache.accumulo.core.bloomfilter
Class Filter

java.lang.Object
  extended by org.apache.accumulo.core.bloomfilter.Filter
All Implemented Interfaces:
org.apache.hadoop.io.Writable
Direct Known Subclasses:
BloomFilter, DynamicBloomFilter

public abstract class Filter
extends Object
implements org.apache.hadoop.io.Writable

Defines the general behavior of a filter.

A filter is a data structure which aims at offering a lossy summary of a set A. The key idea is to map entries of A (also called keys) into several positions in a vector through the use of several hash functions.

Typically, a filter will be implemented as a Bloom filter (or a Bloom filter extension).

It must be extended in order to define the real behavior.

See Also:
The general behavior of a key, A hash function

Field Summary
protected  org.apache.hadoop.util.bloom.HashFunction hash
          The hash function used to map a key to several positions in the vector.
protected  int hashType
          Type of hashing function to use.
protected  int nbHash
          The number of hash function to consider.
protected  int vectorSize
          The vector size of this filter.
 
Constructor Summary
protected Filter()
           
protected Filter(int vectorSize, int nbHash, int hashType)
          Constructor.
 
Method Summary
 void add(Collection<org.apache.hadoop.util.bloom.Key> keys)
          Adds a collection of keys to this filter.
abstract  boolean add(org.apache.hadoop.util.bloom.Key key)
          Adds a key to this filter.
 void add(org.apache.hadoop.util.bloom.Key[] keys)
          Adds an array of keys to this filter.
 void add(List<org.apache.hadoop.util.bloom.Key> keys)
          Adds a list of keys to this filter.
abstract  void and(Filter filter)
          Peforms a logical AND between this filter and a specified filter.
protected  int getSerialVersion()
           
protected  int getVersion()
           
abstract  boolean membershipTest(org.apache.hadoop.util.bloom.Key key)
          Determines whether a specified key belongs to this filter.
abstract  void not()
          Performs a logical NOT on this filter.
abstract  void or(Filter filter)
          Peforms a logical OR between this filter and a specified filter.
 void readFields(DataInput in)
           
 void write(DataOutput out)
           
abstract  void xor(Filter filter)
          Peforms a logical XOR between this filter and a specified filter.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

vectorSize

protected int vectorSize
The vector size of this filter.


hash

protected org.apache.hadoop.util.bloom.HashFunction hash
The hash function used to map a key to several positions in the vector.


nbHash

protected int nbHash
The number of hash function to consider.


hashType

protected int hashType
Type of hashing function to use.

Constructor Detail

Filter

protected Filter()

Filter

protected Filter(int vectorSize,
                 int nbHash,
                 int hashType)
Constructor.

Parameters:
vectorSize - The vector size of this filter.
nbHash - The number of hash functions to consider.
hashType - type of the hashing function (see Hash).
Method Detail

add

public abstract boolean add(org.apache.hadoop.util.bloom.Key key)
Adds a key to this filter.

Parameters:
key - The key to add.
Returns:
true if the key was added, false otherwise.

membershipTest

public abstract boolean membershipTest(org.apache.hadoop.util.bloom.Key key)
Determines whether a specified key belongs to this filter.

Parameters:
key - The key to test.
Returns:
boolean True if the specified key belongs to this filter. False otherwise.

and

public abstract void and(Filter filter)
Peforms a logical AND between this filter and a specified filter.

Invariant: The result is assigned to this filter.

Parameters:
filter - The filter to AND with.

or

public abstract void or(Filter filter)
Peforms a logical OR between this filter and a specified filter.

Invariant: The result is assigned to this filter.

Parameters:
filter - The filter to OR with.

xor

public abstract void xor(Filter filter)
Peforms a logical XOR between this filter and a specified filter.

Invariant: The result is assigned to this filter.

Parameters:
filter - The filter to XOR with.

not

public abstract void not()
Performs a logical NOT on this filter.

The result is assigned to this filter.


add

public void add(List<org.apache.hadoop.util.bloom.Key> keys)
Adds a list of keys to this filter.

Parameters:
keys - The list of keys.

add

public void add(Collection<org.apache.hadoop.util.bloom.Key> keys)
Adds a collection of keys to this filter.

Parameters:
keys - The collection of keys.

add

public void add(org.apache.hadoop.util.bloom.Key[] keys)
Adds an array of keys to this filter.

Parameters:
keys - The array of keys.

write

public void write(DataOutput out)
           throws IOException
Specified by:
write in interface org.apache.hadoop.io.Writable
Throws:
IOException

getSerialVersion

protected int getSerialVersion()

getVersion

protected int getVersion()

readFields

public void readFields(DataInput in)
                throws IOException
Specified by:
readFields in interface org.apache.hadoop.io.Writable
Throws:
IOException


Copyright © 2013 Apache Accumulo Project. All Rights Reserved.