Fennel: BTreeBuildLevel Class Reference (original) (raw)

BTreeBuildLevel is subordinate to BTreeBuilder. More...

#include <[BTreeBuildLevel.h](BTreeBuildLevel%5F8h-source.html)>

Inheritance diagram for BTreeBuildLevel:

List of all members.

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().



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:


Generated on Mon Jun 22 04:00:25 2009 for Fennel by doxygen 1.5.1