阿里云即将开源的AliSQL什么来头?

标签: 行业资讯 AliSQL mysql 阿里云 | 发表时间:2016-09-02 11:06 | 作者:小码哥
出处:http://www.yunweipai.com
阿里云近日宣布启动AliSQL数据库开源项目。AliSQL是基于MySQL官方版本的一个分支,由阿里云数据库团队维护,目前也应用于阿里巴巴集团业务以及阿里云数据库服务。该版本性能优于社区版MySQL 70%左右,可帮助中小企业和开发者提升数据运营能力。

背景介绍

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做了哪些工作呢?

老司机简介

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

AliSQL的历史

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

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

电商业务的高速发展,对MySQL的性能提出了更高的要求。出于节省成本,AliSQL持续进行了性能优化,同时,多核CPU和SSD等新硬件的采用,也反过来促进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在相关报道中提到,“在通用基准测试场景下,AliSQL 版本比 MySQL 官方版本有着 70% 的性能提升。在秒杀场景下,性能提升 100 倍。”

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

秒杀场景是一个比较特殊的场景,AliSQL有专门的定制patch针对这种场景的优化,如果没有限流和排队,大并发的请求下,系统很容易产生雪崩效应,导致吞吐量急剧下降,而非线性关系。

所以,秒杀场景下,在不可预知的业务请求量的时候,类似减库存这样的场景,性能下跌非常厉害,而AliSQL的秒杀解决方案能够保证这类场景维持高性能。

AliSQL与电商行业、秒杀场景

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

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

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

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

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

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

1、超大并发

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

2、秒杀场景

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

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

AliSQL的个性化优化

在云计算的环境下,用户的使用场景和方式都千差万别,为了适应不同的环境,AliSQL定制了很多个性化的功能。

比如,为了保障在线业务的平稳,针对用户的分析型的SQL,AliSQL提供了资源使用限流、全表扫描buffer pool不缓存的特性,用户可以通过设置环境变量或者使用hint来方便的使用这些功能,又比如为了加快大表的扫描,提供了逻辑预读的功能, 这些特性,用户在不同的场景下可以自由选择。

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

  1. 游戏行业 
    我们在proxy这一层进行了AliSQL的桥接认证,提供防闪断功能。
  2. 物联网行业 
    AliSQL集成了TokuDB引擎,提供高压缩比和大吞吐写能力。
  3. 金融行业 
    AliSQL定制了多通道的半同步策略,以及一主两备的三机房零数据丢失的数据保护级别。

针对不同应用场景增加了哪些监控指标?

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

  1. SQL维度。增加每个SQL执行的开销统计,除了响应时间,锁等待等,还包括逻辑读,物理读,临时空间使用等
  2. 对象维度。增加了每个表的DML次数,索引的使用情况,帮助用户理解业务和索引使用效率。
  3. 事务维度。增加了每个事务持续的时间,和操作的对象。帮助用户定位问题
  4. 线程维度。增加了线程的内存使用统计

AliSQL的开源计划

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

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

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

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

  • 阿里云code平台地址:
  • https://code.aliyun.com/users/sign_in

AliSQL的真实性能数据究竟如何,还有待开源之后开发者们使用检验。

文章出处:InfoQ

相关 [阿里云 开源 alisql] 推荐:

阿里云即将开源的AliSQL什么来头?

- - 运维派
阿里云近日宣布启动AliSQL数据库开源项目. AliSQL是基于MySQL官方版本的一个分支,由阿里云数据库团队维护,目前也应用于阿里巴巴集团业务以及阿里云数据库服务. 该版本性能优于社区版MySQL 70%左右,可帮助中小企业和开发者提升数据运营能力. 8月9日,在2016云栖大会·北京峰会上,阿里云宣布启动AliSQL数据库开源项目.

阿里云开放 AliSQL 数据库正式发布,这里下载

- - 开源中国社区最新新闻
10月14日,在2016杭州云栖大会上,AliSQL正式开放了源代码的下载,即日可在官网下载使用. AliSQL是阿里巴巴基于于MySQL官方版本的一个分支,应用于阿里巴巴集团业务以及阿里云数据库服务. AliSQL版本在强度和广度上都经历了极大的考验. 最新的AliSQL版本从其他开源分支比如:Percona,MariaDB,WebScaleSQL等社区得到帮助,也从阿里巴巴MySQL领域的经验和解决方案得到经验.

使用阿里云ODPS之点滴

- - SQL - 编程语言 - ITeye博客
    趁着这次做网聚宝搜索服务化这个项目,体验了一下阿里云的重量级云产品ODPS,也就是传说中的云梯2. 项目几近结束,现在回过头来看当初选择使用OPDS的决定还是相当正确的,ODPS在网聚宝搜索上云这个项目中起到了非常至关重要的作用,一句话总结:ODPS是非常靠谱的. 从刚开始里了解ODPS开始,到引入项目中使用,进而通过优化加速在项目中使用得游刃有余,经历了一个过程,中间也走了不少弯路.

阿里云手机:淘宝手机马甲?

- Chengkun - cnBeta.COM
按阿里云总裁王坚说法,它指的是使用阿里操作系统的手机,而不是阿里自己造手机了――王坚坚称,永远不做手机. 把手机一些信息同步到服务器上,是一种“云功能”. 在阿里云手机中,可以把手机联系人、通话记录、相册等手机信息存储到云端账号. 我觉得,这个功能背后,有一系列隐私问题. 阿里会不会利用这些信息展开进一步商业动作,是需要打个问号的.

阿里云OS将于本月中首次升级

- Qian - cnBeta.COM
据阿里云方面透露,阿里云OS将于本月中旬进行首次升级,预计将新增消息通知块,以及支持在阿云浏览器安装apk应用. 据悉,目前已经进入版本稳定性测试阶段. 近日,阿里云OS人士在官方论坛透露,新版OS将于9月中旬发布,并给出了15条相关升级内容. 同时他也表示,这仅仅是新版中的一部分.

云主机初体验(盛大云和阿里云)

- - ITeye博客
近来时常听到云计算、云主机的概念,它们一度挑战我的认知能力,在国外云主机已经非常流行,国内才刚刚兴起. 近日,朋友给了个邀请码,卢松松这才有机会体验了把云主机,才算基本搞清楚是怎么回事. 也希望为主机犯愁的朋友提供些思路. 亚马逊是云主机应用的开创者,在国内传统的IDC公司,如万网、华夏名网也有此业务,国内做云计算较快的也就是阿里和盛大了,所以我介绍的是盛大云和阿里云.

谷歌反对阿里云:不兼容将毁掉Android

- - 月光博客
  据新浪科技 报道,谷歌高级副总裁、Android系统创始人安迪·鲁宾(Andy Rubin)今日在Android官方博客上 发布声明,称Android发展过程中的不兼容将毁掉这个系统,“尽管Android完全免费,但只有兼容设备才能充分享受整个生态系统带来的益处”,“为同一个Android平台添砖加瓦,而不是推出一大堆不兼容版本”.

亚马逊AWS, Linode, 阿里云等云服务对比

- - idea's blog
最近, 有消息称亚马逊云服务(AWS)要进入中国, 在中国建立 IDC. 一石激起千层浪, 国内云服务纷纷降价. 根据我使用和了解到的云服务, 我觉得有必要对比下各个厂商的云服务, 希望支大家有帮助.. 网络传输 – $0.12/GB. 看起来, 似乎阿里云的价格最低, 但是, 阿里云的 CPU 和内存非常弱, 我在上面编译 PHP 源码, 竟然花了近一个小时.

阿里云发布智能客服机器人“云小蜜”

- - cnBeta全文版
10月12日,在2017杭州•云栖大会上, 阿里云正式发布云小蜜 —— 一款智能会话客服机器人. 智能客服机器人云小蜜具备36个预置的细分领域知识包,支持中文英文会话,可以7*24小时在线工作. 目前,已覆盖阿里巴巴生态圈二十余个业务线,每天服务600w客户,问题解决率达到95%. 阿里巴巴于2015年底正式推出无线端多领域私人助理阿里小蜜,一款人工智能购物助理 虚拟机器人.

感觉,我可能发现了阿里云的一个秘密

- - V2EX - 技术
我维护了几十个公立医院的官方网站服务器……. 每个网站一个 ECS,每个网站独立账号,医院主体注册方便发票直接开给他们. 所有网站附件都在七牛,静态资源都在 cdn 服务器,webserver 只提供动态内容. 大部分都是单一 ECS,25Mbps 峰值带宽,按流量计费,预存一点钱,按流量计费,流量都很少,都是纯动态内容 少量医院不接受这种预存费之后消费开发票的,采用 5Mbps 带宽方式购买.