支付宝mysql集群_支付宝支撑2135亿成交额的数据库架构原理

OceanBase的SQL优化器和分布式并行执行

摘要:本文主要介绍蚂蚁金服自主研发的通用关系型数据库OceanBase,OceanBase采用了分布式架构,其通过技术创新在普通PC服务器集群上实现了更好的可靠性、可用性和可扩展行。本文中,蚂蚁金服OceanBase团队资深技术专家潘毅(花名:柏泽)为大家介绍了OceanBase,并分享了SQL优化器,分布式事务的执行逻辑等内容,为大家全面展现OceanBase底层事务引擎的技术创新。

一、OceanBase简介

OceanBase是蚂蚁金服自主研发的通用关系型数据库,其采用了分布式架构,目前支撑了蚂蚁金服全部核心链路系统。

为什么要开发OceanBase

数据库作为基础软件,研发耗时较长且投入较大,那么,蚂蚁金服为什么不能采用现成的方案,如商业数据库或者开源数据库呢?曾经,阿里巴巴拥有亚洲最大的Oracle集群,但是随着互联网业务的发展,尤其是近十年的发展非常迅速,阿里每年的流量呈指数型上升,而且在某些特定日期流量会出现激增,这也是互联网行业与传统银行、电信等行业在数据库应用方面的不同。传统行业可以制定未来几年的规划,如客户规模、业务量等,这些在一定程度上都是可预测的。但是互联网行业则不同,互联网行业的流量变化非常快,一方面使用商用数据库很难进行迅速扩展来应对阿里巴巴飞速增长的规模;另一方面,传统数据库的可靠性、高可用性等都需要依靠极其昂贵的硬件来实现,成本将会非常高昂。同时,阿里巴巴在高峰和平峰流量差别巨大,因此通过硬件实现特殊日期的高流量支持会造成严重的资源浪费。综上所述,现有的商业数据库并不能很好的支持阿里巴巴的整个互联网产业。而采用开源数据库同样也会导致一系列的问题,以MySQL为例,第一点,互联网产业的业务流量大,且并发高,需要每一个查询都要在极短的时间内执行,因此对于通用数据库而言,必须要掌握核心的代码才能保证稳定的业务需求。第二点,金融行业需要具备强大的分析、查询能力的数据库,而MySQL在分析查询方面的能力比较薄弱,无法满足业务需求。出于以上原因,蚂蚁金服需要开发一款数据库来满足自身的业务需求。

二、OceanBase架构

该部分将从集群拓扑、分区&分布式协议、存储引擎三个部分介绍OceanBase的架构设计。

1. 集群拓扑

多副本:一般部署为三个子集群,每个子集群由多台机器组成,数据存储在不同的集群中。

全对等节点:每个节点的功能对等,各自管理不同的数据分区。

不依赖共享存储:共享存储的价格较为昂贵,故采用本机存储的方式。

630eb3a4c6e288a57dadec851028dc8f.png

2.分区&分布式协议

数据分区:支持数据分区,每一个数据以分区为单位作为管理组,各分区独立选主,写日志。

高可用&强一致:通过PAXOS协议保证数据(日志)同步到多数机器,发生故障时自动切主。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值