首页 > 解决方案 > 多个rocksdb实例:使用单个共享缓存还是多个独立缓存?

问题描述

我们将多个 RocksDB 实例打开到一个进程中,并且它们都可以平等地访问。使用时BlockBasedTableOptions::block_cache将单个大缓存分配给几个较小的缓存有什么好处吗?

NewLRUCache看起来,它允许单个大型共享缓存来减少资源争用num_shard_bits,就像拥有多个较小的缓存,每个缓存都没有分片一样。从外面看,他们看起来是平等的。

编辑

我认为最好有人关闭/删除。这个问题没有编程答案。我试图从概念上理解rocksdb是如何工作的。这是 Rocksdb Google Group 的问题,而不是 SO。

标签: c++rocksdb

解决方案


一个Cache对象可以在同一个进程中被多个RocksDB实例共享,让用户可以控制整体的缓存容量。

https://github.com/facebook/rocksdb/wiki/Block-Cache


推荐阅读