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

原创 杨传辉 OceanBase 昨天

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

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

什么是数据库

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

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

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

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

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

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

(图片来自互联网)

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

关系数据库发展史

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

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

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

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

浅谈数据库发展史和 OceanBase 的诞生相关推荐

  1. 并发执行变成串行_大神浅谈数据库并发控制 锁和 MVCC

    在学习几年编程之后,你会发现所有的问题都没有简单.快捷的解决方案,很多问题都需要权衡和妥协,而本文介绍的就是数据库在并发性能和可串行化之间做的权衡和妥协 - 并发控制机制.  如果数据库中的所有事务 ...

  2. 浅谈数据库设计技巧(上)

    浅谈数据库设计技巧(上) 说到数据库,我认为不能不先谈数据结构.1996年,在我初入大学学习计算机编程时,当时的老师就告诉我们说:计算机程序=数据结构+算法.尽管现在的程序开发已由面向过程为主逐步过渡 ...

  3. 浅谈数据库优化方面的经验

    浅谈数据库优化方面的经验 任何系统.网站几乎都离不开数据库,数据库好比人大脑的记忆系统,没有了数据库就没有了记忆系统.而数据库优化则相当于在同等智力的情况下,利用一种高效率地记忆方法进行更快更优的记忆 ...

  4. mysql系统研究现状_浅谈数据库的现状和发展 毕业论文.doc

    浅谈数据库的现状和发展 摘 要 学生学籍管理系统是一个教育单位不可缺少的部分,它的对于学校管理至关重要学生学籍管理系统能够为用户提供信息和快捷的查询手段.使用传统人工方式管理文件学籍,这种管理方式存在 ...

  5. 浅谈数据库并发控制 - 锁和 MVCC

    文章写得不错,原文地址见 http://draveness.me/database-concurrency-control.html 在学习几年编程之后,你会发现所有的问题都没有简单.快捷的解决方案, ...

  6. 用户数据表设计借鉴 浅谈数据库用户表结构设计,第三方登录 基于 Token 的身份验证

    最近对用户数据表的设计比较感兴趣,看到了两篇比较好的文章. 浅谈数据库用户表结构设计,第三方登录 转载于: https://www.cnblogs.com/jiqing9006/p/5937733.h ...

  7. mysql事务的四大特性_浅谈数据库事务四大特性

    数据库四大特性分别是:原子性.一致性.分离性.持久性.下面我们看看具体介绍. 原子性 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行. ...

  8. 浅谈交易所发展史,BTC100顺时代,应发展,创新实力可见

    **> 前言: 交易所至发展以来,已经经历了数百年的更新迭代,但"交易所"的含义在大众范畴内的普及依然很浅,甚至有许多数字资产.金融从业者对交易所的发展历程都知之甚少.但实际 ...

  9. 浅谈数据库乐观锁、悲观锁

    来自:非科班的科班 并发问题 当程序中出现并发的问题时,我们就要有相应的手段保证数据的正确性,防止多个用户在操作数据的时候,出现和预期数据不一样的现象,产生脏数据,在数据库的层面如果没有做好并发控制, ...

最新文章

  1. Git 2.7: 一个新的带来许多新特性和性能提升的主要版本
  2. 把委托说透(4):委托与设计模式
  3. 被问概率达99%的面试问题
  4. draw.io二次开发(1)三种运行模式的区别
  5. python和docker交互_jupyter notebook 连接服务器docker中python环境
  6. nagios监控cfg模块
  7. qt下设置按钮不接收键盘鼠标但能响应 clicked()信号
  8. Vue.js 官方团队成员霍春阳新作,深入解析 Vue.js 设计细节【文末送书】
  9. 如何在python中安装matplotlib模块_Windows下为Python安装Matplotlib模块
  10. (pytorch-深度学习系列)pytorch中backwards()函数对梯度的操作
  11. 一份深度学习相关的面试题
  12. typescript索引类型_复杂场景下的 typescript 类型锚定 (1) ----- 对象索引提取-阿里云开发者社区...
  13. Flipping elements with WPF
  14. Ubuntu snap for 树莓派
  15. opendrive中的几何形状
  16. 分子动力学软件-VMD(win版)
  17. linux rewind函数,fseek(),ftell()和rewind()函数的用法详解
  18. CTF入门学习思维导图
  19. 豆瓣 vs 知乎 vs 简书
  20. C++ 求最大公因数

热门文章

  1. fat+linux权限,Linux 文件和目录权限详细介绍
  2. 详解CvScalar类型
  3. maven覆盖setting_maven-如何为.m2文件夹或settings.xml永久指定替代位置?
  4. linux 774是什么权限,Linux权限
  5. Python之UDP通讯简单例子
  6. Java dectobin(n)函数_浙大JAVA实验题答案09answer.docx
  7. php orm教程,Laravel ORM 数据model操作教程
  8. python理论知识选择题_python基础知识练习题(二)
  9. python从大到小排序_python作业:用嵌套的列表存储学生成绩数据,并编程完成如下操作...
  10. 解封装(四):avformat_find_stream_info探测获取封装上下文并打印