Interface | Description |
---|---|
BTree.Summary<K extends java.io.Serializable & java.lang.Comparable,V extends java.io.Serializable,S extends java.io.Serializable> | |
PageStorageWithDeallocation |
A PageStorage that can deallocate pages -- all pages with a larger
page number are instantaneously renumbered! Users must beware of
this.
|
Class | Description |
---|---|
BTree<K extends java.io.Serializable & java.lang.Comparable,V extends java.io.Serializable,S extends java.io.Serializable> |
A B+Tree
implemented using
PageStorage . |
BTreeTest |
A simple regression test for the BTree.
|
CachingPageStorage |
API for a PageStorage with some sort of cache; the
CachingPageStorage.CachedPage class provides an interface for interacting with the
cache. |
CachingPageStorageWrapper |
A wrapper around PageStorage that makes it a
CachingPageStorage . |
EquivalenceClasses<V> |
A Disjoint
Set data structure.
|
FilePageStorage |
PageStorage implemented via a RandomAccessFile.
|
MemoryPageStorage |
A PageStorage that uses plain old memory.
|
OverflowPageStorage |
Combines two PageStorage objects, using the first until the "high
water mark" is exceeded, then moving to the other.
|
PageStorage |
Stores and retrieves fixed-size byte sequences indexed by a page
number; page numbers are guaranteed to be contiguous starting at
zero.
|
RadixTrie<V> |
A Radix Trie;
used to store lists of hierarchically-named signals and
efficiently detect the separator character.
|
A B+Tree with many features.
At the moment, the on-disk format is NOT stable. It will almost certainly change in the future. Please do not use the BTree to store data across invocations of the JVM.
At the moment, the BTree does not support deleting or replacing values.
There are three kinds of classes in this package:
BTree
NodeCursor
, which are
package-private. These act like smart "pointers" to individual
pages within the BTree and help to simplify BTree.java.
PageStorage
class and subclasses. A PageStorage is sort of like
a HashMap<Integer,byte[]> with a few extra
features and restrictions. A CachingPageStorage is like a
PageStorage that lets you write directly to the byte[]'s that
are resident in memory.
The subpackage unboxed provides "unboxed" versions of many data structures; please take a brief look at it first.