月度归档:2020年04月

[转载] 谷歌 F1 Online DDL的关键点:状态间兼容性

这篇文章是我读到的对于F1 Online schema change最透彻的解读,作者是我的同事董欢庆,他曾在IBM、中科院、华为长期从事存储领域工作,现在是美团分布式数据库团队核心专家。

原文地址:https://zhuanlan.zhihu.com/p/120719499

摘要:

Online DDL 是分布式数据库领域的重要基础,可以说与事务模型、共识协议一样重要。最近重读F1的Online Schema Change这篇 paper,也希望能用通俗易懂的方式帮助更多人理解它。因此有了这篇短文,实际上是个人的 Paper 阅读笔记。

理解这篇文章的原理的关键点: 每个状态能正确运行的前提条件是什么;每个状态的DML能保证什么。然后就能理解状态之间的兼容性:所谓不兼容,就是违背了某个状态的前提条件。

这里没有覆盖文章中所有章节,着重在于说明上述的关键点。如果想知道所有细节,还需要读原文。

Ch1 大致介绍了下问题的背景以及状态间兼容性的概念;Ch2 以添加一个二级索引为例,介绍 F1 的 Online DDL 的一些关键点和流程;Ch3 简述了删除一个二级索引的过程;Ch4 简略描述了下 Optional 对象的操作简化。