Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
impala::ScanNode Class Referenceabstract

Abstract base class of all scan nodes; introduces SetScanRange(). More...

#include <scan-node.h>

Inheritance diagram for impala::ScanNode:
Collaboration diagram for impala::ScanNode:

Public Member Functions

 ScanNode (ObjectPool *pool, const TPlanNode &tnode, const DescriptorTbl &descs)
 
virtual Status Prepare (RuntimeState *state)
 
void SetScanRanges (const std::vector< TScanRangeParams > &scan_range_params)
 
virtual bool IsScanNode () const
 
RuntimeProfile::Counterbytes_read_counter () const
 
RuntimeProfile::Counterrows_read_counter () const
 
RuntimeProfile::Counterread_timer () const
 
RuntimeProfile::Countertotal_throughput_counter () const
 
RuntimeProfile::Counterper_read_thread_throughput_counter () const
 
RuntimeProfile::Countermaterialize_tuple_timer () const
 
RuntimeProfile::Counterscan_ranges_complete_counter () const
 
RuntimeProfile::ThreadCountersscanner_thread_counters () const
 
RuntimeProfile::Counteractive_scanner_thread_counter ()
 
RuntimeProfile::Counteraverage_scanner_thread_concurrency () const
 
virtual Status Init (const TPlanNode &tnode)
 
virtual Status Open (RuntimeState *state)
 
virtual Status GetNext (RuntimeState *state, RowBatch *row_batch, bool *eos)=0
 
virtual Status Reset (RuntimeState *state)
 
virtual void Close (RuntimeState *state)
 
void CollectNodes (TPlanNodeType::type node_type, std::vector< ExecNode * > *nodes)
 
void CollectScanNodes (std::vector< ExecNode * > *nodes)
 Collect all scan node types. More...
 
std::string DebugString () const
 Returns a string representation in DFS order of the plan rooted at this. More...
 
virtual void DebugString (int indentation_level, std::stringstream *out) const
 
const std::vector< ExprContext * > & conjunct_ctxs () const
 
int id () const
 
TPlanNodeType::type type () const
 
const RowDescriptorrow_desc () const
 
int64_t rows_returned () const
 
int64_t limit () const
 
bool ReachedLimit ()
 
RuntimeProfileruntime_profile ()
 
MemTrackermem_tracker ()
 
MemTrackerexpr_mem_tracker ()
 

Static Public Member Functions

static Status CreateTree (ObjectPool *pool, const TPlan &plan, const DescriptorTbl &descs, ExecNode **root)
 
static void SetDebugOptions (int node_id, TExecNodePhase::type phase, TDebugAction::type action, ExecNode *tree)
 Set debug action for node with given id in 'tree'. More...
 
static bool EvalConjuncts (ExprContext *const *ctxs, int num_ctxs, TupleRow *row)
 
static llvm::Function * CodegenEvalConjuncts (RuntimeState *state, const std::vector< ExprContext * > &conjunct_ctxs, const char *name="EvalConjuncts")
 
static int GetNodeIdFromProfile (RuntimeProfile *p)
 Extract node id from p->name(). More...
 

Static Public Attributes

static const std::string BYTES_READ_COUNTER = "BytesRead"
 names of ScanNode common counters More...
 
static const std::string ROWS_READ_COUNTER = "RowsRead"
 
static const std::string TOTAL_HDFS_READ_TIMER = "TotalRawHdfsReadTime(*)"
 
static const std::string TOTAL_HBASE_READ_TIMER = "TotalRawHBaseReadTime(*)"
 
static const std::string TOTAL_THROUGHPUT_COUNTER = "TotalReadThroughput"
 
static const std::string PER_READ_THREAD_THROUGHPUT_COUNTER
 
static const std::string NUM_DISKS_ACCESSED_COUNTER = "NumDisksAccessed"
 
static const std::string MATERIALIZE_TUPLE_TIMER = "MaterializeTupleTime(*)"
 
static const std::string SCAN_RANGES_COMPLETE_COUNTER = "ScanRangesComplete"
 
static const std::string SCANNER_THREAD_COUNTERS_PREFIX = "ScannerThreads"
 
static const std::string SCANNER_THREAD_TOTAL_WALLCLOCK_TIME
 
static const std::string AVERAGE_SCANNER_THREAD_CONCURRENCY
 
static const std::string AVERAGE_HDFS_READ_THREAD_CONCURRENCY
 
static const std::string NUM_SCANNER_THREADS_STARTED
 
static const std::string ROW_THROUGHPUT_COUNTER = "RowsReturnedRate"
 Names of counters shared by all exec nodes. More...
 

Protected Member Functions

ExecNodechild (int i)
 
bool is_closed ()
 
void InitRuntimeProfile (const std::string &name)
 
Status ExecDebugAction (TExecNodePhase::type phase, RuntimeState *state)
 
void AddRuntimeExecOption (const std::string &option)
 Appends option to 'runtime_exec_options_'. More...
 
virtual Status QueryMaintenance (RuntimeState *state)
 
void AddExprCtxToFree (ExprContext *ctx)
 
void AddExprCtxsToFree (const std::vector< ExprContext * > &ctxs)
 
void AddExprCtxsToFree (const SortExecExprs &sort_exec_exprs)
 

Static Protected Member Functions

static Status CreateNode (ObjectPool *pool, const TPlanNode &tnode, const DescriptorTbl &descs, ExecNode **node)
 Create a single exec node derived from thrift node; place exec node in 'pool'. More...
 
static Status CreateTreeHelper (ObjectPool *pool, const std::vector< TPlanNode > &tnodes, const DescriptorTbl &descs, ExecNode *parent, int *node_idx, ExecNode **root)
 

Protected Attributes

const std::vector
< TScanRangeParams > * 
scan_range_params_
 The scan ranges this scan node is responsible for. Not owned. More...
 
RuntimeProfile::Counterbytes_read_counter_
 
RuntimeProfile::TimeSeriesCounterbytes_read_timeseries_counter_
 Time series of the bytes_read_counter_. More...
 
RuntimeProfile::Counterrows_read_counter_
 

rows/tuples read from the scanner (including those discarded by EvalConjucts())

More...
 
RuntimeProfile::Counterread_timer_
 
RuntimeProfile::Countertotal_throughput_counter_
 Wall based aggregate read throughput [bytes/sec]. More...
 
RuntimeProfile::Counterper_read_thread_throughput_counter_
 Per thread read throughput [bytes/sec]. More...
 
RuntimeProfile::Counternum_disks_accessed_counter_
 
RuntimeProfile::Countermaterialize_tuple_timer_
 
RuntimeProfile::Counterscan_ranges_complete_counter_
 
RuntimeProfile::ThreadCountersscanner_thread_counters_
 Aggregated scanner thread counters. More...
 
RuntimeProfile::Counter active_scanner_thread_counter_
 The number of active scanner threads that are not blocked by IO. More...
 
RuntimeProfile::Counteraverage_scanner_thread_concurrency_
 
RuntimeProfile::Counter active_hdfs_read_thread_counter_
 The number of active hdfs reading threads reading for this node. More...
 
RuntimeProfile::Counteraverage_hdfs_read_thread_concurrency_
 
RuntimeProfile::Counternum_scanner_threads_started_counter_
 
std::vector
< RuntimeProfile::Counter * > 
hdfs_read_thread_concurrency_bucket_
 
int id_
 
TPlanNodeType::type type_
 
ObjectPoolpool_
 
std::vector< ExprContext * > conjunct_ctxs_
 
std::vector< ExecNode * > children_
 
RowDescriptor row_descriptor_
 
TExecNodePhase::type debug_phase_
 
TDebugAction::type debug_action_
 
int64_t limit_
 
int64_t num_rows_returned_
 
boost::scoped_ptr< RuntimeProfileruntime_profile_
 
RuntimeProfile::Counterrows_returned_counter_
 
RuntimeProfile::Counterrows_returned_rate_
 
boost::scoped_ptr< MemTrackermem_tracker_
 Account for peak memory used by this node. More...
 
boost::scoped_ptr< MemTrackerexpr_mem_tracker_
 MemTracker that should be used for ExprContexts. More...
 
boost::mutex exec_options_lock_
 
std::string runtime_exec_options_
 

Detailed Description

Abstract base class of all scan nodes; introduces SetScanRange().

Includes ScanNode common counters: BytesRead - total bytes read by this scan node. Provided as a counter as well as a time series that samples the counter. TotalRawReadTime - it measures the total time spent in underlying reads. For HDFS files, this is the time in the disk-io-mgr's reading threads for this node. For example, if we have 3 reading threads and each spent 1 sec, this counter will report 3 sec. For HBase, this is the time spent in the region server. TotalReadThroughput - BytesRead divided by the total time spent in this node (from Open to Close). For IO bounded queries, this should be very close to the total throughput of all the disks. PerDiskRawHdfsThroughput - the read throughput for each disk. If all the data reside on disk, this should be the read throughput the disk, regardless of whether the query is IO bounded or not. NumDisksAccessed - number of disks accessed. AverageScannerThreadConcurrency - the average number of active scanner threads. A scanner thread is considered active if it is not blocked by IO. This number would be low (less than 1) for IO-bound queries. For cpu-bound queries, this number would be close to the max scanner threads allowed. AverageHdfsReadThreadConcurrency - the average number of active hdfs reading threads reading for this scan node. For IO bound queries, this should be close to the number of disk. Hdfs Read Thread Concurrency Bucket - the bucket counting (%) of hdfs read thread concurrency. NumScannerThreadsStarted - the number of scanner threads started for the duration of the ScanNode. This is at most the number of scan ranges but should be much less since a single scanner thread will likely process multiple scan ranges. ScanRangesComplete - number of scan ranges completed MaterializeTupleTime - time spent in creating in-memory tuple format ScannerThreadsTotalWallClockTime - total time spent in all scanner threads. ScannerThreadsUserTime, ScannerThreadsSysTime, ScannerThreadsVoluntaryContextSwitches, ScannerThreadsInvoluntaryContextSwitches - these are aggregated counters across all scanner threads of this scan node. They are taken from getrusage. See RuntimeProfile::ThreadCounters for details.

Definition at line 77 of file scan-node.h.

Constructor & Destructor Documentation

impala::ScanNode::ScanNode ( ObjectPool pool,
const TPlanNode &  tnode,
const DescriptorTbl descs 
)
inline

Definition at line 79 of file scan-node.h.

Member Function Documentation

RuntimeProfile::Counter& impala::ScanNode::active_scanner_thread_counter ( )
inline

Definition at line 113 of file scan-node.h.

References active_scanner_thread_counter_.

void impala::ExecNode::AddExprCtxsToFree ( const SortExecExprs sort_exec_exprs)
protectedinherited
void impala::ExecNode::AddExprCtxToFree ( ExprContext ctx)
inlineprotectedinherited

Add an ExprContext to have its local allocations freed by QueryMaintenance(). Exprs that are evaluated in the main execution thread should be added. Exprs evaluated in a separate thread are generally not safe to add, since a local allocation may be freed while it's being used. Rather than using this mechanism, threads should call FreeLocalAllocations() on local ExprContexts periodically.

Definition at line 276 of file exec-node.h.

References impala::ExecNode::expr_ctxs_to_free_.

Referenced by impala::AnalyticEvalNode::Prepare().

RuntimeProfile::Counter* impala::ScanNode::average_scanner_thread_concurrency ( ) const
inline

Definition at line 116 of file scan-node.h.

References average_scanner_thread_concurrency_.

ExecNode* impala::ExecNode::child ( int  i)
inlineprotectedinherited

Definition at line 241 of file exec-node.h.

References impala::ExecNode::children_.

Referenced by impala::CrossJoinNode::BuildListDebugString(), impala::BlockingJoinNode::BuildSideThread(), impala::HashJoinNode::CodegenCreateOutputRow(), impala::PartitionedHashJoinNode::CodegenCreateOutputRow(), impala::CrossJoinNode::ConstructBuildSide(), impala::HashJoinNode::ConstructBuildSide(), impala::PartitionedHashJoinNode::ConstructBuildSide(), impala::BlockingJoinNode::GetLeftChildRowString(), impala::SelectNode::GetNext(), impala::UnionNode::GetNext(), impala::CrossJoinNode::GetNext(), impala::HashJoinNode::GetNext(), impala::AnalyticEvalNode::GetNextOutputBatch(), impala::PartitionedAggregationNode::Partition::InitStreams(), impala::HashJoinNode::LeftJoinGetNext(), impala::PartitionedHashJoinNode::NextProbeRowBatch(), impala::SelectNode::Open(), impala::SortNode::Open(), impala::TopNNode::Open(), impala::BlockingJoinNode::Open(), impala::AggregationNode::Open(), impala::AnalyticEvalNode::Open(), impala::PartitionedAggregationNode::Open(), impala::UnionNode::OpenCurrentChild(), impala::SelectNode::Prepare(), impala::SortNode::Prepare(), impala::UnionNode::Prepare(), impala::TopNNode::Prepare(), impala::BlockingJoinNode::Prepare(), impala::HashJoinNode::Prepare(), impala::AggregationNode::Prepare(), impala::AnalyticEvalNode::Prepare(), impala::PartitionedHashJoinNode::Prepare(), impala::PartitionedAggregationNode::Prepare(), impala::PartitionedHashJoinNode::ProcessBuildInput(), impala::AnalyticEvalNode::ProcessChildBatches(), and impala::SortNode::SortInput().

void impala::ExecNode::Close ( RuntimeState state)
virtualinherited

Close() will get called for every exec node, regardless of what else is called and the status of these calls (i.e. Prepare() may never have been called, or Prepare()/Open()/GetNext() returned with an error). Close() releases all resources that were allocated in Open()/GetNext(), even if the latter ended with an error. Close() can be called if the node has been prepared or the node is closed. The default implementation updates runtime profile counters and calls Close() on the children. Subclasses should check if the node has already been closed (is_closed()), then close themselves, then call the base Close(). Nodes that are using tuples returned by a child may call Close() on their children before their own Close() if the child node has returned eos. It is only safe to call Close() on the child node while the parent node is still returning rows if the parent node fully materializes the child's input.

Reimplemented in impala::HdfsScanNode, impala::PartitionedAggregationNode, impala::AnalyticEvalNode, impala::PartitionedHashJoinNode, impala::BlockingJoinNode, impala::AggregationNode, impala::DataSourceScanNode, impala::HashJoinNode, impala::CrossJoinNode, impala::HBaseScanNode, impala::ExchangeNode, impala::TopNNode, impala::SortNode, impala::UnionNode, and impala::SelectNode.

Definition at line 166 of file exec-node.cc.

References impala::ExecNode::children_, impala::Expr::Close(), impala::ExecNode::conjunct_ctxs_, COUNTER_SET, impala::RuntimeState::instance_mem_tracker(), impala::ExecNode::is_closed_, impala::MemTracker::LogUsage(), impala::ExecNode::mem_tracker(), impala::ExecNode::num_rows_returned_, impala::RuntimeState::query_id(), and impala::ExecNode::rows_returned_counter_.

Referenced by impala::BlockingJoinNode::BuildSideThread(), impala::SelectNode::Close(), impala::UnionNode::Close(), impala::SortNode::Close(), impala::TopNNode::Close(), impala::ExchangeNode::Close(), impala::HBaseScanNode::Close(), impala::AggregationNode::Close(), impala::BlockingJoinNode::Close(), impala::AnalyticEvalNode::Close(), impala::PartitionedAggregationNode::Close(), impala::PlanFragmentExecutor::Close(), impala::HdfsScanNode::Close(), impala::UnionNode::GetNext(), impala::SortNode::Open(), impala::TopNNode::Open(), impala::AggregationNode::Open(), and impala::PartitionedAggregationNode::Open().

void impala::ExecNode::CollectNodes ( TPlanNodeType::type  node_type,
std::vector< ExecNode * > *  nodes 
)
inherited

Collect all nodes of given 'node_type' that are part of this subtree, and return in 'nodes'.

Definition at line 359 of file exec-node.cc.

References impala::ExecNode::children_, and impala::ExecNode::type_.

Referenced by impala::ExecNode::CollectScanNodes(), and impala::PlanFragmentExecutor::Prepare().

void impala::ExecNode::CollectScanNodes ( std::vector< ExecNode * > *  nodes)
inherited

Collect all scan node types.

Definition at line 366 of file exec-node.cc.

References impala::ExecNode::CollectNodes().

Referenced by impala::PlanFragmentExecutor::Prepare().

Status impala::ExecNode::CreateNode ( ObjectPool pool,
const TPlanNode &  tnode,
const DescriptorTbl descs,
ExecNode **  node 
)
staticprotectedinherited

Create a single exec node derived from thrift node; place exec node in 'pool'.

Definition at line 260 of file exec-node.cc.

References impala::ObjectPool::Add(), impala::Status::OK, and RETURN_IF_ERROR.

Referenced by impala::ExecNode::CreateTreeHelper().

Status impala::ExecNode::CreateTree ( ObjectPool pool,
const TPlan &  plan,
const DescriptorTbl descs,
ExecNode **  root 
)
staticinherited

Creates exec node tree from list of nodes contained in plan via depth-first traversal. All nodes are placed in pool. Returns error if 'plan' is corrupted, otherwise success.

Definition at line 199 of file exec-node.cc.

References impala::ExecNode::CreateTreeHelper(), impala::Status::OK, and impala::Status::ok().

Referenced by impala::PlanFragmentExecutor::Prepare().

Status impala::ExecNode::CreateTreeHelper ( ObjectPool pool,
const std::vector< TPlanNode > &  tnodes,
const DescriptorTbl descs,
ExecNode parent,
int *  node_idx,
ExecNode **  root 
)
staticprotectedinherited
virtual void impala::ExecNode::DebugString ( int  indentation_level,
std::stringstream *  out 
) const
virtualinherited

Recursive helper method for generating a string for DebugString(). Implementations should call DebugString(int, std::stringstream) on their children. Input parameters: indentation_level: Current level in plan tree. Output parameters: out: Stream to accumulate debug string.

Reimplemented in impala::BlockingJoinNode, impala::PartitionedAggregationNode, impala::AnalyticEvalNode, impala::AggregationNode, impala::DataSourceScanNode, impala::ExchangeNode, impala::HBaseScanNode, impala::TopNNode, and impala::SortNode.

virtual Status impala::ExecNode::GetNext ( RuntimeState state,
RowBatch row_batch,
bool eos 
)
pure virtualinherited

Retrieves rows and returns them via row_batch. Sets eos to true if subsequent calls will not retrieve any more rows. Data referenced by any tuples returned in row_batch must not be overwritten by the callee until Close() is called. The memory holding that data can be returned via row_batch's tuple_data_pool (in which case it may be deleted by the caller) or held on to by the callee. The row_batch, including its tuple_data_pool, will be destroyed by the caller at some point prior to the final Close() call. In other words, if the memory holding the tuple data will be referenced by the callee in subsequent GetNext() calls, it must not be attached to the row_batch's tuple_data_pool. Caller must not be holding any io buffers. This will cause deadlock. TODO: AggregationNode and HashJoinNode cannot be "re-opened" yet.

Implemented in impala::HdfsScanNode, impala::PartitionedAggregationNode, impala::AnalyticEvalNode, impala::PartitionedHashJoinNode, impala::AggregationNode, impala::HashJoinNode, impala::DataSourceScanNode, impala::CrossJoinNode, impala::ExchangeNode, impala::TopNNode, impala::HBaseScanNode, impala::SortNode, impala::UnionNode, impala::SelectNode, and impala::EmptySetNode.

Referenced by impala::PlanFragmentExecutor::GetNextInternal(), and impala::BlockingJoinNode::Open().

int impala::ExecNode::GetNodeIdFromProfile ( RuntimeProfile p)
staticinherited

Extract node id from p->name().

Definition at line 62 of file exec-node.cc.

References impala::RuntimeProfile::metadata().

void impala::ExecNode::InitRuntimeProfile ( const std::string &  name)
protectedinherited
virtual bool impala::ScanNode::IsScanNode ( ) const
inlinevirtual

Reimplemented from impala::ExecNode.

Definition at line 93 of file scan-node.h.

int64_t impala::ExecNode::limit ( ) const
inlineinherited
RuntimeProfile::Counter* impala::ScanNode::per_read_thread_throughput_counter ( ) const
inline

Definition at line 101 of file scan-node.h.

References per_read_thread_throughput_counter_.

Status impala::ScanNode::Prepare ( RuntimeState state)
virtual
Status impala::ExecNode::QueryMaintenance ( RuntimeState state)
protectedvirtualinherited
RuntimeProfile::Counter* impala::ScanNode::read_timer ( ) const
inline

Definition at line 97 of file scan-node.h.

References read_timer_.

Referenced by impala::HBaseTableScanner::Next(), and impala::HdfsScanNode::Open().

Status impala::ExecNode::Reset ( RuntimeState state)
virtualinherited

Resets all data-specific state, returning this node to the state it was in after calling Prepare() and before calling Open(). Prepare() must have already been called before calling Reset(). Open() and GetNext() may have optionally been called. Close() must not have been called. If overridden in a subclass, must call superclass's Reset() at the end. The default implementation calls Reset() on children. Note that this function may be called many times, so should be fast. For example, accumulated memory does not need to be freed on every call if it's expensive.

Reimplemented in impala::HdfsScanNode, impala::PartitionedAggregationNode, impala::AnalyticEvalNode, impala::PartitionedHashJoinNode, impala::AggregationNode, impala::BlockingJoinNode, impala::HashJoinNode, impala::DataSourceScanNode, impala::CrossJoinNode, impala::ExchangeNode, impala::HBaseScanNode, impala::TopNNode, impala::SortNode, impala::UnionNode, and impala::SelectNode.

Definition at line 159 of file exec-node.cc.

References impala::ExecNode::children_, impala::Status::OK, and RETURN_IF_ERROR.

Referenced by impala::BlockingJoinNode::Reset().

const RowDescriptor& impala::ExecNode::row_desc ( ) const
inlineinherited
RuntimeProfile::Counter* impala::ScanNode::scan_ranges_complete_counter ( ) const
inline

Definition at line 107 of file scan-node.h.

References scan_ranges_complete_counter_.

RuntimeProfile::ThreadCounters* impala::ScanNode::scanner_thread_counters ( ) const
inline
void impala::ExecNode::SetDebugOptions ( int  node_id,
TExecNodePhase::type  phase,
TDebugAction::type  action,
ExecNode tree 
)
staticinherited

Set debug action for node with given id in 'tree'.

Definition at line 332 of file exec-node.cc.

References impala::ExecNode::children_, impala::ExecNode::debug_action_, impala::ExecNode::debug_phase_, and impala::ExecNode::id_.

Referenced by impala::PlanFragmentExecutor::Prepare().

void impala::ScanNode::SetScanRanges ( const std::vector< TScanRangeParams > &  scan_range_params)
inline

This should be called before Prepare(), and the argument must be not destroyed until after Prepare().

Definition at line 89 of file scan-node.h.

References scan_range_params_.

Referenced by impala::PlanFragmentExecutor::Prepare().

RuntimeProfile::Counter* impala::ScanNode::total_throughput_counter ( ) const
inline
TPlanNodeType::type impala::ExecNode::type ( ) const
inlineinherited

Member Data Documentation

RuntimeProfile::Counter impala::ScanNode::active_hdfs_read_thread_counter_
protected

The number of active hdfs reading threads reading for this node.

Definition at line 164 of file scan-node.h.

Referenced by impala::HdfsScanNode::Close(), and impala::HdfsScanNode::Open().

RuntimeProfile::Counter impala::ScanNode::active_scanner_thread_counter_
protected
const string impala::ScanNode::AVERAGE_HDFS_READ_THREAD_CONCURRENCY
static
Initial value:
=
"AverageHdfsReadThreadConcurrency"

Definition at line 133 of file scan-node.h.

Referenced by impala::HdfsScanNode::Open().

RuntimeProfile::Counter* impala::ScanNode::average_hdfs_read_thread_concurrency_
protected

Average number of active hdfs reading threads This should be created in Open and stopped when all the scanner threads are done.

Definition at line 168 of file scan-node.h.

Referenced by impala::HdfsScanNode::Open(), and impala::HdfsScanNode::StopAndFinalizeCounters().

const string impala::ScanNode::AVERAGE_SCANNER_THREAD_CONCURRENCY
static
Initial value:
=
"AverageScannerThreadConcurrency"

Definition at line 132 of file scan-node.h.

Referenced by impala::HdfsScanNode::Open().

RuntimeProfile::Counter* impala::ScanNode::average_scanner_thread_concurrency_
protected

Average number of active scanner threads This should be created in Open and stopped when all the scanner threads are done.

Definition at line 161 of file scan-node.h.

Referenced by average_scanner_thread_concurrency(), impala::HdfsScanNode::Open(), and impala::HdfsScanNode::StopAndFinalizeCounters().

const string impala::ScanNode::BYTES_READ_COUNTER = "BytesRead"
static

names of ScanNode common counters

Definition at line 121 of file scan-node.h.

Referenced by Prepare().

RuntimeProfile::Counter* impala::ScanNode::bytes_read_counter_
protected

Definition at line 140 of file scan-node.h.

Referenced by bytes_read_counter(), impala::HdfsScanNode::Open(), and Prepare().

RuntimeProfile::TimeSeriesCounter* impala::ScanNode::bytes_read_timeseries_counter_
protected

Time series of the bytes_read_counter_.

Definition at line 142 of file scan-node.h.

Referenced by impala::HBaseScanNode::Close(), Prepare(), and impala::HdfsScanNode::StopAndFinalizeCounters().

TDebugAction::type impala::ExecNode::debug_action_
protectedinherited
TExecNodePhase::type impala::ExecNode::debug_phase_
protectedinherited

debug-only: if debug_action_ is not INVALID, node will perform action in debug_phase_

Definition at line 219 of file exec-node.h.

Referenced by impala::ExecNode::ExecDebugAction(), and impala::ExecNode::SetDebugOptions().

boost::mutex impala::ExecNode::exec_options_lock_
protectedinherited

Execution options that are determined at runtime. This is added to the runtime profile at Close(). Examples for options logged here would be "Codegen Enabled"

Definition at line 238 of file exec-node.h.

Referenced by impala::ExecNode::AddRuntimeExecOption().

boost::scoped_ptr<MemTracker> impala::ExecNode::expr_mem_tracker_
protectedinherited

MemTracker that should be used for ExprContexts.

Definition at line 233 of file exec-node.h.

Referenced by impala::ExecNode::expr_mem_tracker(), and impala::ExecNode::Prepare().

std::vector<RuntimeProfile::Counter*> impala::ScanNode::hdfs_read_thread_concurrency_bucket_
protected

HDFS read thread concurrency bucket: bucket[i] refers to the number of sample taken where there are i concurrent hdfs read thread running

Definition at line 174 of file scan-node.h.

Referenced by impala::HdfsScanNode::Open(), and impala::HdfsScanNode::StopAndFinalizeCounters().

const string impala::ScanNode::MATERIALIZE_TUPLE_TIMER = "MaterializeTupleTime(*)"
static

Definition at line 128 of file scan-node.h.

Referenced by Prepare().

RuntimeProfile::Counter* impala::ScanNode::materialize_tuple_timer_
protected

Definition at line 151 of file scan-node.h.

Referenced by materialize_tuple_timer(), and Prepare().

boost::scoped_ptr<MemTracker> impala::ExecNode::mem_tracker_
protectedinherited

Account for peak memory used by this node.

Definition at line 230 of file exec-node.h.

Referenced by impala::ExecNode::mem_tracker(), and impala::ExecNode::Prepare().

const string impala::ScanNode::NUM_DISKS_ACCESSED_COUNTER = "NumDisksAccessed"
static

Definition at line 127 of file scan-node.h.

Referenced by impala::HdfsScanNode::Open().

RuntimeProfile::Counter* impala::ScanNode::num_disks_accessed_counter_
protected
const string impala::ScanNode::NUM_SCANNER_THREADS_STARTED
static
Initial value:
=
"NumScannerThreadsStarted"

Definition at line 134 of file scan-node.h.

Referenced by impala::HdfsScanNode::Open().

RuntimeProfile::Counter* impala::ScanNode::num_scanner_threads_started_counter_
protected
const string impala::ScanNode::PER_READ_THREAD_THROUGHPUT_COUNTER
static
Initial value:
=
"PerReadThreadRawHdfsThroughput"

Definition at line 126 of file scan-node.h.

Referenced by impala::HdfsScanNode::Open().

RuntimeProfile::Counter* impala::ScanNode::per_read_thread_throughput_counter_
protected

Per thread read throughput [bytes/sec].

Definition at line 149 of file scan-node.h.

Referenced by impala::HdfsScanNode::Open(), and per_read_thread_throughput_counter().

RuntimeProfile::Counter* impala::ScanNode::read_timer_
protected
RowDescriptor impala::ExecNode::row_descriptor_
protectedinherited
const string impala::ExecNode::ROW_THROUGHPUT_COUNTER = "RowsReturnedRate"
staticinherited

Names of counters shared by all exec nodes.

Definition at line 169 of file exec-node.h.

Referenced by impala::ExecNode::Prepare().

const string impala::ScanNode::ROWS_READ_COUNTER = "RowsRead"
static

Definition at line 122 of file scan-node.h.

Referenced by Prepare().

RuntimeProfile::Counter* impala::ScanNode::rows_read_counter_
protected

rows/tuples read from the scanner (including those discarded by EvalConjucts())

Definition at line 144 of file scan-node.h.

Referenced by impala::HBaseScanNode::GetNext(), Prepare(), and rows_read_counter().

RuntimeProfile::Counter* impala::ExecNode::rows_returned_rate_
protectedinherited

Definition at line 227 of file exec-node.h.

Referenced by impala::ExecNode::Prepare().

std::string impala::ExecNode::runtime_exec_options_
protectedinherited

Definition at line 239 of file exec-node.h.

Referenced by impala::ExecNode::AddRuntimeExecOption().

boost::scoped_ptr<RuntimeProfile> impala::ExecNode::runtime_profile_
protectedinherited
const std::vector<TScanRangeParams>* impala::ScanNode::scan_range_params_
protected

The scan ranges this scan node is responsible for. Not owned.

Definition at line 138 of file scan-node.h.

Referenced by impala::HBaseScanNode::Prepare(), impala::HdfsScanNode::Prepare(), and SetScanRanges().

const string impala::ScanNode::SCAN_RANGES_COMPLETE_COUNTER = "ScanRangesComplete"
static

Definition at line 129 of file scan-node.h.

Referenced by impala::HdfsScanNode::Open().

RuntimeProfile::Counter* impala::ScanNode::scan_ranges_complete_counter_
protected

Definition at line 152 of file scan-node.h.

Referenced by impala::HdfsScanNode::Open(), and scan_ranges_complete_counter().

RuntimeProfile::ThreadCounters* impala::ScanNode::scanner_thread_counters_
protected

Aggregated scanner thread counters.

Definition at line 154 of file scan-node.h.

Referenced by Prepare(), and scanner_thread_counters().

const string impala::ScanNode::SCANNER_THREAD_COUNTERS_PREFIX = "ScannerThreads"
static

Definition at line 130 of file scan-node.h.

Referenced by Prepare().

const string impala::ScanNode::SCANNER_THREAD_TOTAL_WALLCLOCK_TIME
static
Initial value:
=
"ScannerThreadsTotalWallClockTime"

Definition at line 131 of file scan-node.h.

Referenced by impala::HdfsTextScanner::Prepare(), and Prepare().

const string impala::ScanNode::TOTAL_HBASE_READ_TIMER = "TotalRawHBaseReadTime(*)"
static

Definition at line 124 of file scan-node.h.

Referenced by impala::HBaseScanNode::Prepare().

const string impala::ScanNode::TOTAL_HDFS_READ_TIMER = "TotalRawHdfsReadTime(*)"
static

Definition at line 123 of file scan-node.h.

Referenced by impala::HdfsScanNode::Open().

const string impala::ScanNode::TOTAL_THROUGHPUT_COUNTER = "TotalReadThroughput"
static

Definition at line 125 of file scan-node.h.

Referenced by Prepare().

RuntimeProfile::Counter* impala::ScanNode::total_throughput_counter_
protected

Wall based aggregate read throughput [bytes/sec].

Definition at line 147 of file scan-node.h.

Referenced by Prepare(), and total_throughput_counter().

TPlanNodeType::type impala::ExecNode::type_
protectedinherited

Definition at line 210 of file exec-node.h.

Referenced by impala::ExecNode::CollectNodes(), and impala::ExecNode::type().


The documentation for this class was generated from the following files: