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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本文主要介绍数据库的发展,带大家共同回顾这一历史进程,也将首次揭秘 OceanBase 诞生的故事。

3O1A8389 (1).JPG

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

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

什么是数据库

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

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

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

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

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

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

31.jpg

(图片来自互联网)

数据库技术的繁荣发展,也得益于很多优秀的科学家。数据库领域有四位图灵奖得主,第一位图灵奖得主是 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 年获得了图灵奖。

关系数据库发展史

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

32.jpg

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 发表了这三篇论文以后,基本上奠定了业界大规模分布式存储系统的理论基础,所有对分布式系统工程实践感兴趣的同学,我建议都去仔细精读这三篇论文。

33.jpg

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 的突破。

34.jpg

接下来的 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 将继续大力推动线上线下的技术分享、邀请业界大牛来一同切磋,当然,创造更多的玩法也是我们想做的。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
关系型数据库 Apache 流计算
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
本文介绍了如何将数据从 OceanBase 迁移到阿里云数据库 SelectDB 内核版 Apache Doris。提供 3 种数据同步方法 1. 使用 DataX,下载 DataX 并编写配置文件,通过 OceanBaseReader 和 DorisWriter 进行数据迁移。 2. 利用 Apache Doris 的 Catalog功 能,将 OceanBase 表映射到 Doris 并插入数据。 3. 通过Flink CDC,设置 OceanBase 环境,配置 Flink 连接器,实现实时数据同步。
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
|
2月前
|
存储 SQL 关系型数据库
OceanBase数据库常见问题之部署时提示需要ocp但是我已经安过了如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
存储 关系型数据库 数据处理
OceanBase数据库常见问题之start ob出错如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
SQL 关系型数据库 数据库
OceanBase数据库常见问题之密码输入错误次数多被锁了如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
15天前
|
存储 运维 物联网
【专栏】OceanBase 是一款先进的分布式数据库系统,以其分布式架构、高扩展性、高可用性和强一致性特点,应对大规模数据处理挑战
【4月更文挑战第29天】OceanBase 是一款先进的分布式数据库系统,以其分布式架构、高扩展性、高可用性和强一致性特点,应对大规模数据处理挑战。它支持混合负载,适用于金融、电商和物联网等领域,提供高性能、低成本的解决方案。尽管面临技术复杂性、数据迁移和性能优化等问题,通过合理策略可克服挑战。随着技术发展,OceanBase 在数字化时代将持续发挥关键作用。
|
2月前
|
前端开发 关系型数据库 MySQL
OceanBase数据库常见问题之bootstrap时报错如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
监控 关系型数据库 数据库
OceanBase数据库常见问题之增加内存依旧报内存不足如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
4天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
13 0
|
2天前
|
关系型数据库 MySQL 数据库
mysql 设置环境变量与未设置环境变量连接数据库的区别
设置与未设置MySQL环境变量在连接数据库时主要区别在于命令输入方式和系统便捷性。设置环境变量后,可直接使用`mysql -u 用户名 -p`命令连接,而无需指定完整路径,提升便利性和灵活性。未设置时,需输入完整路径如`C:\Program Files\MySQL\...`,操作繁琐且易错。为提高效率和减少错误,推荐安装后设置环境变量。[查看视频讲解](https://www.bilibili.com/video/BV1vH4y137HC/)。
20 3
mysql 设置环境变量与未设置环境变量连接数据库的区别
|
4天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
16 0

热门文章

最新文章