rocksdb的多个实例

时间:2014-10-01 16:20:49

标签: rocksdb

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

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

1 个答案:

答案 0 :(得分:3)

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挂载),则保证所有数据库操作都在内存中执行。为了使这样的rocksdb持久化,您还可以选择将写入日志写入一些持久存储,如闪存或磁盘。