Skip to content

Commit babd18a

Browse files
committed
fix
1 parent 09d90bc commit babd18a

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

be/src/olap/tablet_meta.cpp

+22-11
Original file line numberDiff line numberDiff line change
@@ -1314,19 +1314,30 @@ std::shared_ptr<roaring::Roaring> DeleteBitmap::get_agg(const BitmapKey& bmk) co
13141314
// of cache entries in some cases?
13151315
if (val == nullptr) { // Renew if needed, put a new Value to cache
13161316
val = new AggCache::Value();
1317-
{
1318-
std::shared_lock l(lock);
1319-
Version start_version = 0;
1320-
auto it0 = _rowset_cache_version.find(std::get<0>(bmk));
1321-
if (it0 != _rowset_cache_version.end()) {
1322-
auto it1 = it0->second.find(std::get<1>(bmk));
1323-
if (it1 != it0->second.end()) {
1324-
start_version = it1->second;// + 1;
1325-
LOG(INFO) << "sout: start agg for tablet=" << _tablet_id
1326-
<< ", rowset=" << std::get<0>(bmk).to_string()
1327-
<< ", segment=" << std::get<1>(bmk) << ", version=" << start_version;
1317+
Version start_version = 0;
1318+
auto it0 = _rowset_cache_version.find(std::get<0>(bmk));
1319+
if (it0 != _rowset_cache_version.end()) {
1320+
auto it1 = it0->second.find(std::get<1>(bmk));
1321+
if (it1 != it0->second.end()) {
1322+
start_version = it1->second; // + 1;
1323+
BitmapKey agg_bmk = {std::get<0>(bmk), std::get<1>(bmk), start_version};
1324+
std::string agg_key_str = agg_cache_key(_tablet_id, agg_bmk); // Cache key container
1325+
CacheKey agg_key(agg_key_str);
1326+
Cache::Handle* handle2 = _agg_cache->repr()->lookup(agg_key);
1327+
if (handle == nullptr) {
1328+
start_version = 0;
1329+
val = new AggCache::Value();
1330+
} else {
1331+
val = reinterpret_cast<AggCache::Value*>(_agg_cache->repr()->value(handle));
13281332
}
1333+
LOG(INFO) << "sout: start agg for tablet=" << _tablet_id
1334+
<< ", rowset=" << std::get<0>(bmk).to_string()
1335+
<< ", segment=" << std::get<1>(bmk) << ", version=" << it1->second
1336+
<< ", final version=" << start_version;
13291337
}
1338+
}
1339+
{
1340+
std::shared_lock l(lock);
13301341
DeleteBitmap::BitmapKey start {std::get<0>(bmk), std::get<1>(bmk), start_version};
13311342
for (auto it = delete_bitmap.lower_bound(start); it != delete_bitmap.end(); ++it) {
13321343
auto& [k, bm] = *it;

0 commit comments

Comments
 (0)