PolarDB产品思考

数据库演化

数据库 = 计算 + 存储 + 网络
数据库是一个严重依赖计算能力、存储能力、网络能力的高度集成的基础软件系统

计算能力:x86服务器保持成本和性价比优势的基础上,实现了超越小型服务器的性能优势
存储能力:高性能的闪存、Optane,极大地提升IO性能
网络能力:高速网络和RDMA协议,将SSD性能发挥的淋漓尽致

传统RDS产品使用痛点

产品体系庞大
· 针对每一个场景都实现一种对应的技术架构。

性能
· binlog + InnoDB redolog,至少需要调用两次fsync()进行日志的持久化操作
· 基于binlog进行主备复制,主库的变化需要一条条在备库relay

存储容量受限、备份无法进行
· 备份耗时长,严重消耗IO资源
· SSD只能发挥HDD的性能
· SSD的能力未使用正确的方式去发挥

弹性扩容
· 跨机迁移,耗时长

成本高
· 数据冗余量高
· 用户购买只读实例,不仅需要付出计算的成本,也需要付出存储资源的成本

架构改造缓冲
· 客户业务量增长迅速的情况下,不能短时间内完成数据库水平拆分

寻求一种通用的产品技术架构能兼顾不同用户场景的需求,从根本上解决用持续低的成本,享受和传统IT计算力一样,甚至更好的云服务

PolarDB特性

性能最高可达到MySQL的6倍
提供高吞吐和低延迟OLTP服务
低上云成本
在线扩展
更好的数据备份容灾服务
100% MySQL的兼容性
超大容量,可达100TB

一次满足,全部幻想!

架构图

内核架构

应用场景

架构亮点

计算与存储分离架构

  • 计算与存储分离后,计算能力可以在线分钟级扩容
  • Shared Disk架构

物理复制

问题:

  • Shared Disk的情况下,读写实例上对某条数据进行了修改,由于Buffer Pool缓存机制,数据页可能还没有被刷新到磁盘上,这个时候只读实例就会看不到数据

解决方案:

  • 只读实例上顺序应用读写实例产生的日志,StandBy节点和Replica节点两者都需要更新内存中的数据结构,但是StandBy节点由于独立维护一份数据和日志,所以需要把更新的增量数据写入到自己的数据文件和日志中
  • 由于Redolog并没有记录用户的SQL,仅仅记录了最终的结果,即这个SQL执行后造成的数据页变化,所以依赖这种复制架构,不需要SQL解析SQL优化
  • 实现了一套按需应用日志的控制算法,即只有在Buffer Pool中的数据页才需要应用日志

脑裂问题:

  • 如果Replica和Primary之间的通信中断,Replica就感知不到数据文件的状态,在这种情况下,Replica将会不可服务

故障切换

  • 目前支持三种类型的切换,Primary降级为StandBy,StandBy提升为Primary以及Replica提升为Primary。
  • Primary故障,切换到Standby后,新StandBy再次启动时,去新Primary查询,基于Redolog的数据页FlashBack,回滚掉多余的数据,保证新StandBy的数据一定与新Primary的数据一致
  • Replica提升为Primary的时候,新Primary只需要把老Primary未应用完的日志应用完即可

消除MySQL group commit带来的副作用

在传统机械盘时代,MySQL group commit合并小IO为大IO,以发挥系统吞吐。但该设计不适合SSD高随机读特性的存储设备。

PolarDB将redo分解为小IO,发送到存储节点并行完成。

容器的应用

使用容器虚拟化技术能够获得更好的计算能效比

PolarDB采用Docker环境来运行DB计算节点,用更轻量的虚拟化方式,解决了资源的隔离和性能的隔离,也节省了系统资源。

RDMA

使用运行在高速以太网上的RoCE协议,以Zero-Copy的技术以达到数据在NIC和远端应用内存之间高效率低延迟传递,而不用通过中断CPU的方式来进行数据从内核态到应用态的拷贝,极大的降低了性能的抖动,提高了整体系统的处理能力。

snapshot物理备份

采用Copy-On-Write的机制,通过记录块设备的元数据变化,对于发生写操作的块设备进行写时复制,将写操作内容改动到新复制出的块设备上,来实现恢复到快照时间点的数据的目的。

总结

代表了云数据库的演化方向

架构与沃趣科技QData for Oracle高性能数据库一体机架构极为相似。云数据库正在向传统企业级数据库架构、能力靠拢

PolarDB依据PolarStore的全量备份和Redolog增量日志为客户提供还原到任意时间点的功能,实现了沃趣科技QBackup秒级备份、恢复的功能

阿里云放言:未来3年无自研数据库的云计算玩家将被淘汰

疑问:未公开技术细节、不开源的云数据库是否有用户会/敢使用?还有待市场检验。

稿源:dbalex的站点:侃侃技术,记录生活 (源链) | 关于 | 阅读提示

本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 后端存储 » PolarDB产品思考

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录