You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by da...@apache.org on 2022/07/28 02:32:31 UTC

[doris] branch master updated: [feature-wip](unique-key-merge-on-write) update counter, DSIP-018 (#11252)

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 <48...@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-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org