This is an automated email from the ASF dual-hosted git repository.

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 280f612548 [fix][branch-2.0](memory) fix cache regular clean (#22540)
280f612548 is described below

commit 280f61254836abb4db7441ae4a75b7bcaefaefde
Author: Xinyi Zou <[email protected]>
AuthorDate: Thu Aug 3 13:20:05 2023 +0800

    [fix][branch-2.0](memory) fix cache regular clean (#22540)
---
 be/src/common/config.cpp   | 2 +-
 be/src/olap/page_cache.cpp | 2 ++
 be/src/olap/page_cache.h   | 7 ++++++-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/be/src/common/config.cpp b/be/src/common/config.cpp
index b38061a3fc..d9940e662d 100644
--- a/be/src/common/config.cpp
+++ b/be/src/common/config.cpp
@@ -264,7 +264,7 @@ 
DEFINE_mInt64(memory_limitation_per_thread_for_schema_change_bytes, "2147483648"
 DEFINE_mInt64(memory_limitation_per_thread_for_storage_migration_bytes, 
"100000000");
 
 // the clean interval of file descriptor cache and segment cache
-DEFINE_mInt32(cache_clean_interval, "60");
+DEFINE_mInt32(cache_clean_interval, "10");
 // the clean interval of tablet lookup cache
 DEFINE_mInt32(tablet_lookup_cache_clean_interval, "30");
 DEFINE_mInt32(disk_stat_monitor_interval, "5");
diff --git a/be/src/olap/page_cache.cpp b/be/src/olap/page_cache.cpp
index 47a2379576..57049bdc6d 100644
--- a/be/src/olap/page_cache.cpp
+++ b/be/src/olap/page_cache.cpp
@@ -62,6 +62,7 @@ bool StoragePageCache::lookup(const CacheKey& key, 
PageCacheHandle* handle,
         return false;
     }
     *handle = PageCacheHandle(cache, lru_handle);
+    handle->update_last_visit_time();
     return true;
 }
 
@@ -80,6 +81,7 @@ void StoragePageCache::insert(const CacheKey& key, DataPage* 
data, PageCacheHand
     auto cache = _get_page_cache(page_type);
     auto lru_handle = cache->insert(key.encode(), data, data->capacity(), 
deleter, priority);
     *handle = PageCacheHandle(cache, lru_handle);
+    handle->update_last_visit_time();
 }
 
 } // namespace doris
diff --git a/be/src/olap/page_cache.h b/be/src/olap/page_cache.h
index b065d52d0e..3f76546013 100644
--- a/be/src/olap/page_cache.h
+++ b/be/src/olap/page_cache.h
@@ -37,7 +37,7 @@ namespace doris {
 class PageCacheHandle;
 
 template <typename TAllocator>
-class PageBase : private TAllocator, LRUCacheValueBase {
+class PageBase : private TAllocator, public LRUCacheValueBase {
 public:
     PageBase() : _data(nullptr), _size(0), _capacity(0) {}
 
@@ -229,6 +229,11 @@ public:
         return Slice(cache_value->data(), cache_value->size());
     }
 
+    void update_last_visit_time() {
+        DataPage* cache_value = (DataPage*)_cache->value(_handle);
+        cache_value->last_visit_time = UnixMillis();
+    }
+
 private:
     Cache* _cache = nullptr;
     Cache::Handle* _handle = nullptr;


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

Reply via email to