org.apache.hadoop.util.bloom
Class Filter

java.lang.Object
  extended by org.apache.hadoop.util.bloom.Filter
All Implemented Interfaces:
Writable
Direct Known Subclasses:
BloomFilter, CountingBloomFilter, DynamicBloomFilter

public abstract class Filter
extends Object
implements 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  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<Key> keys)
          Adds a collection of keys to this filter.
abstract  void add(Key key)
          Adds a key to this filter.
 void add(Key[] keys)
          Adds an array of keys to this filter.
 void add(List<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.
abstract  boolean membershipTest(Key key)
          Determines wether 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)
          Deserialize the fields of this object from in.
 void write(DataOutput out)
          Serialize the fields of this object to 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 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 void add(Key key)
Adds a key to this filter.

Parameters:
key - The key to add.

membershipTest

public abstract boolean membershipTest(Key key)
Determines wether 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<Key> keys)
Adds a list of keys to this filter.

Parameters:
keys - The list of keys.

add

public void add(Collection<Key> keys)
Adds a collection of keys to this filter.

Parameters:
keys - The collection of keys.

add

public void add(Key[] keys)
Adds an array of keys to this filter.

Parameters:
keys - The array of keys.

write

public void write(DataOutput out)
           throws IOException
Description copied from interface: Writable
Serialize the fields of this object to out.

Specified by:
write in interface Writable
Parameters:
out - DataOuput to serialize this object into.
Throws:
IOException

readFields

public void readFields(DataInput in)
                throws IOException
Description copied from interface: Writable
Deserialize the fields of this object from in.

For efficiency, implementations should attempt to re-use storage in the existing object where possible.

Specified by:
readFields in interface Writable
Parameters:
in - DataInput to deseriablize this object from.
Throws:
IOException


Copyright © 2009 The Apache Software Foundation