Fennel: FixedBuildLevel Class Reference (original) (raw)
#include <[BTreeBuildLevel.h](BTreeBuildLevel%5F8h-source.html)>
Inheritance diagram for FixedBuildLevel:

| Public Member Functions | |
|---|---|
| void | indexLastChild () |
| Protected Member Functions | |
| bool | isFinished () const |
| void | processInput (ByteInputStream &sortedInputStream) |
| void | unmarshalLastKey () |
| BTreeNode * | allocateAndLinkNewNode () |
| BTreeNode & | allocatePage () |
| Protected Attributes | |
| BTreeBuilder & | builder |
| Owning BTreeBuilder. | |
| BTreeNodeAccessor & | nodeAccessor |
| BTreeNodeAccessor to use for accessing nodes in this level. | |
| uint | iLevel |
| 0-based height of this level in tree. | |
| RecordNum | iNode |
| 0-based sequence number of node being built on this level. | |
| RecordNum | nEntriesTotal |
| Total number of entries expected at this level. | |
| BTreePageLock | pageLock |
| Lock on current node. | |
| PageId | pageId |
| PageId of current node. | |
| uint | nEntriesPerNode |
| Number of entries to store on each node. | |
| RecordNum | nEntriesProcessed |
| Number of entries appended on this level so far (across all nodes). | |
| uint | cbReserved |
| Number of bytes of free space to reserve on each page (determined by fill factor). | |
| Private Member Functions | |
| FixedBuildLevel (BTreeBuilder &builderInit, BTreeNodeAccessor &nodeAccessorInit) | |
| virtual void | indexLastKey (bool finalize) |
| virtual bool | isNodeFull (BTreeNode const &node, uint cbTuple) |
| Friends | |
| class | BTreeBuilder |
Detailed Description
Definition at line 124 of file BTreeBuildLevel.h.
Constructor & Destructor Documentation
Member Function Documentation
| void FixedBuildLevel::indexLastKey | ( | bool | finalize | ) | [private, virtual] |
|---|
| bool FixedBuildLevel::isNodeFull | ( | BTreeNode const & | node, |
|---|---|---|---|
| uint | cbTuple | ||
| ) | [private, virtual] |
| bool BTreeBuildLevel::isFinished | ( | | ) | const [protected, inherited] | | -------------------------------- | - | | - | ------------------------------ |
| void BTreeBuildLevel::processInput | ( | ByteInputStream & | sortedInputStream | ) | [protected, inherited] |
|---|
Definition at line 57 of file BTreeBuildLevel.cpp.
References BTreeBuildLevel::allocateAndLinkNewNode(), BTreeNodeAccessor::allocateEntry(), BTreeBuildLevel::builder, ByteInputStream::consumeReadPointer(), TupleAccessor::getCurrentByteCount(), SegNodeLock< Node >::getNodeForWrite(), ByteInputStream::getReadPointer(), BTreeBuildLevel::indexLastKey(), BTreeBuildLevel::isNodeFull(), BTreeNode::nEntries, BTreeBuildLevel::nEntriesProcessed, BTreeBuildLevel::nEntriesTotal, BTreeBuildLevel::nodeAccessor, BTreeBuildLevel::pageLock, TupleAccessor::setCurrentTupleBuf(), BTreeNodeAccessor::tupleAccessor, and BTreeAccessBase::validateTupleSize().
Referenced by BTreeBuilder::buildBalanced(), BTreeBuilder::buildTwoPass(), and BTreeBuilder::buildUnbalanced().
| void BTreeBuildLevel::unmarshalLastKey | ( | | ) | [protected, inherited] | | -------------------------------------- | - | | - | ------------------------ |
Definition at line 135 of file BTreeBuildLevel.cpp.
References BTreeNodeAccessor::accessTuple(), BTreeBuildLevel::builder, SegNodeLock< Node >::getNodeForRead(), BTreeNode::nEntries, BTreeBuildLevel::nodeAccessor, BTreeBuildLevel::pageLock, BTreeAccessBase::pNonLeafNodeAccessor, and BTreeNodeAccessor::unmarshalKey().
Referenced by BTreeBuildLevel::indexLastChild(), DynamicBuildLevel::indexLastKey(), VariableBuildLevel::indexLastKey(), and indexLastKey().
| BTreeNode * BTreeBuildLevel::allocateAndLinkNewNode | ( | | ) | [protected, inherited] | | ---------------------------------------------------------------------------- | - | | - | ------------------------ |
Definition at line 142 of file BTreeBuildLevel.cpp.
References SegPageLock::accessSegment(), BTreeBuildLevel::allocatePage(), BTreeBuildLevel::builder, BTreeBuilder::calculateChildEntriesPerNode(), BTreeAccessBase::getCacheAccessor(), BTreeBuilder::getLevel(), SegNodeLock< Node >::getNodeForWrite(), SegPageLock::getPage(), BTreeBuildLevel::iLevel, BTreeBuildLevel::iNode, SegPageLock::lockExclusive(), BTreeBuildLevel::nEntriesPerNode, BTreeBuildLevel::nEntriesTotal, BTreeBuildLevel::pageId, BTreeDescriptor::segmentAccessor, BTreeAccessBase::setRightSibling(), and BTreeAccessBase::treeDescriptor.
Referenced by BTreeBuildLevel::indexLastChild(), and BTreeBuildLevel::processInput().
| BTreeNode & BTreeBuildLevel::allocatePage | ( | | ) | [protected, inherited] | | ----------------------------------------------------------------- | - | | - | ------------------------ |
Definition at line 181 of file BTreeBuildLevel.cpp.
References SegNodeLock< Node >::allocatePage(), BTreeBuildLevel::builder, BTreeNodeAccessor::clearNode(), SegNodeLock< Node >::getNodeForWrite(), BTreeAccessBase::getPageOwnerId(), BTreeAccessBase::getSegment(), BTreeNode::height, BTreeBuildLevel::iLevel, BTreeBuildLevel::nodeAccessor, BTreeBuildLevel::pageId, and BTreeBuildLevel::pageLock.
Referenced by BTreeBuildLevel::allocateAndLinkNewNode(), BTreeBuilder::buildBalanced(), BTreeBuilder::buildTwoPass(), and BTreeBuilder::growTree().
| void BTreeBuildLevel::indexLastChild | ( | | ) | [inherited] | | ------------------------------------ | - | | - | ------------- |
Definition at line 103 of file BTreeBuildLevel.cpp.
References BTreeBuildLevel::allocateAndLinkNewNode(), BTreeNodeAccessor::allocateEntry(), BTreeBuildLevel::builder, TupleAccessor::getByteCount(), BTreeBuilder::getLevel(), SegNodeLock< Node >::getNodeForWrite(), BTreeBuildLevel::iLevel, BTreeBuildLevel::indexLastKey(), BTreeBuildLevel::isNodeFull(), TupleAccessor::marshal(), BTreeNode::nEntries, BTreeBuildLevel::nEntriesProcessed, BTreeBuildLevel::nEntriesTotal, BTreeBuildLevel::nodeAccessor, BTreeBuildLevel::pageId, BTreeBuildLevel::pageLock, BTreeNodeAccessor::tupleAccessor, BTreeNodeAccessor::tupleData, and BTreeBuildLevel::unmarshalLastKey().
Referenced by DynamicBuildLevel::indexLastKey(), and indexLastKey().
Friends And Related Function Documentation
Member Data Documentation
Owning BTreeBuilder.
Definition at line 48 of file BTreeBuildLevel.h.
Referenced by BTreeBuildLevel::allocateAndLinkNewNode(), BTreeBuildLevel::allocatePage(), BTreeBuildLevel::BTreeBuildLevel(), VariableBuildLevel::getParentKeyStream(), BTreeBuildLevel::indexLastChild(), DynamicBuildLevel::indexLastKey(), VariableBuildLevel::indexLastKey(), indexLastKey(), BTreeBuildLevel::processInput(), BTreeBuildLevel::unmarshalLastKey(), and VariableBuildLevel::VariableBuildLevel().
The documentation for this class was generated from the following files:
- /home/pub/open/dev/fennel/btree/BTreeBuildLevel.h
- /home/pub/open/dev/fennel/btree/BTreeBuildLevel.cpp
