[improve](jdbc catalog) add profile for jdbc scan (#27447)

This commit is contained in:
zy-kkk
2023-11-27 10:33:39 +08:00
committed by GitHub
parent cd6c61347d
commit d10a708fa2
4 changed files with 23 additions and 28 deletions

View File

@ -45,17 +45,7 @@ NewJdbcScanner::NewJdbcScanner(RuntimeState* state, NewJdbcScanNode* parent, int
_query_string(query_string),
_tuple_desc(nullptr),
_table_type(table_type) {
_is_init = false;
_load_jar_timer = ADD_TIMER(get_parent()->_scanner_profile, "LoadJarTime");
_init_connector_timer = ADD_TIMER(get_parent()->_scanner_profile, "InitConnectorTime");
_check_type_timer = ADD_TIMER(get_parent()->_scanner_profile, "CheckTypeTime");
_get_data_timer = ADD_TIMER(get_parent()->_scanner_profile, "GetDataTime");
_call_jni_next_timer =
ADD_CHILD_TIMER(get_parent()->_scanner_profile, "CallJniNextTime", "GetDataTime");
_convert_batch_timer =
ADD_CHILD_TIMER(get_parent()->_scanner_profile, "ConvertBatchTime", "GetDataTime");
_execte_read_timer = ADD_TIMER(get_parent()->_scanner_profile, "ExecteReadTime");
_connector_close_timer = ADD_TIMER(get_parent()->_scanner_profile, "ConnectorCloseTime");
_init_profile(get_parent()->_scanner_profile);
}
NewJdbcScanner::NewJdbcScanner(RuntimeState* state,
@ -68,17 +58,7 @@ NewJdbcScanner::NewJdbcScanner(RuntimeState* state,
_query_string(query_string),
_tuple_desc(nullptr),
_table_type(table_type) {
_is_init = false;
_load_jar_timer = ADD_TIMER(local_state->_scanner_profile, "LoadJarTime");
_init_connector_timer = ADD_TIMER(local_state->_scanner_profile, "InitConnectorTime");
_check_type_timer = ADD_TIMER(local_state->_scanner_profile, "CheckTypeTime");
_get_data_timer = ADD_TIMER(local_state->_scanner_profile, "GetDataTime");
_call_jni_next_timer =
ADD_CHILD_TIMER(local_state->_scanner_profile, "CallJniNextTime", "GetDataTime");
_convert_batch_timer =
ADD_CHILD_TIMER(local_state->_scanner_profile, "ConvertBatchTime", "GetDataTime");
_execte_read_timer = ADD_TIMER(local_state->_scanner_profile, "ExecteReadTime");
_connector_close_timer = ADD_TIMER(local_state->_scanner_profile, "ConnectorCloseTime");
_init_profile(local_state->_scanner_profile);
}
Status NewJdbcScanner::prepare(RuntimeState* state, const VExprContextSPtrs& conjuncts) {
@ -192,14 +172,26 @@ Status NewJdbcScanner::_get_block_impl(RuntimeState* state, Block* block, bool*
return Status::OK();
}
void NewJdbcScanner::_init_profile(const std::shared_ptr<RuntimeProfile>& profile) {
_is_init = false;
_load_jar_timer = ADD_TIMER(profile, "LoadJarTime");
_init_connector_timer = ADD_TIMER(profile, "InitConnectorTime");
_check_type_timer = ADD_TIMER(profile, "CheckTypeTime");
_get_data_timer = ADD_TIMER(profile, "GetDataTime");
_get_block_address_timer = ADD_CHILD_TIMER(profile, "GetBlockAddressTime", "GetDataTime");
_fill_block_timer = ADD_CHILD_TIMER(profile, "FillBlockTime", "GetDataTime");
_execte_read_timer = ADD_TIMER(profile, "ExecteReadTime");
_connector_close_timer = ADD_TIMER(profile, "ConnectorCloseTime");
}
void NewJdbcScanner::_update_profile() {
JdbcConnector::JdbcStatistic& jdbc_statistic = _jdbc_connector->get_jdbc_statistic();
COUNTER_UPDATE(_load_jar_timer, jdbc_statistic._load_jar_timer);
COUNTER_UPDATE(_init_connector_timer, jdbc_statistic._init_connector_timer);
COUNTER_UPDATE(_check_type_timer, jdbc_statistic._check_type_timer);
COUNTER_UPDATE(_get_data_timer, jdbc_statistic._get_data_timer);
COUNTER_UPDATE(_call_jni_next_timer, jdbc_statistic._call_jni_next_timer);
COUNTER_UPDATE(_convert_batch_timer, jdbc_statistic._convert_batch_timer);
COUNTER_UPDATE(_get_block_address_timer, jdbc_statistic._get_block_address_timer);
COUNTER_UPDATE(_fill_block_timer, jdbc_statistic._fill_block_timer);
COUNTER_UPDATE(_execte_read_timer, jdbc_statistic._execte_read_timer);
COUNTER_UPDATE(_connector_close_timer, jdbc_statistic._connector_close_timer);
}

View File

@ -63,13 +63,14 @@ protected:
RuntimeProfile::Counter* _load_jar_timer = nullptr;
RuntimeProfile::Counter* _init_connector_timer = nullptr;
RuntimeProfile::Counter* _get_data_timer = nullptr;
RuntimeProfile::Counter* _call_jni_next_timer = nullptr;
RuntimeProfile::Counter* _convert_batch_timer = nullptr;
RuntimeProfile::Counter* _get_block_address_timer = nullptr;
RuntimeProfile::Counter* _fill_block_timer = nullptr;
RuntimeProfile::Counter* _check_type_timer = nullptr;
RuntimeProfile::Counter* _execte_read_timer = nullptr;
RuntimeProfile::Counter* _connector_close_timer = nullptr;
private:
void _init_profile(const std::shared_ptr<RuntimeProfile>& profile);
void _update_profile();
bool _jdbc_eos;

View File

@ -218,6 +218,7 @@ Status JdbcConnector::get_next(bool* eos, Block* block, int batch_size) {
auto slots = _tuple_desc->slots();
jobject map = _get_reader_params(block, env, column_size);
SCOPED_RAW_TIMER(&_jdbc_statistic._get_block_address_timer);
long address =
env->CallLongMethod(_executor_obj, _executor_get_block_address_id, batch_size, map);
RETURN_IF_ERROR(JniUtil::GetJniExceptionMsg(env));
@ -227,6 +228,7 @@ Status JdbcConnector::get_next(bool* eos, Block* block, int batch_size) {
for (size_t i = 0; i < column_size; ++i) {
all_columns.push_back(i);
}
SCOPED_RAW_TIMER(&_jdbc_statistic._fill_block_timer);
Status fill_block_status = JniConnector::fill_block(block, all_columns, address);
if (!fill_block_status) {
return fill_block_status;

View File

@ -64,8 +64,8 @@ public:
int64_t _load_jar_timer = 0;
int64_t _init_connector_timer = 0;
int64_t _get_data_timer = 0;
int64_t _call_jni_next_timer = 0;
int64_t _convert_batch_timer = 0;
int64_t _get_block_address_timer = 0;
int64_t _fill_block_timer = 0;
int64_t _check_type_timer = 0;
int64_t _execte_read_timer = 0;
int64_t _connector_close_timer = 0;