]> git-server-git.apps.pok.os.sepia.ceph.com Git - rocksdb.git/commitdiff
include/rocksdb/cache.h: expose setHighPriPoolRatio
authorMark Nelson <mnelson@redhat.com>
Mon, 12 Mar 2018 12:17:20 +0000 (07:17 -0500)
committerMark Nelson <mnelson@redhat.com>
Tue, 29 May 2018 15:59:38 +0000 (10:59 -0500)
Signed-off-by: Mark Nelson <mnelson@redhat.com>
cache/lru_cache.cc
cache/lru_cache.h
include/rocksdb/cache.h

index 44763c31753f6c074c08838521f9e9620c72b68e..a7611cac1f33dab57888614ea4a1e18336b68788 100644 (file)
@@ -290,7 +290,7 @@ bool LRUCacheShard::Ref(Cache::Handle* h) {
   return true;
 }
 
-void LRUCacheShard::SetHighPriorityPoolRatio(double high_pri_pool_ratio) {
+void LRUCacheShard::SetHighPriPoolRatio(double high_pri_pool_ratio) {
   MutexLock l(&mutex_);
   high_pri_pool_ratio_ = high_pri_pool_ratio;
   high_pri_pool_capacity_ = capacity_ * high_pri_pool_ratio_;
@@ -549,6 +549,12 @@ double LRUCache::GetHighPriPoolRatio() const {
   return result;
 }
 
+void LRUCache::SetHighPriPoolRatio(double high_pri_pool_ratio) {
+  for (int i = 0; i < num_shards_; i++) {
+    shards_[i].SetHighPriPoolRatio(high_pri_pool_ratio);
+  }
+}
+
 std::shared_ptr<Cache> NewLRUCache(const LRUCacheOptions& cache_opts) {
   return NewLRUCache(cache_opts.capacity, cache_opts.num_shard_bits,
                      cache_opts.strict_capacity_limit,
index 9c41f49073a8b904bea6841273dfed926d9d5b3f..60538c5f5783e90c858349a68b91554299cb166c 100644 (file)
@@ -172,7 +172,7 @@ class ALIGN_AS(CACHE_LINE_SIZE) LRUCacheShard : public CacheShard {
   virtual void SetStrictCapacityLimit(bool strict_capacity_limit) override;
 
   // Set percentage of capacity reserved for high-pri cache entries.
-  void SetHighPriorityPoolRatio(double high_pri_pool_ratio);
+  void SetHighPriPoolRatio(double high_pri_pool_ratio);
 
   // Like Cache methods, but with an extra "hash" parameter.
   virtual Status Insert(const Slice& key, uint32_t hash, void* value,
@@ -293,7 +293,7 @@ class LRUCache : public ShardedCache {
   virtual size_t GetHighPriPoolCapacity() const;
   virtual size_t GetHighPriPoolUsage() const;
   virtual double GetHighPriPoolRatio() const;
-
+  virtual void SetHighPriPoolRatio(double high_pri_pool_ratio);
   // Retrieves number of elements in LRU, for unit test purpose only
   size_t TEST_GetLRUSize();
 
index ad82cdbcbcc14159ff4700cb728cf18988b74028..66df9c91fc9fd1c1836a1e6ced090bdfa1a01383 100644 (file)
@@ -186,6 +186,11 @@ class Cache {
   // capacity.
   virtual void SetStrictCapacityLimit(bool strict_capacity_limit) = 0;
 
+  // Set the high priority pool ratio
+  virtual void SetHighPriPoolRatio(double high_pri_pool_ratio) {
+    // default implementation is noop
+  }
+
   // Get the flag whether to return error on insertion when cache reaches its
   // full capacity.
   virtual bool HasStrictCapacityLimit() const = 0;