4

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

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

4

1 回答 1

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

于 2014-10-08T04:21:20.503 回答