展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 系统应用 > 深度|每秒1.4亿次!再度刷新TPS记录的PolarDB如何应对双11“尖峰时刻”?

深度|每秒1.4亿次!再度刷新TPS记录的PolarDB如何应对双11“尖峰时刻”?

2020年是云原生数据库PolarDB全面支撑天猫双十一的第二年,天猫交易、买家、卖家以及物流等系统在双十一期间基于PolarDB为亿万客户提供了顺滑的体验。同时,PolarDB还刷新了去年由自己创造的数据库处理峰值(TPS)纪录,今年TPS峰值高达1.4亿次/秒,较去年提升了60%。PolarDB

本文目录

    2020年是云原生数据库PolarDB全面支撑天猫双十一的第二年,天猫交易、买家、卖家以及物流等系统在双十一期间基于PolarDB为亿万客户提供了顺滑的体验。同时,PolarDB还刷新了去年由自己创造的数据库处理峰值(TPS)纪录,今年TPS峰值高达1.4亿次/秒,较去年提升了60%。

    PolarDB是阿里自研的云原生数据库品牌, 通过独有的存储计算分离、分布式共享存储技术,解决了传统RDBMS容量有限、扩缩容时间长等问题, 在性能、容量、弹性、以及可用性上都有很大的突破:
     存储容量可达100TB,单库可扩展到16个节点,满足企业级大数据存储需求。
     高性能、高弹性、低成本,一写多读,分钟级扩缩容
     多AZ高可用,数据高可靠性。跨AZ六副本,故障快速容灾转移
    PolarDB今年下半年发布了MySQL 5.7的兼容版。至此PolarDB成为全球唯一一家兼容 MySQL 所有在役版本的云数据库,可以覆盖更多的业务场景

    性能优化

    性能对于双十一大促来说是永恒的主题。在天猫的核心交易链路的数据库,在零点峰值场景中,会有大量的数据读写。而每一年随着峰值的增长,数据库会遇到更严峻的挑战。在过去的几年中,随着数据库硬件的不断进化,我们为PolarDB重点优化了索引结构、I/O子系统、锁系统以及事务系统来完成并发性能的提升。

    首先是索引结构。众所周知传统的InnoDB 索引在这样的场景下会遇到频繁的页面分裂导致的并发瓶颈。所有的对索引结构的修改都要排队串行执行。为了解决这个问题, PolarDB引入了新的索引结构来替代传统索引,细化索引结构变更时的并发粒度,提升了接近20%的读写性能。新的索引结构使得原本需要将所有涉及索引分裂的页面加锁直到整个分裂动作完成后才释放的逻辑变成逐层加锁。这样原本被索引页面分裂阻塞的读操作会有机会在整个分裂动作中间进来:通过对每个节点增加一个后继链接的方式,使得在分裂的中间状态也可以完成对数据页面的安全的访问,从而提高读取性能。

    其次是IO子系统。由于PolarDB是采用的用户态文件系统, 因此需要有一套对应的IO系统来确保对底层分布式存储的高效访问, InnoDB原有的AIO策略,是将所有异步IO请求按照目标地址进行组织存放在同一个IO数组中,方便将目标地址连续的小IO合并成大IO以提升IO的吞吐,但是在分布式存储的场景下连续的大IO操作,会使得同一时刻,只有一个或少量存储节点处在服务状态,其他的存储节点处于空闲状态,此外,分布式存储在高IO负载的场景中会出现网络中的Inflight IO较多的情况,IO任务数组中添加I和移除请求的开销都很大。为此PolarDB专门对IO系统进行了重新的设计,主要包括:合理的选择IO合并和拆解,充分利分布式存储的多节点优势;建立状态有序的IO服务队列,减少高负载下的IO服务开销。新的子系统让PolarDB在写入和读写混合的场景下性能和稳定性都得到了显著的性能提升。

    再接下来是锁系统的优化。 PolarDB和MySQL一样都是采用MVCC的方式看来做事务之间的并发控制, 但是在处理写请求和写请求之间的并发时是通过两阶段的锁来做保护的。大量且频繁的插入更新删除带来了锁系统的负担和并发的瓶颈。 因此PolarDB采取了Partition Lock System的方式,将锁系统改造成由多个分片组成,每个分片中都有自己局部的并发控制,从而将这个瓶颈打散。尤其是在这种大压力的写入场景下明显的提升写入性能。

    最后是事务系统。 PolarDB中支持Snapshot Isolation的隔离级别,通过保留使用的Undo版本信息来支持对不同版本的记录的访问,即MVCC。而实现MVCC需要事务系统有能力跟踪当前活跃及已经提交的事务信息。在之前的实现中每当有写事务开始时,需要分配一个事务ID,并将这个ID添加到事务系统中的一个活跃事务列表中。当有读请求需要访问数据时,会首先分配一个ReadView,其中包括当前已分配最大的事务ID,以及当前这个活跃事务列表的一个备份。每当读请求访问数据时,会通过从索引开始的指针访问到这个记录所有的历史版本,通过对比某个历史版本的事务ID和自己ReadView中的活跃事务列表,可以判断是不是需要的版本。然而,这就导致每当有读事务开始时,都需要在整个拷贝过程对这个活跃事务列表加锁,从而阻塞了新的写事务将自己的ID加入。同样写事务和写事务之间也有访问活跃事务列表的冲突。从而活跃事务列表在这里变成一个明显的性能瓶颈,在双十一这种大压力的读写场景下尤为明显。对此,我们将事务系统中的这个活跃事务列表改造成无锁Hash实现,写事务添加ID以及读事务拷贝到ReadView都可以并发进行。大大提升了性能。

    全球数据库技术

    诸如AliExpress这一类针对海外消费者的购物大促,业务遍及各个大洲和国家等等。因此数据库的异地可读,数据同步有非常高的要求。在过去DTS承载了区域间数据同步任务,DTS订阅了二进制日志然后分发到不同的区域并进行高速应用以实现区域间数据状态一致性。今年PolarDB集成了全新的全球数据库技术来解决跨域访问以及容灾的问题,PolarDB全球数据库(PolarDB Global Database Network,PolarDB-GDN)采用了数据库物理日志异步复制的方案。但是达成以上目标需要解决几个关键难点:高网络延迟下的数据同步问题和跨Region的数据读写问题。针对这两点问题,PolarDB-GDN通过高并发流水线技术将同步速度提升7倍,将数据跨大洲同步延迟控制在2秒内。 全局读写分离技术结合多级别的一致性能力, 让业务不用做任何的改造的前提下降低整体的访问延迟。

    热缓存技术

    双十一对数据库的可用性要求非常高,核心应用在大促期间处于高负载的状态,长时间高负荷的运行不可避免会存在单一节点的故障,如何能快速恢复成为了一个重要的课题。过去的节点故障恢复需要经历相当长的时间的恢复时间,而重启拉起后的系统还需要缓存预热后才能达到最佳访问性能。

    PolarDB今年在存储计算分离架构上继续往前迈进一大步,实现了计算和内存的分离。通过将内存缓冲池从计算节点剥离,让计算节点状态最小化 。计算节点重启后可以快速恢复到重启前的状态,避免大量耗时的缓存预热。传统数据库的错误恢复需要检查点开始扫描所有的redo日志、回放日志、事务恢复等步骤,该过程涉及大量磁盘IO、CPU计算等工作量,其时间往往很长。使用了热缓存技术的PolarDB在计算节点崩溃后,需要恢复的是缓存可能处于不一致的状态,如部分尚未修改完成的缓存页面以及内存结构等。而在CPU缓存分离的架构下只需要新的计算节点来根据各种控制信息和redo日志将这些被污染的内存恢复到一致的状态。因为无需重新构建缓存池,修复工作量小。在常规读写负载下,重启后的数据库最大吞吐下降到原来的5%以下,并在200秒后逐渐恢复正常水平,而利用了热缓存技术的实例几乎无任何性能下降。

    跨AZ容灾能力

    双十一的核心业务必须要能够跨AZ的容灾, PolarDB提供了跨AZ容灾RPO为0的方案。PolarDB 在存储层(PolarStore)提供3副本的同时,还可以通过自研的 X-Paxos 库提供跨节点、跨机房、跨 AZ 级别的数据同步能力,提供 RPO = 0 的容灾解决方案。这个方案利用 PolarDB 经过多年验证的物理复制技术和 X-Paxos 一致性协议库,提供高可靠、低延迟的数据复制技术。相比于 RDS/MySQL 的逻辑日志复制,PolarDB 在节点切换时,受大事务/DDL 的影响更小,RTO 小于1分钟。同时,这个方案在保证数据冗余的同时,尽量减少部署成本。PolarDB 跨AZ版可以部署Leader,Follower 和 Log 节点。其中 Log 节点只记录日志,不参与选主,不存储数据,部署成本相比于现有架构只增加了 active redo log ,显著降低了部署成本。

    并行查询增强

    双十一,这不仅是消费者的购物盛宴,更是卖家们的狂欢时刻。在这个期间,卖家们常常需要实时查询自身的销售数据,并进行快速分析。PolarDB具备查询引擎,在诸多场景中都能满足即时查询的需求。它充分发挥硬件多核的优势,基于COST自动选择并行查询引擎,极大地提升了查询性能。今年,PolarDB在这方面继续发力,利用并行查询引擎对更多应用场景进行了优化。尤其在大规格实例中,并行所带来的提升效果格外显著。

    在今年, PolarDB的并行查询新增加了众多场景的覆盖, 有联合(Union)子查询的并行优化,扩展并行查询引擎对联合(Union)子查询的支持;派生表(Derived Table)的并行优化;用户自定义临时表的并行优化;Count的并行优化;Limit的并行优化;条件下推优化,减少数据汇总代价;HASH JOIN 的并行优化,同时优化算子和执行的并行度。

    除此之外, POLARDB对GROUP BY / Distinct / SEMI-JOIN / 常量表以及包含Window函数的子查询也做了并行优化,通过利用更多的CPU资源, 有效降低了这些场景下的查询耗时。在标准的TPC-H场景下,POLARDB的并行查询框架取得了非常好的表现。

    并行schema变更

    阿里业务中的超大规模数据,大多由POLARDB承载,而业务需求却是实时变化的。以往对这些大表执行DDL操作,往往会持续数小时甚至数天,如此高的延迟,实在令人难以接受。就拿创建二级索引来说,过高延迟的DDL操作,会阻塞后续依赖新索引查询的DML操作。而且,DDL操作还会消耗CPU、Memory、IO等资源,对业务DML产生一定影响。所以,用户通常会选择在业务低峰期进行schema变更。可要是无法确保变更在业务低峰期内完成,那将会对业务的稳定性造成严重影响。

    我们认为大表DDL运行缓慢的根本原因在于传统的DDL操作是针对单核和传统硬盘设计的。随着多核处理器的日益发展和高速存储的普及,DDL的并行化是可以取得非常好的效果的。

    Online DDL分为创建临时表扫描拷贝全量数据加上增量应用期间的变更等几个主要阶段。以增加索引为例需要扫描主键所有记录,生成新的二级索引记录,写入磁盘文件中;对所有二级索引记录进行排序,写入磁盘文件;将有序的二级索引记录插入到新的二级索引中。

    POLARDB可以对索引树进行并行扫描、并行多路归并的Merge Sort、并行的Bulk Load索引。 在8core32G规格的实例中针对CPU Bound 和 IO Bound的场景分别进行了测试,都可以达到6-13倍的速度提升。

    总结

    今年的双十一对PolarDB在性能和功能上提出了更高的要求。 PolarDB在并发性能、跨域、弹性以及可用性上都更进了一步,POLARDB不仅承载着整个阿里集团的实时OLTP数据业务,而且在云上为更为广大的客户提供服务。 我们的目标是将云原生的数据库技术普惠所有的企业客户,帮助客户更好的实现业务价值。

    原文链接
    本文为阿里云原创内容,未经允许不得转载。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    系统应用
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。

    AlwaysUp Windows版
    AlwaysUp Windows版

    AlwaysUp是一款面向Windows的系统服务注册与程序托管工具,可让普通应用、脚本及批处理在无人登录时随系统启动,并通过状态检测、异常重启、资源监控和邮件通知保障关键任务持续运行。