【问题标题】:Multiple rocksdb Instances: Use a Single Shared Cache or Multiple Independent Caches?多个rocksdb实例:使用单个共享缓存还是多个独立缓存?
【发布时间】:2020-05-21 16:10:54
【问题描述】:

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

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

编辑

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

【问题讨论】:

  • 对此(不同的选项)进行测试/基准测试时,这告诉了您什么?
  • @JesperJuhl 我正在寻找超越周期计数和内存使用情况的洞察力,以了解为什么在所有数据库实例的使用情况相同时会选择共享缓存还是单独缓存。

标签: c++ rocksdb


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 2021-02-25
  • 1970-01-01
  • 2014-09-21
  • 2019-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多