4

我是 LevelDB 的新手。我需要“回滚到特定状态”之类的东西,LevelDB 支持吗?经过一番搜索,我知道 LevelDB 不支持事务,但它支持快照。我可以将我的数据库恢复到快照吗?

我的需求是这样的:

  1. 初始状态
  2. 对数据库进行一些更改
  3. 如果有任何问题,请返回初始状态。
4

1 回答 1

0

LevelDB 快照不是为了恢复更改,而是允许来自同一线程的其他读者访问数据库的一致版本。

解决您的要求的一种方法是自己实现事务日志:

  1. 开始交易拍摄快照
  2. 将每个修改的键登录到内存
  3. 然后Commit,释放快照和日志
  4. 或者Rollback,在日志中查找每个修改过的键,并从快照中检索它们的初始值并重新设置。释放快照和日志。
于 2015-09-10T20:28:31.960 回答