专访丁奇:阿里云即将开源AliSQL,针对秒杀优化

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

8月9日,在2016云栖大会·北京峰会上,阿里云宣布启动AliSQL数据库开源项目。预计在9月份邀请部分用户内测,预计在10月份,开发者阿里云Code平台和GitHub网站上可以下载AliSQL,感兴趣的读者可以关注。

AliSQL是基于MySQL官方版本的一个分支,由阿里云数据库团队维护,目前也应用于阿里巴巴集团业务以及阿里云数据库服务。该版本在社区版的基础上做了大量的性能与功能的优化改进。尤其适合电商、云计算以及金融等行业环境。该版本性能优于社区版MySQL 70%左右,可帮助中小企业和开发者提升数据运营能力。

阿里云数据库资深专家丁奇介绍,AliSQL版本在强度和广度上都经历了极大的考验。最新的AliSQL版本不仅从其他开源分支比如:Percona,MariaDB,WebScaleSQL等社区汲取精华,也沉淀了阿里巴巴多年在MySQL领域的经验和解决方案。AliSQL增加更多监控指标,并针对电商秒杀、物联网大数据压缩、金融数据安全等场景提供个性化的解决方案。

丁奇表示,“在通用基准测试场景下,AliSQL版本比MySQL官方版本有着 70% 的性能提升。在秒杀场景下,性能提升 100倍”。这样的性能提升数据是如何得出的?即将开源的AliSQL又将为开发者带来哪些功能?针对于不同行业,AliSQL做了哪些工作呢?

近日,InfoQ就相关问题采访了丁奇。

受访嘉宾介绍

丁奇,阿里云关系数据库服务内核开发和运维团队负责人,活跃的MySQL社区贡献者。专注于数据存储系统、MySQL源码研究和改进、MySQL性能优化和功能改进。

InfoQ:AliSQL是基于MySQL官方版本的一个分支,能否简单介绍下AliSQL的历史?AliSQL版本在强度和广度上都经历了哪些考验?

丁奇:大概在2009年,阿里巴巴集团开始大规模的使用MySQL数据库来持久化业务数据。随着集团业务的高速发展,官方的MySQL版本遇到了不小的挑战,包括性能、部署、功能、成本等方面。

伴随着业务的驱动和对源代码的熟悉,集团开始尝试在MySQL官方的开源版本上进行修改,这就形成了AliSQL的雏形。

电商业务的高速发展,对MySQL的性能提出了更高的要求。出于节省成本,AliSQL持续进行了性能优化,同时,多核CPU和SSD等新硬件的采用,也反过来促进AliSQL能够尽可能利用硬件的红利。

双11大促不断刷新记录,数据库的稳定性也变得越来越重要,AliSQL开始定制基于限流、线程池、秒杀等功能的patch,提升AliSQL的稳定性。

针对小微金融业务对数据保护的高要求,AliSQL定制了适合金融业务的数据保护方案,例如金融云上使用的双通道日志高可靠方案。

从阿里云RDS上线服务开始,阿里云数据库团队就遇到了前所未有的挑战,不同的行业用户,不同的使用习惯和要求,AliSQL也迎来了发展最为迅速的时刻,影响力也越来越大。

所以,AliSQL的版本,是伴随着业务的发展,一起成长起来的,经历过双11大促这样大压力的考验,同时也经历了阿里云各行各业用户差异化的需求。可以说是身经百战。

InfoQ:阿里云是开源组织 WebScaleSQL 的第五位成员,与Facebook、Google、Twitter和LinkedIn团队共同研发WebScaleSQL,同时,阿里巴巴还拥有OceanBase 自研数据库。能否请介绍下AliSQL、WebScaleSQL、OceanBase三者的关系和各自的特点?

丁奇: OceanBase是Alibaba集团自研的分布式数据库,经历了集团业务的洗礼,具有通用性,高扩展能力。

WebScaleSQL是由这五家公司发起的基于MySQL官方的一个分支,旨在解决大家在互联网业务上遇到的问题,是五个成员公司将各自足够通用的功能提交到一起的集合,每家公司的研发同学都可以提交代码。实际上每个公司自己生产环境使用的是自己维护的一个分支,因为每个公司都有自己定制化的需求。

AliSQL同样基于MySQL官方版本,汲取了官方和社区的技术红利,具有很高的性能和稳定性,并适应不同行业的特点进行了定制。AliSQL的改进方向主要集中在安全性、稳定性、性能、新功能等方面。

AliSQL是经过几年的生产环境、几万个用户实例的实际业务锤炼的。

AliSQL的一些定制化功能都是为了解决DBA维护、业务使用中碰到的实际问题。比如5.5以上的版本由于有metadata lock,DBA对表加字段等操作可能导致阻塞查询,进而导致整库不可服务。我们新增alter ..wait N ..方法,保证了操作的安全性。再比如通过提供 set rds_reset_connection这样的语句,解决了长连接占用资源和短连接性能问题的矛盾。

InfoQ:AliSQL在相关报道中提到,“在通用基准测试场景下,AliSQL 版本比 MySQL 官方版本有着 70% 的性能提升。在秒杀场景下,性能提升 100 倍。”能否详细讲解该数据是如何得出的?

丁奇: 通用基准的测试,我们是采用sysbench进行的测试,也是公开的标准测试方法,AliSQL在吞吐能力上,比MySQL官方大概70%的性能提升。

秒杀场景是一个比较特殊的场景,AliSQL有专门的定制patch针对这种场景的优化,如果没有限流和排队,大并发的请求下,系统很容易产生雪崩效应,导致吞吐量急剧下降,而非线性关系。所以,秒杀场景下,在不可预知的业务请求量的时候,类似减库存这样的场景,性能下跌非常厉害,而AliSQL的秒杀解决方案能够保证这类场景维持高性能。

InfoQ:电商行业的环境特点是怎样的?AliSQL在电商行业环境下的优势有哪些?或者说,为了更好地符合电商行业的需求,AliSQL做了哪些性能与功能的优化工作?

丁奇: 电商行业的环境,其实提供了一个非常综合的场景,在扩展性、稳定性、性能等方面对数据库都提出了非常高的要求,AliSQL就是顺应着这样的要求进行的定制版本。

比如应对大量应用集群的线程池功能,秒杀场景的排队功能,以及SQL的限流功能。

比如大写入量备库延迟,AliSQL提供的基于表的并行复制功能,又比如结构化数据的压缩功能等。

InfoQ:电商秒杀场景有什么特点,为数据库带来的挑战有哪些?AliSQL针对该场景优化了哪些性能与功能?已经应用过的实际场景有哪些?实际效果如何?

丁奇: 电商的秒杀场景,其实就是减库存,对数据库而言,就是对一条记录的更新,因为事务的特点,单条记录的更新必须串行完成,但秒杀的特点,就是在某个时刻,大量的并发进行减库存,这就造成了大量的线程因获取不到锁而处在死锁检测状态,消耗了大量的CPU资源,最终导致系统无法响应,而引起雪崩效应。

AliSQL针对这样的场景,提供了排队和限流的功能,经过了双11零点时刻高并发请求的考验,保持了系统的稳定性和持续吞吐能力。

电商业务高峰有两个对数据库挑战比较大的场景:

1.超大并发

MySQL能够支持的并发活跃连接数是有上限的,理想情况下是大约(CPU核心数×2)个活跃连接数,当活跃连接数远超这个值时,性能会急剧下降,导致整个业务不可用。AliSQL有水位控制,超过一定阈值的活跃连接数,当我们判断到当前压力超过数据库的处理能力时,会主动放弃后到的请求,这样保证数据库还能保持很高的能够正常响应的吞吐量。

2.秒杀场景

在秒杀场景里面有一个减库存的问题。大量用户同时抢购同一个商品的时候,需要同时更新商品库存,这时候InnoDB的行锁加上死锁检测机制会导致数据库CPU短时间内被占满,导致整库几乎无法响应。

在AliSQL我们有针专门针对秒杀的方案,保证在大量线程同时减库存时仍能保持很高的TPS。除了阿里自己的秒杀业务,这个功能同样适用于抢红包这样的业务,已经在2015、2016年春节经过大量的业务验证。

InfoQ:在个性化方面,AliSQL针对云计算和金融行业做了哪些优化工作?应用过的实际场景有哪些?实际效果如何?AliSQL在物联网大数据压缩、金融数据安全等场景又提供了哪些个性化功能?

丁奇: 在云计算的环境下,用户的使用场景和方式都千差万别,为了适应不同的环境,AliSQL定制了很多个性化的功能,比如,为了保障在线业务的平稳,针对用户的分析型的SQL,AliSQL提供了资源使用限流、全表扫描buffer pool不缓存的特性,用户可以通过设置环境变量或者使用hint来方便的使用这些功能,又比如为了加快大表的扫描,提供了逻辑预读的功能,
这些特性,用户在不同的场景下可以自由选择。

除了这些,AliSQL在公有云上针对不同行业定制了很多功能。比如:

游戏行业
我们在proxy这一层进行了AliSQL的桥接认证,提供防闪断功能。

物联网行业
AliSQL集成了TokuDB引擎,提供高压缩比和大吞吐写能力。

金融行业
AliSQL定制了多通道的半同步策略,以及一主两备的三机房零数据丢失的数据保护级别。

InfoQ:针对不同的应用场景,AliSQL增加了哪些监控指标?

丁奇: AliSQL增加了很多监控指标,以帮助用户或者DBA更了解自己的数据库,比如,AliSQL针对四个不同的维度的统计:

SQL维度。增加每个SQL执行的开销统计,除了响应时间,锁等待等,还包括逻辑读,物理读,临时空间使用等。

对象维度。增加了每个表的DML次数,索引的使用情况,帮助用户理解业务和索引使用效率。

事务维度。增加了每个事务持续的时间,和操作的对象。帮助用户定位问题。

线程维度。增加了线程的内存使用统计。

InfoQ:阿里巴巴一直在推进开源工作,您认为做好开源工作,公司应该从哪些方面出发?目前,AliSQL的开源计划是怎样的?将为开发者具体怎样的帮助?

丁奇: 我觉得,公司首先是支持开源的,基于开源的协议,有着回馈社区的初衷,并怀着促进社区发展的良好愿景。

AliSQL开源会保持着一个好的节奏,持续的高质量回馈社区。具体在9月中旬放出binary, 10月份会放出源代码的第一个稳定版本。

开发者可以自由下载使用,并在平台上进行反馈或者提出建议,后续AliSQL也会定期组织论坛,邀请开发者参与进行讨论。

我们希望AliSQL能够形成一个活跃的社区,开发者能够从中受益,也能够提出需求和改进建议,促进分支持续发展。

文章转载自 开源中国社区[http://www.oschina.net]

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
21天前
|
关系型数据库 分布式数据库 PolarDB
参与有礼|开源PolarDB文档捉虫
2024年9月,开源PolarDB-PG发布兼容PostgreSQL 15版本,为提升用户体验,特举办“开源文档捉虫”活动,邀请您反馈文档问题和优化建议。活动时间为2024年11月1日至2025年2月28日。参与即有机会赢取PolarDB开源社区T恤、新春茶碗及福字版印礼盒等丰富奖品。更多详情及反馈入口请点击链接。
参与有礼|开源PolarDB文档捉虫
|
4月前
|
OLAP
云端问道5期-基于Hologres轻量高性能OLAP分析陪跑班获奖名单公布啦!
云端问道5期-基于Hologres轻量高性能OLAP分析陪跑班获奖名单公布啦!
436 3
|
4月前
|
存储 SQL 运维
“震撼发布!PolarDB-X:云原生分布式数据库巨擘,超高并发、海量存储、复杂查询,一网打尽!错过等哭!”
【8月更文挑战第7天】PolarDB-X 是面向超高并发、海量存储和复杂查询场景设计的云原生分布式数据库系统
112 1
|
4月前
|
canal 关系型数据库 MySQL
"揭秘阿里数据同步黑科技Canal:从原理到实战,手把手教你玩转MySQL数据秒级同步,让你的数据处理能力瞬间飙升,成为技术界的新晋网红!"
【8月更文挑战第18天】Canal是一款由阿里巴巴开源的高性能数据同步系统,它通过解析MySQL的增量日志(Binlog),提供低延迟、可靠的数据订阅和消费功能。Canal模拟MySQL Slave与Master间的交互协议来接收并解析Binary Log,支持数据的增量同步。配置简单直观,包括Server和Instance两层配置。在实战中,Canal可用于数据库镜像、实时备份等多种场景,通过集成Canal Client可实现数据的消费和处理,如更新缓存或写入消息队列。
841 0
|
存储 弹性计算 运维
互娱NoSQL架构优化 —— 暨MongoDB“在线换引擎”技术服务指南”
XX工作室是某大客户核心游戏工作室,其核心业务是国内二次元RPG手游,采用实时开放世界对战模式,整体采用阿里云方案,本次专项攻坚主要对于玩家在游戏期间各类游戏属性交互(包含过图、物品、面板、剧情等)的核心业务模块进行优化,其中涉及NoSQL部分由于在专项优化期间存在诸多细节,特此提炼出来给各位有类似互娱业务场景进行参考。
|
缓存 Cloud Native 架构师
【活动回顾】PostgreSQL中文社区 × PolarDB开源数据库技术沙龙(武汉站)圆满落幕!
6月3日,由PostgreSQL中文社区和PolarDB开源社区联合举办的数据库技术沙龙(武汉站)圆满落幕!本次活动邀请到来自阿里云、成都文武,四维纵横,拓数派,斗鱼、武汉大学等多位资深技术专家与老师,这次技术交流活动围绕未来数据库展开讨论和分享。通过探讨未来数据库的概念和特点,了解未来数据库在数据管理、智能分析、数据驱动等领域的应用和机遇,为智能化时代的发展提供更多的支持和服务。接下来让我们一起回顾活动精彩吧!
【活动回顾】PostgreSQL中文社区 × PolarDB开源数据库技术沙龙(武汉站)圆满落幕!
|
SQL 运维 负载均衡
【6月23日直播预告】携程OcenanBase 实践数据库发布和拟真压测
6月23日(周四)19:00,将线上播出《深入浅出OceanBase第五期》,将带来携程OceanBase实践数据库发布和拟真压测,欢迎大家及时关注。
|
运维 Cloud Native 关系型数据库
和大咖一起玩转PolarDB for PostgreSQL!学习还能抢AirPods等大奖!
2021年5月29日阿里云开发者大会上,阿里云宣布正式开源云原生数据库能力,开放关系型数据库 PolarDB for PostgreSQL的源代码。本次阿里云开源的是PolarDB for PostgreSQL分布式版,包括数据库内核、相关插件、工具脚本、测试用例以及设计文档,适用于中大型企业核心业务场景。PolarDB for PostgreSQL是阿里云自主研发的云原生数据库,采用基于 Shared-Storage 的存储计算分离架构,具有极致弹性、毫秒级延迟、HTAP 的能力。
和大咖一起玩转PolarDB for PostgreSQL!学习还能抢AirPods等大奖!
|
运维 架构师 数据管理
OceanBase Meetup第五期 复杂业务场景下的数据库应用需求及挑战
“OceanBase Meetup”是由OceanBase发起和举办的技术交流活动,每期会邀请对数据库技术感兴趣的技术专家在开放自由的氛围下,分享业界前沿的新兴技术趋势和话题,同时会围绕热点话题进行互动讨论。希望通过线下聚会的形式,让更多的技术人员结识更多行业伙伴,分享和交流技术观点,碰撞出精彩火花。
OceanBase Meetup第五期 复杂业务场景下的数据库应用需求及挑战
|
运维 Cloud Native 关系型数据库
PolarDB for PostgreSQL开源训练营,学习还能抢AirPods等大奖!
2021年5月29日阿里云开发者大会上,阿里云宣布正式开源云原生数据库能力,开放关系型数据库 PolarDB for PostgreSQL的源代码。本次阿里云开源的是PolarDB for PostgreSQL分布式版,包括数据库内核、相关插件、工具脚本、测试用例以及设计文档,适用于中大型企业核心业务场景。PolarDB for PostgreSQL是阿里云自主研发的云原生数据库,采用基于 Shared-Storage 的存储计算分离架构,具有极致弹性、毫秒级延迟、HTAP 的能力。
219 0
PolarDB for PostgreSQL开源训练营,学习还能抢AirPods等大奖!