]> git-server-git.apps.pok.os.sepia.ceph.com Git - rocksdb.git/commitdiff
Make HighPriPool funcs const and part of cache interface.
authorMark Nelson <mnelson@redhat.com>
Wed, 7 Mar 2018 19:05:23 +0000 (13:05 -0600)
committerMark Nelson <mnelson@redhat.com>
Tue, 29 May 2018 15:41:51 +0000 (10:41 -0500)
Signed-off-by: Mark Nelson <mnelson@redhat.com>
cache/lru_cache.cc
cache/lru_cache.h
include/rocksdb/cache.h

index 7b36038981062da6a25467d0c11684df6da0d7d0..44763c31753f6c074c08838521f9e9620c72b68e 100644 (file)
@@ -175,7 +175,7 @@ size_t LRUCacheShard::TEST_GetLRUSize() {
   return lru_size;
 }
 
-double LRUCacheShard::GetHighPriPoolRatio() {
+double LRUCacheShard::GetHighPriPoolRatio() const{
   MutexLock l(&mutex_);
   return high_pri_pool_ratio_;
 }
@@ -449,12 +449,12 @@ size_t LRUCacheShard::GetPinnedUsage() const {
   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_;
 }
@@ -525,7 +525,7 @@ size_t LRUCache::TEST_GetLRUSize() {
   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();
@@ -533,7 +533,7 @@ size_t LRUCache::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();
@@ -541,7 +541,7 @@ size_t LRUCache::GetHighPriPoolUsage() {
   return size;
 }
 
-double LRUCache::GetHighPriPoolRatio() {
+double LRUCache::GetHighPriPoolRatio() const {
   double result = 0.0;
   if (num_shards_ > 0) {
     result = shards_[0].GetHighPriPoolRatio();
index bb8c247763dc4d2a465ce3be223ecd9455f0a14d..9c41f49073a8b904bea6841273dfed926d9d5b3f 100644 (file)
@@ -206,12 +206,10 @@ class ALIGN_AS(CACHE_LINE_SIZE) LRUCacheShard : public CacheShard {
   // 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);
@@ -292,15 +290,12 @@ class LRUCache : public ShardedCache {
   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_;
index da3b934d83073e881a3f1c00eb8e41dd178d0a3c..ad82cdbcbcc14159ff4700cb728cf18988b74028 100644 (file)
@@ -193,6 +193,12 @@ class Cache {
   // 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;
 
@@ -202,6 +208,18 @@ class Cache {
   // 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.