Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
coordinator.h File Reference
#include <vector>
#include <string>
#include <boost/scoped_ptr.hpp>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics/stats.hpp>
#include <boost/accumulators/statistics/min.hpp>
#include <boost/accumulators/statistics/mean.hpp>
#include <boost/accumulators/statistics/median.hpp>
#include <boost/accumulators/statistics/max.hpp>
#include <boost/accumulators/statistics/variance.hpp>
#include <boost/unordered_map.hpp>
#include <boost/unordered_set.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition_variable.hpp>
#include "common/status.h"
#include "common/global-types.h"
#include "util/progress-updater.h"
#include "util/runtime-profile.h"
#include "runtime/runtime-state.h"
#include "statestore/simple-scheduler.h"
#include "gen-cpp/Types_types.h"
#include "gen-cpp/Frontend_types.h"
Include dependency graph for coordinator.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  impala::FragmentInstanceCounters
 Struct for per fragment instance counters that will be aggregated by the coordinator. More...
 
struct  impala::PerFragmentProfileData
 Per fragment profile information. More...
 

Namespaces

 impala
 This file contains type definitions that are used throughout the code base.
 

Typedefs

typedef
boost::accumulators::accumulator_set
< int64_t,
boost::accumulators::features
< boost::accumulators::tag::min,
boost::accumulators::tag::max,
boost::accumulators::tag::mean,
boost::accumulators::tag::variance > > 
impala::SummaryStats
 
typedef std::map< PlanNodeId,
RuntimeProfile::Counter * > 
impala::CounterMap
 map from id of a scan node to a specific counter in the node's profile More...
 
typedef boost::unordered_map
< TUniqueId, BackendExecState * > 
impala::BackendExecStateMap
 
typedef boost::unordered_map
< std::string, std::pair< bool,
short > > 
impala::PermissionCache
 

Functions

 impala::~Coordinator ()
 
Status impala::Exec (QuerySchedule &schedule, std::vector< ExprContext * > *output_expr_ctxs)
 
Status impala::Wait ()
 
Status impala::GetNext (RowBatch **batch, RuntimeState *state)
 
void impala::Cancel (const Status *cause=NULL)
 
Status impala::UpdateFragmentExecStatus (const TReportExecStatusParams &params)
 
RuntimeState * impala::runtime_state ()
 only valid after calling Exec(), and may return NULL if there is no executor More...
 
const RowDescriptor & impala::row_desc () const
 
MemTracker * impala::query_mem_tracker ()
 
RuntimeProfile * impala::query_profile () const
 
const TUniqueId & impala::query_id () const
 
const PartitionStatusMap & impala::per_partition_status ()
 This is safe to call only after Wait() More...
 
bool impala::PrepareCatalogUpdate (TUpdateCatalogRequest *catalog_update)
 
std::string impala::GetErrorLog ()
 
const ProgressUpdater & impala::progress ()
 
Status impala::GetStatus ()
 Returns query_status_. More...
 
const TExecSummary & impala::exec_summary () const
 
SpinLock & impala::GetExecSummaryLock () const
 
ObjectPool * impala::obj_pool ()
 Returns a local object pool. More...
 
void impala::SetExecPlanFragmentParams (QuerySchedule &schedule, int backend_num, const TPlanFragment &fragment, int fragment_idx, const FragmentExecParams &params, int instance_idx, const TNetworkAddress &coord, TExecPlanFragmentParams *rpc_params)
 Fill in rpc_params based on parameters. More...
 
Status impala::ExecRemoteFragment (void *exec_state)
 
int impala::GetFragmentNum (const TUniqueId &fragment_id)
 Determine fragment number, given fragment id. More...
 
void impala::PrintBackendInfo ()
 
void impala::CreateAggregateCounters (const std::vector< TPlanFragment > &fragments)
 Create aggregate counters for all scan nodes in any of the fragments. More...
 
void impala::CollectScanNodeCounters (RuntimeProfile *, FragmentInstanceCounters *result)
 
int64_t impala::ComputeTotalThroughput (int node_id)
 
int64_t impala::ComputeTotalScanRangesComplete (int node_id)
 
void impala::CancelInternal ()
 Runs cancel logic. Assumes that lock_ is held. More...
 
void impala::CancelRemoteFragments ()
 
Status impala::UpdateStatus (const Status &status, const TUniqueId *failed_fragment)
 
Status impala::WaitForAllBackends ()
 
Status impala::FinalizeQuery ()
 
Status impala::FinalizeSuccessfulInsert ()
 Moves all temporary staging files to their final destinations. More...
 
void impala::InitExecProfile (const TQueryExecRequest &request)
 
void impala::UpdateAverageProfile (BackendExecState *backend_exec_state)
 
void impala::ComputeFragmentSummaryStats (BackendExecState *backend_exec_state)
 
void impala::ReportQuerySummary ()
 
void impala::UpdateExecSummary (int fragment_idx, int instance_idx, RuntimeProfile *profile)
 
void impala::PopulatePathPermissionCache (hdfsFS fs, const std::string &path_str, PermissionCache *permissions_cache)
 

Variables

client impala::__pad0__
 
client
RuntimeProfile::EventSequence * 
impala::events
 
ExecEnv * impala::exec_env_
 
TUniqueId impala::query_id_
 
TDescriptorTable impala::desc_tbl_
 copied from TQueryExecRequest; constant across all fragments More...
 
TQueryCtx impala::query_ctx_
 
TStmtType::type impala::stmt_type_
 copied from TQueryExecRequest, governs when to call ReportQuerySummary More...
 
std::vector< BackendExecState * > impala::backend_exec_states_
 BackendExecStates owned by obj_pool() More...
 
bool impala::needs_finalization_
 True if the query needs a post-execution step to tidy up. More...
 
TFinalizeParams impala::finalize_params_
 Only valid if needs_finalization is true. More...
 
boost::mutex impala::wait_lock_
 ensures single-threaded execution of Wait(); must not hold lock_ when acquiring this More...
 
bool impala::has_called_wait_
 
ProgressUpdater impala::progress_
 Keeps track of number of completed ranges and total scan ranges. More...
 
boost::mutex impala::lock_
 protects all fields below More...
 
Status impala::query_status_
 
bool impala::returned_all_results_
 
boost::shared_ptr< MemTracker > impala::query_mem_tracker_
 
const RowDescriptor * impala::row_desc_
 owned by plan root, which resides in runtime_state_'s pool More...
 
BackendExecStateMap impala::backend_exec_state_map_
 
bool impala::execution_completed_
 True if execution has completed, false otherwise. More...
 
int impala::num_remote_fragements_complete_
 Number of remote fragments that have completed. More...
 
boost::condition_variable impala::backend_completion_cv_
 
int impala::num_remaining_backends_
 
PartitionStatusMap impala::per_partition_status_
 
FileMoveMap impala::files_to_move_
 
boost::scoped_ptr< ObjectPool > impala::obj_pool_
 Object pool owned by the coordinator. Any executor will have its own pool. More...
 
SpinLock impala::exec_summary_lock_
 Execution summary for this query. More...
 
TExecSummary impala::exec_summary_
 
boost::unordered_map
< TPlanNodeId, int > 
impala::plan_node_id_to_summary_map_
 A mapping of plan node ids to index into exec_summary_.nodes. More...
 
boost::scoped_ptr< RuntimeProfile > impala::query_profile_
 Aggregate counters for the entire query. More...
 
RuntimeProfile::EventSequence * impala::query_events_
 Event timeline for this query. Unowned. More...
 
std::vector
< PerFragmentProfileData > 
impala::fragment_profiles_
 
FragmentInstanceCounters impala::coordinator_counters_
 Throughput counters for the coordinator fragment. More...
 
boost::unordered_set
< TNetworkAddress > 
impala::unique_hosts_
 The set of hosts that the query will run on. Populated in Exec. More...
 
RuntimeProfile::Counter * impala::finalization_timer_
 Total time spent in finalization (typically 0 except for INSERT into hdfs tables) More...