public class BTree extends Object implements Closeable
| Constructor and Description |
|---|
BTree(File dataDir,
String filenamePrefix,
int blockSize,
int valueSize)
Creates a new BTree that uses an instance of DefaultRecordComparator to compare values.
|
BTree(File dataDir,
String filenamePrefix,
int blockSize,
int valueSize,
boolean forceSync)
Creates a new BTree that uses an instance of DefaultRecordComparator to compare values.
|
BTree(File dataDir,
String filenamePrefix,
int blockSize,
int valueSize,
RecordComparator comparator)
Creates a new BTree that uses the supplied RecordComparator to compare the values that are or will be
stored in the B-Tree.
|
BTree(File dataDir,
String filenamePrefix,
int blockSize,
int valueSize,
RecordComparator comparator,
boolean forceSync)
Creates a new BTree that uses the supplied RecordComparator to compare the values that are or will be
stored in the B-Tree.
|
| Modifier and Type | Method and Description |
|---|---|
void |
clear()
Removes all values from the B-Tree.
|
void |
close()
Closes any opened files and release any resources used by this B-Tree.
|
boolean |
delete()
Closes the BTree and then deletes its data files.
|
byte[] |
get(byte[] key)
Gets the value that matches the specified key.
|
File |
getFile()
Gets the file that this BTree operates on.
|
long |
getValueCountEstimate()
Returns an estimate for the number of values stored in this BTree.
|
long |
getValueCountEstimate(byte[] minValue,
byte[] maxValue)
Gives an estimate of the number of values between minValue and maxValue.
|
byte[] |
insert(byte[] value)
Inserts the supplied value into the B-Tree.
|
RecordIterator |
iterateAll()
Returns an iterator that iterates over all values in this B-Tree.
|
RecordIterator |
iterateRange(byte[] minValue,
byte[] maxValue)
Returns an iterator that iterates over all values between minValue and maxValue, inclusive.
|
RecordIterator |
iterateRangedValues(byte[] searchKey,
byte[] searchMask,
byte[] minValue,
byte[] maxValue)
Returns an iterator that iterates over all values between minValue and maxValue (inclusive) and returns the
values that match the supplied searchKey after searchMask has been applied to the value.
|
RecordIterator |
iterateValues(byte[] searchKey,
byte[] searchMask)
Returns an iterator that iterates over all values and returns the values that match the supplied searchKey after
searchMask has been applied to the value.
|
void |
print(PrintStream out) |
byte[] |
remove(byte[] key)
Removes the value that matches the specified key from the B-Tree.
|
void |
sync()
Writes any changes that are cached in memory to disk.
|
public BTree(File dataDir, String filenamePrefix, int blockSize, int valueSize) throws IOException
dataDir - The directory for the BTree data.filenamePrefix - The prefix for all files used by this BTree.blockSize - The size (in bytes) of a file block for a single node. Ideally, the size specified is the
size of a block in the used file system.valueSize - The size (in bytes) of the fixed-length values that are or will be stored in the B-Tree.IOException - In case the initialization of the B-Tree file failed.DefaultRecordComparatorpublic BTree(File dataDir, String filenamePrefix, int blockSize, int valueSize, boolean forceSync) throws IOException
dataDir - The directory for the BTree data.filenamePrefix - The prefix for all files used by this BTree.blockSize - The size (in bytes) of a file block for a single node. Ideally, the size specified is the
size of a block in the used file system.valueSize - The size (in bytes) of the fixed-length values that are or will be stored in the B-Tree.forceSync - Flag indicating whether updates should be synced to disk forcefully by calling
FileChannel.force(boolean). This may have a severe impact on write performance.IOException - In case the initialization of the B-Tree file failed.DefaultRecordComparatorpublic BTree(File dataDir, String filenamePrefix, int blockSize, int valueSize, RecordComparator comparator) throws IOException
dataDir - The directory for the BTree data.filenamePrefix - The prefix for all files used by this BTree.blockSize - The size (in bytes) of a file block for a single node. Ideally, the size specified is the
size of a block in the used file system.valueSize - The size (in bytes) of the fixed-length values that are or will be stored in the B-Tree.comparator - The RecordComparator to use for determining whether one value is smaller, larger
or equal to another.IOException - In case the initialization of the B-Tree file failed.public BTree(File dataDir, String filenamePrefix, int blockSize, int valueSize, RecordComparator comparator, boolean forceSync) throws IOException
dataDir - The directory for the BTree data.filenamePrefix - The prefix for all files used by this BTree.blockSize - The size (in bytes) of a file block for a single node. Ideally, the size specified is the
size of a block in the used file system.valueSize - The size (in bytes) of the fixed-length values that are or will be stored in the B-Tree.comparator - The RecordComparator to use for determining whether one value is smaller, larger
or equal to another.forceSync - Flag indicating whether updates should be synced to disk forcefully by calling
FileChannel.force(boolean). This may have a severe impact on write performance.IOException - In case the initialization of the B-Tree file failed.public File getFile()
public boolean delete()
throws IOException
IOExceptionpublic void close()
throws IOException
close in interface Closeableclose in interface AutoCloseableIOExceptionpublic void sync()
throws IOException
IOExceptionpublic byte[] get(byte[] key)
throws IOException
key - A value that is equal to the value that should be retrieved, at least as far as the RecordComparator
of this BTree is concerned.IOExceptionpublic RecordIterator iterateAll()
public RecordIterator iterateRange(byte[] minValue, byte[] maxValue)
public RecordIterator iterateValues(byte[] searchKey, byte[] searchMask)
public RecordIterator iterateRangedValues(byte[] searchKey, byte[] searchMask, byte[] minValue, byte[] maxValue)
public long getValueCountEstimate()
throws IOException
IOExceptionpublic long getValueCountEstimate(byte[] minValue,
byte[] maxValue)
throws IOException
minValue - the lower bound of the range.maxValue - the upper bound of the range,IOExceptionpublic byte[] insert(byte[] value)
throws IOException
value - The value to insert into the B-Tree.IOException - If an I/O error occurred.public byte[] remove(byte[] key)
throws IOException
key - A key that matches the value that should be removed from the B-Tree.IOException - If an I/O error occurred.public void clear()
throws IOException
IOException - If an I/O error occurred.public void print(PrintStream out) throws IOException
IOExceptionCopyright © 2015-2022 Eclipse Foundation. All Rights Reserved.