2014-10-01 306 views
3

在多核服务器(或集群)上,想要在彼此独立的每个核心上部署一个rocksdb db。 不是正在寻找分布式数据库。这可能吗?rocksdb的多个实例

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

回答

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持久化,您还可以选择将write-ahead-log写入某些持久性存储,如闪存或磁盘。

+0

完美。谢谢。 – 2014-10-17 19:20:22