RocksDB中仅会话可记忆的更新/合并

时间:2017-12-14 10:38:07

标签: nosql rocksdb

RocksDB新手在这里。

在运行时,我只使用RocksDB来读取数据。有时,我需要合并来自其他来源的会话特定记录。

我不希望它们合并到主数据库中。 我希望它们仅在该特定会话的会话生存期内存在。

当然,我可以使用常规的std :: vector或其他东西并合并RocksDB和其他来源,但这会复制数据。

我看到了一堆像memtable和merge这样的概念,听起来好像可能被使用或被利用了。例如,如果我可以告诉memtable永远不会提交,只是放弃更改,那应该有效。它可行吗?

1 个答案:

答案 0 :(得分:0)

最简单的方法可能是将它们分成不同的column families,并在关闭应用程序时删除不想持久的那个。如果你需要每个条目的生命周期,你可能不得不考虑像RAII持有者类一样的自定义,如果你使用的是c ++,它会在构造上插入并在删除时删除。在发生崩溃失败的情况下,我仍然会使用单独的列族来将数据完全分开。