return usage_ - lru_usage_;
}
+size_t LRUCacheShard::GetHighPriPoolCapacity() {
+ MutexLock l(&mutex_);
+ return high_pri_pool_capacity_;
+}
+
+size_t LRUCacheShard::GetHighPriPoolUsage() {
+ MutexLock l(&mutex_);
+ return high_pri_pool_usage_;
+}
+
std::string LRUCacheShard::GetPrintableOptions() const {
const int kBufferSize = 200;
char buffer[kBufferSize];
return lru_size_of_all_shards;
}
+size_t LRUCache::GetHighPriPoolCapacity() {
+ size_t size = 0;
+ for (int i = 0; i < num_shards_; i++) {
+ size += shards_[i].GetHighPriPoolCapacity();
+ }
+ return size;
+}
+
+size_t LRUCache::GetHighPriPoolUsage() {
+ size_t size = 0;
+ for (int i = 0; i < num_shards_; i++) {
+ size += shards_[i].GetHighPriPoolUsage();
+ }
+ return size;
+}
+
double LRUCache::GetHighPriPoolRatio() {
double result = 0.0;
if (num_shards_ > 0) {
void TEST_GetLRUList(LRUHandle** lru, LRUHandle** lru_low_pri);
- // Retrieves number of elements in LRU, for unit test purpose only
- // not threadsafe
+ // Retrieves number of elements in LRU, for unit test purpose only
+ // not threadsafe
size_t TEST_GetLRUSize();
- // Retrives high pri pool ratio
+ // Retrieve pool capacities and usages. Protected with mutex_.
+ size_t GetHighPriPoolCapacity();
+ size_t GetHighPriPoolUsage();
+
+ // Retrives high pri pool ratio
double GetHighPriPoolRatio();
private:
virtual uint32_t GetHash(Handle* handle) const override;
virtual void DisownData() override;
- // Retrieves number of elements in LRU, for unit test purpose only
+ // Retrieves number of elements in LRU, for unit test purpose only
size_t TEST_GetLRUSize();
- // Retrives high pri pool ratio
+ // Retrieves high pri pool ratio
+ size_t GetHighPriPoolCapacity();
+ // Retrieves high pri pool capacty
+ size_t GetHighPriPoolUsage();
+ // Retrieves high pri pool ratio
double GetHighPriPoolRatio();
private: