cambyzju commented on code in PR #66812:
URL: https://github.com/apache/doris/pull/66812#discussion_r3829610242


##########
be/src/exprs/function/dictionary_factory.cpp:
##########
@@ -32,30 +32,34 @@ DictionaryFactory::DictionaryFactory()
 
 DictionaryFactory::~DictionaryFactory() {
     SCOPED_SWITCH_THREAD_MEM_TRACKER_LIMITER(_mem_tracker);
-    _dict_id_to_dict_map.clear();
-    _dict_id_to_version_id_map.clear();
+    _dict_id_to_versioned_map.clear();
 }
 
 void DictionaryFactory::get_dictionary_status(std::vector<TDictionaryStatus>& 
result,
                                               std::vector<int64_t> dict_ids) {
+    // only report the latest version per dict; historical versions are 
invisible to FE
     std::shared_lock lc(_mutex);
-    if (dict_ids.empty()) { // empty means ALL
-        for (const auto& [dict_id, dict] : _dict_id_to_dict_map) {
-            TDictionaryStatus status;
-            status.__set_dictionary_id(dict_id);
-            status.__set_version_id(_dict_id_to_version_id_map[dict_id]);
-            status.__set_dictionary_memory_size(dict->allocated_bytes());
-            result.emplace_back(std::move(status));
+    auto build_latest_status = [&result](int64_t dict_id,
+                                         const std::map<int64_t, 
DictionaryPtr>& versioned_map) {
+        if (versioned_map.empty()) {
+            return;
+        }
+        const auto& [version_id, dict] = *versioned_map.rbegin();
+        TDictionaryStatus status;
+        status.__set_dictionary_id(dict_id);
+        status.__set_version_id(version_id);
+        status.__set_dictionary_memory_size(dict->allocated_bytes());

Review Comment:
   这里主要是为了不打破现有的:SHOW DICTIONARIES 行为,故意只返回了最新的version数据,跟旧版本兼容。内存消耗,dict 有专门的 
memtracker 追踪整体的内存消耗。



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to