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