数据库内核那些事|为什么我们需要向PolarDB for MySQL 8.0.2演进?
背景
PolarDB for MySQL是阿里云瑶池数据库团队自2015年开始自研的云原生数据库,拉开了从托管数据库到云原生数据库的新时代序幕。
随着研发团队的不断努力,技术架构从初期的云原生存计分离架构到三层架构解耦,再到可插拔式Serverless模式的全新云原生数据库完美结合云技术的架构设计;版本支持从2017年的PolarDB for MySQL 5.6到2019年的PolarDB for MySQL 8.0,再到2020年PolarDB for 5.7的全版本支持;各项企业级功能也在不断爆炸式增长中:从计算层到存储层的全链路性能优化、HTAP能力提供单和多节点并行及列存内存索引的一体化分析体验、全球数据库解决跨地域数据访问和容灾、热备技术及未来结合3AZ技术的极致灾备体验、降本增效提供冷温热数据管理、DDL优化包括并行和非阻塞DDL能力保证业务可持续、分区能力对标Oracle更好解决传统大表和分表模式、复杂查询优化能力让执行化繁为简、查询结果缓存加速数据快速访问、监控工具帮助运维可观测等等;研发和发布流程的持续改进及线上线下的一体化关联保证稳定性持续增强和高速迭代更好的支持,研发团队也从初期的几人探索到百人强大阵容的高效分工合作。
下面我们就来详细介绍,PolarDB for MySQL从特种作战进入到大部队作战后版本如何演进?
PolarDB for MySQL各个版本功能概览
各个版本之前的功能差异一直以来都是用户强需了解的内容,这里做了一个汇总,底色标记黄色的为8.0.2独有功能,更多内容也可参考《What's New in PolarDB 8.0.2 Server》。[1]
*以下为截止到2023年5月1日的各版本功能统计,后续以官网持续更新为主。
PolarDB for MySQL各个版本兼容官方能力
PolarDB for MySQL 8.0版本演进
PolarDB for MySQL 8.0.2创新版从2020-07-22灰度发布到2023-02-01灰度主售,经历了2年多共计18个版本的迭代,稳定性已经大大提升,为什么我们需要向8.0.2版本持续演进呢?
首先,任何产品都需要在客户需求、技术架构演进和稳定性之间做出平衡,官方MySQL也是如此,下面是官方定出的各个版本End of Life时间。
用户升级大版本是需要下很大决心的,尤其是在兼容性方面,需要做很多妥协,这也是MySQL自身的历史包袱,早期为了更好地提供易用性而忽略了兼容性和技术可持续架构演进,使得MySQL 8.0不得不对现有架构进行非常大的重构和重写,但是却对MySQL未来版本的发展奠定了不可忽略的基础。
PolarDB for MySQL为了更好地支持客户对现有版本的依赖,在全方位继续支持MySQL 5.6、5.7和8.0的同时,也要跟上社区MySQL未来的技术发展。PolarDB for MySQL 8.0.1版本基于官方MySQL 8.0.13版本,而后续官方在MySQL 8.0.16、8.0.22、8.0.23等版本仍然做出了重大变化,因此PolarDB for MySQL 8.0诞生了能够更好兼容后续官方能力的基于MySQL 8.0.18版本的8.0.2,同时Backport了很多后续版本的功能。
看起来版本号有点长,原因是之前我们仅仅是对官方大版本中某个版本的兼容,而现在跟随着官方8.0的快速迭代,我们也增加了更细粒度的中版本迭代来应对变化。PolarDB for MySQL 8.0的版本号设计其实是和之前PolarDB for MySQL产品保持一致,并做了满足自身发展及兼顾官方版本号的设计,详细参考《PolarDB for MySQL 8.0.x版本兼容性支持设计》。[2]
MySQL版本号
/* Accept 'M' 'm' 'm' 'd' 'd' */
1 digit (major), 2 digits (minor), then 2 digits (dot).
32302 -> 3.23.02
50032 -> 5.0.32
50114 -> 5.1.14
80018 -> 8.0.18
PolarDB for MySQL版本号
M代表大版本,mm代表两位的feature版本变更,dd代表两位的bugfix版本变更。虽然不像Aurora MySQL版本号的独立设计,选择增加两个前缀位数,但也是为了让用户一目了然知道和官方大版本的兼容性。有了版本号的统一规划,PolarDB for MySQL产品成为了非常成熟的企业级云原生数据库产品。
介绍版本演进前,我们先介绍三个概念:
● DMR - Development Milestone Release (开发演进版)
● RC -Release Candidate(发布候选版)
● GA – General Availability (正式发布)
下面我们也来对比下其他数据库产品的版本演进情况。
MySQL官方的版本演进
Microsoft SQL Server releases
结论
随着研发新的能力逐步转移到PolarDB for MySQL 8.0.2版本及后续版本,我们也提供了更多方式包括5.6/5.7一键升级到8.0.x版本,同时提供了PolarDB for MySQL 8.0.1原地升级和通过DTS迁移升级到PolarDB for MySQL 8.0.2两种模式,希望未来更多用户能享受到新功能及其红利。
引用
[1] What's New in PolarDB 8.0.2 Server:https://zhuanlan.zhihu.com/p/475397379
[2] PolarDB for MySQL 8.0.x版本兼容性支持设计:https://zhuanlan.zhihu.com/p/602957128
文章转载自公众号:阿里云瑶池数据库