This is an automated email from the ASF dual-hosted git repository. dataroaring 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 d4b4c9a9bf [feature-wip](unique-key-merge-on-write) update counter, DSIP-018 (#11252) d4b4c9a9bf is described below commit d4b4c9a9bf02eb78af0ac300e224a88a09f484fb Author: zhannngchen <48427519+zhannngc...@users.noreply.github.com> AuthorDate: Thu Jul 28 10:32:26 2022 +0800 [feature-wip](unique-key-merge-on-write) update counter, DSIP-018 (#11252) --- be/src/exec/olap_scanner.cpp | 1 + be/src/olap/olap_common.h | 1 + be/src/olap/reader.h | 5 +++-- be/src/olap/rowset/beta_rowset_reader.h | 5 +++-- be/src/olap/rowset/segment_v2/segment_iterator.cpp | 2 ++ be/src/vec/exec/volap_scanner.cpp | 1 + 6 files changed, 11 insertions(+), 4 deletions(-) diff --git a/be/src/exec/olap_scanner.cpp b/be/src/exec/olap_scanner.cpp index a7fc05071b..e49b322652 100644 --- a/be/src/exec/olap_scanner.cpp +++ b/be/src/exec/olap_scanner.cpp @@ -571,6 +571,7 @@ void OlapScanner::update_counter() { COUNTER_UPDATE(_parent->_stats_filtered_counter, stats.rows_stats_filtered); COUNTER_UPDATE(_parent->_bf_filtered_counter, stats.rows_bf_filtered); COUNTER_UPDATE(_parent->_del_filtered_counter, stats.rows_del_filtered); + COUNTER_UPDATE(_parent->_del_filtered_counter, stats.rows_del_by_bitmap); COUNTER_UPDATE(_parent->_del_filtered_counter, stats.rows_vec_del_cond_filtered); COUNTER_UPDATE(_parent->_conditions_filtered_counter, stats.rows_conditions_filtered); diff --git a/be/src/olap/olap_common.h b/be/src/olap/olap_common.h index 1763a7b94c..f665de32a4 100644 --- a/be/src/olap/olap_common.h +++ b/be/src/olap/olap_common.h @@ -309,6 +309,7 @@ struct OlapReaderStatistics { // and it is also used to record the replaced rows in the Unique key model in the "Reader" class. // In segmentv2, if you want to get all filtered rows, you need the sum of "rows_del_filtered" and "rows_conditions_filtered". int64_t rows_del_filtered = 0; + int64_t rows_del_by_bitmap = 0; // the number of rows filtered by various column indexes. int64_t rows_conditions_filtered = 0; diff --git a/be/src/olap/reader.h b/be/src/olap/reader.h index 2108d1c976..8f999267be 100644 --- a/be/src/olap/reader.h +++ b/be/src/olap/reader.h @@ -130,8 +130,9 @@ public: uint64_t merged_rows() const { return _merged_rows; } uint64_t filtered_rows() const { - return _stats.rows_del_filtered + _stats.rows_conditions_filtered + - _stats.rows_vec_del_cond_filtered + _stats.rows_vec_cond_filtered; + return _stats.rows_del_filtered + _stats.rows_del_by_bitmap + + _stats.rows_conditions_filtered + _stats.rows_vec_del_cond_filtered + + _stats.rows_vec_cond_filtered; } void set_batch_size(int batch_size) { _batch_size = batch_size; } diff --git a/be/src/olap/rowset/beta_rowset_reader.h b/be/src/olap/rowset/beta_rowset_reader.h index d307b5606c..bbf8d84962 100644 --- a/be/src/olap/rowset/beta_rowset_reader.h +++ b/be/src/olap/rowset/beta_rowset_reader.h @@ -50,8 +50,9 @@ public: // Return the total number of filtered rows, will be used for validation of schema change int64_t filtered_rows() override { - return _stats->rows_del_filtered + _stats->rows_conditions_filtered + - _stats->rows_vec_del_cond_filtered + _stats->rows_vec_cond_filtered; + return _stats->rows_del_filtered + _stats->rows_del_by_bitmap + + _stats->rows_conditions_filtered + _stats->rows_vec_del_cond_filtered + + _stats->rows_vec_cond_filtered; } RowsetTypePB type() const override { return RowsetTypePB::BETA_ROWSET; } diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp b/be/src/olap/rowset/segment_v2/segment_iterator.cpp index 3acb511b46..a90b31aad6 100644 --- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp +++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp @@ -156,7 +156,9 @@ Status SegmentIterator::_init(bool is_vec) { // Remove rows that have been marked deleted if (_opts.delete_bitmap.count(segment_id()) > 0 && _opts.delete_bitmap[segment_id()] != nullptr) { + size_t pre_size = _row_bitmap.cardinality(); _row_bitmap -= *(_opts.delete_bitmap[segment_id()]); + _opts.stats->rows_del_by_bitmap += (pre_size - _row_bitmap.cardinality()); } _range_iter.reset(new BitmapRangeIterator(_row_bitmap)); return Status::OK(); diff --git a/be/src/vec/exec/volap_scanner.cpp b/be/src/vec/exec/volap_scanner.cpp index b5088cad23..e9c9b43732 100644 --- a/be/src/vec/exec/volap_scanner.cpp +++ b/be/src/vec/exec/volap_scanner.cpp @@ -387,6 +387,7 @@ void VOlapScanner::update_counter() { COUNTER_UPDATE(_parent->_stats_filtered_counter, stats.rows_stats_filtered); COUNTER_UPDATE(_parent->_bf_filtered_counter, stats.rows_bf_filtered); COUNTER_UPDATE(_parent->_del_filtered_counter, stats.rows_del_filtered); + COUNTER_UPDATE(_parent->_del_filtered_counter, stats.rows_del_by_bitmap); COUNTER_UPDATE(_parent->_del_filtered_counter, stats.rows_vec_del_cond_filtered); COUNTER_UPDATE(_parent->_conditions_filtered_counter, stats.rows_conditions_filtered); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org