|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.accumulo.core.bloomfilter.Filter org.apache.accumulo.core.bloomfilter.DynamicBloomFilter
public class DynamicBloomFilter
Implements a dynamic Bloom filter, as defined in the INFOCOM 2006 paper.
A dynamic Bloom filter (DBF) makes use of a s * m
bit matrix but each of the s
rows is a standard Bloom filter. The creation
process of a DBF is iterative. At the start, the DBF is a 1 * m
bit matrix, i.e., it is composed of a single standard Bloom filter. It assumes
that nr
elements are recorded in the initial bit vector, where nr <= n
(n
is the cardinality of
the set A
to record in the filter).
As the size of A
grows during the execution of the application, several keys must be inserted in the DBF. When inserting a key into the DBF, one
must first get an active Bloom filter in the matrix. A Bloom filter is active when the number of recorded keys, nr
, is strictly less
than the current cardinality of A
, n
. If an active Bloom filter is found, the key is inserted and nr
is
incremented by one. On the other hand, if there is no active Bloom filter, a new one is created (i.e., a new row is added to the matrix) according to the
current size of A
and the element is added in this new Bloom filter and the nr
value of this new Bloom filter is set to
one. A given key is said to belong to the DBF if the k
positions are set to one in one of the matrix rows.
Originally created by European Commission One-Lab Project 034819.
The general behavior of a filter
,
A Bloom filter
,
Theory and Network Applications of Dynamic Bloom
FiltersField Summary |
---|
Fields inherited from class org.apache.accumulo.core.bloomfilter.Filter |
---|
hash, hashType, nbHash, vectorSize |
Constructor Summary | |
---|---|
DynamicBloomFilter()
Zero-args constructor for the serialization. |
|
DynamicBloomFilter(int vectorSize,
int nbHash,
int hashType,
int nr)
Constructor. |
Method Summary | |
---|---|
boolean |
add(org.apache.hadoop.util.bloom.Key key)
Adds a key to this filter. |
void |
and(Filter filter)
Peforms a logical AND between this filter and a specified filter. |
boolean |
membershipTest(org.apache.hadoop.util.bloom.Key key)
Determines whether a specified key belongs to this filter. |
void |
not()
Performs a logical NOT on this filter. |
void |
or(Filter filter)
Peforms a logical OR between this filter and a specified filter. |
void |
readFields(DataInput in)
|
String |
toString()
|
void |
write(DataOutput out)
|
void |
xor(Filter filter)
Peforms a logical XOR between this filter and a specified filter. |
Methods inherited from class org.apache.accumulo.core.bloomfilter.Filter |
---|
add, add, add, getSerialVersion, getVersion |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public DynamicBloomFilter()
public DynamicBloomFilter(int vectorSize, int nbHash, int hashType, int nr)
Builds an empty Dynamic Bloom filter.
vectorSize
- The number of bits in the vector.nbHash
- The number of hash function to consider.hashType
- type of the hashing function (see Hash
).nr
- The threshold for the maximum number of keys to record in a dynamic Bloom filter row.Method Detail |
---|
public boolean add(org.apache.hadoop.util.bloom.Key key)
Filter
add
in class Filter
key
- The key to add.
public void and(Filter filter)
Filter
Invariant: The result is assigned to this filter.
and
in class Filter
filter
- The filter to AND with.public boolean membershipTest(org.apache.hadoop.util.bloom.Key key)
Filter
membershipTest
in class Filter
key
- The key to test.
public void not()
Filter
The result is assigned to this filter.
not
in class Filter
public void or(Filter filter)
Filter
Invariant: The result is assigned to this filter.
or
in class Filter
filter
- The filter to OR with.public void xor(Filter filter)
Filter
Invariant: The result is assigned to this filter.
xor
in class Filter
filter
- The filter to XOR with.public String toString()
toString
in class Object
public void write(DataOutput out) throws IOException
write
in interface org.apache.hadoop.io.Writable
write
in class Filter
IOException
public void readFields(DataInput in) throws IOException
readFields
in interface org.apache.hadoop.io.Writable
readFields
in class Filter
IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |