最佳实践| OceanBase事务引擎的技术创新

  
  

颜然,蚂蚁金服OceanBase团队资深技术专家,OceanBase初创成员之一,目前负责事务引擎以及性能优化相关的研发工作。
以下为演讲实录:

     

首先,我们先来聊一个大家都很感兴趣的话题:跟已有的经典数据库比如:Oracle SQL Server等,OceanBase跟他们最大的区别在哪里? <强> OceanBase是一个云原生的数据库强。而我们所做的软件全部是基于硬件的基础之上。那么,我们首先就需要了解现在的硬件到底处在什么水平?
最佳实践| OceanBase事务引擎的技术创新

  

如上图所示,IBM的解决方案是最为大家所熟识的,从五十多年前的系统360到去年新出的IBM z14时至今日依然还有很多机构在沿用这套解决方案。
最佳实践| OceanBase事务引擎的技术创新

  

我们每天都在说云计算,那么到底什么是云计算?云计算不是从石头缝里蹦出来的解决方案,它最早起源于12月的小型机.DEC是和IBM大型机同时代的产物,以较低的价格解决存储和计算的需求。它与IBM大型机的区别在于:12月价格低,获得方式更灵活。

  

12月之后被基于芯片的解决方案打破了,诸如太阳工作站的解决方案提供了更好的性能和更低价格,平台也更通用。再之后PC服务器接过接力棒,此时的CPU、内存,存储可以来自于不同的厂商,但大家组合起来以后仍然可以提供一套标准化的计算和存储的平台。

  

相比较IBM大型机,基于PC服务器的数据中心以一种更产业链化的方式提供了计算和存储的解决方案,具有更好的性价比,也更易于扩展。但是IBM大型机是软硬一体化设计,这也是大型机满足需求可以采用很多硬件层面的解决思路。例如,金融业务对于高可靠性的需求,大型机是在硬件层面做了多种可靠性保障,从存储到内存甚至CPU都是有冗余策略来支持。但是PC服务器的单台机器的故障率相对来说是高的,所以需要使用完全不同的思路来解决业务高可靠和高可用的需求。

  

此处引用OceanBase团队创始人阳振坤的一句话——“<>强计算机天然不适合数据库,但数据库天然选择了计算机强劲”。为什么计算机天然不适合数据库?因为在处理数据的时候,一个非常关键的问题就是数据的可靠安全和一致。而计算机的硬件天然具有各种概率的损坏,不管是掉电,软件出错误,操作系统有问题,还是整个机房都挂掉,计算机是天然会出错的。但我们要解决的问题又是不能出错,所以在计算机上去解决数据库的可靠安全一致性的问题,其实是一个非常大的挑战。

  

<>强要在一个更低可靠性的机器上实现更可靠的数据库的事务服务能力,这就是我们当前所面临的严峻挑战

  

OceanBase事务

  

当然,有挑战的地方就有机遇.OceanBase在面对这样的挑战之下我们做了什么?在这样的一个基于PC服务器的云化环境下,<强> OceanBase实现了弹性扩展的能力,同时实现了不依赖高端硬件解决数据库事务的高可靠和高可用的能力。

  

OceanBase所依赖的硬件条件是一套通用的云化环境。但在这个硬件基础上,我们依然可以做到数据库的事务,同样能够实现高性能,甚至能够支撑金融级的可靠性。

  

何谓金融级可靠性?每个人都会有切身的感受。比如说你发了一条帖子,但是这条帖子丢了,你可能会不爽,但是不至于非常难受。再换一个场景,今天你给朋友转账100元,你朋友却只收到98元,此时你的内心一定是恐惧的,所以在这种金融级场景下,必须做到的就是为用户提供充足的保障,这就叫做金融级可靠性。但金融级可靠性的难度在于对细节的处理能力。细节是魔鬼,我们在做数据库软件的时候,需要对细节的把控能力极强。
最佳实践| OceanBase事务引擎的技术创新

  

这里要重点提到的几点,其实就延续着数据库事务的几个重要的特性。

  
      <李> OceanBase架构下事务酸的实现方式:李   <李>耐久性:事务日志使用Paxos做多副本同步李   <李>原子性:使用两阶段提交保证跨机事务原子性李   <李>隔离:使用多版本机制进行并发控制李   <李>一致性:保证唯一性约束李   
  

OceanBase存储引擎

  

OceanBase的架构基于LSM树。为什么会基于LSM树?它有哪些特点吗?

最佳实践| OceanBase事务引擎的技术创新