在多核服务器(或集群)上,希望在彼此独立的每个核心上部署rocksdb。不是在找分布式数据库。这个是可能的吗?
对于每个内存中的db,它是否需要在运行时操作期间与存储进行通信?不是在启动或关闭时,还是在内存中执行所有db操作?
发布于 2014-10-08 04:21:20
1)是的,这是可能的。RocksDB只是一个C++库,您可以用代码编译它,它管理多个rocksdb实例,一个多核服务器(或集群)。多个rocksdb实例还可以使用相同的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持久,您还可以选择对某些持久存储(如闪存或磁盘)进行预写日志写入。
https://stackoverflow.com/questions/26145938
复制相似问题