OceanBase 4.0解读:兼顾高效与透明,我们对DDL的设计与思考
作者简介:谢振江,OceanBase 高级技术专家。 2015年加入OceanBase, 从事存储引擎相关工作,目前在存储-索引与DDL组,负责索引,DDL和IO资源调度相关工作。
回顾关系型数据库大规模应用以来的发展,从单机到分布式无疑是一个关键转变,促成它的是层出不穷的新业务和爆发增长的数据量。
一方面,更大的数据量意味着社会经济发展有了更多新可能,另一方面,它也对数据库提出了更高要求,以避免存储节点增多带来的运维成本上升和可能出现的新故障。 因此,做好分布式数据库的透明性,像使用单机数据库一样使用分布式数据库成为提升用户体验的关键之一。而 DDL 作为数据库运维中常见的变更操作,它的执行自然应该对业务方和运维人员都透明。
“DDL 操作一定要等到夜深人静时”、“DDL操作执行时间很长,有时甚至需要几周时间”……这些问题不仅令一线运维人员抓狂,也是各个数据库厂商一直尝试突破的地方。 OceanBase 认为,上述问题的完美解决取决于实现高效且透明的 DDL,即数据库应该尽可能快地执行 DDL,并保证 DDL 执行期间不影响业务方和运维人员的操作。
在 OceanBase 4.0 中,我们基于已有的原生 Online DDL 能力进行了创新:首先,为了提升 DDL 操作的可用性,我们自研了一套专门用于旁路写入的数据同步方法;此外,我们对 DDL 的单机性能和分布式执行的可扩展性进行优化,大幅提升用户 DDL 操作的响应速度;最后,4.0 进一步完善了原生 Online DDL 的框架能力,支持了主键变更、分区规则修改、修改列类型和修改字符集等功能。
我们希望透过这些新变化,帮助用户轻松应对各类复杂业务场景。本篇文章将讨论 OceanBase 如何实现高效且透明的 DDL,介绍 OceanBase 4.0 DDL 的新能力及设计思路:
- 更适合用户的 DDL 是什么样的;
- OceanBase 如何做好 DDL;
- 来看看 4.0 DDL 有哪些新变化;
- 4.0 DDL 新功能上手实测。