Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions be/src/vec/exec/scan/scanner_context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -405,9 +405,11 @@ void ScannerContext::stop_scanners(RuntimeState* state) {
std::stringstream scanner_statistics;
std::stringstream scanner_rows_read;
std::stringstream scanner_wait_worker_time;
std::stringstream scanner_projection;
scanner_statistics << "[";
scanner_rows_read << "[";
scanner_wait_worker_time << "[";
scanner_projection << "[";
// Scanners can in 3 state
// state 1: in scanner context, not scheduled
// state 2: in scanner worker pool's queue, scheduled but not running
Expand All @@ -421,6 +423,9 @@ void ScannerContext::stop_scanners(RuntimeState* state) {
scanner_statistics << PrettyPrinter::print(scanner->_scanner->get_time_cost_ns(),
TUnit::TIME_NS)
<< ", ";
scanner_projection << PrettyPrinter::print(scanner->_scanner->projection_time(),
TUnit::TIME_NS)
<< ", ";
scanner_rows_read << PrettyPrinter::print(scanner->_scanner->get_rows_read(),
TUnit::UNIT)
<< ", ";
Expand All @@ -434,9 +439,11 @@ void ScannerContext::stop_scanners(RuntimeState* state) {
scanner_statistics << "]";
scanner_rows_read << "]";
scanner_wait_worker_time << "]";
scanner_projection << "]";
_scanner_profile->add_info_string("PerScannerRunningTime", scanner_statistics.str());
_scanner_profile->add_info_string("PerScannerRowsRead", scanner_rows_read.str());
_scanner_profile->add_info_string("PerScannerWaitTime", scanner_wait_worker_time.str());
_scanner_profile->add_info_string("PerScannerProjectionTime", scanner_projection.str());
}

_blocks_queue_added_cv.notify_one();
Expand Down
1 change: 1 addition & 0 deletions be/src/vec/exec/scan/vscanner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ Status VScanner::_filter_output_block(Block* block) {

Status VScanner::_do_projections(vectorized::Block* origin_block, vectorized::Block* output_block) {
SCOPED_RAW_TIMER(&_per_scanner_timer);
SCOPED_RAW_TIMER(&_projection_timer);

const size_t rows = origin_block->rows();
if (rows == 0) {
Expand Down
2 changes: 2 additions & 0 deletions be/src/vec/exec/scan/vscanner.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ class VScanner {

int64_t get_time_cost_ns() const { return _per_scanner_timer; }

int64_t projection_time() const { return _projection_timer; }
int64_t get_rows_read() const { return _num_rows_read; }

bool is_init() const { return _is_init; }
Expand Down Expand Up @@ -237,6 +238,7 @@ class VScanner {

ScannerCounter _counter;
int64_t _per_scanner_timer = 0;
int64_t _projection_timer = 0;

bool _should_stop = false;
};
Expand Down