3
在多核服務器(或集羣)上,想要在彼此獨立的每個核心上部署一個rocksdb db。 不是正在尋找分佈式數據庫。這可能嗎?rocksdb的多個實例
對於每個內存數據庫,是否需要在運行時操作期間與存儲進行通信,即, 不是在啓動或關閉或者是所有在內存中執行的數據庫操作?
在多核服務器(或集羣)上,想要在彼此獨立的每個核心上部署一個rocksdb db。 不是正在尋找分佈式數據庫。這可能嗎?rocksdb的多個實例
對於每個內存數據庫,是否需要在運行時操作期間與存儲進行通信,即, 不是在啓動或關閉或者是所有在內存中執行的數據庫操作?
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寫入某些持久性存儲,如閃存或磁盤。
完美。謝謝。 – 2014-10-17 19:20:22