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

| Public Member Functions | |
|---|---|
| virtual | ~BTreeBuildLevel () |
| void | indexLastChild () |
| Protected Member Functions | |
| bool | isFinished () const |
| void | processInput (ByteInputStream &sortedInputStream) |
| void | unmarshalLastKey () |
| BTreeNode * | allocateAndLinkNewNode () |
| BTreeNode & | allocatePage () |
| BTreeBuildLevel (BTreeBuilder &builderInit, BTreeNodeAccessor &nodeAccessorInit) | |
| virtual bool | isNodeFull (BTreeNode const &node, uint cbTuple) |
| virtual void | indexLastKey (bool finalize)=0 |
| 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). | |
| Friends | |
| class | BTreeBuilder |
Detailed Description
BTreeBuildLevel is subordinate to BTreeBuilder.
It manages the build state for one level of a BTree being built.
Definition at line 40 of file BTreeBuildLevel.h.
Constructor & Destructor Documentation
Definition at line 33 of file BTreeBuildLevel.cpp.
References SegPageLock::accessSegment(), builder, cbReserved, iLevel, iNode, nEntriesPerNode, nEntriesProcessed, nEntriesTotal, pageLock, BTreeDescriptor::segmentAccessor, and BTreeAccessBase::treeDescriptor.
| BTreeBuildLevel::~BTreeBuildLevel | ( | | ) | [virtual] | | ---------------------------------- | - | | - | ----------- |
Member Function Documentation
| bool BTreeBuildLevel::isFinished | ( | | ) | const [protected] | | -------------------------------- | - | | - | ------------------- |
| void BTreeBuildLevel::processInput | ( | ByteInputStream & | sortedInputStream | ) | [protected] |
|---|
Definition at line 57 of file BTreeBuildLevel.cpp.
References allocateAndLinkNewNode(), BTreeNodeAccessor::allocateEntry(), builder, ByteInputStream::consumeReadPointer(), TupleAccessor::getCurrentByteCount(), SegNodeLock< Node >::getNodeForWrite(), ByteInputStream::getReadPointer(), indexLastKey(), isNodeFull(), BTreeNode::nEntries, nEntriesProcessed, nEntriesTotal, nodeAccessor, pageLock, TupleAccessor::setCurrentTupleBuf(), BTreeNodeAccessor::tupleAccessor, and BTreeAccessBase::validateTupleSize().
Referenced by BTreeBuilder::buildBalanced(), BTreeBuilder::buildTwoPass(), and BTreeBuilder::buildUnbalanced().
| void BTreeBuildLevel::unmarshalLastKey | ( | | ) | [protected] | | -------------------------------------- | - | | - | ------------- |
Definition at line 135 of file BTreeBuildLevel.cpp.
References BTreeNodeAccessor::accessTuple(), builder, SegNodeLock< Node >::getNodeForRead(), BTreeNode::nEntries, nodeAccessor, pageLock, BTreeAccessBase::pNonLeafNodeAccessor, and BTreeNodeAccessor::unmarshalKey().
Referenced by indexLastChild(), DynamicBuildLevel::indexLastKey(), VariableBuildLevel::indexLastKey(), and FixedBuildLevel::indexLastKey().
| BTreeNode * BTreeBuildLevel::allocateAndLinkNewNode | ( | | ) | [protected] | | ---------------------------------------------------------------------------- | - | | - | ------------- |
Definition at line 142 of file BTreeBuildLevel.cpp.
References SegPageLock::accessSegment(), allocatePage(), builder, BTreeBuilder::calculateChildEntriesPerNode(), BTreeAccessBase::getCacheAccessor(), BTreeBuilder::getLevel(), SegNodeLock< Node >::getNodeForWrite(), SegPageLock::getPage(), iLevel, iNode, SegPageLock::lockExclusive(), nEntriesPerNode, nEntriesTotal, pageId, BTreeDescriptor::segmentAccessor, BTreeAccessBase::setRightSibling(), and BTreeAccessBase::treeDescriptor.
Referenced by indexLastChild(), and processInput().
| BTreeNode & BTreeBuildLevel::allocatePage | ( | | ) | [protected] | | ----------------------------------------------------------------- | - | | - | ------------- |
Definition at line 181 of file BTreeBuildLevel.cpp.
References SegNodeLock< Node >::allocatePage(), builder, BTreeNodeAccessor::clearNode(), SegNodeLock< Node >::getNodeForWrite(), BTreeAccessBase::getPageOwnerId(), BTreeAccessBase::getSegment(), BTreeNode::height, iLevel, nodeAccessor, pageId, and pageLock.
Referenced by allocateAndLinkNewNode(), BTreeBuilder::buildBalanced(), BTreeBuilder::buildTwoPass(), and BTreeBuilder::growTree().
| bool BTreeBuildLevel::isNodeFull | ( | BTreeNode const & | node, |
|---|---|---|---|
| uint | cbTuple | ||
| ) | [protected, virtual] |
| virtual void BTreeBuildLevel::indexLastKey | ( | bool | finalize | ) | [protected, pure virtual] |
|---|
| void BTreeBuildLevel::indexLastChild | ( | | ) | | ------------------------------------ | - | | - |
Definition at line 103 of file BTreeBuildLevel.cpp.
References allocateAndLinkNewNode(), BTreeNodeAccessor::allocateEntry(), builder, TupleAccessor::getByteCount(), BTreeBuilder::getLevel(), SegNodeLock< Node >::getNodeForWrite(), iLevel, indexLastKey(), isNodeFull(), TupleAccessor::marshal(), BTreeNode::nEntries, nEntriesProcessed, nEntriesTotal, nodeAccessor, pageId, pageLock, BTreeNodeAccessor::tupleAccessor, BTreeNodeAccessor::tupleData, and unmarshalLastKey().
Referenced by DynamicBuildLevel::indexLastKey(), and FixedBuildLevel::indexLastKey().
Friends And Related Function Documentation
Member Data Documentation
Owning BTreeBuilder.
Definition at line 48 of file BTreeBuildLevel.h.
Referenced by allocateAndLinkNewNode(), allocatePage(), BTreeBuildLevel(), VariableBuildLevel::getParentKeyStream(), indexLastChild(), DynamicBuildLevel::indexLastKey(), VariableBuildLevel::indexLastKey(), FixedBuildLevel::indexLastKey(), processInput(), 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
