|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.exist.storage.btree.Paged
org.exist.storage.btree.BTree
public class BTree
A general purpose B+-tree which stores binary keys as instances of
Value
. The actual value data is not
stored in the B+tree itself. Instead, we use long pointers to record the
storage address of the value. This class has no methods to locate or
modify data records. Data handling is in the responsibilty of the
proper subclasses: BFile
and
DOMFile
.
Both, branch and leaf nodes are represented by the inner class
BTree.BTreeNode
.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.exist.storage.btree.Paged |
---|
Paged.FileHeader, Paged.Page, Paged.PageHeader |
Field Summary | |
---|---|
static long |
KEY_NOT_FOUND
Used as return value, if a value was not found |
static byte |
LOG_CREATE_BNODE
Log entry type for creation of a new btree node |
static byte |
LOG_INSERT_VALUE
Log entry type for an insert value operation |
static byte |
LOG_REMOVE_VALUE
Log entry type for removing a value |
static byte |
LOG_SET_LINK
|
static byte |
LOG_SET_PARENT
Log entry type for a parent page change resulting from a page split |
static byte |
LOG_UPDATE_PAGE
Log entry type for a page update resulting from a page split |
static byte |
LOG_UPDATE_VALUE
Log entry type for a value update |
Constructor Summary | |
---|---|
BTree(BrokerPool pool,
byte fileId,
boolean transactional,
DefaultCacheManager cacheManager,
File file,
double growthThreshold)
|
Method Summary | |
---|---|
long |
addValue(Txn transaction,
Value value,
long pointer)
|
long |
addValue(Value value,
long pointer)
addValue adds a Value to the BTree and associates a pointer with it. |
boolean |
close()
Close the underlying files. |
void |
closeAndRemove()
Completely close down the instance and all underlying resources and caches. |
boolean |
create(short fixedKeyLen)
|
Paged.FileHeader |
createFileHeader(int pageSize)
createFileHeader must be implemented by a Paged implementation in order to create an appropriate subclass instance of a FileHeader. |
Paged.PageHeader |
createPageHeader()
createPageHeader must be implemented by a Paged implementation in order to create an appropriate subclass instance of a PageHeader. |
void |
dump(Writer writer)
Print a dump of the tree to the given writer. |
long |
findValue(Value value)
findValue finds a Value in the BTree and returns the associated pointer for it. |
boolean |
flush()
|
short |
getFileVersion()
|
BufferStats |
getIndexBufferStats()
|
boolean |
open(short expectedVersion)
|
void |
printStatistics()
|
void |
query(IndexQuery query,
BTreeCallback callback)
query performs a query against the BTree and performs callback operations to report the search results. |
void |
query(IndexQuery query,
Value prefix,
BTreeCallback callback)
Executes a query against the BTree and performs callback operations to report the search results. |
void |
remove(IndexQuery query,
BTreeCallback callback)
|
void |
remove(Txn transaction,
IndexQuery query,
BTreeCallback callback)
Search for keys matching the given IndexQuery and
remove them from the node. |
long |
removeValue(Txn transaction,
Value value)
|
long |
removeValue(Value value)
removeValue removes a Value from the BTree and returns the associated pointer for it. |
TreeMetrics |
treeStatistics()
|
Methods inherited from class org.exist.storage.btree.Paged |
---|
backupToStream, create, exists, getFile, getFileHeader, getPageSize, hexDump, isOpened, isReadOnly, printFreeSpaceList, setPageSize |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final long KEY_NOT_FOUND
public static final byte LOG_INSERT_VALUE
public static final byte LOG_CREATE_BNODE
public static final byte LOG_UPDATE_PAGE
public static final byte LOG_SET_PARENT
public static final byte LOG_UPDATE_VALUE
public static final byte LOG_REMOVE_VALUE
public static final byte LOG_SET_LINK
Constructor Detail |
---|
public BTree(BrokerPool pool, byte fileId, boolean transactional, DefaultCacheManager cacheManager, File file, double growthThreshold) throws DBException
DBException
Method Detail |
---|
public short getFileVersion()
getFileVersion
in class Paged
public boolean open(short expectedVersion) throws DBException
open
in class Paged
DBException
public boolean create(short fixedKeyLen) throws DBException
DBException
public void closeAndRemove()
Paged
closeAndRemove
in class Paged
public long addValue(Value value, long pointer) throws IOException, BTreeException
value
- The Value to addpointer
- The pointer to associate with it
IOException
- Description of the Exception
BTreeException
- Description of the Exceptionpublic long addValue(Txn transaction, Value value, long pointer) throws IOException, BTreeException
IOException
BTreeException
public long removeValue(Value value) throws IOException, BTreeException
value
- The Value to remove
IOException
- Description of the Exception
BTreeException
- Description of the Exceptionpublic long removeValue(Txn transaction, Value value) throws IOException, BTreeException
IOException
BTreeException
public long findValue(Value value) throws IOException, BTreeException
value
- The Value to find
IOException
- Description of the Exception
BTreeException
- Description of the Exceptionpublic void query(IndexQuery query, BTreeCallback callback) throws IOException, BTreeException, TerminatedException
query
- The IndexQuery to use (or null for everything)callback
- The callback instance
IOException
- Description of the Exception
BTreeException
- Description of the Exception
TerminatedException
public void query(IndexQuery query, Value prefix, BTreeCallback callback) throws IOException, BTreeException, TerminatedException
query
- The IndexQuery to use (or null for everything)prefix
- a prefix valuecallback
- The callback instance
IOException
BTreeException
TerminatedException
public void remove(IndexQuery query, BTreeCallback callback) throws IOException, BTreeException, TerminatedException
IOException
BTreeException
TerminatedException
public void remove(Txn transaction, IndexQuery query, BTreeCallback callback) throws IOException, BTreeException, TerminatedException
IndexQuery
and
remove them from the node. Every match is reported
to the specified BTreeCallback
.
query
- callback
-
IOException
BTreeException
TerminatedException
public void dump(Writer writer) throws IOException, BTreeException
writer
-
IOException
BTreeException
public TreeMetrics treeStatistics() throws IOException
IOException
public boolean flush() throws DBException
flush
in class Paged
DBException
public boolean close() throws DBException
Paged
close
in class Paged
DBException
public Paged.FileHeader createFileHeader(int pageSize)
Paged
createFileHeader
in class Paged
Paged.createFileHeader(int pageSize)
public Paged.PageHeader createPageHeader()
Paged
createPageHeader
in class Paged
Paged.createPageHeader()
public BufferStats getIndexBufferStats()
public void printStatistics()
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |