return lru_size;
}
-double LRUCacheShard::GetHighPriPoolRatio() {
+double LRUCacheShard::GetHighPriPoolRatio() const{
MutexLock l(&mutex_);
return high_pri_pool_ratio_;
}
return usage_ - lru_usage_;
}
-size_t LRUCacheShard::GetHighPriPoolCapacity() {
+size_t LRUCacheShard::GetHighPriPoolCapacity() const {
MutexLock l(&mutex_);
return high_pri_pool_capacity_;
}
-size_t LRUCacheShard::GetHighPriPoolUsage() {
+size_t LRUCacheShard::GetHighPriPoolUsage() const {
MutexLock l(&mutex_);
return high_pri_pool_usage_;
}
return lru_size_of_all_shards;
}
-size_t LRUCache::GetHighPriPoolCapacity() {
+size_t LRUCache::GetHighPriPoolCapacity() const {
size_t size = 0;
for (int i = 0; i < num_shards_; i++) {
size += shards_[i].GetHighPriPoolCapacity();
return size;
}
-size_t LRUCache::GetHighPriPoolUsage() {
+size_t LRUCache::GetHighPriPoolUsage() const {
size_t size = 0;
for (int i = 0; i < num_shards_; i++) {
size += shards_[i].GetHighPriPoolUsage();
return size;
}
-double LRUCache::GetHighPriPoolRatio() {
+double LRUCache::GetHighPriPoolRatio() const {
double result = 0.0;
if (num_shards_ > 0) {
result = shards_[0].GetHighPriPoolRatio();
// not threadsafe
size_t TEST_GetLRUSize();
- // Retrieve pool capacities and usages. Protected with mutex_.
- size_t GetHighPriPoolCapacity();
- size_t GetHighPriPoolUsage();
-
- // Retrives high pri pool ratio
- double GetHighPriPoolRatio();
+ // Retrieve pool capacities/usages/ratio. Protected with mutex_.
+ virtual size_t GetHighPriPoolCapacity() const;
+ virtual size_t GetHighPriPoolUsage() const;
+ virtual double GetHighPriPoolRatio() const;
private:
void LRU_Remove(LRUHandle* e);
virtual size_t GetCharge(Handle* handle) const override;
virtual uint32_t GetHash(Handle* handle) const override;
virtual void DisownData() override;
+ virtual size_t GetHighPriPoolCapacity() const;
+ virtual size_t GetHighPriPoolUsage() const;
+ virtual double GetHighPriPoolRatio() const;
// Retrieves number of elements in LRU, for unit test purpose only
size_t TEST_GetLRUSize();
- // Retrieves high pri pool ratio
- size_t GetHighPriPoolCapacity();
- // Retrieves high pri pool capacty
- size_t GetHighPriPoolUsage();
- // Retrieves high pri pool ratio
- double GetHighPriPoolRatio();
private:
LRUCacheShard* shards_;
// returns the maximum configured capacity of the cache
virtual size_t GetCapacity() const = 0;
+ // returns the capacity of the high priority pool
+ virtual size_t GetHighPriPoolCapacity() const {
+ // default implementation returns 0
+ return 0;
+ }
+
// returns the memory size for the entries residing in the cache.
virtual size_t GetUsage() const = 0;
// returns the memory size for the entries in use by the system
virtual size_t GetPinnedUsage() const = 0;
+ // returns the memory size for the entries in the high priority pool
+ virtual size_t GetHighPriPoolUsage() const {
+ // default implementation returns 0
+ return 0;
+ }
+
+ // returns the ratio of memory usaged by the high priority pool
+ virtual double GetHighPriPoolRatio() const {
+ // default implementation returns 0
+ return 0;
+ }
+
// Call this on shutdown if you want to speed it up. Cache will disown
// any underlying data and will not free it on delete. This call will leak
// memory - call this only if you're shutting down the process.