【问题标题】:multiple instances of rocksdb多个rocksdb实例
【发布时间】:2014-10-01 16:20:48
【问题描述】:

在多核服务器(或集群)上,希望在每个相互独立的核心上部署一个 RocksDB 数据库,即。 正在寻找分布式数据库。这可能吗?

对于每个内存数据库,它是否需要在运行时操作期间与存储通信,即。 不是在启动或关闭时,还是所有 db 操作都在内存中执行?

【问题讨论】:

    标签: rocksdb


    【解决方案1】:

    1) 是的,这是可能的。 RocksDB 只是一个 C++ 库,您可以使用管理多个 RocksDB 实例和多核服务器(或集群)的代码进行编译。多个 RocksDB 实例还可以通过让它们使用相同的 Env 来共享相同的资源集(例如共享相同的线程池)(参见 Options::env)。

    // Use the specified object to interact with the environment,
    // e.g. to read/write files, schedule background work, etc.
    // Default: Env::Default()
    Env* env;
    

    2)如果你的rocksdb实例的目录在内存中(比如通过tmpfs挂载),那么所有的db操作都保证在内存中执行。为了使这样的 RocksDB 持久化,您还可以选择将 write-ahead-log 写入一些持久性存储,如闪存或磁盘。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      相关资源
      最近更新 更多