浅谈数据库发展史和 OceanBase 的诞生

2024年 5月 7日 44.1k 0

本文作者:杨传辉(花名:日照)蚂蚁集团资深总监、OceanBase 研发总经理,全面负责 OceanBase 研发工作。作为 OceanBase 创始成员和首席架构师,主导了技术架构设计,实现分布式数据库在核心金融场景零的突破,完成蚂蚁集团核心数据库100%上 OceanBase,主导 OceanBase TPC-C 测试并打破世界纪录。曾在百度负责云存储与云计算系统研究工作,著有专著《大规模分布式存储系统:原理与实践》。

本文主要介绍数据库的发展,带大家共同回顾这一历史进程,也将首次揭秘 OceanBase 诞生的故事。

什么是数据库

首先,什么是数据库。顾名思义,数据库是按照数据结构来组织、存储和管理数据的仓库。历史上曾经出现过层次数据库、网状数据库以及关系数据库。

如今,关系数据库成为业界的主流。关系数据库的全称是 Relational Database Management System,简称叫 RDBMS。一般来讲,关系数据库主要应用在核心行业的核心业务场景,也就是我们经常说的 Mission-critical 场景,涉及到人、财、物等需要精确管理等应用。关系数据库有一个第一定律,那就是永远不要丢失任何一条数据。

关系数据库可以被分成三个基本的模块,包括:

关系模型,也就是我们经常听到的表格、索引、外键、范式等;

事务处理,也就是事务的 ACID,原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability);

查询优化,也就是 SQL 的解析、改写、优化、执行等等。

浅谈数据库发展史和 OceanBase 的诞生-2

(图片来自互联网)

数据库技术的繁荣发展,也得益于很多优秀的科学家。数据库领域有四位图灵奖得主,第一位图灵奖得主是 1973 年的网状数据库的创始人 Charles W.Bachman。第二位是 1981 年关系理论的提出者 Edgar F.Codd。第三位图灵奖得主是事务处理的发明人 Jim Gray,于 1998 年获得了图灵奖,Jim Gray 也是科学研究四类范式的提出人,他是一个天才科学家。有个有趣的事可以和大家分享:当年微软想把 Jim Gray 招到西雅图的总部,但是,Jim Gray 不喜欢西雅图的天气,于是,微软专门在旧金山给 Jim Gray 建了一个单独的研究院。

第四位数据库领域的图灵奖得主是 Michael Stonebraker。Michael Stonebraker 不仅是位教授,而且还是不同数据库公司的创始人,他创立了很多不同类型的数据库产品,除了 Oracle 和 DB2 以外,绝大部分的数据库产品,都或多或少与 Michael Stonebraker 有点关系。Michael Stonebraker 最著名的一个数据库产品就是 Ingres,Ingres 是 Informix、Sybase、SQL Server、PostgresSQL 等一系列产品的前身,Michael Stonebraker 也是在 2014 年获得了图灵奖。

关系数据库发展史

根据下图的时间线,我们一起回顾下关系数据库的发展史。

浅谈数据库发展史和 OceanBase 的诞生-2

1970 年,Edgar F.Codd 首先提出了关系模型。接下来就有两个关系模型的原型系统。第一个是 IBM 做出来的 System R,第二个是 Michael Stonebraker 领导的 Ingres。IBM 是关系模型的提出者,也是第一个原型系统的实现者,但是 IBM 并没有抓住关系数据库商业化的历史新机遇,反而把机会让给了一个叫 Larry Ellison 的人,1979 年 Oracle 模仿 IBM 的 System R 做出了第一个商业数据库版本 Oracle Release 1。直到 1983 年,IBM 的第一个商业数据库版本 DB2 才姗姗来迟,但是已经错过了最好的数据库发展时期。

1987 年,Sybase 和微软一起做出了 Sybase SqlServer。1989 年,微软买下了 Sybase SqlServer 的代码版权,并且形成了一个独立的 MS SqlServer 的分支。我们今天听到的 SqlServer 一般指的是微软的 MS SqlServer。

同一年,著名的开源数据库 PostgreSQL 也诞生了。

1995 年,MySQL 诞生,MySQL 的创始人叫 Monty。一个非常神奇的事情是,MySQL 早期的主要代码都是 Monty 一个人贡献的,而且到今天为止,Monty 仍然保持着写代码的习惯。

2004 年,更多的列式数据库产品,包括 MonetDB、C-Store 也加入到关系数据库的产品行列。

分布式系统发展

接下来,我们再来看下分布式系统的发展。

分布式系统也是一个相对比较古老的领域。但是直到最近的十几二十年,分布式系统才由理论变成大规模的工程实践。对分布式系统工程实践贡献最大的公司是 Google,Google 的基础设施有三驾马车,分别叫做《Google File System》、《Google MapReduce》以及《Google BigTable》。Google 发表了这三篇论文以后,基本上奠定了业界大规模分布式存储系统的理论基础,所有对分布式系统工程实践感兴趣的同学,我建议都去仔细精读这三篇论文。

浅谈数据库发展史和 OceanBase 的诞生-3

2005 年,Hadoop 成立,Hadoop 项目的初衷就是做出 Google 三驾马车的开源实现。

2007 年,Amazon 发表了 Dynamo 的论文,Dynamo 的设计思想也比较有意思,他采用了 P2P 的思想来实现分布式的存储,里面用到了包括一致性 Hash、NWR 等一系列非常有意思的技术。当然了,最终 P2P 的技术因为没有办法保证强一致性,并没有成为业界的主流。

2009 年,Spark 项目成立。

2010 年,我所在的 OceanBase 项目成立。OceanBase 团队是分布式数据库的信仰者、实践者,OceanBase的定位是原生分布式数据库,以追求成为分布式数据库的领导者为目标。

2011 年,另外一个云计算的巨头微软,发布了 Windows Azure Storage。

2012 年,Google Spanner 发表了论文,Spanner 是全球第一个 Global Database,采用了 TrueTime、Paxos和两阶段提交等一系列分布式的技术来实现了一个全球级别、可无限扩展的、强一致的分布式数据库。

2016 年,Amazon 发布了 Aurora,Aurora 是一个存储计算分离的系统,运行在公有云之上,它的设计思想很巧妙,它把存储与计算分离使得可以非常简单得实现存储能力的可扩展。Aurora 有个核心的设计理念:The log is the Database。

关系数据库的经验教训

关系数据库发展了这么多年,有很多的经验教训。

关于经验,今天我选两点经验分享:

第一点:应用驱动创新,应用创新与技术创新相辅相成,互为促进。关系数据库的很多技术都是应用驱动产生的,这也形成了非常强大的技术生态。

第二点:抽象与标准化,关系数据模型、事务处理模型本身就是最本质的抽象,能够获得图灵奖的一个抽象。关系数据库里面也产生了很多的标准,其中最著名的标准是 :SQL 标准和 TPC 测试标准。

早期的商业数据库也比较混乱,每一家商业数据库都说自己是最好的。最终 TPC 组织站了出来,制定了 TPC-C、TPC-H 等一系列测试标准,并且采用第三方的专业的审计机构,进行严格的审计。TPC 组织使得不同的商业数据库公司能够获得一个公平的、竞技的舞台,大家良性竞争共同促进。

分布式数据库-关系数据库的未来

我坚定认为关系数据库的未来一定是分布式数据库。为什么这么坚信?因为分布式数据库能够完全兼容集中式数据库的使用方法,包括关系模型、事务处理模型和 SQL 标准,并且融合分布式云原生的先进技术,从而充分享受到分布式的技术红利,包括高可用、可扩展、低成本、智能等等。

分布式数据库和集中式数据库的关系,有点像当年的汽车与马车,汽车刚出现的时候它并没有马车那么好用,但是我们都知道,随着时代的发展,汽车是一定会逐步替代马车的。分布式数据库也是一样,因为分布式数据库能够完全兼容集中式数据库,包含集中式数据库的能力,并且具备更好的扩展能力。所以,分布式数据库未来也一定能够替代集中式数据库。

企业级分布式数据库 OceanBase

刚刚提到我们坚信分布式数据库的时代正在到来,接下来为大家介绍我们打造的这款企业级分布式数据库——OceanBase。

OceanBase 是一个透明可扩展的企业级数据库,底层是一个原生的分布式架构,这样的设计,可以让使用者充分享受到分布式技术的技术红利,包括:

高可用:RPO = 0,RTO < 30秒,最高支持三地五中心部署,这也就意味着,当一台服务器、一个机房甚至一个城市发生故障的时候,OceanBase 都能够在 30s 内恢复,完全不丢数据;

透明扩展:完备的分布式事务、分布式查询、全局二级索引和全局一致性支持;

全球唯一通过 TPC-C 测试审计的分布式数据库,事务处理性能达到 7.07 亿 tpmC,比竞品高一个数量级;

从使用者的角度来看,OceanBase 兼容传统的企业级数据库,兼容 MySQL/Oracle的语法、企业级功能,具备与 Oracle 对标的高效处理混合负载的能力。OceanBase 已经支撑蚂蚁集团&网商银行所有核心业务的100%流量,支撑银行、保险、证券、运营商、公共事业等多个关系到国计民生的行业的重要客户的核心系统。

刚刚提到,OceanBase 诞生于2010 年,立项之初,我们的目标是做出一个原生的分布式数据库,业界并没有参考方案,这样的背景成就了 OceanBase 从0到1,100%自主研发。2010 年到 2014 年,OceanBase 在阿里巴巴的电商平台应用推广,服务了几十个电商平台的业务系统。2014 年,OceanBase 支撑了当年双 11 的峰值,这也实现了 OceanBase 核心交易类场景的 0 的突破。

浅谈数据库发展史和 OceanBase 的诞生-5

接下来的 3 年时间, 支付宝包括交易、支付、账务会员在内的所有的核心业务都是使用 OceanBase。

2017 年,OceanBase 第一次走出阿里巴巴,走出蚂蚁集团,开始对外商业化,南京银行是第一家运行在 OceanBase 上的外部客户。

2019 年,OceanBase 第一次参加 TPC-C 测试,取得 6088万 tpmc 的成绩,打破了原先的世界记录。

2020 年,OceanBase 再次参加 TPC-C 测试,取得了 7.07 亿 tpmc 的成绩。同年,OceanBase 正式进行独立公司化运作,成立北京奥星贝斯科技有限公司,致力于分布式关系数据库 OceanBase 的设计、研发、销售、服务等,助力客户实现分布式架构转型。

以上就是数据库历史的简单介绍以及 OceanBase 诞生的历史。

OceanBase 大力布道分布式数据库技术

作为全球唯一经过大规模金融场景长时间考验的分布式关系数据库,OceanBase 在技术领域不断深耕的同时,也十分注重推动开发者生态的发展。OceanBase CEO 杨冰表示,“我们始终坚定地相信分布式数据库就是未来的主流。OceanBase 有着十余年的专业技术积累,正在不断通过自身实践来加速新的数据库生态的建立,以帮助开发者更好地成长,也帮助 DBA 实现转型,培养更多的分布式数据库人才。”

2020 年 8 月上线开发者线上社区,OceanBase 技术团队首次集中展示分布式数据库技术干货。同时积极推动线下的技术布道,延续去年的全国巡回技术论坛,今年 9 月 20 日在上海举办以“深入分布式数据库:事务·高可用·云原生”为主题的 Meetup,吸引了上百位开发者现场参与,超过四千人观看直播,并引发热烈探讨。

10 月,OceanBase 团队发起 OceanBaseDev 社群,旨在建立并维系一个面向分布式数据库技术的社群,为关注分布式数据库技术的爱好者们提供技术交流、分享、探讨的空间。OceanBaseDev 将继续大力推动线上线下的技术分享、邀请业界大牛来一同切磋,当然,创造更多的玩法也是我们想做的。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论