APP下载

深入解读阿里云数据库POLARDB核心功能物理复制技术_日志

消息来源:baojiabao.com 作者: 发布时间:2024-04-24

报价宝综合消息深入解读阿里云数据库POLARDB核心功能物理复制技术_日志

日志是数据库的重要组成部分,按顺序以增量的方式记录了数据库上所有的操作,日志模组的设计对于数据库的可靠性、稳定性和效能都非常重要。 可靠性方面,在有一个资料档案的基础全量备份后,对执行中的数据库来说,日志档案的重要性大于资料档案,只要操作记录到日志中并完成落盘,就等于操作完成,无须等待资料档案落盘。因为日志的顺序和增量方式,使得数据库的增量实时备份(包括备库)成为可能,更可以使用异步、同步或Raft多数等方式通过保护日志来保护所有的资料。

稳定性方面,日志的增量模式减少了需要写出的资料量,日志的顺序写对于IO操作十分友好,可以充分节约寻道时间(机械硬盘)和写入快取,使得日志的写操作可以十分平稳,在面对高并发的事务时,不易出现剧烈的抖动,从而得到高的稳定性和效能。按照日志的组织形式,可以分为物理日志和逻辑日志,物理日志使用更偏向底层资料块操作的方式来描述变更,逻辑日志则偏向于使用记录映象或SQL语句的方式来描述变更,事务引挚一般使用物理日志的模式来记录事务的底层操作,而非事务引挚则一般使用逻辑日志的方式。

用程式语言来打比方的话,物理日志相当于使用汇编语言来记录了操作,而逻辑日志则相当于使用Go/Python等级别的语言来记录操作,物理日志相比逻辑日志具有更高的可靠性、稳定性和效能。回顾数据库的历史,商业数据库都只支援物理日志,从来没有逻辑日志的说法。MySQL因为其上下分层(SQL层和引挚层)的设计导致事务存贮引挚层必须有独立的物理日志,以及多引挚支援的原因,必须在SQL层设计逻辑日志以透明化不同储存引挚(主备可以不同引挚)的支援,形成了一个双日志的现状,对MySQL的稳定性和效能带来了极大的困难和挑战。

物理日志因其格式比较底层,使其非常难以建立只读例项,并且从只读例项切换为读写例项需要比较长的时间,可以参考Oracel数据库的发展历程,长久以来一直没有支援随时只读的备库,将备库切换为主库需要极期严格的步骤,需要比较长的时间,比较难以实现自动化,无法轻松实现互联网读扩充套件流量扩充套件的需求。而逻辑日志因其格式比较上层,使其非常容易建立只读例项,从只读例项转换为读写例项可以在秒级完成,并形成了一整套的增量资料订阅消费。MySQL在享受逻辑复制好处时,也承受了逻辑复制带来的一些限制:

因此基于逻辑复制的MySQL在大表加字段、建索引等操作上,主备复制的体验非常不够好。POLARDB在充分认识到MySQL逻辑复制的优缺点后,选择以物理复制为基础实现复制节点(Replica),提升了主备复制的效率和体验,为广大客户提供了稳定、可靠、高效能能的只读节点,引领了新一代复制技术的发展。

https://yq.aliyun.com/articles/673623

https://yq.aliyun.com/articles/673636

https://yq.aliyun.com/articles/669029

https://yq.aliyun.com/articles/674229

https://yq.aliyun.com/articles/674234

作者:乙休

​本文为云栖社群原创内容,未经允许不得转载。

2019-01-17 19:30:00

相关文章