Coverage Report

Created: 2024-09-08 07:17

/src/rocksdb/cache/cache_reservation_manager.cc
Line
Count
Source (jump to first uncovered line)
1
//  Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
2
//  This source code is licensed under both the GPLv2 (found in the
3
//  COPYING file in the root directory) and Apache 2.0 License
4
//  (found in the LICENSE.Apache file in the root directory).
5
//
6
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
7
// Use of this source code is governed by a BSD-style license that can be
8
// found in the LICENSE file. See the AUTHORS file for names of contributors.
9
#include "cache/cache_reservation_manager.h"
10
11
#include <cassert>
12
#include <cstddef>
13
#include <cstring>
14
#include <memory>
15
16
#include "rocksdb/cache.h"
17
#include "rocksdb/slice.h"
18
#include "rocksdb/status.h"
19
#include "table/block_based/reader_common.h"
20
#include "util/coding.h"
21
22
namespace ROCKSDB_NAMESPACE {
23
24
template <CacheEntryRole R>
25
CacheReservationManagerImpl<R>::CacheReservationHandle::CacheReservationHandle(
26
    std::size_t incremental_memory_used,
27
    std::shared_ptr<CacheReservationManagerImpl> cache_res_mgr)
28
0
    : incremental_memory_used_(incremental_memory_used) {
29
0
  assert(cache_res_mgr);
30
0
  cache_res_mgr_ = cache_res_mgr;
31
0
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::CacheReservationHandle::CacheReservationHandle(unsigned long, std::__1::shared_ptr<rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9> >)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::CacheReservationHandle::CacheReservationHandle(unsigned long, std::__1::shared_ptr<rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7> >)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::CacheReservationHandle::CacheReservationHandle(unsigned long, std::__1::shared_ptr<rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8> >)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::CacheReservationHandle::CacheReservationHandle(unsigned long, std::__1::shared_ptr<rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13> >)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::CacheReservationHandle::CacheReservationHandle(unsigned long, std::__1::shared_ptr<rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6> >)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::CacheReservationHandle::CacheReservationHandle(unsigned long, std::__1::shared_ptr<rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10> >)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::CacheReservationHandle::CacheReservationHandle(unsigned long, std::__1::shared_ptr<rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12> >)
32
33
template <CacheEntryRole R>
34
CacheReservationManagerImpl<
35
0
    R>::CacheReservationHandle::~CacheReservationHandle() {
36
0
  Status s = cache_res_mgr_->ReleaseCacheReservation(incremental_memory_used_);
37
0
  s.PermitUncheckedError();
38
0
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::CacheReservationHandle::~CacheReservationHandle()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::CacheReservationHandle::~CacheReservationHandle()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::CacheReservationHandle::~CacheReservationHandle()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::CacheReservationHandle::~CacheReservationHandle()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::CacheReservationHandle::~CacheReservationHandle()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::CacheReservationHandle::~CacheReservationHandle()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::CacheReservationHandle::~CacheReservationHandle()
39
40
template <CacheEntryRole R>
41
CacheReservationManagerImpl<R>::CacheReservationManagerImpl(
42
    std::shared_ptr<Cache> cache, bool delayed_decrease)
43
    : cache_(cache),
44
      delayed_decrease_(delayed_decrease),
45
      cache_allocated_size_(0),
46
5.44k
      memory_used_(0) {
47
5.44k
  assert(cache != nullptr);
48
5.44k
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::CacheReservationManagerImpl(std::__1::shared_ptr<rocksdb::Cache>, bool)
rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::CacheReservationManagerImpl(std::__1::shared_ptr<rocksdb::Cache>, bool)
Line
Count
Source
46
5.44k
      memory_used_(0) {
47
5.44k
  assert(cache != nullptr);
48
5.44k
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::CacheReservationManagerImpl(std::__1::shared_ptr<rocksdb::Cache>, bool)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::CacheReservationManagerImpl(std::__1::shared_ptr<rocksdb::Cache>, bool)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::CacheReservationManagerImpl(std::__1::shared_ptr<rocksdb::Cache>, bool)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::CacheReservationManagerImpl(std::__1::shared_ptr<rocksdb::Cache>, bool)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::CacheReservationManagerImpl(std::__1::shared_ptr<rocksdb::Cache>, bool)
49
50
template <CacheEntryRole R>
51
5.44k
CacheReservationManagerImpl<R>::~CacheReservationManagerImpl() {
52
5.44k
  for (auto* handle : dummy_handles_) {
53
0
    cache_.ReleaseAndEraseIfLastRef(handle);
54
0
  }
55
5.44k
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::~CacheReservationManagerImpl()
rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::~CacheReservationManagerImpl()
Line
Count
Source
51
5.44k
CacheReservationManagerImpl<R>::~CacheReservationManagerImpl() {
52
5.44k
  for (auto* handle : dummy_handles_) {
53
0
    cache_.ReleaseAndEraseIfLastRef(handle);
54
0
  }
55
5.44k
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::~CacheReservationManagerImpl()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::~CacheReservationManagerImpl()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::~CacheReservationManagerImpl()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::~CacheReservationManagerImpl()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::~CacheReservationManagerImpl()
56
57
template <CacheEntryRole R>
58
Status CacheReservationManagerImpl<R>::UpdateCacheReservation(
59
0
    std::size_t new_mem_used) {
60
0
  memory_used_ = new_mem_used;
61
0
  std::size_t cur_cache_allocated_size =
62
0
      cache_allocated_size_.load(std::memory_order_relaxed);
63
0
  if (new_mem_used == cur_cache_allocated_size) {
64
0
    return Status::OK();
65
0
  } else if (new_mem_used > cur_cache_allocated_size) {
66
0
    Status s = IncreaseCacheReservation(new_mem_used);
67
0
    return s;
68
0
  } else {
69
    // In delayed decrease mode, we don't decrease cache reservation
70
    // untill the memory usage is less than 3/4 of what we reserve
71
    // in the cache.
72
    // We do this because
73
    // (1) Dummy entry insertion is expensive in block cache
74
    // (2) Delayed releasing previously inserted dummy entries can save such
75
    // expensive dummy entry insertion on memory increase in the near future,
76
    // which is likely to happen when the memory usage is greater than or equal
77
    // to 3/4 of what we reserve
78
0
    if (delayed_decrease_ && new_mem_used >= cur_cache_allocated_size / 4 * 3) {
79
0
      return Status::OK();
80
0
    } else {
81
0
      Status s = DecreaseCacheReservation(new_mem_used);
82
0
      return s;
83
0
    }
84
0
  }
85
0
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::UpdateCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::UpdateCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::UpdateCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::UpdateCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::UpdateCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::UpdateCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::UpdateCacheReservation(unsigned long)
86
87
template <CacheEntryRole R>
88
Status CacheReservationManagerImpl<R>::MakeCacheReservation(
89
    std::size_t incremental_memory_used,
90
0
    std::unique_ptr<CacheReservationManager::CacheReservationHandle>* handle) {
91
0
  assert(handle);
92
0
  Status s =
93
0
      UpdateCacheReservation(GetTotalMemoryUsed() + incremental_memory_used);
94
0
  (*handle).reset(new CacheReservationManagerImpl::CacheReservationHandle(
95
0
      incremental_memory_used,
96
0
      std::enable_shared_from_this<
97
0
          CacheReservationManagerImpl<R>>::shared_from_this()));
98
0
  return s;
99
0
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::MakeCacheReservation(unsigned long, std::__1::unique_ptr<rocksdb::CacheReservationManager::CacheReservationHandle, std::__1::default_delete<rocksdb::CacheReservationManager::CacheReservationHandle> >*)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::MakeCacheReservation(unsigned long, std::__1::unique_ptr<rocksdb::CacheReservationManager::CacheReservationHandle, std::__1::default_delete<rocksdb::CacheReservationManager::CacheReservationHandle> >*)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::MakeCacheReservation(unsigned long, std::__1::unique_ptr<rocksdb::CacheReservationManager::CacheReservationHandle, std::__1::default_delete<rocksdb::CacheReservationManager::CacheReservationHandle> >*)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::MakeCacheReservation(unsigned long, std::__1::unique_ptr<rocksdb::CacheReservationManager::CacheReservationHandle, std::__1::default_delete<rocksdb::CacheReservationManager::CacheReservationHandle> >*)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::MakeCacheReservation(unsigned long, std::__1::unique_ptr<rocksdb::CacheReservationManager::CacheReservationHandle, std::__1::default_delete<rocksdb::CacheReservationManager::CacheReservationHandle> >*)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::MakeCacheReservation(unsigned long, std::__1::unique_ptr<rocksdb::CacheReservationManager::CacheReservationHandle, std::__1::default_delete<rocksdb::CacheReservationManager::CacheReservationHandle> >*)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::MakeCacheReservation(unsigned long, std::__1::unique_ptr<rocksdb::CacheReservationManager::CacheReservationHandle, std::__1::default_delete<rocksdb::CacheReservationManager::CacheReservationHandle> >*)
100
101
template <CacheEntryRole R>
102
Status CacheReservationManagerImpl<R>::ReleaseCacheReservation(
103
0
    std::size_t incremental_memory_used) {
104
0
  assert(GetTotalMemoryUsed() >= incremental_memory_used);
105
0
  std::size_t updated_total_mem_used =
106
0
      GetTotalMemoryUsed() - incremental_memory_used;
107
0
  Status s = UpdateCacheReservation(updated_total_mem_used);
108
0
  return s;
109
0
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::ReleaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::ReleaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::ReleaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::ReleaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::ReleaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::ReleaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::ReleaseCacheReservation(unsigned long)
110
111
template <CacheEntryRole R>
112
Status CacheReservationManagerImpl<R>::IncreaseCacheReservation(
113
0
    std::size_t new_mem_used) {
114
0
  Status return_status = Status::OK();
115
0
  while (new_mem_used > cache_allocated_size_.load(std::memory_order_relaxed)) {
116
0
    Cache::Handle* handle = nullptr;
117
0
    return_status = cache_.Insert(GetNextCacheKey(), kSizeDummyEntry, &handle);
118
119
0
    if (return_status != Status::OK()) {
120
0
      return return_status;
121
0
    }
122
123
0
    dummy_handles_.push_back(handle);
124
0
    cache_allocated_size_ += kSizeDummyEntry;
125
0
  }
126
0
  return return_status;
127
0
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::IncreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::IncreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::IncreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::IncreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::IncreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::IncreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::IncreaseCacheReservation(unsigned long)
128
129
template <CacheEntryRole R>
130
Status CacheReservationManagerImpl<R>::DecreaseCacheReservation(
131
0
    std::size_t new_mem_used) {
132
0
  Status return_status = Status::OK();
133
134
  // Decrease to the smallest multiple of kSizeDummyEntry that is greater than
135
  // or equal to new_mem_used We do addition instead of new_mem_used <=
136
  // cache_allocated_size_.load(std::memory_order_relaxed) - kSizeDummyEntry to
137
  // avoid underflow of size_t when cache_allocated_size_ = 0
138
0
  while (new_mem_used + kSizeDummyEntry <=
139
0
         cache_allocated_size_.load(std::memory_order_relaxed)) {
140
0
    assert(!dummy_handles_.empty());
141
0
    auto* handle = dummy_handles_.back();
142
0
    cache_.ReleaseAndEraseIfLastRef(handle);
143
0
    dummy_handles_.pop_back();
144
0
    cache_allocated_size_ -= kSizeDummyEntry;
145
0
  }
146
0
  return return_status;
147
0
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::DecreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::DecreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::DecreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::DecreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::DecreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::DecreaseCacheReservation(unsigned long)
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::DecreaseCacheReservation(unsigned long)
148
149
template <CacheEntryRole R>
150
0
std::size_t CacheReservationManagerImpl<R>::GetTotalReservedCacheSize() {
151
0
  return cache_allocated_size_.load(std::memory_order_relaxed);
152
0
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::GetTotalReservedCacheSize()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::GetTotalReservedCacheSize()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::GetTotalReservedCacheSize()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::GetTotalReservedCacheSize()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::GetTotalReservedCacheSize()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::GetTotalReservedCacheSize()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::GetTotalReservedCacheSize()
153
154
template <CacheEntryRole R>
155
0
std::size_t CacheReservationManagerImpl<R>::GetTotalMemoryUsed() {
156
0
  return memory_used_;
157
0
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::GetTotalMemoryUsed()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::GetTotalMemoryUsed()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::GetTotalMemoryUsed()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::GetTotalMemoryUsed()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::GetTotalMemoryUsed()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::GetTotalMemoryUsed()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::GetTotalMemoryUsed()
158
159
template <CacheEntryRole R>
160
0
Slice CacheReservationManagerImpl<R>::GetNextCacheKey() {
161
  // Calling this function will have the side-effect of changing the
162
  // underlying cache_key_ that is shared among other keys generated from this
163
  // fucntion. Therefore please make sure the previous keys are saved/copied
164
  // before calling this function.
165
0
  cache_key_ = CacheKey::CreateUniqueForCacheLifetime(cache_.get());
166
0
  return cache_key_.AsSlice();
167
0
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::GetNextCacheKey()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::GetNextCacheKey()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::GetNextCacheKey()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::GetNextCacheKey()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::GetNextCacheKey()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::GetNextCacheKey()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::GetNextCacheKey()
168
169
template <CacheEntryRole R>
170
const Cache::CacheItemHelper*
171
0
CacheReservationManagerImpl<R>::TEST_GetCacheItemHelperForRole() {
172
0
  return CacheInterface::GetHelper();
173
0
}
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)9>::TEST_GetCacheItemHelperForRole()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)7>::TEST_GetCacheItemHelperForRole()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)8>::TEST_GetCacheItemHelperForRole()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)13>::TEST_GetCacheItemHelperForRole()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)6>::TEST_GetCacheItemHelperForRole()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)10>::TEST_GetCacheItemHelperForRole()
Unexecuted instantiation: rocksdb::CacheReservationManagerImpl<(rocksdb::CacheEntryRole)12>::TEST_GetCacheItemHelperForRole()
174
175
template class CacheReservationManagerImpl<
176
    CacheEntryRole::kBlockBasedTableReader>;
177
template class CacheReservationManagerImpl<
178
    CacheEntryRole::kCompressionDictionaryBuildingBuffer>;
179
template class CacheReservationManagerImpl<CacheEntryRole::kFilterConstruction>;
180
template class CacheReservationManagerImpl<CacheEntryRole::kMisc>;
181
template class CacheReservationManagerImpl<CacheEntryRole::kWriteBuffer>;
182
template class CacheReservationManagerImpl<CacheEntryRole::kFileMetadata>;
183
template class CacheReservationManagerImpl<CacheEntryRole::kBlobCache>;
184
}  // namespace ROCKSDB_NAMESPACE