@nxtedition/rocksdb 8.1.17 → 8.2.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +32 -2
- package/binding.gyp +8 -0
- package/deps/liburing/liburing.gyp +20 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +4 -0
- package/deps/rocksdb/rocksdb/TARGETS +7 -0
- package/deps/rocksdb/rocksdb/cache/cache.cc +43 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +8 -5
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +1 -1
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.cc +1 -1
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +12 -48
- package/deps/rocksdb/rocksdb/cache/charged_cache.cc +26 -18
- package/deps/rocksdb/rocksdb/cache/charged_cache.h +5 -62
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +119 -44
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +34 -29
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +3 -3
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +2 -2
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +148 -209
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +118 -284
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +23 -71
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +351 -392
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +5 -2
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +296 -0
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +52 -0
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +22 -19
- package/deps/rocksdb/rocksdb/cache/typed_cache.h +56 -20
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +3 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator.h +4 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +3 -3
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +19 -25
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +216 -0
- package/deps/rocksdb/rocksdb/db/c.cc +90 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +8 -7
- package/deps/rocksdb/rocksdb/db/column_family.h +0 -6
- package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator.h +5 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +24 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +18 -12
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +245 -302
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +13 -2
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +5 -0
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +75 -15
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -5
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +91 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +5 -12
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +16 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +47 -24
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +4 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +32 -3
- package/deps/rocksdb/rocksdb/db/db_iter.cc +28 -29
- package/deps/rocksdb/rocksdb/db/db_iter.h +0 -3
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +176 -0
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +391 -2
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +26 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +13 -5
- package/deps/rocksdb/rocksdb/db/dbformat.h +3 -1
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +0 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +0 -6
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +3 -0
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +1 -1
- package/deps/rocksdb/rocksdb/db/history_trimming_iterator.h +4 -0
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +68 -40
- package/deps/rocksdb/rocksdb/db/import_column_family_job.h +3 -3
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +115 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +169 -72
- package/deps/rocksdb/rocksdb/db/internal_stats.h +36 -7
- package/deps/rocksdb/rocksdb/db/memtable.cc +6 -4
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +4 -0
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +151 -0
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.cc +47 -16
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +10 -8
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +91 -93
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +1 -2
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +1 -1
- package/deps/rocksdb/rocksdb/db/version_set.cc +30 -14
- package/deps/rocksdb/rocksdb/db/version_set.h +1 -0
- package/deps/rocksdb/rocksdb/db/write_stall_stats.cc +179 -0
- package/deps/rocksdb/rocksdb/db/write_stall_stats.h +47 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +109 -7
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +147 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +31 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +22 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +4 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +42 -59
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +7 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +7 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +6 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +6 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +4 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +127 -36
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +8 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +35 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +29 -8
- package/deps/rocksdb/rocksdb/file/file_util.cc +14 -10
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +183 -63
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +159 -66
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +52 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +134 -73
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +46 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +6 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +0 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +6 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +18 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +28 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/wide_columns.h +39 -0
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +5 -0
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +9 -1
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +2 -2
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +17 -7
- package/deps/rocksdb/rocksdb/port/win/env_win.h +1 -0
- package/deps/rocksdb/rocksdb/src.mk +4 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +38 -34
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +11 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +5 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +126 -132
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +16 -16
- package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +0 -16
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +370 -0
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.h +44 -0
- package/deps/rocksdb/rocksdb/table/get_context.cc +4 -2
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +555 -267
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +10 -5
- package/deps/rocksdb/rocksdb/table/table_test.cc +113 -70
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +96 -0
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +117 -0
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +5 -3
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +9 -2
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +5 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +11 -0
- package/deps/rocksdb/rocksdb.gyp +7 -1
- package/package.json +1 -1
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
#include "port/likely.h"
|
|
17
17
|
#include "port/malloc.h"
|
|
18
18
|
#include "port/port.h"
|
|
19
|
-
#include "rocksdb/secondary_cache.h"
|
|
20
19
|
#include "util/autovector.h"
|
|
21
20
|
#include "util/distributed_mutex.h"
|
|
22
21
|
|
|
@@ -51,12 +50,7 @@ namespace lru_cache {
|
|
|
51
50
|
struct LRUHandle {
|
|
52
51
|
Cache::ObjectPtr value;
|
|
53
52
|
const Cache::CacheItemHelper* helper;
|
|
54
|
-
|
|
55
|
-
// lookup is complete, so its safe to have this union.
|
|
56
|
-
union {
|
|
57
|
-
LRUHandle* next_hash;
|
|
58
|
-
SecondaryCacheResultHandle* sec_handle;
|
|
59
|
-
};
|
|
53
|
+
LRUHandle* next_hash;
|
|
60
54
|
LRUHandle* next;
|
|
61
55
|
LRUHandle* prev;
|
|
62
56
|
size_t total_charge; // TODO(opt): Only allow uint32_t?
|
|
@@ -89,12 +83,8 @@ struct LRUHandle {
|
|
|
89
83
|
IM_IS_HIGH_PRI = (1 << 0),
|
|
90
84
|
// Whether this entry is low priority entry.
|
|
91
85
|
IM_IS_LOW_PRI = (1 << 1),
|
|
92
|
-
// Is the handle still being read from a lower tier.
|
|
93
|
-
IM_IS_PENDING = (1 << 2),
|
|
94
|
-
// Whether this handle is still in a lower tier
|
|
95
|
-
IM_IS_IN_SECONDARY_CACHE = (1 << 3),
|
|
96
86
|
// Marks result handles that should not be inserted into cache
|
|
97
|
-
IM_IS_STANDALONE = (1 <<
|
|
87
|
+
IM_IS_STANDALONE = (1 << 2),
|
|
98
88
|
};
|
|
99
89
|
|
|
100
90
|
// Beginning of the key (MUST BE THE LAST FIELD IN THIS STRUCT!)
|
|
@@ -124,11 +114,6 @@ struct LRUHandle {
|
|
|
124
114
|
bool IsLowPri() const { return im_flags & IM_IS_LOW_PRI; }
|
|
125
115
|
bool InLowPriPool() const { return m_flags & M_IN_LOW_PRI_POOL; }
|
|
126
116
|
bool HasHit() const { return m_flags & M_HAS_HIT; }
|
|
127
|
-
bool IsSecondaryCacheCompatible() const { return helper->size_cb != nullptr; }
|
|
128
|
-
bool IsPending() const { return im_flags & IM_IS_PENDING; }
|
|
129
|
-
bool IsInSecondaryCache() const {
|
|
130
|
-
return im_flags & IM_IS_IN_SECONDARY_CACHE;
|
|
131
|
-
}
|
|
132
117
|
bool IsStandalone() const { return im_flags & IM_IS_STANDALONE; }
|
|
133
118
|
|
|
134
119
|
void SetInCache(bool in_cache) {
|
|
@@ -170,22 +155,6 @@ struct LRUHandle {
|
|
|
170
155
|
|
|
171
156
|
void SetHit() { m_flags |= M_HAS_HIT; }
|
|
172
157
|
|
|
173
|
-
void SetIsPending(bool pending) {
|
|
174
|
-
if (pending) {
|
|
175
|
-
im_flags |= IM_IS_PENDING;
|
|
176
|
-
} else {
|
|
177
|
-
im_flags &= ~IM_IS_PENDING;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
void SetIsInSecondaryCache(bool is_in_secondary_cache) {
|
|
182
|
-
if (is_in_secondary_cache) {
|
|
183
|
-
im_flags |= IM_IS_IN_SECONDARY_CACHE;
|
|
184
|
-
} else {
|
|
185
|
-
im_flags &= ~IM_IS_IN_SECONDARY_CACHE;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
158
|
void SetIsStandalone(bool is_standalone) {
|
|
190
159
|
if (is_standalone) {
|
|
191
160
|
im_flags |= IM_IS_STANDALONE;
|
|
@@ -196,14 +165,6 @@ struct LRUHandle {
|
|
|
196
165
|
|
|
197
166
|
void Free(MemoryAllocator* allocator) {
|
|
198
167
|
assert(refs == 0);
|
|
199
|
-
|
|
200
|
-
if (UNLIKELY(IsPending())) {
|
|
201
|
-
assert(sec_handle != nullptr);
|
|
202
|
-
SecondaryCacheResultHandle* tmp_sec_handle = sec_handle;
|
|
203
|
-
tmp_sec_handle->Wait();
|
|
204
|
-
value = tmp_sec_handle->Value();
|
|
205
|
-
delete tmp_sec_handle;
|
|
206
|
-
}
|
|
207
168
|
assert(helper);
|
|
208
169
|
if (helper->del_cb) {
|
|
209
170
|
helper->del_cb(value, allocator);
|
|
@@ -303,12 +264,14 @@ class LRUHandleTable {
|
|
|
303
264
|
// A single shard of sharded cache.
|
|
304
265
|
class ALIGN_AS(CACHE_LINE_SIZE) LRUCacheShard final : public CacheShardBase {
|
|
305
266
|
public:
|
|
267
|
+
// NOTE: the eviction_callback ptr is saved, as is it assumed to be kept
|
|
268
|
+
// alive in Cache.
|
|
306
269
|
LRUCacheShard(size_t capacity, bool strict_capacity_limit,
|
|
307
270
|
double high_pri_pool_ratio, double low_pri_pool_ratio,
|
|
308
271
|
bool use_adaptive_mutex,
|
|
309
272
|
CacheMetadataChargePolicy metadata_charge_policy,
|
|
310
273
|
int max_upper_hash_bits, MemoryAllocator* allocator,
|
|
311
|
-
|
|
274
|
+
const Cache::EvictionCallback* eviction_callback);
|
|
312
275
|
|
|
313
276
|
public: // Type definitions expected as parameter to ShardedCache
|
|
314
277
|
using HandleImpl = LRUHandle;
|
|
@@ -339,14 +302,17 @@ class ALIGN_AS(CACHE_LINE_SIZE) LRUCacheShard final : public CacheShardBase {
|
|
|
339
302
|
const Cache::CacheItemHelper* helper, size_t charge,
|
|
340
303
|
LRUHandle** handle, Cache::Priority priority);
|
|
341
304
|
|
|
305
|
+
LRUHandle* CreateStandalone(const Slice& key, uint32_t hash,
|
|
306
|
+
Cache::ObjectPtr obj,
|
|
307
|
+
const Cache::CacheItemHelper* helper,
|
|
308
|
+
size_t charge, bool allow_uncharged);
|
|
309
|
+
|
|
342
310
|
LRUHandle* Lookup(const Slice& key, uint32_t hash,
|
|
343
311
|
const Cache::CacheItemHelper* helper,
|
|
344
312
|
Cache::CreateContext* create_context,
|
|
345
|
-
Cache::Priority priority,
|
|
313
|
+
Cache::Priority priority, Statistics* stats);
|
|
346
314
|
|
|
347
315
|
bool Release(LRUHandle* handle, bool useful, bool erase_if_last_ref);
|
|
348
|
-
bool IsReady(LRUHandle* /*handle*/);
|
|
349
|
-
void Wait(LRUHandle* /*handle*/) {}
|
|
350
316
|
bool Ref(LRUHandle* handle);
|
|
351
317
|
void Erase(const Slice& key, uint32_t hash);
|
|
352
318
|
|
|
@@ -386,20 +352,10 @@ class ALIGN_AS(CACHE_LINE_SIZE) LRUCacheShard final : public CacheShardBase {
|
|
|
386
352
|
private:
|
|
387
353
|
friend class LRUCache;
|
|
388
354
|
// Insert an item into the hash table and, if handle is null, insert into
|
|
389
|
-
// the LRU list. Older items are evicted as necessary.
|
|
390
|
-
//
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
bool free_handle_on_fail);
|
|
394
|
-
// Promote an item looked up from the secondary cache to the LRU cache.
|
|
395
|
-
// The item may be still in the secondary cache.
|
|
396
|
-
// It is only inserted into the hash table and not the LRU list, and only
|
|
397
|
-
// if the cache is not at full capacity, as is the case during Insert. The
|
|
398
|
-
// caller should hold a reference on the LRUHandle. When the caller releases
|
|
399
|
-
// the last reference, the item is added to the LRU list.
|
|
400
|
-
// The item is promoted to the high pri or low pri pool as specified by the
|
|
401
|
-
// caller in Lookup.
|
|
402
|
-
void Promote(LRUHandle* e);
|
|
355
|
+
// the LRU list. Older items are evicted as necessary. Frees `item` on
|
|
356
|
+
// non-OK status.
|
|
357
|
+
Status InsertItem(LRUHandle* item, LRUHandle** handle);
|
|
358
|
+
|
|
403
359
|
void LRU_Remove(LRUHandle* e);
|
|
404
360
|
void LRU_Insert(LRUHandle* e);
|
|
405
361
|
|
|
@@ -413,8 +369,11 @@ class ALIGN_AS(CACHE_LINE_SIZE) LRUCacheShard final : public CacheShardBase {
|
|
|
413
369
|
// holding the mutex_.
|
|
414
370
|
void EvictFromLRU(size_t charge, autovector<LRUHandle*>* deleted);
|
|
415
371
|
|
|
416
|
-
|
|
417
|
-
|
|
372
|
+
void NotifyEvicted(const autovector<LRUHandle*>& evicted_handles);
|
|
373
|
+
|
|
374
|
+
LRUHandle* CreateHandle(const Slice& key, uint32_t hash,
|
|
375
|
+
Cache::ObjectPtr value,
|
|
376
|
+
const Cache::CacheItemHelper* helper, size_t charge);
|
|
418
377
|
|
|
419
378
|
// Initialized before use.
|
|
420
379
|
size_t capacity_;
|
|
@@ -477,8 +436,8 @@ class ALIGN_AS(CACHE_LINE_SIZE) LRUCacheShard final : public CacheShardBase {
|
|
|
477
436
|
// don't mind mutex_ invoking the non-const actions.
|
|
478
437
|
mutable DMutex mutex_;
|
|
479
438
|
|
|
480
|
-
//
|
|
481
|
-
|
|
439
|
+
// A reference to Cache::eviction_callback_
|
|
440
|
+
const Cache::EvictionCallback& eviction_callback_;
|
|
482
441
|
};
|
|
483
442
|
|
|
484
443
|
class LRUCache
|
|
@@ -492,23 +451,16 @@ class LRUCache
|
|
|
492
451
|
std::shared_ptr<MemoryAllocator> memory_allocator = nullptr,
|
|
493
452
|
bool use_adaptive_mutex = kDefaultToAdaptiveMutex,
|
|
494
453
|
CacheMetadataChargePolicy metadata_charge_policy =
|
|
495
|
-
kDontChargeCacheMetadata
|
|
496
|
-
std::shared_ptr<SecondaryCache> secondary_cache = nullptr);
|
|
454
|
+
kDontChargeCacheMetadata);
|
|
497
455
|
const char* Name() const override { return "LRUCache"; }
|
|
498
456
|
ObjectPtr Value(Handle* handle) override;
|
|
499
457
|
size_t GetCharge(Handle* handle) const override;
|
|
500
458
|
const CacheItemHelper* GetCacheItemHelper(Handle* handle) const override;
|
|
501
|
-
void WaitAll(std::vector<Handle*>& handles) override;
|
|
502
459
|
|
|
503
460
|
// Retrieves number of elements in LRU, for unit test purpose only.
|
|
504
461
|
size_t TEST_GetLRUSize();
|
|
505
462
|
// Retrieves high pri pool ratio.
|
|
506
463
|
double GetHighPriPoolRatio();
|
|
507
|
-
|
|
508
|
-
void AppendPrintableOptions(std::string& str) const override;
|
|
509
|
-
|
|
510
|
-
private:
|
|
511
|
-
std::shared_ptr<SecondaryCache> secondary_cache_;
|
|
512
464
|
};
|
|
513
465
|
|
|
514
466
|
} // namespace lru_cache
|