xinyiZzz commented on code in PR #48924:
URL: https://github.com/apache/doris/pull/48924#discussion_r1991244442
##########
be/src/olap/page_cache.h:
##########
@@ -37,33 +37,54 @@ namespace doris {
class PageCacheHandle;
-template <typename TAllocator>
-class PageBase : private TAllocator, public LRUCacheValueBase {
+template <typename T>
+class MemoryTrackedPageBase : public LRUCacheValueBase {
public:
- PageBase() = default;
- PageBase(size_t b, bool use_cache, segment_v2::PageTypePB page_type);
- PageBase(const PageBase&) = delete;
- PageBase& operator=(const PageBase&) = delete;
- ~PageBase() override;
+ MemoryTrackedPageBase() = default;
+ MemoryTrackedPageBase(size_t b, bool use_cache, segment_v2::PageTypePB
page_type);
- char* data() { return _data; }
+ MemoryTrackedPageBase(const MemoryTrackedPageBase&) = delete;
+ MemoryTrackedPageBase& operator=(const MemoryTrackedPageBase&) = delete;
+ ~MemoryTrackedPageBase() = default;
+
+ T data() { return _data; }
size_t size() { return _size; }
- size_t capacity() { return _capacity; }
+
+protected:
+ T _data;
+ size_t _size = 0;
+ std::shared_ptr<MemTrackerLimiter> _mem_tracker_by_allocator;
Review Comment:
LRUCacheValueBase 里有一个 ` std::shared_ptr<MemTrackerLimiter> _mem_tracker`,
当 cache value 需要手动统计内存时使用(与之相对的,data page 时 scoped switch tracker
去自动统计的,所以用不到这个 _mem_tracker)
##########
be/src/olap/page_cache.h:
##########
@@ -37,33 +37,54 @@ namespace doris {
class PageCacheHandle;
-template <typename TAllocator>
-class PageBase : private TAllocator, public LRUCacheValueBase {
+template <typename T>
+class MemoryTrackedPageBase : public LRUCacheValueBase {
public:
- PageBase() = default;
- PageBase(size_t b, bool use_cache, segment_v2::PageTypePB page_type);
- PageBase(const PageBase&) = delete;
- PageBase& operator=(const PageBase&) = delete;
- ~PageBase() override;
+ MemoryTrackedPageBase() = default;
+ MemoryTrackedPageBase(size_t b, bool use_cache, segment_v2::PageTypePB
page_type);
- char* data() { return _data; }
+ MemoryTrackedPageBase(const MemoryTrackedPageBase&) = delete;
+ MemoryTrackedPageBase& operator=(const MemoryTrackedPageBase&) = delete;
+ ~MemoryTrackedPageBase() = default;
+
+ T data() { return _data; }
size_t size() { return _size; }
- size_t capacity() { return _capacity; }
+
+protected:
+ T _data;
+ size_t _size = 0;
+ std::shared_ptr<MemTrackerLimiter> _mem_tracker_by_allocator;
Review Comment:
LRUCacheValueBase 里有一个 ` std::shared_ptr<MemTrackerLimiter> _mem_tracker`,
当 cache value 需要手动统计内存时使用(与之相对的,data page 时 scoped switch tracker
去自动统计的,所以用不到这个 _mem_tracker)
--
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]