小红书MySQL内核秒杀能力重磅再升级

“秒杀”是电商平台最典型的高并发促销场景,双十一等大促活动也常以秒杀能力作为数据库技术实力的标志。随着小红书电商业务快速增长,直播带货等爆品场景对极致下单速度的需求更加突出,希望将下单吞吐提升至 1W+/s。

基于 MySQL 内核实现的合并秒杀优化,相对排队秒杀方案,将秒杀写入能力再提升 5 倍,相对MySQL 社区版本更有百倍的性能提升。在设计上保持了和排队秒杀一致的能力,该能力对业务完全透明:仅需升级 MySQL 内核,无需改动 SQL,即可获得 5 倍以上性能提升。

该方案不仅显著提升库存、优惠券、红包等高抢购场景的用户体验,也能在热门笔记点赞等高频写入场景实现数量级性能增强。

24年小红书数据库团队首次通过对热点线程排队,将自研版本秒杀性能提升了10倍,但依然跟不上业务的快速发展。尤其是在直播带货、热门笔记点赞、爆品抢购等场景下,业务迫切需要更快的秒杀速度,本次数据库团队在自研内核上迭代实现了合并秒杀方案,将热点行更新速度提升5倍至1.5W/s+,极大提升了用户的使用体验。

合并秒杀版本在方案设计时考虑了和排队版本的兼容性,内核会根据SQL自动选择最优的秒杀方案。对于热点SQL,内核会依据SQL自动选择合并秒杀、排队秒杀和普通更新的最优解,只需升级MySQL内核版本,无需业务侧修改SQL即可享受到5倍以上的性能提升。

从下面性能分析图可以看到,在128线程秒杀时,TPS从4276提升至23543,提升约5.5倍。在1024线程极端场景下,仍然有4.7倍性能提升。随着线程数的升高,线程切换的开销越来越大,TPS也逐步下降,因此建议线程数保持在128-256之间以获得最佳性能。

测试数据均为sysbench模拟标准库存扣减模型进行的压测数据。

首先对秒杀场景进行分析,抽象出了它的事务模型。下面所示为最经典的库存扣减模型:

  1. begin;

  2. insert into inventory_log value (...);

    -- 插入库存修改的流水表

  3. update inventory set quantity=quantity-1 where sku_id=? and quantity > 0;

    -- 扣减库存表

  4. commit;

随着并发数的增加,数据库的update写入性能急剧下降,最终基本处于不可用的状态(TPS约为100-200),出现非常严重的卡顿,下面将依次分析不同方案的性能瓶颈点和解决思路。

3.1 排队秒杀提升点

合并秒杀版本重点解决了性能下降问题,将秒杀性能维持在一个性能基本不变的状态。

左右滑动查看

3.2 合并秒杀提升点

再次分析上面的库存扣减模型,每个事务都是(begin;insert;update;commit)这种格式。那么insert是插入不同的行(主键不一样),所以可以并发,但是update是对同一行的改写,无法并发,红色的标识为临界区(行锁)。所以性能的瓶颈点在update同一行的修改上,秒杀V2将解决该瓶颈点。

左右滑动查看

3.3 方案总结

将上述方案的瓶颈点和解决思路整合如下对比所示,直观反映了各方案的优化思路。

左右滑动查看

合并秒杀将多个事务 SQL 合并到一个事务进行提交,修改了MySQL的事务模型,必然涉及到MySQL事务系统、锁系统、Binlog系统等模块的修改。合并秒杀方案提供了如下优势:

  1. 生态组件无感知:将改动内容收敛到MySQL内核,输出的 Binlog内容和格式没有变化,对于DTS/Canel等组件无感知,避免了联动组件升级

  2. 内核升级无感知:不修改InnoDB格式,不影响版本兼容性和版本回退

  3. 业务SQL无修改:和排队秒杀版本SQL语法兼容,可以动态开关。业务/DBA可以随时将合并秒杀退化到排队秒杀,也可以随时开启。可以同时将合并秒杀,排队秒杀,无秒杀在一个数据库同时跑起来,减少业务迁移成本。

一句话总结本方案:合并秒杀通过Leader预读取库存数据写入缓存,在缓存中进行Follower库存数据合并扣减,最后Leader一次性将合并数据写入存储引擎,提升了写入性能。

4.1 缓存可见性

为了合并秒杀,要解决如下两个问题:

  1. 数据的可见性:目前MySQL的数据是线程可见的,这样最方便。但是合并秒杀是需要多个线程之间共享数据的。

  2. 数据一致性问题:Leader-Follower的数据同步问题,要做好状态的流转。

4.1.1 数据可见性

为了解决以上问题,按照表维度添加了全局缓存,多个线程操作同一张表的结构体访问同一份缓存,缓存的生命周期和表结构是一样的,方便缓存管理。

4.1.2 数据一致性

解决了数据的可见性问题,剩下的核心点就是解决Leader-Follower的数据同步问题,保证数据的一致性。下面一张图系统的展示了一个Leader两个Follower线程是如何配合扣减三次的:

  1. 首先三个客户端发送了相同的update语句。经过了Queue PK,由于开启了合并秒杀,跳过了排队秒杀过程

  2. 三个线程开始抢独占锁,最先抢到的将自己标记为Leader,然后读取InnoDB数据和更新数据,将修改后的数据写入全局缓存。Leader做完了工作,释放独占锁,开始进入收集状态,等待若干毫秒

  3. 另外两个Follower开始抢独占锁。抢到的标记为Follower,然后将全局缓存数据写入线程缓存,然后更新线程缓存完成扣减,最后将线程缓存数据再写入全局缓存。释放独占锁,进入等待唤醒状态。在全局缓存中完成Follower的库存扣减

  4. 后面的线程依次进入Follower过程,按照读全局缓存->完成扣减->更新全局缓存的过程,依次执行了update语句扣减

  5. Leader线程完成了收集,重新申请独占锁,将全局缓存数据作为本组最终扣减的值。开始进入2PC过程完成最终数据提交。Leader完成后会唤醒Follower,所有SQL结束

4.2 行锁极致优化

上面的过程看起来配合的非常好,是否还有优化空间?

再次回到下面的这张图,将update分为两个步骤,一个是收集更新缓存阶段(phase 1),一个是commit阶段(phase 2)。

如果将多个组提交按照时间串起来,可以看到上一个组必须commit完释放了行锁,才能让下一个组重新申请行锁。如下图所示。所以整个流水线在组内是合并提交的,但是组和组之间是完全的串行。

如按照两个阶段分为两个组,那么在第一个组进行commit的时候,第二个组完全可以开始收集,无需等待第一组commit完成。这样整体的执行时间会进一步压缩。以两个组为例,第一个组从1000扣减50为950,那么在第一个组提交950的时候,第二个组可以从950开始扣减。

如下图所示,绿色部分就是节省的时间。

4.3 Binlog并行提交

整个组的Binlog是同一批由Leader统一提交。

4.4 Crash Recovery优化

Crash Recovery过程简单来说,先由Binlog生成一个事务集合,然后拿到Redolog进行对比,该提交就提交,该回滚就回滚。

  1. 合并秒杀是Leader提交Binlog,将整个组的Binlog都写入

  2. Redolog记录的是合并前后的值(例如1000->900),但是binlog记录的是每个事务的改动(1000->999, 999->998)。所以要回滚Redolog的内容或者提交Redolog的内容,必须要求整个Binlog组的完整性

左右滑动查看

对于以上两种场景,Crash Recovery需要做好兼容处理。具体的思路如下:

以数据组为单位进行扣减数据的提交和回滚,相对事务粒度更大一些。

正如上面所述,在内核中使用的Hint关键字如下:

致谢

感谢阿里云RDS团队在方案中的技术支持,并在关键问题定位与优化建议方面提供了帮助。

https://mp.weixin.qq.com/s/Q-tap7xI3Y5diTMEt5hMyw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1214475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

概率论与数理统计期末考试专项突破:古典概型与组合概率的精讲与实战应用

概率论与数理统计期末考试专项突破:古典概型与组合概率的精讲与实战应用相关重点知识点总体预览 在概率论与数理统计的期末考试中,古典概型是基础中的基础,几乎每一份考卷都会涉及。本篇文章聚焦于“古典概型”中的组合概率计算,通…

高可用架构三板斧:冗余、隔离、降级

高可用冗余 冗余,是高可用架构的第一道防线。 其本质:是在关键组件或路径上建立多份备份,消除单点故障。 冗余实现的层面多样,包括但不限于硬件冗余(双电源、RAID、双机热备)。 以及,网络冗余…

上海探讨注意力涣散的治疗方法和注意力不集中的原因哪家好

2026年青少年成长健康需求持续升级,注意力提升已成为家长与教育机构关注的核心议题。无论是注意力分散的运动疗法实践、注意力涣散的治疗方法创新,还是注意力不集中的原因科学解析,专业机构的服务能力直接决定孩子成…

高性价比的专精特新小巨人申报公司多少钱,华夏泰科咨询集团收费合理吗?

随着国家对中小企业创新发展的扶持力度不断加大,专精特新小巨人认定已成为企业提升竞争力、获取政策红利的重要途径。但不少企业在申报过程中常因经验不足、材料不规范等问题错失机会,因此选择专业的申报公司就成了关…

股权激励方案设计公司怎么选?为你揭秘优质之选

随着企业竞争从资源争夺转向人才争夺,股权激励已成为企业吸引、留存核心人才的核心工具,但多数企业在选择服务商时却陷入怕踩坑、怕无效、怕白花钱的困境。本文围绕股权激励方案设计找哪家、股权激励公司选哪家、股权…

2026年武汉耘野亲子农场与其他农场对比优势大揭秘,选哪家好

2026年城市亲子休闲需求持续攀升,集自然体验、全龄互动、场景沉浸于一体的近郊农场已成为家庭周末出行的核心选择。无论是亲子家庭寻求一家老小各得其乐的放松空间,还是企业组织既有玩趣又能凝聚团队的团建活动,优质…

印度作者投稿iMeta费用由政府统一支付APC

近日,iMeta期刊正式入选印度政府“一国订阅(One Nation One Subscription, ONOS)”计划支持名单。这意味着,来自印度符合条件的科研机构作者向 iMeta 投稿并被录用后,其文章处理费(APC)将由印度…

iMeta系列期刊助理编辑(统计)招聘启事(可居家办公,弹性工作)

iMeta系列期刊助理编辑(统计)招聘启事(可居家办公,弹性工作)iMeta系列期刊宣传片(25版,含MetaOmics和iMetaMed)影响因子IF 33.2生物医学综合,全球第65中国第51iMeta 期刊简介“iMeta” 是由威立、宏科学和本领域数千名华人科学家合作出版的开…

突发!CTO 被解雇。。。因不道德行为。。。

Thinking Machines 公司已因 CTO Barret Zoph 的不道德行为将其解雇。CEO Mira Murati 今天在全体员工大会上宣布了这一消息。Soumith Chintala 将接任 CTO 一职。Mira Murati 和 Soumith ChintalaBarret Zoph 已回归 OpenAI。

考虑源荷不确定性的电力系统机组低碳调度:Matlab + Yalmip + Gurobi 实践

电力系统机组调度 考虑了源荷不确定性 求解:matlabyalmipgurobi作为求解器) 内容:考虑源荷两侧不确定性的含风电的低碳调度,引入模糊机会约束,程序包括储能、风光、火电机组及水电机组,解决了目标函数含有分…

救命神器10个AI论文平台,自考学生轻松搞定毕业论文!

救命神器10个AI论文平台,自考学生轻松搞定毕业论文! 自考论文难?AI 工具来帮你 对于自考学生来说,毕业论文不仅是学业的终点,更是个人能力的一次全面检验。然而,面对繁重的写作任务和严格的格式要求&…

2026年四川梯具源头供应商综合评估与选择指南

步入2026年,中国制造业正经历着从规模扩张向质量效益转变的深度调整期。在建筑装修、市政维护、家庭日用等广泛领域,作为基础作业工具的梯具,其市场需求呈现出从单一产品采购向“安全、高效、一站式”综合解决方案转…

液冷接头数控机床怎么选?2025年热门品牌推荐,数控机床/4轴数控机床/医疗器械数控机床,液冷接头数控机床厂家排行榜

随着新能源汽车、5G通信、航空航天等领域的快速发展,液冷接头作为高精度散热组件的核心部件,其加工需求呈现爆发式增长。液冷接头数控机床作为关键生产设备,需兼顾高刚性、高精度、高效率三大核心需求。然而,市场上…

2026年市面上高精度的刀塔机厂家需要多少钱,尾顶机/数控4+4/正交Y/4+4车铣/双主轴双排刀,刀塔机品牌推荐

随着制造业向智能化、高精度方向加速转型,刀塔机作为数控机床的核心品类,其技术迭代与市场需求呈现同步增长态势。当前,国内刀塔机市场面临两大挑战:一是进口设备价格高昂且服务响应滞后,二是国产设备同质化严重,…

Elasticsearch设置密码的正确方法:系统学习路径

以下是对您提供的博文《Elasticsearch 设置密码的正确方法:系统学习路径》进行 深度润色与专业重构后的终稿 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、有“人味”——像一位在大厂干了8年SRE、亲手部署过200+ES集群的工程师在技术博客里掏心窝…

心理辅导辅助工具:语音情绪变化趋势监测

心理辅导辅助工具:语音情绪变化趋势监测 在心理咨询和心理辅导实践中,来访者的情绪状态往往不是静态的,而是随着对话进程不断起伏变化。传统依赖咨询师主观观察的方式,容易遗漏细微的情绪波动,也难以量化评估干预效果…

咸鱼大量流出大佬手搓N5105迷你主机,3D打印设计外壳,低至288元,厚版可加配2.5寸硬盘位,引万人浏览关注!

咸鱼上总是能够流出各种各样的拆机主板,尤其是尺寸极致的小板子尤为受人关注,得益于3D打印技术的成熟,以及大佬们的机箱方案开源。越来越来的老哥们加入到手搓小主机的队伍当中,这类小主板搭配后配的3D打印设计外壳,可…

通义千问3-14B数据安全:本地部署保障隐私实战指南

通义千问3-14B数据安全:本地部署保障隐私实战指南 1. 为什么数据安全必须“关起门来”做推理? 你有没有想过:当把一份客户合同、内部财报或产品设计文档发给云端大模型时,这些数据去了哪里?是否被缓存?会…

2026年水稻除草套餐工厂盘点与选购指南

一、摘要 随着水稻种植技术的不断革新与农业绿色发展的持续推进,水稻除草套餐因其高效、省工、持效期长等优势,已成为广大种植户田间管理的核心选择。进入2026年,市场上涌现出众多提供除草套餐解决方案的工厂,它们…

上海电子拉力机供应商哪家好?斯特玛仪器性价比高排行前列

在工业制造与科研创新的浪潮中,一台精准可靠的电子拉力机是材料性能评价的标尺,关乎产品质量把控与技术研发突破。面对市场上众多电子拉力机供应商,如何抉择?以下依据不同技术特点与服务能力,为你梳理2026年的电子…