c++ - 多个rocksdb实例:使用单个共享缓存还是多个独立缓存?
问题描述
我们将多个 RocksDB 实例打开到一个进程中,并且它们都可以平等地访问。使用时BlockBasedTableOptions::block_cache
将单个大缓存分配给几个较小的缓存有什么好处吗?
NewLRUCache
看起来,它允许单个大型共享缓存来减少资源争用num_shard_bits
,就像拥有多个较小的缓存,每个缓存都没有分片一样。从外面看,他们看起来是平等的。
编辑
我认为最好有人关闭/删除。这个问题没有编程答案。我试图从概念上理解rocksdb是如何工作的。这是 Rocksdb Google Group 的问题,而不是 SO。
解决方案
一个Cache对象可以在同一个进程中被多个RocksDB实例共享,让用户可以控制整体的缓存容量。