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

#include <hbase-table-scanner.h>

Collaboration diagram for impala::HBaseTableScanner:

Classes

class  ScanRange
 HBase scan range; "" means unbounded. More...
 

Public Types

typedef std::vector< ScanRangeScanRangeVector
 

Public Member Functions

 HBaseTableScanner (HBaseScanNode *scan_node, HBaseTableFactory *htable_factory, RuntimeState *state)
 
Status StartScan (JNIEnv *env, const TupleDescriptor *tuple_desc, const ScanRangeVector &scan_range_vector, const std::vector< THBaseFilter > &filters)
 
Status Next (JNIEnv *env, bool *has_next)
 
Status GetRowKey (JNIEnv *env, void **key, int *key_length)
 Get the current HBase row key. More...
 
Status GetRowKey (JNIEnv *env, const SlotDescriptor *slot_desc, Tuple *tuple)
 
Status GetValue (JNIEnv *env, const std::string &family, const std::string &qualifier, void **value, int *value_length)
 
Status GetValue (JNIEnv *env, const std::string &family, const std::string &qualifier, const SlotDescriptor *slot_desc, Tuple *tuple)
 
void Close (JNIEnv *env)
 Close HTable and ResultScanner. More...
 
void set_num_requested_cells (int num_requested_cells)
 

Static Public Member Functions

static Status Init ()
 

Private Member Functions

Status HandleResultScannerTimeout (JNIEnv *env, bool *timeout)
 
int CompareStrings (const std::string &s, void *data, int length)
 
Status CreateByteArray (JNIEnv *env, const std::string &s, jbyteArray *bytes)
 Turn strings into Java byte array. More...
 
Status ScanSetup (JNIEnv *env, const TupleDescriptor *tuple_desc, const std::vector< THBaseFilter > &filters)
 First time scanning the table, do some setup. More...
 
Status InitScanRange (JNIEnv *env, const ScanRange &scan_range)
 Initialize the scan to the given range. More...
 
Status InitScanRange (JNIEnv *env, jbyteArray start_bytes, jbyteArray end_bytes)
 
void GetRowKey (JNIEnv *env, jobject cell, void **data, int *length)
 Copies the row key of cell into value_pool_ and returns it via *data and *length. More...
 
void GetFamily (JNIEnv *env, jobject cell, void **data, int *length)
 
void GetQualifier (JNIEnv *env, jobject cell, void **data, int *length)
 
void GetValue (JNIEnv *env, jobject cell, void **data, int *length)
 Copies the value of cell into value_pool_ and returns it via *data and *length. More...
 
Status GetCurrentValue (JNIEnv *env, const std::string &family, const std::string &qualifier, void **data, int *length, bool *is_null)
 
void WriteTupleSlot (const SlotDescriptor *slot_desc, Tuple *tuple, void *data)
 

Private Attributes

HBaseScanNodescan_node_
 The enclosing HBaseScanNode. More...
 
RuntimeStatestate_
 
HBaseTableFactoryhtable_factory_
 HBase Table factory from runtime state. More...
 
const ScanRangeVectorscan_range_vector_
 Vector of ScanRange. More...
 
int current_scan_range_idx_
 
boost::scoped_ptr< HBaseTablehtable_
 C++ wrapper for HTable. More...
 
jobject scan_
 
jobject resultscanner_
 
jobjectArray cells_
 
int cell_index_
 Current position in cells_. Incremented in NextValue(). Reset in Next(). More...
 
int num_requested_cells_
 
int num_addl_requested_cols_
 
int num_cells_
 Number of cells returned from last result_.raw(). More...
 
bool all_cells_present_
 
boost::scoped_ptr< MemPoolvalue_pool_
 
int rows_cached_
 
bool cache_blocks_
 True if the scanner should set Scan.setCacheBlocks to true. More...
 
RuntimeProfile::Counterscan_setup_timer_
 HBase specific counters. More...
 

Static Private Attributes

static const int DEFAULT_ROWS_CACHED = 1024
 
static jclass scan_cl_ = NULL
 Global class references created with JniUtil. Cleanup is done in JniUtil::Cleanup(). More...
 
static jclass resultscanner_cl_ = NULL
 
static jclass result_cl_ = NULL
 
static jclass cell_cl_ = NULL
 Cell or KeyValue class depending on HBase version (see class comment). More...
 
static jclass hconstants_cl_ = NULL
 
static jclass filter_list_cl_ = NULL
 
static jclass filter_list_op_cl_ = NULL
 
static jclass single_column_value_filter_cl_ = NULL
 
static jclass compare_op_cl_ = NULL
 
static jclass scanner_timeout_ex_cl_ = NULL
 Exception thrown when a ResultScanner times out. More...
 
static jmethodID scan_ctor_ = NULL
 
static jmethodID scan_set_max_versions_id_ = NULL
 
static jmethodID scan_set_caching_id_ = NULL
 
static jmethodID scan_set_cache_blocks_id_ = NULL
 
static jmethodID scan_add_column_id_ = NULL
 
static jmethodID scan_set_filter_id_ = NULL
 
static jmethodID scan_set_start_row_id_ = NULL
 
static jmethodID scan_set_stop_row_id_ = NULL
 
static jmethodID resultscanner_next_id_ = NULL
 
static jmethodID resultscanner_close_id_ = NULL
 
static jmethodID result_isempty_id_ = NULL
 
static jmethodID result_raw_cells_id_ = NULL
 
static jmethodID cell_get_row_array_ = NULL
 
static jmethodID cell_get_family_array_ = NULL
 
static jmethodID cell_get_qualifier_array_ = NULL
 
static jmethodID cell_get_value_array_ = NULL
 
static jmethodID cell_get_family_offset_id_ = NULL
 
static jmethodID cell_get_family_length_id_ = NULL
 
static jmethodID cell_get_qualifier_offset_id_ = NULL
 
static jmethodID cell_get_qualifier_length_id_ = NULL
 
static jmethodID cell_get_row_offset_id_ = NULL
 
static jmethodID cell_get_row_length_id_ = NULL
 
static jmethodID cell_get_value_offset_id_ = NULL
 
static jmethodID cell_get_value_length_id_ = NULL
 
static jmethodID filter_list_ctor_ = NULL
 
static jmethodID filter_list_add_filter_id_ = NULL
 
static jmethodID single_column_value_filter_ctor_ = NULL
 
static jobject empty_row_ = NULL
 
static jobject must_pass_all_op_ = NULL
 
static jobjectArray compare_ops_ = NULL
 

Detailed Description

JNI wrapper class implementing minimal functionality for scanning an HBase table. Caching behavior is tuned by setting hbase.client.Scan.setCaching() and hbase.client.setCacheBlocks(). hbase.client.setCacheBlocks() is controlled by query option hbase_cache_blocks. When set to true, HBase region server will cache the blocks. Subsequent retrieval of the same data will be faster. If the table is large and the query is doing big scan, it should be set to false to avoid polluting the cache in the hbase region server. On the other hand, if the table is small and will be used several time, set it to true to improve query performance. hbase.client.Scan.setCaching() is DEFAULT_ROWS_CACHED by default. This value controls the number of rows batched together when fetching from a HBase region server. Having a high value will put more memory pressure on the HBase region server and having a small value will cause extra round trips to the HBase region server. This value can be overridden by the query option hbase_caching. FE will also suggest a max value such that it won't put too much memory pressure on the region server. HBase version compatibility: Starting from HBase 0.95.2 result rows are represented by Cells instead of KeyValues (prior HBase versions). To mitigate this API incompatibility the Cell class and its methods are replaced with corresponding KeyValue equivalents if the Cell is not found in the classpath. The HBase version detection and KeyValue/Cell replacements are performed in Init(). Note: When none of the requested family/qualifiers exist in a particular row, HBase will not return the row at all, leading to "missing" NULL values. TODO: Related to filtering, there is a special filter that allows only selecting the cells. Currently, if only the row key is requested all cells are fetched from HBase (since there is no family/qualifier restriction). TODO: Enable time travel.

Definition at line 68 of file hbase-table-scanner.h.

Member Typedef Documentation

Definition at line 101 of file hbase-table-scanner.h.

Constructor & Destructor Documentation

HBaseTableScanner::HBaseTableScanner ( HBaseScanNode scan_node,
HBaseTableFactory htable_factory,
RuntimeState state 
)

Initialize all members to NULL, except ScanNode and HTable cache scan_node is the enclosing hbase scan node and its performance counter will be updated.

Definition at line 84 of file hbase-table-scanner.cc.

References cache_blocks_, DEFAULT_ROWS_CACHED, impala::RuntimeState::query_options(), rows_cached_, scan_node_, and impala::HBaseScanNode::suggested_max_caching().

Member Function Documentation

void HBaseTableScanner::Close ( JNIEnv *  env)
int HBaseTableScanner::CompareStrings ( const std::string &  s,
void *  data,
int  length 
)
private

Lexicographically compares s with the string in data having given length. Returns a value > 0 if s is greater, a value < 0 if s is smaller, and 0 if they are equal.

Definition at line 706 of file hbase-table-scanner.cc.

Referenced by GetCurrentValue().

Status HBaseTableScanner::CreateByteArray ( JNIEnv *  env,
const std::string &  s,
jbyteArray *  bytes 
)
private

Turn strings into Java byte array.

Definition at line 486 of file hbase-table-scanner.cc.

References empty_row_, and impala::Status::OK.

Referenced by HandleResultScannerTimeout(), InitScanRange(), and ScanSetup().

Status HBaseTableScanner::GetCurrentValue ( JNIEnv *  env,
const std::string &  family,
const std::string &  qualifier,
void **  data,
int *  length,
bool is_null 
)
inlineprivate

Returns the current value of cells_[cell_index_] in *data and *length if its family/qualifier match the given family/qualifier. Otherwise, sets *is_null to true indicating a mismatch in family or qualifier.

Definition at line 641 of file hbase-table-scanner.cc.

References all_cells_present_, cell_index_, cells_, CompareStrings(), GetFamily(), GetQualifier(), GetValue(), num_cells_, impala::Status::OK, impala::JniLocalFrame::push(), and RETURN_IF_ERROR.

void HBaseTableScanner::GetFamily ( JNIEnv *  env,
jobject  cell,
void **  data,
int *  length 
)
inlineprivate

Copies the column family of cell into value_pool_ and returns it via *data and *length.

Definition at line 589 of file hbase-table-scanner.cc.

References impala::ScanNode::bytes_read_counter(), cell_get_family_array_, cell_get_family_length_id_, cell_get_family_offset_id_, COUNTER_ADD, offset, scan_node_, and value_pool_.

Referenced by GetCurrentValue().

void HBaseTableScanner::GetQualifier ( JNIEnv *  env,
jobject  cell,
void **  data,
int *  length 
)
inlineprivate

Copies the column qualifier of cell into value_pool_ and returns it via *data and *length.

Definition at line 600 of file hbase-table-scanner.cc.

References impala::ScanNode::bytes_read_counter(), cell_get_qualifier_array_, cell_get_qualifier_length_id_, cell_get_qualifier_offset_id_, COUNTER_ADD, offset, scan_node_, and value_pool_.

Referenced by GetCurrentValue().

Status HBaseTableScanner::GetRowKey ( JNIEnv *  env,
void **  key,
int *  key_length 
)

Get the current HBase row key.

Definition at line 622 of file hbase-table-scanner.cc.

References cells_, impala::Status::OK, and RETURN_ERROR_IF_EXC.

Referenced by GetRowKey().

Status HBaseTableScanner::GetRowKey ( JNIEnv *  env,
const SlotDescriptor slot_desc,
Tuple tuple 
)

Write the current HBase row key into the tuple slot. This is used for retrieving binary encoded data directly into the tuple.

Definition at line 629 of file hbase-table-scanner.cc.

References cells_, impala::ColumnType::GetByteSize(), GetRowKey(), impala::Status::OK, RETURN_ERROR_IF_EXC, impala::SlotDescriptor::type(), and WriteTupleSlot().

void HBaseTableScanner::GetRowKey ( JNIEnv *  env,
jobject  cell,
void **  data,
int *  length 
)
inlineprivate

Copies the row key of cell into value_pool_ and returns it via *data and *length.

Definition at line 578 of file hbase-table-scanner.cc.

References impala::ScanNode::bytes_read_counter(), cell_get_row_array_, cell_get_row_length_id_, cell_get_row_offset_id_, COUNTER_ADD, offset, scan_node_, and value_pool_.

Status impala::HBaseTableScanner::GetValue ( JNIEnv *  env,
const std::string &  family,
const std::string &  qualifier,
void **  value,
int *  value_length 
)

Used to fetch HBase values in order of family/qualifier. Fetch the next value matching family and qualifier into value/value_length. If there is no match, value is set to NULL and value_length to 0.

Referenced by GetCurrentValue().

Status impala::HBaseTableScanner::GetValue ( JNIEnv *  env,
const std::string &  family,
const std::string &  qualifier,
const SlotDescriptor slot_desc,
Tuple tuple 
)

Used to fetch HBase values in order of family/qualifier. Fetch the next value matching family and qualifier into the tuple slot. If there is no match, the tuple slot is set to null. This is used for retrieving binary encoded data directly into the tuple.

void HBaseTableScanner::GetValue ( JNIEnv *  env,
jobject  cell,
void **  data,
int *  length 
)
inlineprivate

Copies the value of cell into value_pool_ and returns it via *data and *length.

Definition at line 611 of file hbase-table-scanner.cc.

References impala::ScanNode::bytes_read_counter(), cell_get_value_array_, cell_get_value_length_id_, cell_get_value_offset_id_, COUNTER_ADD, offset, scan_node_, and value_pool_.

Status HBaseTableScanner::HandleResultScannerTimeout ( JNIEnv *  env,
bool timeout 
)
private

Checks for and handles a ScannerTimeoutException which is thrown if the ResultScanner times out. If a timeout occurs, the ResultScanner is re-created (with the scan range adjusted if some results have already been returned) and the exception is cleared. If any other exception is thrown, the error message is returned in the status. 'timeout' is true if a ScannerTimeoutException was thrown, false otherwise.

Definition at line 406 of file hbase-table-scanner.cc.

References cell_get_row_array_, cell_index_, cells_, CreateByteArray(), current_scan_range_idx_, impala::JniUtil::GetJniExceptionMsg(), InitScanRange(), num_cells_, impala::Status::OK, impala::JniLocalFrame::push(), RETURN_IF_ERROR, scanner_timeout_ex_cl_, and impala::HBaseTableScanner::ScanRange::stop_key().

Referenced by Next().

Status HBaseTableScanner::InitScanRange ( JNIEnv *  env,
const ScanRange scan_range 
)
private
Status HBaseTableScanner::InitScanRange ( JNIEnv *  env,
jbyteArray  start_bytes,
jbyteArray  end_bytes 
)
private

Initialize the scan range to the scan range specified by the start and end byte arrays

Definition at line 445 of file hbase-table-scanner.cc.

References htable_, impala::Status::OK, resultscanner_, resultscanner_close_id_, RETURN_ERROR_IF_EXC, RETURN_IF_ERROR, scan_, scan_set_start_row_id_, and scan_set_stop_row_id_.

void impala::HBaseTableScanner::set_num_requested_cells ( int  num_requested_cells)
inline

Definition at line 138 of file hbase-table-scanner.h.

References num_requested_cells_.

Status HBaseTableScanner::StartScan ( JNIEnv *  env,
const TupleDescriptor tuple_desc,
const ScanRangeVector scan_range_vector,
const std::vector< THBaseFilter > &  filters 
)

Perform a table scan, retrieving the families/qualifiers referenced in tuple_desc. If start_/stop_key is not empty, is used for the corresponding role in the scan. Note: scan_range_vector cannot be modified for the duration of the scan.

Definition at line 469 of file hbase-table-scanner.cc.

References current_scan_range_idx_, InitScanRange(), resultscanner_, RETURN_IF_ERROR, scan_range_vector_, and ScanSetup().

void HBaseTableScanner::WriteTupleSlot ( const SlotDescriptor slot_desc,
Tuple tuple,
void *  data 
)
inlineprivate

Write to a tuple slot with the given hbase binary formatted data, which is in big endian. Only boolean, tinyint, smallint, int, bigint, float and double should have binary formatted data.

Definition at line 572 of file hbase-table-scanner.cc.

References impala::BitUtil::ByteSwap(), impala::ColumnType::GetByteSize(), impala::Tuple::GetSlot(), impala::SlotDescriptor::tuple_offset(), and impala::SlotDescriptor::type().

Referenced by GetRowKey().

Member Data Documentation

bool impala::HBaseTableScanner::all_cells_present_
private

Indicates whether all requested cells are present in the current cells_. If set to true, all family/qualifier comparisons are avoided in NextValue().

Definition at line 231 of file hbase-table-scanner.h.

Referenced by GetCurrentValue(), and Next().

bool impala::HBaseTableScanner::cache_blocks_
private

True if the scanner should set Scan.setCacheBlocks to true.

Definition at line 242 of file hbase-table-scanner.h.

Referenced by HBaseTableScanner(), and ScanSetup().

jclass HBaseTableScanner::cell_cl_ = NULL
staticprivate

Cell or KeyValue class depending on HBase version (see class comment).

Definition at line 154 of file hbase-table-scanner.h.

Referenced by Init().

jmethodID HBaseTableScanner::cell_get_family_array_ = NULL
staticprivate

Definition at line 176 of file hbase-table-scanner.h.

Referenced by GetFamily(), and Init().

jmethodID HBaseTableScanner::cell_get_family_length_id_ = NULL
staticprivate

Definition at line 180 of file hbase-table-scanner.h.

Referenced by GetFamily(), and Init().

jmethodID HBaseTableScanner::cell_get_family_offset_id_ = NULL
staticprivate

Definition at line 179 of file hbase-table-scanner.h.

Referenced by GetFamily(), and Init().

jmethodID HBaseTableScanner::cell_get_qualifier_array_ = NULL
staticprivate

Definition at line 177 of file hbase-table-scanner.h.

Referenced by GetQualifier(), and Init().

jmethodID HBaseTableScanner::cell_get_qualifier_length_id_ = NULL
staticprivate

Definition at line 182 of file hbase-table-scanner.h.

Referenced by GetQualifier(), and Init().

jmethodID HBaseTableScanner::cell_get_qualifier_offset_id_ = NULL
staticprivate

Definition at line 181 of file hbase-table-scanner.h.

Referenced by GetQualifier(), and Init().

jmethodID HBaseTableScanner::cell_get_row_array_ = NULL
staticprivate

Definition at line 175 of file hbase-table-scanner.h.

Referenced by GetRowKey(), HandleResultScannerTimeout(), and Init().

jmethodID HBaseTableScanner::cell_get_row_length_id_ = NULL
staticprivate

Definition at line 184 of file hbase-table-scanner.h.

Referenced by GetRowKey(), and Init().

jmethodID HBaseTableScanner::cell_get_row_offset_id_ = NULL
staticprivate

Definition at line 183 of file hbase-table-scanner.h.

Referenced by GetRowKey(), and Init().

jmethodID HBaseTableScanner::cell_get_value_array_ = NULL
staticprivate

Definition at line 178 of file hbase-table-scanner.h.

Referenced by GetValue(), and Init().

jmethodID HBaseTableScanner::cell_get_value_length_id_ = NULL
staticprivate

Definition at line 186 of file hbase-table-scanner.h.

Referenced by GetValue(), and Init().

jmethodID HBaseTableScanner::cell_get_value_offset_id_ = NULL
staticprivate

Definition at line 185 of file hbase-table-scanner.h.

Referenced by GetValue(), and Init().

int impala::HBaseTableScanner::cell_index_
private

Current position in cells_. Incremented in NextValue(). Reset in Next().

Definition at line 216 of file hbase-table-scanner.h.

Referenced by GetCurrentValue(), HandleResultScannerTimeout(), and Next().

jobjectArray impala::HBaseTableScanner::cells_
private

Helper members for retrieving results from a scan. Updated in Next() and used by GetRowKey() and GetValue(). Result of resultscanner_.next().raw() Java type Cell[] or KeyValue[] depending on HBase version.

Definition at line 213 of file hbase-table-scanner.h.

Referenced by Close(), GetCurrentValue(), GetRowKey(), HandleResultScannerTimeout(), and Next().

jclass HBaseTableScanner::compare_op_cl_ = NULL
staticprivate

Definition at line 159 of file hbase-table-scanner.h.

Referenced by Init().

jobjectArray HBaseTableScanner::compare_ops_ = NULL
staticprivate

Definition at line 193 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

int impala::HBaseTableScanner::current_scan_range_idx_
private

Definition at line 200 of file hbase-table-scanner.h.

Referenced by HandleResultScannerTimeout(), Next(), and StartScan().

const int impala::HBaseTableScanner::DEFAULT_ROWS_CACHED = 1024
staticprivate

Definition at line 143 of file hbase-table-scanner.h.

Referenced by HBaseTableScanner().

jobject HBaseTableScanner::empty_row_ = NULL
staticprivate

Definition at line 191 of file hbase-table-scanner.h.

Referenced by CreateByteArray(), and Init().

jmethodID HBaseTableScanner::filter_list_add_filter_id_ = NULL
staticprivate

Definition at line 188 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

jclass HBaseTableScanner::filter_list_cl_ = NULL
staticprivate

Definition at line 156 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

jmethodID HBaseTableScanner::filter_list_ctor_ = NULL
staticprivate

Definition at line 187 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

jclass HBaseTableScanner::filter_list_op_cl_ = NULL
staticprivate

Definition at line 157 of file hbase-table-scanner.h.

Referenced by Init().

jclass HBaseTableScanner::hconstants_cl_ = NULL
staticprivate

Definition at line 155 of file hbase-table-scanner.h.

Referenced by Init().

boost::scoped_ptr<HBaseTable> impala::HBaseTableScanner::htable_
private

C++ wrapper for HTable.

Definition at line 203 of file hbase-table-scanner.h.

Referenced by Close(), InitScanRange(), and ScanSetup().

HBaseTableFactory* impala::HBaseTableScanner::htable_factory_
private

HBase Table factory from runtime state.

Definition at line 196 of file hbase-table-scanner.h.

Referenced by ScanSetup().

jobject HBaseTableScanner::must_pass_all_op_ = NULL
staticprivate

Definition at line 192 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

int impala::HBaseTableScanner::num_addl_requested_cols_
private

number of cols requested in addition to num_requested_cells_, to work around hbase bug

Definition at line 224 of file hbase-table-scanner.h.

Referenced by Next(), and ScanSetup().

int impala::HBaseTableScanner::num_cells_
private

Number of cells returned from last result_.raw().

Definition at line 227 of file hbase-table-scanner.h.

Referenced by GetCurrentValue(), HandleResultScannerTimeout(), and Next().

int impala::HBaseTableScanner::num_requested_cells_
private

Number of requested cells (i.e., the number of added family/qualifier pairs). Set in StartScan().

Definition at line 220 of file hbase-table-scanner.h.

Referenced by Next(), and set_num_requested_cells().

jclass HBaseTableScanner::result_cl_ = NULL
staticprivate

Definition at line 152 of file hbase-table-scanner.h.

Referenced by Init().

jmethodID HBaseTableScanner::result_isempty_id_ = NULL
staticprivate

Definition at line 173 of file hbase-table-scanner.h.

Referenced by Init(), and Next().

jmethodID HBaseTableScanner::result_raw_cells_id_ = NULL
staticprivate

Definition at line 174 of file hbase-table-scanner.h.

Referenced by Init(), and Next().

jobject impala::HBaseTableScanner::resultscanner_
private

Definition at line 208 of file hbase-table-scanner.h.

Referenced by Close(), InitScanRange(), Next(), and StartScan().

jclass HBaseTableScanner::resultscanner_cl_ = NULL
staticprivate

Definition at line 151 of file hbase-table-scanner.h.

Referenced by Init().

jmethodID HBaseTableScanner::resultscanner_close_id_ = NULL
staticprivate

Definition at line 172 of file hbase-table-scanner.h.

Referenced by Close(), Init(), and InitScanRange().

jmethodID HBaseTableScanner::resultscanner_next_id_ = NULL
staticprivate

Definition at line 171 of file hbase-table-scanner.h.

Referenced by Init(), and Next().

int impala::HBaseTableScanner::rows_cached_
private

Number of rows for caching that will be passed to scanners. Set in the HBase call Scan.setCaching();

Definition at line 239 of file hbase-table-scanner.h.

Referenced by HBaseTableScanner(), and ScanSetup().

jobject impala::HBaseTableScanner::scan_
private

Instances related to scanning a table. Set in StartScan(). They are global references because they cannot be automatically garbage collected by the JVM.

Definition at line 207 of file hbase-table-scanner.h.

Referenced by Close(), InitScanRange(), and ScanSetup().

jmethodID HBaseTableScanner::scan_add_column_id_ = NULL
staticprivate

Definition at line 167 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

jclass HBaseTableScanner::scan_cl_ = NULL
staticprivate

Global class references created with JniUtil. Cleanup is done in JniUtil::Cleanup().

Definition at line 150 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

jmethodID HBaseTableScanner::scan_ctor_ = NULL
staticprivate

Definition at line 163 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

HBaseScanNode* impala::HBaseTableScanner::scan_node_
private

The enclosing HBaseScanNode.

Definition at line 146 of file hbase-table-scanner.h.

Referenced by GetFamily(), GetQualifier(), GetRowKey(), GetValue(), HBaseTableScanner(), and Next().

const ScanRangeVector* impala::HBaseTableScanner::scan_range_vector_
private

Vector of ScanRange.

Definition at line 199 of file hbase-table-scanner.h.

Referenced by Next(), and StartScan().

jmethodID HBaseTableScanner::scan_set_cache_blocks_id_ = NULL
staticprivate

Definition at line 166 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

jmethodID HBaseTableScanner::scan_set_caching_id_ = NULL
staticprivate

Definition at line 165 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

jmethodID HBaseTableScanner::scan_set_filter_id_ = NULL
staticprivate

Definition at line 168 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

jmethodID HBaseTableScanner::scan_set_max_versions_id_ = NULL
staticprivate

Definition at line 164 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

jmethodID HBaseTableScanner::scan_set_start_row_id_ = NULL
staticprivate

Definition at line 169 of file hbase-table-scanner.h.

Referenced by Init(), and InitScanRange().

jmethodID HBaseTableScanner::scan_set_stop_row_id_ = NULL
staticprivate

Definition at line 170 of file hbase-table-scanner.h.

Referenced by Init(), and InitScanRange().

RuntimeProfile::Counter* impala::HBaseTableScanner::scan_setup_timer_
private

HBase specific counters.

Definition at line 245 of file hbase-table-scanner.h.

Referenced by ScanSetup().

jclass HBaseTableScanner::scanner_timeout_ex_cl_ = NULL
staticprivate

Exception thrown when a ResultScanner times out.

Definition at line 161 of file hbase-table-scanner.h.

Referenced by Close(), HandleResultScannerTimeout(), and Init().

jclass HBaseTableScanner::single_column_value_filter_cl_ = NULL
staticprivate

Definition at line 158 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

jmethodID HBaseTableScanner::single_column_value_filter_ctor_ = NULL
staticprivate

Definition at line 189 of file hbase-table-scanner.h.

Referenced by Init(), and ScanSetup().

RuntimeState* impala::HBaseTableScanner::state_
private

Definition at line 147 of file hbase-table-scanner.h.

Referenced by Close().

boost::scoped_ptr<MemPool> impala::HBaseTableScanner::value_pool_
private

Pool for allocating keys/values retrieved from HBase. Memory allocated from this pool is valid until the following Next().

Definition at line 235 of file hbase-table-scanner.h.

Referenced by Close(), GetFamily(), GetQualifier(), GetRowKey(), GetValue(), and Next().


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