This is an automated email from the ASF dual-hosted git repository.
zykkk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new d10a708fa28 [improve](jdbc catalog) add profile for jdbc scan (#27447)
d10a708fa28 is described below
commit d10a708fa2814dc8a9a92857cfcbfb0c5dcc92ef
Author: zy-kkk <[email protected]>
AuthorDate: Mon Nov 27 10:33:39 2023 +0800
[improve](jdbc catalog) add profile for jdbc scan (#27447)
---
be/src/vec/exec/scan/new_jdbc_scanner.cpp | 40 +++++++++++++------------------
be/src/vec/exec/scan/new_jdbc_scanner.h | 5 ++--
be/src/vec/exec/vjdbc_connector.cpp | 2 ++
be/src/vec/exec/vjdbc_connector.h | 4 ++--
4 files changed, 23 insertions(+), 28 deletions(-)
diff --git a/be/src/vec/exec/scan/new_jdbc_scanner.cpp
b/be/src/vec/exec/scan/new_jdbc_scanner.cpp
index 89e5d8e5d85..4f90edde3bb 100644
--- a/be/src/vec/exec/scan/new_jdbc_scanner.cpp
+++ b/be/src/vec/exec/scan/new_jdbc_scanner.cpp
@@ -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);
}
diff --git a/be/src/vec/exec/scan/new_jdbc_scanner.h
b/be/src/vec/exec/scan/new_jdbc_scanner.h
index cdb9525eb63..cca0a29fe77 100644
--- a/be/src/vec/exec/scan/new_jdbc_scanner.h
+++ b/be/src/vec/exec/scan/new_jdbc_scanner.h
@@ -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;
diff --git a/be/src/vec/exec/vjdbc_connector.cpp
b/be/src/vec/exec/vjdbc_connector.cpp
index b28717eafcf..d3debc688da 100644
--- a/be/src/vec/exec/vjdbc_connector.cpp
+++ b/be/src/vec/exec/vjdbc_connector.cpp
@@ -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;
diff --git a/be/src/vec/exec/vjdbc_connector.h
b/be/src/vec/exec/vjdbc_connector.h
index 02da0587f7b..a62e5e6efa6 100644
--- a/be/src/vec/exec/vjdbc_connector.h
+++ b/be/src/vec/exec/vjdbc_connector.h
@@ -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;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]