krati.store
Class StaticDataSet

java.lang.Object
  extended by krati.store.StaticDataSet
All Implemented Interfaces:
DataSet<byte[]>

public class StaticDataSet
extends Object
implements DataSet<byte[]>

A simple implementation of data set with a fixed capacity. The values are stored in the underlying DataArray using the following format:

 [count:int][value-length:int][value:bytes][value-length:int][value:bytes]...
            +-----------value 1------------+-----------value 2-----------+
 

Author:
jwu

Constructor Summary
StaticDataSet(File homeDir, int capacity, int entrySize, int maxEntries, int segmentFileSizeMB, SegmentFactory segmentFactory)
          Creates a DataSet instance with the settings below:
StaticDataSet(File homeDir, int capacity, int entrySize, int maxEntries, int segmentFileSizeMB, SegmentFactory segmentFactory, double segmentCompactFactor, HashFunction<byte[]> hashFunction)
          Creates a DataSet instance.
StaticDataSet(File homeDir, int capacity, int entrySize, int maxEntries, int segmentFileSizeMB, SegmentFactory segmentFactory, HashFunction<byte[]> hashFunction)
          Creates a DataSet instance with the settings below:
StaticDataSet(File homeDir, int capacity, int segmentFileSizeMB, SegmentFactory segmentFactory)
          Creates a DataSet instance with the settings below:
StaticDataSet(File homeDir, int capacity, SegmentFactory segmentFactory)
          Creates a DataSet instance with the settings below:
 
Method Summary
 boolean add(byte[] value)
           
 void clear()
           
 int countCollisions(byte[] value)
           
protected  AddressArray createAddressArray(int length, int entrySize, int maxEntries, File homeDirectory)
           
 boolean delete(byte[] value)
           
 DataArray getDataArray()
           
 boolean has(byte[] value)
           
protected  long hash(byte[] value)
           
 boolean hasWithoutCollisions(byte[] value)
           
protected  long nextScn()
           
 void persist()
           
 void sync()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StaticDataSet

public StaticDataSet(File homeDir,
                     int capacity,
                     SegmentFactory segmentFactory)
              throws Exception
Creates a DataSet instance with the settings below:
    Entry Size             : 10000
    Max Entries            : 5
    Segment File Size      : 256MB
    Segment Compact Factor : 0.5
    Hash Function          : krati.util.FnvHashFunction
 

Parameters:
homeDir - the home directory
capacity - the capacity of data set
segmentFactory - the segment factory
Throws:
Exception

StaticDataSet

public StaticDataSet(File homeDir,
                     int capacity,
                     int segmentFileSizeMB,
                     SegmentFactory segmentFactory)
              throws Exception
Creates a DataSet instance with the settings below:
    Entry Size             : 10000
    Max Entries            : 5
    Segment Compact Factor : 0.5
    Hash Function          : krati.util.FnvHashFunction
 

Parameters:
homeDir - the home directory
capacity - the capacity of data set
segmentFileSizeMB - the size of segment file in MB
segmentFactory - the segment factory
Throws:
Exception

StaticDataSet

public StaticDataSet(File homeDir,
                     int capacity,
                     int entrySize,
                     int maxEntries,
                     int segmentFileSizeMB,
                     SegmentFactory segmentFactory)
              throws Exception
Creates a DataSet instance with the settings below:
    Segment Compact Factor : 0.5
    Hash Function          : krati.util.FnvHashFunction
 

Parameters:
homeDir - the home directory
capacity - the capacity of data set
entrySize - the redo entry size (i.e., batch size)
maxEntries - the number of redo entries required for updating the underlying address array
segmentFileSizeMB - the size of segment file in MB
segmentFactory - the segment factory
Throws:
Exception

StaticDataSet

public StaticDataSet(File homeDir,
                     int capacity,
                     int entrySize,
                     int maxEntries,
                     int segmentFileSizeMB,
                     SegmentFactory segmentFactory,
                     HashFunction<byte[]> hashFunction)
              throws Exception
Creates a DataSet instance with the settings below:
    Segment Compact Factor : 0.5
 

Parameters:
homeDir - the home directory
capacity - the capacity of data set
entrySize - the redo entry size (i.e., batch size)
maxEntries - the number of redo entries required for updating the underlying address array
segmentFileSizeMB - the size of segment file in MB
segmentFactory - the segment factory
hashFunction - the hash function for mapping values to indexes
Throws:
Exception

StaticDataSet

public StaticDataSet(File homeDir,
                     int capacity,
                     int entrySize,
                     int maxEntries,
                     int segmentFileSizeMB,
                     SegmentFactory segmentFactory,
                     double segmentCompactFactor,
                     HashFunction<byte[]> hashFunction)
              throws Exception
Creates a DataSet instance.

Parameters:
homeDir - the home directory
capacity - the capacity of data set
entrySize - the redo entry size (i.e., batch size)
maxEntries - the number of redo entries required for updating the underlying address array
segmentFileSizeMB - the size of segment file in MB
segmentFactory - the segment factory
segmentCompactFactor - the load factor of segment, below which a segment is eligible for compaction
hashFunction - the hash function for mapping values to indexes
Throws:
Exception
Method Detail

createAddressArray

protected AddressArray createAddressArray(int length,
                                          int entrySize,
                                          int maxEntries,
                                          File homeDirectory)
                                   throws Exception
Throws:
Exception

hash

protected long hash(byte[] value)

nextScn

protected long nextScn()

sync

public void sync()
          throws IOException
Specified by:
sync in interface DataSet<byte[]>
Throws:
IOException

persist

public void persist()
             throws IOException
Specified by:
persist in interface DataSet<byte[]>
Throws:
IOException

has

public boolean has(byte[] value)
Specified by:
has in interface DataSet<byte[]>

countCollisions

public final int countCollisions(byte[] value)

hasWithoutCollisions

public final boolean hasWithoutCollisions(byte[] value)

add

public boolean add(byte[] value)
            throws Exception
Specified by:
add in interface DataSet<byte[]>
Throws:
Exception

delete

public boolean delete(byte[] value)
               throws Exception
Specified by:
delete in interface DataSet<byte[]>
Throws:
Exception

clear

public void clear()
           throws IOException
Specified by:
clear in interface DataSet<byte[]>
Throws:
IOException

getDataArray

public final DataArray getDataArray()
Returns:
the underlying data array.


Copyright © 2011. All Rights Reserved.