性能比MySQL提升70%,阿里云即将开源的AliSQL数据库什么来头?
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做了哪些工作呢?
双11大促不断刷新记录,数据库的稳定性也变得越来越重要,AliSQL开始定制基于限流、线程池、秒杀等功能的patch,提升AliSQL的稳定性。
针对小微金融业务对数据保护的高要求,AliSQL定制了适合金融业务的数据保护方案,例如金融云上使用的双通道日志高可靠方案。
从阿里云RDS上线服务开始,阿里云数据库团队就遇到了前所未有的挑战,不同的行业用户,不同的使用习惯和要求,AliSQL也迎来了发展最为迅速的时刻,影响力也越来越大。
所以,AliSQL的版本,是伴随着业务的发展,一起成长起来的,经历过双11大促这样大压力的考验,同时也经历了阿里云各行各业用户差异化的需求。可以说是身经百战。
阿里云是开源组织 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这样的语句,解决了长连接占用资源和短连接性能问题的矛盾。
秒杀场景是一个比较特殊的场景,AliSQL有专门的定制patch针对这种场景的优化,如果没有限流和排队,大并发的请求下,系统很容易产生雪崩效应,导致吞吐量急剧下降,而非线性关系。
所以,秒杀场景下,在不可预知的业务请求量的时候,类似减库存这样的场景,性能下跌非常厉害,而AliSQL的秒杀解决方案能够保证这类场景维持高性能。
比如大写入量备库延迟,AliSQL提供的基于表的并行复制功能。 又比如结构化数据的压缩功能等。
电商的秒杀场景,其实就是减库存,对数据库而言,就是对一条记录的更新,因为事务的特点,单条记录的更新必须串行完成,但秒杀的特点,就是在某个时刻,大量的并发进行减库存,这就造成了大量的线程因获取不到锁而处在死锁检测状态,消耗了大量的CPU资源,最终导致系统无法响应,而引起雪崩效应。
AliSQL针对这样的场景,提供了排队和限流的功能,经过了双11零点时刻高并发请求的考验,保持了系统的稳定性和持续吞吐能力。
电商业务高峰有两个对数据库挑战比较大的场景:
1、超大并发
MySQL能够支持的并发活跃连接数是有上限的,理想情况下是大约(CPU核心数乘以2)个活跃连接数,当活跃连接数远超这个值时,性能会急剧下降,导致整个业务不可用。AliSQL有水位控制,超过一定阈值的活跃连接数,当我们判断到当前压力超过数据库的处理能力时,会主动放弃后到的请求,这样保证数据库还能保持很高的能够正常响应的吞吐量。
2、秒杀场景
在秒杀场景里面有一个减库存的问题。大量用户同时抢购同一个商品的时候,需要同时更新商品库存,这时候InnoDB的行锁加上死锁检测机制会导致数据库CPU短时间内被占满,导致整库几乎无法响应。
在AliSQL我们有针专门针对秒杀的方案,保证在大量线程同时减库存时仍能保持很高的TPS。除了阿里自己的秒杀业务,这个功能同样适用于抢红包这样的业务,已经在2015、2016年春节经过大量的业务验证。
除了这些,AliSQL在公有云上针对不同行业定制了很多功能。比如:
- 游戏行业
我们在proxy这一层进行了AliSQL的桥接认证,提供防闪断功能。 - 物联网行业
AliSQL集成了TokuDB引擎,提供高压缩比和大吞吐写能力。 - 金融行业
AliSQL定制了多通道的半同步策略,以及一主两备的三机房零数据丢失的数据保护级别。
- SQL维度。增加每个SQL执行的开销统计,除了响应时间,锁等待等,还包括逻辑读,物理读,临时空间使用等
- 对象维度。增加了每个表的DML次数,索引的使用情况,帮助用户理解业务和索引使用效率。
- 事务维度。增加了每个事务持续的时间,和操作的对象。帮助用户定位问题
- 线程维度。增加了线程的内存使用统计
开发者可以自由下载使用,并在平台上进行反馈或者提出建议,后续AliSQL也会定期组织论坛,邀请开发者参与进行讨论。
我们希望AliSQL能够形成一个活跃的社区,开发者能够从中受益,也能够提出需求和改进建议,促进分支持续发展。
- 阿里云code平台地址:
- https://code.aliyun.com/users/sign_in
AliSQL的真实性能数据究竟如何,还有待开源之后开发者们使用检验。
本文文字及图片出自 微信公众号
你也许感兴趣的:
- 【程序员搞笑图片】有时
- 【外评】为什么 SQLite(在生产中)的声誉如此糟糕?
- 新增 300 多项功能,Oracle Database 23ai 正式发布!年近 50 岁的数据库巨头正迈入 AI 时代
- MariaDB消亡史
- 3700 万美元“卖身救命”,泥潭深陷的 MariaDB 准备退市
- 全方位对比 Postgres 和 MySQL (2023 版)
- 这将是一场灾难?37年历史的PostgreSQL数据库将进行重大架构变更
- 国外云数据库时代和对中国软件发展的思考
- 裁员几百人、股价暴跌,MariaDB 要凉凉?
- MariaDB市值暴跌,收入不足以支持运营
你对本文的反应是: