直播回顾视频: https://developer.aliyun.com/live/250478
以下根据演讲视频内容整理:
一、娃哈哈的需求
娃哈哈已经使用PostgreSQL多年,使用了大量逻辑复制,且备库仅提供一些业务的只读服务。同时,其重要业务的数据库运行在共享SAN存储上。因此,它存在主备库延迟较大、逻辑复制不稳定且延迟大的痛点。
二、使用PolarDB替换娃哈哈原有架构
针对娃哈哈的特性以及痛点,我们选择使用PolarDB替换其原有架构。
使用PolarDB后,其架构为基于共享存储的一个主节点和一个只读节点,并配合PolarDB实现了CLup管理系统。数据库运行在SAN共享存储之上,使用CLup管理PolarDB。主节点出现问题后,数据库可快速切换至只读节点。
三、PolarDB的优势
使用PolarDB得益于其具有如下优势:
第一,与PG完全兼容,包括SQL语法以及第三方插件等。如果使用不完全兼容的数据库,比如对PG做了深度改造的OpenGauss,在与Oracle数据库互通或使用监控数据的插件时,需要选择已经被OpenGauss验证过的插件,否则可能出现报错或不稳定等现象。而高度兼容的PolarDB完美规避了此类问题。
第二,只读节点延迟低。PG数据库的流复制备节点需要应用日志,而PolarDB的只读节点与主库共享存储,无需在存储上应用日志,仅需在内存中应用日志,因此延迟非常低。另外,PolarDB在内存中实现了并行回放,进一步降低了延迟。经测试,高负载下,主备之间可达毫秒级延迟。
第三,性能更平稳。PolarDB在内核中做了优化,性能更高,且其不再依赖于文件系统缓存,运行更平稳。压测时的高性能并不是唯一指标,更重要的是实际运行时的稳定程度,使用PolarDB能够使功能更平稳。此外,PolarDB使用CNS快照取代原有事务快照,多核性能线性扩展,实现了索引和数据页面的预读预扩展,发挥了存储池的大带宽能力。
第四,秒级增加只读节点。PG增加流复制备库时,需要复制整个数据库的数据,通常需要花费半小时至一小时。而PolarDB为共享存储,无需迁移数据,可以在秒级内建立一个只读节点,使得弹性扩容更轻松。
第五,大库在线扩容。PolarDB为存储计算分离架构,数据库大小不再受限于本地磁盘的空间大小,存储空间巨大,空间利用率也得以提高,能后更好地满足业务的需求。
四、后续的想法
后续,我们将会增加只读节点,便于快速扩容。PolarDB 的另一优势在于可以增加普通的备库,相当于数据可存储多份,保证了数据不丢。同时,将使用CLup对PolarDB进行定期备份。