Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

etcd 的 MVCC 怎样保存历史版本?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

MVCC 为修改过的键保留版本,使读者可以查询某个 revision 当时的状态,Watch 也能补读历史中的变化。

讲清原理

etcd 用键索引找到相关 revision,再从后端存储取数据。全局 revision 随修改操作推进。保留的历史越多,占用空间越大,因此要做 compaction 清理超过保留窗口的旧版本。

先读快照,再从下一版本补齐 Watch 变化
先读快照,再从下一版本补齐 Watch 变化

例子与易错点

键先写入 A,随后变成 B,在旧 revision 尚未压缩时仍可读到 A。历史被压缩后,这种旧版本读取会返回错误。

延伸阅读 etcd Watch 怎么监听键变化? · Version、CreateRevision、ModRevision 有什么区别?

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。