1

RocksDB 新手在这里。

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

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

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

我看到一堆概念,比如 memtable 和 merge,听起来它们可能会被使用或利用。例如,如果我可以告诉 memtable 永远不要提交,而只是放弃更改,那应该可行。可行吗?

4

1 回答 1

0

最简单的方法可能是将它们分成不同的列族,并在您关闭应用程序时删除您不想保留的列族。如果您需要每个条目的生命周期,如果您使用的是 c++,您可能不得不考虑像 RAII-holder 类这样的自定义,它在构造时插入并在销毁时删除。如果发生崩溃故障,我仍然会使用单独的列族来干净地分离数据。

于 2018-01-23T13:44:58.520 回答