Fennel: BTreeSearchExecStream Class Reference (original) (raw)
BTreeSearchExecStream reads keys from a child and returns matching tuples in the BTree. More...
#include <[BTreeSearchExecStream.h](BTreeSearchExecStream%5F8h-source.html)>
Inheritance diagram for BTreeSearchExecStream:

| Public Member Functions | |
|---|---|
| void | prepare (BTreeSearchExecStreamParams const ¶ms) |
| virtual void | open (bool restart) |
| Opens this stream, acquiring any resources needed in order to be able to fetch data. | |
| virtual ExecStreamResult | execute (ExecStreamQuantum const &quantum) |
| Executes this stream. | |
| virtual void | closeImpl () |
| Implements ClosableObject. | |
| virtual void | prepare (BTreeReadExecStreamParams const ¶ms) |
| virtual void | prepare (BTreeExecStreamParams const ¶ms) |
| virtual void | prepare (SingleOutputExecStreamParams const ¶ms) |
| virtual void | prepare (ExecStreamParams const ¶ms) |
| Prepares this stream for execution. | |
| virtual void | getResourceRequirements (ExecStreamResourceQuantity &minQuantity, ExecStreamResourceQuantity &optQuantity) |
| virtual void | getResourceRequirements (ExecStreamResourceQuantity &minQuantity, ExecStreamResourceQuantity &optQuantity, ExecStreamResourceSettingType &optType) |
| Determines resource requirements for this stream. | |
| virtual void | setInputBufAccessors (std::vector< SharedExecStreamBufAccessor > const &inAccessors) |
| Initializes the buffer accessors for inputs to this stream. | |
| virtual void | setOutputBufAccessors (std::vector< SharedExecStreamBufAccessor > const &outAccessors) |
| Initializes the buffer accessors for outputs from this stream. | |
| virtual ExecStreamBufProvision | getOutputBufProvision () const |
| Queries the BufferProvision which this stream is capable of when producing tuples. | |
| virtual bool | canEarlyClose () |
| **Returns:**true if the stream can be closed early | |
| ExecStreamGraph & | getGraph () const |
| **Returns:**reference to containing graph | |
| ExecStreamId | getStreamId () const |
| **Returns:**the identifier for this stream within containing graph | |
| virtual void | setResourceAllocation (ExecStreamResourceQuantity &quantity) |
| Sets current resource allocation for this stream. | |
| virtual void | setName (std::string const &) |
| Sets unique name of this stream. | |
| virtual std::string const & | getName () const |
| **Returns:**the name of this stream, as known by the optimizer | |
| virtual bool | mayBlock () const |
| Queries whether this stream's implementation may block when execute() is called. | |
| virtual void | checkAbort () const |
| Checks whether there is an abort request for this stream's scheduler. | |
| virtual ExecStreamBufProvision | getOutputBufConversion () const |
| Queries the BufferProvision to which this stream needs its output to be converted, if any. | |
| virtual ExecStreamBufProvision | getInputBufProvision () const |
| Queries the BufferProvision which this stream requires of its inputs when consuming their tuples. | |
| bool | isClosed () const |
| **Returns:**whether the object has been closed | |
| void | close () |
| Closes this object, releasing any unallocated resources. | |
| virtual void | initTraceSource (SharedTraceTarget pTraceTarget, std::string name) |
| For use when initialization has to be deferred until after construction. | |
| void | trace (TraceLevel level, std::string message) const |
| Records a trace message. | |
| bool | isTracing () const |
| **Returns:**true iff tracing is enabled for this source | |
| bool | isTracingLevel (TraceLevel level) const |
| Determines whether a particular level is being traced. | |
| TraceTarget & | getTraceTarget () const |
| **Returns:**the TraceTarget for this source | |
| SharedTraceTarget | getSharedTraceTarget () const |
| **Returns:**the SharedTraceTarget for this source | |
| std::string | getTraceSourceName () const |
| Gets the name of this source. | |
| void | setTraceSourceName (std::string const &n) |
| Sets the name of this source. | |
| TraceLevel | getMinimumTraceLevel () const |
| void | disableTracing () |
| virtual void | initErrorSource (SharedErrorTarget pErrorTarget, const std::string &name) |
| For use when initialization has to be deferred until after construction. | |
| void | postError (ErrorLevel level, const std::string &message, void *address, long capacity, int index) |
| Posts an exception, such as a row exception. | |
| void | postError (ErrorLevel level, const std::string &message, const TupleDescriptor &errorDesc, const TupleData &errorTuple, int index) |
| Posts an exception, such as a row exception. | |
| bool | hasTarget () const |
| **Returns:**true iff an error target has been set | |
| ErrorTarget & | getErrorTarget () const |
| **Returns:**the ErrorTarget for this source | |
| SharedErrorTarget | getSharedErrorTarget () const |
| **Returns:**the SharedErrorTarget for this source | |
| std::string | getErrorSourceName () const |
| Gets the name of this source. | |
| void | setErrorSourceName (std::string const &n) |
| Sets the name of this source. | |
| void | disableTarget () |
| virtual void | setOutputBufAccessors (std::vector< SharedExecStreamBufAccessor > const &outAccessors) |
| Initializes the buffer accessors for outputs from this stream. | |
| virtual void | setInputBufAccessors (std::vector< SharedExecStreamBufAccessor > const &inAccessors) |
| Initializes the buffer accessors for inputs to this stream. | |
| virtual void | prepare (ConduitExecStreamParams const ¶ms) |
| virtual void | prepare (SingleInputExecStreamParams const ¶ms) |
| virtual ExecStreamBufProvision | getInputBufProvision () const |
| Queries the BufferProvision which this stream requires of its inputs when consuming their tuples. | |
| Static Public Member Functions | |
| static SharedBTreeWriter | newWriter (BTreeExecStreamParams const ¶ms) |
| static void | copyParamsToDescriptor (BTreeDescriptor &, BTreeParams const &, SharedCacheAccessor const &) |
| Protected Member Functions | |
| bool | innerSearchLoop () |
| ExecStreamResult | innerFetchLoop (ExecStreamQuantum const &quantum, uint &nTuples) |
| void | readDirectives () |
| bool | testInterval () |
| void | readSearchKey () |
| Reads the search key either from the input stream or dynamic parameters. | |
| void | readUpperBoundKey () |
| Reads the upper bound key either from the input stream or dynamic parameters. | |
| bool | checkNextKey () |
| Determines if the next key value is within the upper bound search range. | |
| virtual bool | reachedTupleLimit (uint nTuples) |
| Determines if enough tuples have been produced for this stream. | |
| bool | searchForKey () |
| Searches the btree for a specific key. | |
| virtual SharedBTreeReader | newReader () |
| SharedBTreeWriter | newWriter (bool monotonic=false) |
| virtual void | endSearch () |
| Forgets the current reader or writer's search, releasing any page locks. | |
| ExecStreamResult | precheckConduitBuffers () |
| Checks the state of the input and output buffers. | |
| Protected Attributes | |
| TupleProjectionAccessor | inputKeyAccessor |
| TupleProjectionAccessor | inputJoinAccessor |
| TupleProjectionAccessor | readerKeyAccessor |
| TupleProjectionAccessor | directiveAccessor |
| TupleProjectionAccessor | upperBoundAccessor |
| TupleDescriptor | inputKeyDesc |
| TupleDescriptor | upperBoundDesc |
| TupleData | inputKeyData |
| TupleData | upperBoundData |
| TupleData | readerKeyData |
| TupleData | directiveData |
| TupleData * | pSearchKey |
| bool | outerJoin |
| bool | preFilterNulls |
| uint | nJoinAttributes |
| SearchEndpoint | lowerBoundDirective |
| SearchEndpoint | upperBoundDirective |
| bool | leastUpper |
| std::vector< BTreeSearchKeyParameter > | searchKeyParams |
| boost::scoped_array< FixedBuffer > | searchKeyBuffer |
| bool | dynamicKeysRead |
| TupleProjection | searchKeyProj |
| TupleProjection | upperBoundKeyProj |
| SharedBTreeReader | pReader |
| TupleProjectionAccessor | projAccessor |
| TupleData | tupleData |
| TupleProjection | outputProj |
| BTreeDescriptor | treeDescriptor |
| SegmentAccessor | scratchAccessor |
| BTreeOwnerRootMap * | pRootMap |
| SharedBTreeAccessBase | pBTreeAccessBase |
| SharedBTreeReader | pBTreeReader |
| DynamicParamId | rootPageIdParamId |
| SharedExecStreamBufAccessor | pOutAccessor |
| bool | isOpen |
| Whether this stream is currently open. | |
| ExecStreamGraph * | pGraph |
| Dataflow graph containing this stream. | |
| ExecStreamId | id |
| Identifier for this stream; local to its containing graph. | |
| std::string | name |
| Name of stream, as known by optimizer. | |
| SharedDynamicParamManager | pDynamicParamManager |
| The dynamic parameter manager available to this stream. | |
| SharedLogicalTxn | pTxn |
| The transaction embracing the stream. | |
| ExecStreamResourceQuantity | resourceAllocation |
| Resource quantities currently allocated to this stream. | |
| SharedCacheAccessor | pQuotaAccessor |
| CacheAccessor used for quota tracking. | |
| SharedCacheAccessor | pScratchQuotaAccessor |
| CacheAccessor used for scratch page quota tracking. | |
| bool | needsClose |
| SharedExecStreamBufAccessor | pInAccessor |
| Private Types | |
| enum | DirectiveOrdinal { LOWER_BOUND_DIRECTIVE = 0, UPPER_BOUND_DIRECTIVE = 1 } |
| Ordinals of lower/upper bounds within directive tuple. More... |
Detailed Description
BTreeSearchExecStream reads keys from a child and returns matching tuples in the BTree.
Optionally, values from the input may also be joined to the output (in which case they come before the values read from the BTree).
Version:
Id
//open/dev/fennel/ftrs/BTreeSearchExecStream.h#14
Definition at line 105 of file BTreeSearchExecStream.h.
Member Enumeration Documentation
Ordinals of lower/upper bounds within directive tuple.
Enumerator:
| LOWER_BOUND_DIRECTIVE | | | ------------------------- | | | UPPER_BOUND_DIRECTIVE | |
Definition at line 111 of file BTreeSearchExecStream.h.
Member Function Documentation
| bool BTreeSearchExecStream::innerSearchLoop | ( | | ) | [protected] | | ------------------------------------------- | - | | - | ------------- |
Definition at line 446 of file BTreeSearchExecStream.cpp.
References EXECRC_BUF_OVERFLOW, EXECRC_QUANTUM_EXPIRED, EXECRC_YIELD, nJoinAttributes, ExecStreamQuantum::nTuplesMax, SingleOutputExecStream::pOutAccessor, BTreeReadExecStream::pReader, BTreeReadExecStream::projAccessor, reachedTupleLimit(), testInterval(), BTreeReadExecStream::tupleData, and TupleProjectionAccessor::unmarshal().
Referenced by execute(), and BTreePrefetchSearchExecStream::execute().
| void BTreeSearchExecStream::readDirectives | ( | | ) | [protected] | | ------------------------------------------ | - | | - | ------------- |
Definition at line 265 of file BTreeSearchExecStream.cpp.
References directiveAccessor, directiveData, LOWER_BOUND_DIRECTIVE, lowerBoundDirective, SEARCH_CLOSED_LOWER, SEARCH_CLOSED_UPPER, TupleProjectionAccessor::size(), TupleProjectionAccessor::unmarshal(), UPPER_BOUND_DIRECTIVE, and upperBoundDirective.
Referenced by BTreePrefetchSearchExecStream::getPrefetchSearchKey(), and innerSearchLoop().
| bool BTreeSearchExecStream::testInterval | ( | | ) | [protected] | | ---------------------------------------- | - | | - | ------------- |
Definition at line 390 of file BTreeSearchExecStream.cpp.
References checkNextKey(), TupleDescriptor::compareTuples(), TupleDescriptor::compareTuplesKey(), inputKeyDesc, leastUpper, lowerBoundDirective, pSearchKey, readerKeyAccessor, readerKeyData, SEARCH_CLOSED_LOWER, SEARCH_CLOSED_UPPER, SEARCH_UNBOUNDED_UPPER, TupleProjectionAccessor::unmarshal(), upperBoundData, and upperBoundDirective.
Referenced by innerFetchLoop(), BTreePrefetchSearchExecStream::innerSearchLoop(), and searchForKey().
| void BTreeSearchExecStream::readSearchKey | ( | | ) | [protected] | | ----------------------------------------- | - | | - | ------------- |
Reads the search key either from the input stream or dynamic parameters.
Definition at line 216 of file BTreeSearchExecStream.cpp.
References dynamicKeysRead, inputKeyAccessor, inputKeyData, ExecStream::pDynamicParamManager, SingleInputExecStream::pInAccessor, searchKeyParams, searchKeyProj, TupleProjectionAccessor::size(), TupleAccessor::unmarshal(), and TupleProjectionAccessor::unmarshal().
Referenced by BTreePrefetchSearchExecStream::getPrefetchSearchKey(), and innerSearchLoop().
| void BTreeSearchExecStream::readUpperBoundKey | ( | | ) | [protected] | | --------------------------------------------- | - | | - | ------------- |
| bool BTreeSearchExecStream::checkNextKey | ( | | ) | [protected] | | ---------------------------------------- | - | | - | ------------- |
| bool BTreeSearchExecStream::reachedTupleLimit | ( | uint | nTuples | ) | [protected, virtual] |
|---|
Determines if enough tuples have been produced for this stream.
Parameters:
| nTuples | number of tuples produced thus far |
|---|
Returns:
true if tuple limit reached
Reimplemented in LbmSearchExecStream.
Definition at line 482 of file BTreeSearchExecStream.cpp.
Referenced by innerFetchLoop().
00483 { 00484 return false; 00485 }
| bool BTreeSearchExecStream::searchForKey | ( | | ) | [protected] | | ---------------------------------------- | - | | - | ------------- |
Searches the btree for a specific key.
Returns:
true if the search yielded matching keys
Definition at line 286 of file BTreeSearchExecStream.cpp.
References TupleData::containsNull(), DUP_SEEK_BEGIN, DUP_SEEK_END, inputJoinAccessor, leastUpper, lowerBoundDirective, nJoinAttributes, outerJoin, BTreeReadExecStream::pReader, preFilterNulls, BTreeReadExecStream::projAccessor, pSearchKey, SEARCH_CLOSED_LOWER, SEARCH_OPEN_LOWER, SEARCH_UNBOUNDED_LOWER, searchKeyProj, TupleProjectionAccessor::size(), testInterval(), BTreeReadExecStream::tupleData, TupleProjectionAccessor::unmarshal(), upperBoundData, and upperBoundKeyProj.
Referenced by innerSearchLoop(), and BTreePrefetchSearchExecStream::innerSearchLoop().
Reimplemented in BTreeSearchUniqueExecStream.
Definition at line 32 of file BTreeSearchExecStream.cpp.
References TupleProjectionAccessor::bind(), TupleData::compute(), TupleDescriptor::containsNullable(), directiveAccessor, directiveData, BTreeSearchExecStreamParams::inputDirectiveProj, inputJoinAccessor, BTreeSearchExecStreamParams::inputJoinProj, inputKeyAccessor, inputKeyData, inputKeyDesc, BTreeSearchExecStreamParams::inputKeyProj, BTreeDescriptor::keyProjection, leastUpper, LOWER_BOUND_DIRECTIVE, StandardTypeDescriptorFactory::newDataType(), nJoinAttributes, BTreeSearchExecStreamParams::outerJoin, outerJoin, BTreeReadExecStreamParams::outputProj, SingleOutputExecStreamParams::outputTupleDesc, SingleInputExecStream::pInAccessor, preFilterNulls, ConduitExecStream::prepare(), BTreeReadExecStream::prepare(), TupleDescriptor::projectFrom(), readerKeyData, BTreeSearchExecStreamParams::searchKeyParams, searchKeyParams, searchKeyProj, STANDARD_TYPE_CHAR, BTreeExecStream::treeDescriptor, UPPER_BOUND_DIRECTIVE, upperBoundAccessor, upperBoundData, upperBoundDesc, and upperBoundKeyProj.
Referenced by BTreeSearchUniqueExecStream::prepare(), and BTreePrefetchSearchExecStream::prepare().
00033 {
00034 BTreeReadExecStream::prepare(params);
00035 ConduitExecStream::prepare(params);
00036
00037 leastUpper = true;
00038 outerJoin = params.outerJoin;
00039 searchKeyParams = params.searchKeyParams;
00040
00041
00042
00043 TupleDescriptor const &inputDesc = pInAccessor->getTupleDesc();
00044
00045 TupleAccessor &inputAccessor = pInAccessor->getConsumptionTupleAccessor();
00046
00047 if (params.inputDirectiveProj.size()) {
00048 assert(params.inputDirectiveProj.size() == 2);
00049
00050
00051
00052
00053 assert(params.inputKeyProj.size() > 0);
00054 assert((params.inputKeyProj.size() % 2) == 0);
00055 directiveAccessor.bind(inputAccessor, params.inputDirectiveProj);
00056 TupleDescriptor inputDirectiveDesc;
00057 inputDirectiveDesc.projectFrom(inputDesc, params.inputDirectiveProj);
00058
00059
00060 StandardTypeDescriptorFactory stdTypeFactory;
00061 TupleAttributeDescriptor expectedDirectiveDesc(
00062 stdTypeFactory.newDataType(STANDARD_TYPE_CHAR));
00063 expectedDirectiveDesc.cbStorage = 1;
00064 assert(
00065 inputDirectiveDesc[LOWER_BOUND_DIRECTIVE] == expectedDirectiveDesc);
00066 assert(
00067 inputDirectiveDesc[UPPER_BOUND_DIRECTIVE] == expectedDirectiveDesc);
00068
00069 directiveData.compute(inputDirectiveDesc);
00070 }
00071
00072 if (params.inputKeyProj.size()) {
00073 TupleProjection inputKeyProj = params.inputKeyProj;
00074 if (params.inputDirectiveProj.size()) {
00075
00076
00077 TupleProjection upperBoundProj;
00078 int n = inputKeyProj.size() / 2;
00079
00080 upperBoundProj.resize(n);
00081
00082 std::copy(
00083 inputKeyProj.begin() + n,
00084 inputKeyProj.end(),
00085 upperBoundProj.begin());
00086
00087 inputKeyProj.resize(n);
00088
00089 upperBoundAccessor.bind(inputAccessor, upperBoundProj);
00090 upperBoundDesc.projectFrom(inputDesc, upperBoundProj);
00091 upperBoundData.compute(upperBoundDesc);
00092
00093 assert(
00094 searchKeyParams.size() == 0 ||
00095 (searchKeyParams.size() >= (n-1)*2+1 &&
00096 searchKeyParams.size() <= n*2));
00097 } else {
00098 assert(searchKeyParams.size() == 0);
00099 }
00100 inputKeyAccessor.bind(inputAccessor,inputKeyProj);
00101 inputKeyDesc.projectFrom(inputDesc,inputKeyProj);
00102 } else {
00103 inputKeyDesc = inputDesc;
00104 assert(searchKeyParams.size() == 0);
00105 }
00106 inputKeyData.compute(inputKeyDesc);
00107
00108 if (upperBoundDesc.size()) {
00109
00110
00111 assert(upperBoundDesc == inputKeyDesc);
00112 }
00113
00114 preFilterNulls = false;
00115 if ((outerJoin && inputKeyDesc.containsNullable()) ||
00116 searchKeyParams.size() > 0)
00117 {
00118
00119
00120
00121 preFilterNulls = true;
00122
00123
00124
00125
00126 if (searchKeyParams.size() == 0) {
00127 for (uint i = 0; i < inputKeyData.size(); i++) {
00128 searchKeyProj.push_back(i);
00129 upperBoundKeyProj.push_back(i);
00130 }
00131 }
00132 }
00133
00134 inputJoinAccessor.bind(inputAccessor,params.inputJoinProj);
00135
00136 TupleDescriptor joinDescriptor;
00137 joinDescriptor.projectFrom(inputDesc,params.inputJoinProj);
00138
00139 TupleProjection readerKeyProj = treeDescriptor.keyProjection;
00140 readerKeyProj.resize(inputKeyDesc.size());
00141 readerKeyData.compute(inputKeyDesc);
00142
00143 nJoinAttributes = params.outputTupleDesc.size() - params.outputProj.size();
00144 }
| void BTreeSearchExecStream::open | ( | bool | restart | ) | [virtual] |
|---|
Opens this stream, acquiring any resources needed in order to be able to fetch data.
A precondition is that input streams must already be opened. A stream can be closed and reopened.
Parameters:
| restart | if true, the stream must be already open, and should reset itself to start from the beginning of its result set |
|---|
Reimplemented from ConduitExecStream.
Reimplemented in BTreePrefetchSearchExecStream.
Definition at line 146 of file BTreeSearchExecStream.cpp.
References TupleProjectionAccessor::bind(), dynamicKeysRead, inputKeyDesc, BTreeDescriptor::keyProjection, opaqueToInt(), ConduitExecStream::open(), BTreeReadExecStream::open(), ExecStream::pDynamicParamManager, BTreeReadExecStream::pReader, readerKeyAccessor, BTreeDescriptor::rootPageId, BTreeExecStream::rootPageIdParamId, and BTreeExecStream::treeDescriptor.
Referenced by BTreePrefetchSearchExecStream::open().
| void BTreeSearchExecStream::closeImpl | ( | | ) | [virtual] | | ------------------------------------- | - | | - | ----------- |
Definition at line 30 of file BTreeExecStream.cpp.
References BTreeExecStream::copyParamsToDescriptor(), ExecStreamParams::pCacheAccessor, SingleOutputExecStream::prepare(), BTreeParams::pRootMap, BTreeExecStream::pRootMap, BTreeParams::rootPageIdParamId, BTreeExecStream::rootPageIdParamId, ExecStreamParams::scratchAccessor, BTreeExecStream::scratchAccessor, and BTreeExecStream::treeDescriptor.
Referenced by LcsClusterAppendExecStream::prepare(), LbmGeneratorExecStream::prepare(), BTreeReadExecStream::prepare(), and BTreeInsertExecStream::prepare().
Definition at line 48 of file SingleOutputExecStream.cpp.
References SingleOutputExecStream::getOutputBufProvision(), SingleOutputExecStreamParams::outputTupleDesc, SingleOutputExecStreamParams::outputTupleFormat, SingleOutputExecStream::pOutAccessor, and ExecStream::prepare().
Referenced by BTreeExecStream::prepare(), FlatFileExecStreamImpl::prepare(), ValuesExecStream::prepare(), MockResourceExecStream::prepare(), MockProducerExecStream::prepare(), ConfluenceExecStream::prepare(), and ConduitExecStream::prepare().
| void ExecStream::prepare | ( | ExecStreamParams const & | params | ) | [virtual, inherited] |
|---|
Prepares this stream for execution.
A precondition is that input streams must already be defined and prepared. As an effect of this call, the tuple shape should be defined for all output buffers and remain unchanged for the lifetime of the stream. This method is only ever called once, before the first open. Although this method is virtual, derived classes may choose to define an overloaded version instead with a specialized covariant parameter class.
Parameters:
| params | instance of stream parameterization class which should be used to prepare this stream |
|---|
Definition at line 84 of file ExecStream.cpp.
References ExecStreamGraph::getDynamicParamManager(), SegmentAccessor::pCacheAccessor, ExecStreamParams::pCacheAccessor, ExecStream::pDynamicParamManager, ExecStream::pGraph, ExecStream::pQuotaAccessor, ExecStream::pScratchQuotaAccessor, and ExecStreamParams::scratchAccessor.
Referenced by JavaTransformExecStream::prepare(), SingleOutputExecStream::prepare(), and SingleInputExecStream::prepare().
Determines resource requirements for this stream.
Default implementation declares zero resource requirements.
Parameters:
| minQuantity | receives the minimum resource quantity needed by this stream in order to execute |
|---|---|
| optQuantity | receives the resource quantity needed by this stream in order to execute optimally |
| optType | Receives the value indicating the accuracy of the optQuantity parameter. This parameter is optional and defaults to EXEC_RESOURCE_ACCURATE if omitted. If the optimum setting is an estimate or no value can be specified (e.g., due to lack of statistics), then this parameter needs to be used to indicate a non-accurate optimum resource setting. |
Reimplemented in MockResourceExecStream, BTreePrefetchSearchExecStream, LhxAggExecStream, LhxJoinExecStream, LbmGeneratorExecStream, LbmUnionExecStream, and ExternalSortExecStreamImpl.
Definition at line 93 of file ExecStream.cpp.
References EXEC_RESOURCE_ACCURATE.
Referenced by ExternalSortExecStreamImpl::getResourceRequirements(), LcsRowScanBaseExecStream::getResourceRequirements(), LcsClusterAppendExecStream::getResourceRequirements(), LbmUnionExecStream::getResourceRequirements(), LbmSplicerExecStream::getResourceRequirements(), LbmGeneratorExecStream::getResourceRequirements(), LbmChopperExecStream::getResourceRequirements(), LhxJoinExecStream::getResourceRequirements(), LhxAggExecStream::getResourceRequirements(), FtrsTableWriterExecStream::getResourceRequirements(), BTreeReadExecStream::getResourceRequirements(), BTreeInsertExecStream::getResourceRequirements(), FlatFileExecStreamImpl::getResourceRequirements(), SegBufferWriterExecStream::getResourceRequirements(), SegBufferReaderExecStream::getResourceRequirements(), SegBufferExecStream::getResourceRequirements(), ScratchBufferExecStream::getResourceRequirements(), and DoubleBufferExecStream::getResourceRequirements().
| SharedBTreeWriter BTreeExecStream::newWriter | ( | bool | monotonic = false | ) | [protected, inherited] |
|---|
| void BTreeExecStream::endSearch | ( | | ) | [protected, virtual, inherited] | | ------------------------------- | - | | - | --------------------------------- |
Definition at line 93 of file BTreeExecStream.cpp.
References BTreeParams::keyProj, BTreeDescriptor::keyProjection, BTreeParams::pageOwnerId, BTreeDescriptor::pageOwnerId, SegmentAccessor::pCacheAccessor, BTreeParams::pSegment, SegmentAccessor::pSegment, BTreeParams::rootPageId, BTreeDescriptor::rootPageId, BTreeDescriptor::segmentAccessor, BTreeParams::segmentId, BTreeDescriptor::segmentId, BTreeExecStream::treeDescriptor, BTreeParams::tupleDesc, and BTreeDescriptor::tupleDescriptor.
Referenced by BTreeExecStream::newWriter(), LbmSplicerExecStream::prepare(), and BTreeExecStream::prepare().
| void SingleOutputExecStream::setInputBufAccessors | ( | std::vector< SharedExecStreamBufAccessor > const & | inAccessors | ) | [virtual, inherited] |
|---|
Initializes the buffer accessors for inputs to this stream.
This method is only ever called once, before prepare.
Parameters:
| inAccessors | buffer accessors ordered by input stream |
|---|
Implements ExecStream.
Reimplemented in ConduitExecStream, and ConfluenceExecStream.
Definition at line 35 of file SingleOutputExecStream.cpp.
00037 { 00038 assert(inAccessors.size() == 0); 00039 }
| void SingleOutputExecStream::setOutputBufAccessors | ( | std::vector< SharedExecStreamBufAccessor > const & | outAccessors | ) | [virtual, inherited] |
|---|
| bool ExecStream::canEarlyClose | ( | | ) | [virtual, inherited] | | ------------------------------ | - | | - | ---------------------- |
| ExecStreamId ExecStream::getStreamId | ( | | ) | const [inline, inherited] | | -------------------------------------------------------------------------------------------------- | - | | - | --------------------------- |
Returns:
the identifier for this stream within containing graph
Definition at line 288 of file ExecStream.h.
References ExecStream::id.
Referenced by ExternalSortExecStreamImpl::execute(), SegBufferWriterExecStream::execute(), SegBufferExecStream::execute(), CorrelationJoinExecStream::execute(), BarrierExecStream::execute(), Java_net_sf_farrago_fennel_FennelStorage_tupleStreamTransformFetch(), JavaTransformExecStream::open(), SingleInputExecStream::open(), ConfluenceExecStream::open(), CartesianJoinExecStream::prepare(), ParallelExecStreamScheduler::readStream(), DfsTreeExecStreamScheduler::readStream(), LbmMinusExecStream::restartSubtrahends(), ExecStreamScheduler::tracePostExecution(), ExecStreamScheduler::tracePreExecution(), ExecStreamScheduler::traceStreamBuffers(), and ParallelExecStreamScheduler::tryExecuteTask().
00289 { 00290 return id; 00291 }
Sets current resource allocation for this stream.
If called while the stream is open, this indicates a request for the stream to dynamically adjust its memory usage. If the stream is incapable of honoring the request, it should update quantity with the actual amounts still in use.
Parameters:
| quantity | allocated resource quantity |
|---|
Reimplemented in MockResourceExecStream, BTreePrefetchSearchExecStream, LhxAggExecStream, LhxJoinExecStream, LbmGeneratorExecStream, LbmUnionExecStream, and ExternalSortExecStreamImpl.
Definition at line 111 of file ExecStream.cpp.
References ExecStreamResourceQuantity::nCachePages, ExecStream::pQuotaAccessor, ExecStream::pScratchQuotaAccessor, and ExecStream::resourceAllocation.
Referenced by ExternalSortExecStreamImpl::setResourceAllocation(), LbmUnionExecStream::setResourceAllocation(), LbmGeneratorExecStream::setResourceAllocation(), LhxJoinExecStream::setResourceAllocation(), LhxAggExecStream::setResourceAllocation(), and BTreePrefetchSearchExecStream::setResourceAllocation().
| void ExecStream::setName | ( | std::string const & | | ) | [virtual, inherited] | | ------------------------ | - | ------------------- | | - | ---------------------- |
| std::string const & ExecStream::getName | ( | | ) | const [virtual, inherited] | | --------------------------------------- | - | | - | ---------------------------- |
| bool ExecStream::mayBlock | ( | | ) | const [virtual, inherited] | | ------------------------- | - | | - | ---------------------------- |
Queries whether this stream's implementation may block when execute() is called.
For accurate scheduling, non-blocking implementations are preferred; the scheduler must be aware of the potential for blocking so that it can allocate extra threads accordingly.
Returns:
whether stream may block; default is false
Definition at line 167 of file ExecStream.cpp.
00168 { 00169 return false; 00170 }
| void ExecStream::checkAbort | ( | | ) | const [virtual, inherited] | | --------------------------- | - | | - | ---------------------------- |
| bool ClosableObject::isClosed | ( | | ) | const [inline, inherited] | | ----------------------------- | - | | - | --------------------------- |
Returns:
whether the object has been closed
Definition at line 58 of file ClosableObject.h.
| void ClosableObject::close | ( | | ) | [inherited] | | -------------------------- | - | | - | ------------- |
Closes this object, releasing any unallocated resources.
Reimplemented in CollectExecStream, CorrelationJoinExecStream, LcsClusterAppendExecStream, and LcsClusterReplaceExecStream.
Definition at line 39 of file ClosableObject.cpp.
References ClosableObject::closeImpl(), and ClosableObject::needsClose.
Referenced by CacheImpl< PageT, VictimPolicyT >::allocatePages(), LcsRowScanBaseExecStream::closeImpl(), ExecStreamGraphImpl::closeImpl(), FlatFileBuffer::open(), ClosableObjectDestructor::operator()(), and Segment::~Segment().
| void TraceSource::initTraceSource | ( | SharedTraceTarget | pTraceTarget, |
|---|---|---|---|
| std::string | name | ||
| ) | [virtual, inherited] |
| void TraceSource::trace | ( | TraceLevel | level, |
|---|---|---|---|
| std::string | message | ||
| ) | const [inherited] |
| bool TraceSource::isTracing | ( | | ) | const [inline, inherited] | | --------------------------- | - | | - | --------------------------- |
| bool TraceSource::isTracingLevel | ( | TraceLevel | level | ) | const [inline, inherited] |
|---|
| TraceTarget& TraceSource::getTraceTarget | ( | | ) | const [inline, inherited] | | ----------------------------------------------------------------- | - | | - | --------------------------- |
| std::string TraceSource::getTraceSourceName | ( | | ) | const [inline, inherited] | | ------------------------------------------- | - | | - | --------------------------- |
| void TraceSource::setTraceSourceName | ( | std::string const & | n | ) | [inline, inherited] |
|---|
Sets the name of this source.
Useful to construct dynamic names for fine-grained filtering.
Definition at line 136 of file TraceSource.h.
00137 { 00138 name = n; 00139 }
| TraceLevel TraceSource::getMinimumTraceLevel | ( | | ) | const [inline, inherited] | | ------------------------------------------------------------------------------------------------------ | - | | - | --------------------------- |
| void TraceSource::disableTracing | ( | | ) | [inherited] | | -------------------------------- | - | | - | ------------- |
| void ErrorSource::initErrorSource | ( | SharedErrorTarget | pErrorTarget, |
|---|---|---|---|
| const std::string & | name | ||
| ) | [virtual, inherited] |
| void ErrorSource::postError | ( | ErrorLevel | level, |
|---|---|---|---|
| const std::string & | message, | ||
| void * | address, | ||
| long | capacity, | ||
| int | index | ||
| ) | [inherited] |
| bool ErrorSource::hasTarget | ( | | ) | const [inline, inherited] | | --------------------------- | - | | - | --------------------------- |
| ErrorTarget& ErrorSource::getErrorTarget | ( | | ) | const [inline, inherited] | | ----------------------------------------------------------------- | - | | - | --------------------------- |
Returns:
the SharedErrorTarget for this source
Definition at line 129 of file ErrorSource.h.
| std::string ErrorSource::getErrorSourceName | ( | | ) | const [inline, inherited] | | ------------------------------------------- | - | | - | --------------------------- |
Gets the name of this source.
Useful to construct nested names for subcomponents that are also ErrorSources.
Returns:
the name
Definition at line 139 of file ErrorSource.h.
00140 { 00141 return name; 00142 }
| void ErrorSource::setErrorSourceName | ( | std::string const & | n | ) | [inline, inherited] |
|---|
Sets the name of this source.
Useful to construct dynamic names for fine-grained filtering.
Definition at line 148 of file ErrorSource.h.
00149 { 00150 name = n; 00151 }
| void ErrorSource::disableTarget | ( | | ) | [inherited] | | ------------------------------- | - | | - | ------------- |
| ExecStreamResult ConduitExecStream::precheckConduitBuffers | ( | | ) | [protected, inherited] | | ----------------------------------------------------------------------------------------------------------------------- | - | | - | ------------------------ |
Checks the state of the input and output buffers.
If input empty, requests production. If input EOS, propagates that to output buffer. If output full, returns EXECRC_OVERFLOW.
Returns:
result of precheck; anything but EXECRC_YIELD indicates that execution should terminate immediately with returned code
Definition at line 61 of file ConduitExecStream.cpp.
References EXECBUF_EMPTY, EXECBUF_EOS, EXECBUF_NONEMPTY, EXECBUF_OVERFLOW, EXECBUF_UNDERFLOW, EXECRC_BUF_OVERFLOW, EXECRC_BUF_UNDERFLOW, EXECRC_EOS, EXECRC_YIELD, SingleInputExecStream::pInAccessor, and SingleOutputExecStream::pOutAccessor.
Referenced by ExternalSortExecStreamImpl::execute(), FtrsTableWriterExecStream::execute(), BTreeSearchUniqueExecStream::execute(), execute(), BTreeInsertExecStream::execute(), UncollectExecStream::execute(), SortedAggExecStream::execute(), ReshapeExecStream::execute(), CopyExecStream::execute(), CollectExecStream::execute(), BernoulliSamplingExecStream::execute(), and CalcExecStream::execute().
Definition at line 42 of file ConduitExecStream.cpp.
References SingleInputExecStream::pInAccessor, SingleOutputExecStream::pOutAccessor, SingleOutputExecStream::prepare(), and SingleInputExecStream::prepare().
Referenced by ExternalSortExecStreamImpl::prepare(), LcsClusterAppendExecStream::prepare(), LbmNormalizerExecStream::prepare(), LhxAggExecStream::prepare(), FtrsTableWriterExecStream::prepare(), prepare(), BTreeInsertExecStream::prepare(), UncollectExecStream::prepare(), SortedAggExecStream::prepare(), SegBufferReaderExecStream::prepare(), SegBufferExecStream::prepare(), ScratchBufferExecStream::prepare(), ReshapeExecStream::prepare(), DoubleBufferExecStream::prepare(), CopyExecStream::prepare(), CollectExecStream::prepare(), BernoulliSamplingExecStream::prepare(), and CalcExecStream::prepare().
Member Data Documentation
Definition at line 113 of file BTreeExecStream.h.
Referenced by BTreeInsertExecStream::buildTree(), BTreeExecStream::closeImpl(), BTreeExecStream::copyParamsToDescriptor(), LcsClusterReplaceExecStream::getTupleForLoad(), LcsClusterAppendExecStream::initLoad(), LcsClusterReplaceExecStream::initTupleLoadParams(), BTreePrefetchSearchExecStream::innerSearchLoop(), BTreePrefetchSearchExecStream::newReader(), BTreeExecStream::newReader(), BTreeExecStream::newWriter(), LcsClusterReplaceExecStream::open(), open(), BTreePrefetchSearchExecStream::open(), BTreeInsertExecStream::open(), BTreeExecStream::open(), LcsClusterReplaceExecStream::prepare(), LcsClusterAppendExecStream::prepare(), LbmSearchExecStream::prepare(), LbmGeneratorExecStream::prepare(), prepare(), BTreeInsertExecStream::prepare(), BTreeExecStream::prepare(), and BTreeInsertExecStream::truncateTree().
Definition at line 56 of file SingleOutputExecStream.h.
Referenced by LcsClusterAppendExecStream::compress(), ExternalSortExecStreamImpl::execute(), LcsRowScanExecStream::execute(), LbmUnionExecStream::execute(), LbmNormalizerExecStream::execute(), LbmGeneratorExecStream::execute(), LbmChopperExecStream::execute(), LhxJoinExecStream::execute(), LhxAggExecStream::execute(), FtrsTableWriterExecStream::execute(), BTreeSortExecStream::execute(), BTreeSearchUniqueExecStream::execute(), BTreeScanExecStream::execute(), BTreePrefetchSearchExecStream::execute(), BTreeInsertExecStream::execute(), FlatFileExecStreamImpl::execute(), ValuesExecStream::execute(), UncollectExecStream::execute(), SortedAggExecStream::execute(), SegBufferReaderExecStream::execute(), ScratchBufferExecStream::execute(), ReshapeExecStream::execute(), MockResourceExecStream::execute(), MockProducerExecStream::execute(), MergeExecStream::execute(), DoubleBufferExecStream::execute(), CorrelationJoinExecStream::execute(), CopyExecStream::execute(), CollectExecStream::execute(), CartesianJoinExecStream::execute(), BernoulliSamplingExecStream::execute(), BarrierExecStream::execute(), CalcExecStream::execute(), LbmGeneratorExecStream::flushEntry(), MockProducerExecStream::getProducedRowCount(), ExternalSortExecStreamImpl::getResourceRequirements(), innerFetchLoop(), LbmUnionExecStream::open(), LbmChopperExecStream::open(), LbmBitOpExecStream::open(), SingleOutputExecStream::open(), SegBufferReaderExecStream::open(), SegBufferExecStream::open(), ScratchBufferExecStream::open(), DoubleBufferExecStream::open(), CollectExecStream::open(), SegBufferExecStream::openBufferForRead(), ConduitExecStream::precheckConduitBuffers(), LcsRowScanExecStream::prepare(), LcsRowScanBaseExecStream::prepare(), LcsClusterAppendExecStream::prepare(), LbmUnionExecStream::prepare(), LbmGeneratorExecStream::prepare(), LhxJoinExecStream::prepare(), LhxAggExecStream::prepare(), FtrsTableWriterExecStream::prepare(), FlatFileExecStreamImpl::prepare(), UncollectExecStream::prepare(), SortedAggExecStream::prepare(), SingleOutputExecStream::prepare(), ReshapeExecStream::prepare(), MockResourceExecStream::prepare(), MockProducerExecStream::prepare(), MergeExecStream::prepare(), CorrelationJoinExecStream::prepare(), ConduitExecStream::prepare(), CollectExecStream::prepare(), CartesianJoinExecStream::prepare(), BernoulliSamplingExecStream::prepare(), BarrierExecStream::prepare(), CalcExecStream::prepare(), SortedAggExecStream::produce(), LbmBitOpExecStream::producePendingOutput(), LbmUnionExecStream::produceTuple(), LbmNormalizerExecStream::produceTuple(), LbmMinusExecStream::produceTuple(), LbmChopperExecStream::produceTuple(), LbmBitOpExecStream::produceTuple(), LbmBitOpExecStream::readInput(), LbmMinusExecStream::readMinuendInput(), and SingleOutputExecStream::setOutputBufAccessors().
Dataflow graph containing this stream.
Note that we don't use a weak_ptr for this because it needs to be accessed frequently during execution, and the extra locking overhead would be frivolous.
Definition at line 68 of file ExecStream.h.
Referenced by ExecStream::checkAbort(), ExecStream::ExecStream(), CorrelationJoinExecStream::execute(), ExecStream::getGraph(), JavaTransformExecStream::open(), SingleInputExecStream::open(), MergeExecStream::open(), ExecStream::open(), CorrelationJoinExecStream::open(), ConfluenceExecStream::open(), ExecStream::prepare(), CartesianJoinExecStream::prepare(), and LbmMinusExecStream::restartSubtrahends().
The dynamic parameter manager available to this stream.
(Obtained at prepare() time. Keep a shared pointer in case the stream is reassigned to another graph for execution; cf ExecStreamGraph::mergeFrom())
Definition at line 85 of file ExecStream.h.
Referenced by CorrelationJoinExecStream::close(), SegBufferReaderExecStream::closeImpl(), LbmUnionExecStream::execute(), LbmSplicerExecStream::execute(), LbmGeneratorExecStream::execute(), LbmChopperExecStream::execute(), CorrelationJoinExecStream::execute(), BarrierExecStream::execute(), LcsClusterReplaceExecStream::open(), LbmUnionExecStream::open(), LbmSplicerExecStream::open(), LbmGeneratorExecStream::open(), LbmBitOpExecStream::open(), open(), BTreeInsertExecStream::open(), SegBufferWriterExecStream::open(), SegBufferReaderExecStream::open(), NestedLoopJoinExecStream::open(), CorrelationJoinExecStream::open(), ExecStream::prepare(), CalcExecStream::prepare(), NestedLoopJoinExecStream::processLeftInput(), LbmSearchExecStream::reachedTupleLimit(), ReshapeExecStream::readDynamicParams(), SegBufferWriterExecStream::readReaderRefCount(), readSearchKey(), readUpperBoundKey(), LbmSearchExecStream::setAdditionalKeys(), and LbmBitOpExecStream::writeStartRidParamValue().
Definition at line 51 of file SingleInputExecStream.h.
Referenced by SortedAggExecStream::compareGroupByKeys(), ExternalSortExecStreamImpl::computeFirstResult(), ExternalSortExecStreamImpl::execute(), LbmSplicerExecStream::execute(), FtrsTableWriterExecStream::execute(), BTreeSortExecStream::execute(), BTreeSearchUniqueExecStream::execute(), execute(), BTreePrefetchSearchExecStream::execute(), BTreeInsertExecStream::execute(), JavaSinkExecStream::execute(), UncollectExecStream::execute(), SplitterExecStream::execute(), SortedAggExecStream::execute(), SegBufferWriterExecStream::execute(), SegBufferReaderExecStream::execute(), SegBufferExecStream::execute(), ScratchBufferExecStream::execute(), ReshapeExecStream::execute(), MockConsumerExecStream::execute(), DoubleBufferExecStream::execute(), CopyExecStream::execute(), CollectExecStream::execute(), BernoulliSamplingExecStream::execute(), CalcExecStream::execute(), BTreePrefetchSearchExecStream::getNextPageForPrefetch(), LcsClusterReplaceExecStream::getTupleForLoad(), LcsClusterAppendExecStream::getTupleForLoad(), LbmSplicerExecStream::getValidatedTuple(), LcsClusterReplaceExecStream::initTupleLoadParams(), innerSearchLoop(), BTreePrefetchSearchExecStream::innerSearchLoop(), LcsClusterReplaceExecStream::open(), LbmNormalizerExecStream::open(), SingleInputExecStream::open(), SegBufferWriterExecStream::open(), SegBufferExecStream::open(), ScratchBufferExecStream::open(), MockConsumerExecStream::open(), DoubleBufferExecStream::open(), CollectExecStream::open(), LcsClusterAppendExecStream::postProcessTuple(), ConduitExecStream::precheckConduitBuffers(), ExternalSortExecStreamImpl::prepare(), LcsClusterAppendExecStream::prepare(), LbmSplicerExecStream::prepare(), LbmNormalizerExecStream::prepare(), prepare(), BTreeInsertExecStream::prepare(), UncollectExecStream::prepare(), SortedAggExecStream::prepare(), SingleInputExecStream::prepare(), SegBufferReaderExecStream::prepare(), ReshapeExecStream::prepare(), DiffluenceExecStream::prepare(), ConduitExecStream::prepare(), CollectExecStream::prepare(), BernoulliSamplingExecStream::prepare(), CalcExecStream::prepare(), SortedAggExecStream::produce(), readSearchKey(), LhxAggExecStream::setAggComputers(), LhxAggExecStream::setHashInfo(), SingleInputExecStream::setInputBufAccessors(), and JavaSinkExecStream::stuffByteBuffer().
The documentation for this class was generated from the following files:
- /home/pub/open/dev/fennel/ftrs/BTreeSearchExecStream.h
- /home/pub/open/dev/fennel/ftrs/BTreeSearchExecStream.cpp
