三种版本模式:

  • unable:单一版本
  • enable:多版本
  • suspend:从当前版本起不再生成新版本

unable 模式是将版本号设为 null,下次添加新版本会覆盖这个 null 版本。
enable 模式是每次修改都生成一个新对象,并给一个新的版本号。
suspend 模式是在有版本号的对象上面生成一个新的 null 版本,每次修改都是在重写这个 null 版本的对象。

模式转换触发操作

unable -> enable:自动在每个生成一个带版本号的新对象。
enable -> suspend:自动在每个对象上生成一个版本号为 null 的对象。

delete 操作

unable:在 null 版本上标记一个 delete 的 marker。
enable:在版本之上加入一个新版本,标记一个 delete 的 marker。
suspend:在 null 版本上标记 delete 的 marker(这意味着这上面的修改全部会丢失,不再能访问到)。

  • 物理删除:必须指定版本号。
  • 逻辑删除:只指定对象的 key,不指定版本号。即在有版本之上生成一个对象,或就在 null 版本对象上,加一个 delete marker。
  • 定期清理:当对象的一个版本的生存时间超过 retention 时,会加入到 delete queue 中,进行物理删除(这意味着即使一个对象超过了生存时间,也有一定的时长内这个对象没有删除)

访问老版本

必须指定版本号才能访问老版本,只用 key 不用版本号只能访问最新版本。当最新版本有 delete marker 时将返回“找不到对象”。

访问权限

每一个版本都可指定不同用户的不同访问权限,即每个用户只用 key 时访问到的是自己的修改的最后版本对象。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐