This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new 10ffdbb655f branch-3.0: [fix](mow) Fix mow agg cache version check
#55330 (#55474)
10ffdbb655f is described below
commit 10ffdbb655f7a1ed79716f8227cf1794aa64caa0
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Sep 5 09:43:21 2025 +0800
branch-3.0: [fix](mow) Fix mow agg cache version check #55330 (#55474)
Cherry-picked from #55330
Co-authored-by: meiyi <[email protected]>
---
be/src/olap/tablet_meta.cpp | 30 ++++++++++++------------------
be/src/olap/tablet_meta.h | 2 +-
2 files changed, 13 insertions(+), 19 deletions(-)
diff --git a/be/src/olap/tablet_meta.cpp b/be/src/olap/tablet_meta.cpp
index 19250c29202..d9b6f762177 100644
--- a/be/src/olap/tablet_meta.cpp
+++ b/be/src/olap/tablet_meta.cpp
@@ -1012,25 +1012,19 @@ void
TabletMeta::_check_mow_rowset_cache_version_size(size_t rowset_cache_versio
rowset_cache_version_size > _rs_metas.size() + _stale_rs_metas.size())
{
std::stringstream ss;
auto rowset_ids = _delete_bitmap->get_rowset_cache_version();
- for (const auto& rowset_id : rowset_ids) {
- bool found = false;
+ std::set<std::string> tablet_rowset_ids;
+ {
+ std::shared_lock rlock(_meta_lock);
for (auto& rs_meta : _rs_metas) {
- if (rs_meta->rowset_id() == rowset_id) {
- found = true;
- break;
- }
- }
- if (found) {
- continue;
+ tablet_rowset_ids.emplace(rs_meta->rowset_id().to_string());
}
for (auto& rs_meta : _stale_rs_metas) {
- if (rs_meta->rowset_id() == rowset_id) {
- found = true;
- break;
- }
+ tablet_rowset_ids.emplace(rs_meta->rowset_id().to_string());
}
- if (!found) {
- ss << rowset_id.to_string() << ", ";
+ }
+ for (const auto& rowset_id : rowset_ids) {
+ if (tablet_rowset_ids.find(rowset_id) == tablet_rowset_ids.end()) {
+ ss << rowset_id << ", ";
}
}
// size(rowset_cache_version) <= size(_rs_metas) +
size(_stale_rs_metas) + size(_unused_rs)
@@ -1412,11 +1406,11 @@ void DeleteBitmap::clear_rowset_cache_version() {
VLOG_DEBUG << "clear agg cache version for tablet=" << _tablet_id;
}
-std::set<RowsetId> DeleteBitmap::get_rowset_cache_version() {
- std::set<RowsetId> set;
+std::set<std::string> DeleteBitmap::get_rowset_cache_version() {
+ std::set<std::string> set;
std::shared_lock l(_rowset_cache_version_lock);
for (auto& [k, _] : _rowset_cache_version) {
- set.insert(k);
+ set.insert(k.to_string());
}
return set;
}
diff --git a/be/src/olap/tablet_meta.h b/be/src/olap/tablet_meta.h
index 39dba82a17e..166bc606486 100644
--- a/be/src/olap/tablet_meta.h
+++ b/be/src/olap/tablet_meta.h
@@ -582,7 +582,7 @@ public:
void clear_rowset_cache_version();
- std::set<RowsetId> get_rowset_cache_version();
+ std::set<std::string> get_rowset_cache_version();
/**
* Calculate diffset with given `key_set`. All entries with keys contained
in this delete bitmap but not
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]