近日,阿里云发布了第三代DRDS分布式SQL引擎,即DRDS(阿里云分布式关系型数据库服务)5.3 版本 ,相较于大多数(拆分键上的等值查询、读写分离等)场景,DRDS 5.3在性能上提升到之前的300%,且无需依赖第三方组件,就可执行分布式事务,使得操作实现最简化。
极致性能源自多项卓越技术加身
超跑之所以跑得快,性能高,是因为使用了涡轮增压发动机,涡轮增压器等作为辅助。DRDS 5.3也不例外,使用了 Plan Cache、协程、FastSQL 等多项技术,
大幅提升了吞吐量,8C16G 规格的 DRDS 大可以提供 6W+/s 的 QPS,这是什么概念?就像文章开头说说的,大 QPS 较传统SQL引擎提升高达300%。
首先,DRDS 5.3引入了 Plan Cache 技术能力,大幅降低了 SQL 解析与查询优化的代价。
针对不同类型的 SQL,DRDS 5.3分成了多级 Plan Cache,其中,性能高的被命中了一级 Plan Cache 的 SQL。无论参数取值如何,一定可以被下推到单分片执行的 SQL 会命中一级 Plan Cache,从而提升系统容量。
其次,在业务逻辑相同的情况下,通过使用协程模型与使用线程模型相比,系统容量提升了 30% 左右。
还有一点,DRDS 5.3 将Parser 部分,换成了从 Druid 剥离出来的 FastSQL。FastSQL 在 SQL 解析方面,比 antlr、javacc 等自动生成的 Parser
快了数十倍至数百倍,相对 DRDS 老版本的 Parser 带来了一倍的性能提升。
DRDS 5.3的作用类似于统帅,除了要靠技术来实现性能提升,还需要丰富的拆分算法,满足应用不同业务场景下的拆分诉求,也就是软实力。DRDS 5.3独创RANGE_HASH、RIGHT_SHIFT拆分算法,支持按数字、字符串、时间单独或者混合分片等多种丰富拆分函数,让操作100亿数据如同操作100万数据高效。
DRDS 5.3原生分布式事务,整体事务链路更加稳定
DRDS 5.3 提供原生的分布式事务功能,提供柔性事务与XA事务两种事务方案供用户在不同的场景下进行选择。这对于用户来说有哪些好处?不依赖任何第三方组件,能力集成在 DRDS Server 中,专有云无需额外资源进行部署。公有云上购买的实例即可立即使用,不产生额外费用。
一般情况下,当 DRDS 后端的 MySQL 为 5.7 及以上版本时,推荐使用 XA 事务。
柔性事务的优势在于放弃了隔离性,减小了事务中锁的粒度,使得应用能够更好的利用数据库的并发性能,实现吞吐量的线性扩展。异步执行方式可以更好的适应分布式环境,在网络抖动、节点故障的情况下能够尽量保障服务的可用性(Availability)。
XA 事务使用两阶段提交协议(XA Protocol)保护子事务的提交与回滚,消除了柔性事务的异步回滚问题。由于 XA Protocol 在提交与回滚阶段始终加锁,避免了事务结束前的脏读和覆盖,但是对性能有较大影响。
DRDS 5.3的超能力绝不仅于此,在SQL 兼容性方面,DRDS 5.3 大的特点在于明确了 SQL 的边界,也即能够明确的说明哪些 SQL 支持、哪些 SQL 不支持,并且提供了非常丰富的分布式 SQL 优化策略,例如对 Filter 的上拉、下压、推导等优化,确保 DRDS 可以准确的识别出 SQL 中可以下推的部分;针对不同的场景,对排序与 Limit 进行优化,确保能将排序与 Limit 尽可能多的下推到存储节点上,保证传输的数据量最小等等。
DRDS助力多家企业实现业务加速
DRDS经历历届天猫双十一核心交易业务和各类行业业务的考验,并且成功将超能力赋予了多家企业,实现业务加速。
中国邮政目前新一代寄递平台、车管平台、公式管理、CRM系统多达8个核心子系统均在使用DRDS。通过DRDS提供的数据库拆分能力,快速的支持了中国邮政核心业务系统的不断迭代,大幅节省了客户针对数据库层面的运维成本。
中石油新系统基于分布式数据库DRDS,真正的实现了完整的替换IOE解决方案。
除此之外,中国外汇、广发银行、万科等企业均不同程度上将核心业务系统均构建在DRDS之上,张弛有度地满足了业务的伸缩需求。