17611538698
webmaster@21cto.com

Postgres 先驱 Stonebraker 承诺将颠覆数据库

数据库 0 195 2023-12-30 09:57:01

图片

导读:一位图灵奖获得者、超级资深技术专家,他的初创技术公司在五年内就取得了突破性进展,他告诉开发者们,他还有更多的锦囊妙计。

“如果我们准备在数据库之上构建操作系统,和现在的样子正好相反,会是什么样的情况?”


这乍听起来像是一名本科生在服用过多剂量兴奋剂后提出的想法,但事实上并非如此。


其实这是一个很严肃的思考,来自一个已经颠覆了计算行业的人,而且他的影响力已经扩展到微软与甲骨文的产品线中。


今年,人们为他隆重庆祝了 80 岁生日,这就是 Michael Stonebraker (米歇尔.斯通布雷克)。


虽然已经是这个年纪,但他仍然持续自己的数据库研发工作


Michael Stonebraker在IT世界中给人们的最深印象是来自 PostgreSQL 这个产品。PostgreSQL 是一个开源关系数据库系统,近年来,已经日趋成为开发主要流行的数据库选项。


根据 2023 年 Stack Overflow 调查数据,今年的开发者使用该数据库系统的数量最多。除了成为流行的开源 DBMS 之外,包括超大规模云提供商、CockroachDB 和 YugabyteDB 在内的供应商都提供有 PostgreSQL 兼容的云数据库服务。


Stonebraker的“光辉岁月”

Stonebraker 的第一个有影响力的作品始于早期关系数据库系统 Ingres,这个系统是他在 1971 年被任命为加州大学伯克利分校助理教授后的研究课题。

他在接受采访时表示:“我的博士论文是关于马尔可夫链的一个方面,我意识到它没有任何实际价值。我于是到了伯克利,我想用五年的时间做出实质贡献,并获得终身教职。我想找一个产品让它成为我的论文主题。伯克利的另一位教员尤金·王 (Eugene Wong) 跟我说,“我们为什么不看看数据库呢?”

于是两人阅读了 IBM 研究员Edgar Codd新提出的一项和关系数据库有关的提案,名为“大型共享数据库的数据关系模型”。

两个人觉得这个英国人的想法优雅并且很简洁。

“当初显而易见的问题,我们确实想尝试构建一个关系数据库系统。尤金和我都没有构建系统软件的经验。虽然我们都是老师,但我们都认为,一定要尝试一下,看看会发生什么,因此就算没有经验,我们开始开发 Ingres,这也是我后来获得终身职位的原因。”

Ingres也存在竞争性产品,而 IBM 的 System R 就是,后者是第一个展示关系方法,可以提供工作事务性能的系统,也是第一个实现 SQL 全支持的系统。

此外,爱钱的Oracle 在 20 世纪 70 年代后期就开始使用关系型数据库系统。

Ingres 还必须直面多操作系统问题。

Stonebraker在回想刚开发Ingres时的情况这样说道:

“有很多人访问伯克利大学,经常询问我们谁是 Ingres 的最大用户群。后来亚利桑那州立大学希望将Ingres用于记录 35,000 名学生的数据库,但他们没法克服操作系统不受支持的事实,还有来自贝尔实验室的一些人,他们正在用纯种的 Unix”。

于是,Ingres 的目标市场描准了 Unix “中端”系统,它当时也没有当时支持商业计算的主流语言 COBOL。

Stonebraker 于是下定决心:

“唯一的解决方案,就是创办一家全新的数据库公司,”

他继续创建关系技术来,然后将 Ingres 商业化。后来公司更名为 Ingres Corporation,并于 1990 年被 ASK Corporation 收购,ASK Corporation 又在 1994 年被 Computer Associates 收购。

Ingres 团队的另一位成员 Robert Epstein 也走出来创建了 Sybase,该公司在十年内的全球排名中仅次于 Oracle。1992年,Sybase产品被授权给了微软,微软将它用在了早期版本的SQL Server。

当时Ingres 的商业代码库远远领先于开源项目,公司的研发人员只需支付象征性的费用即可获得源代码,其中包括存储所需的磁带和快递费用。

于是,Stonebraker 决定将这些代码推向悬崖,全部扔掉,重新开始。

Ingres之后叫什么名字?他们称为 “ Postgres ”。

Postgres 新时代


1986 年,Ingres 与 Larry Rowe 共同撰写的一篇 28 页论文,在上面宣布了 Postgres 的设计,并提出了六个指导性目标。其中有两个与数据库系统的寿命有关:一是为复杂对象提供更好的支持;第二个是为数据类型、运算符和访问方法,提供给用户良好的可扩展性。


Stonebraker 对可扩展性深有感受,他知道这个对于未来数据库的成功非常重要。


他举到一个例子,有一次客户打电话给他说,‘你那东西执行的时间全错了’。


这位伯克利教授当时感到异常困惑,因为他的团队已经竭尽全力确保正确实施儒略历、闰年等历法的计算。但有些金融行业公司是在一年 360 天的 12 个相同的月份中支付的,这在 Ingres 中无法实现,后来在 PostgreSQL 中完全可用。


使数据库可扩展的想法,有一部分还来自于想要支持新的数据类型。Ingres 的在早期时还想作地理信息系统,远离其业务数据的主战场,因为这个系统“非常缓慢,且经常无法修复”。


这一愿景在过去十年的努力中得到了回报。在这段时间里,PostgreSQL添加了对 Json 文档的支持,这是 NoSQL 数据库 MongoDB 和 Couchbase 所支持的文件格式。


Stonebraker公开批评过NoSQL 运动,后者被批评后正积极在与关系数据库融合,它们采用 SQL 或类似 SQL 的语言,并且接受了数据一致性的需求。


NoSQL 的优点就是开箱即用。如果使用标准的 SQL 数据库,你必须先创建数据库,然后定义游标,这些对于一些非专业用户很难使用。这是针对 SQL 数据库的常见批评之一,而且“开箱即用”的体验很糟糕。人们其实想在打开数据库时对它说,我要有一些数据。”


后来,可用于提供 PostgreSQL 和 PostgreSQL 兼容数据库的各种服务在某种程度上解决了这个问题。


DBMS 作为开源系统的出现是一个“意外”,但令人惊喜,Stonebraker 的项目开始时与开源无半毛钱关系。


该数据库的研究代码曾经并且仍然是开源的,但是用它建立一家数据库公司是根本不可能的。Stonebraker 在 1992 年创立 Illustra ,他说:“当我们为 Ingres 和 Postgres 获得风险投资资金时,风险投资将与开源无关,那是后来的现象”。


2005 年,Stonebraker 创立 Vertica,该公司基于用于数据仓库的无共享、面向列的 DBMS,他现在表示“如果当时就开源的话,Vertica 将受益匪浅,但那时开源代码和 VC 的活力是一个相对较新的现象。”

“闭源数据库不是未来潮流”

Illustra 在发展一段时期就取得了成功。最后于 1996 年以约 4 亿美元的价格出售给 Informix,其中 Stonebraker 的股份价值 650 万美元。Stonebraker 担任母公司首席技术官达四年。

虽然这个估值数字很可观,但与拉里·埃里森 (Larry Ellison) 估计的 1,450 亿美元净资产相比,这只是小菜一碟。

Stonebraker 的产品其实是关系模型的一个早期 Oracle。直到他做了Postgre,他说:

“Ingres 在技术上是好的,而 Postgres 实际上更好。它更灵活,而且是开源的。如今,PostgreSQL 在性能上大致与商业数据库相当。总体来说,闭源数据库不是未来的潮流,我认为 Oracle价格高得离谱,而且不太灵活,”

后来,Oracle 做出的决定推动了开源的发展,它大手笔地购买了开源 MySQL,但该社区中的一些人并不信任该软件掌握在专有软件巨头手中。

在 Illustra 将 Postgres 商业化的同时,伯克利在 MIT 许可下开源了 Postgre的代码,允许开发人员对其进行二次开发。

1994 年,伯克利大学毕业生 Andrew Yu 和 Jolly Chen 用 SQL 取代了查询语言 POSTQUEL。由此产生的 Postgres95 在更宽松的许可下免费提供和修改,并更名为 PostgreSQL。

Stonebraker谈到这次开源行动的收获,他这样说道:

“最后发生的事情是 Illustra 获得了关注,但最令人兴奋的是,这群完全不相关的人互相都不认识,他们都拿起了开源 Postgres 代码,并完全使用它,运行的什么样我不知道,但那是一次奇妙的意外,”

“当 MySQL 被 Oracle 收购时,开发人员大批量地产生怀疑,并开始转向 PostgreSQL。这又是一次令人愉快的意外。它的商业成功固然美妙,但很大程度上是偶然的,”Stonebraker 补充说道。

与此同时,数据库服务围绕 PostgreSQL 不断发展。它已成为 Google(AlloyDB 和 CloudSQL)、Microsoft(Azure PostgreSQL)、AWS(Aurora 和 RDS)、CockcroachDB、YugabyteDB、EDB 和 Avien 提供的兼容或几乎兼容系统的最主要前端。

“全世界都在向云迁移,Google、Amazon 和 Microsoft 都将赌注押在 PostgreSQL 兼容性上。我认为这是一个好主意。CockroachDB 与 PostgreSQL 也大部分兼容。你可以完全使用 PostgreSQL 开发应用程序,放弃 CockroachDB。PostgreSQL 没有任何分布式数据库功能,但 YugabyteDB 和 CockroachDB 都有”。

Stonebraker 的影响力已经渗透到竞争对手 Oracle 的产品组合中。他的联合数据库 Mariposa 成为 Cohera 的基石,Cohera 是 PeopleSoft 于 2001 年收购的数据库公司,并于 2004 年成为 Oracle 的一部分。

2014 年,Stonebraker 因其对 Ingres 和 Posgres 的社会影响而获得图灵奖,并且获得了来自谷歌的 100 万美元奖金。

尽管他的许多想法在数据库行业得到了如此广泛的应用(Gartner 称数据库行业到 2022 年价值将达到 910 亿美元),但 Stonebraker 对其他人使用他的想法毫不在意。

“有人说说你们都应该管理好想法。我说,你如果想改变世界,任何特定的人只是其中的一部分。我一直这样做,开放源代码并与任何想要的人共享代码。在这个过程中,我在财务上做得很好,所以是的,我一点也不后悔,”

面向数据库的操作系统

多次的成功经历,外界和世俗理解他应该已经准备好退休。但是事实并非如此,Stonebraker 准备再次改变世界。

他的 DBOS(面向数据库的操作系统)的想法来自与 Apache Spark 的作者 Matei Zaharia 的对话,后者是数据分析和机器学习公司Databricks的联合创始人以及伯克利大学的副教授。

“Spark 和 Databricks 的业务是管理云上的 Spark 实例。他说,在某此时刻,Databricks 经常为不同用户管理数百万个 Spark-sub 任务。他们无法使用传统操作系统调度来做到这一点“技术:他们需要一些可以扩展的东西。应该将所有调度信息放入数据库中。这正是 Databricks 人员所做的:他们将所有内容放入 PostgreSQL 数据库中,然后开始抱怨 Postgres 的性能。”

Stonebraker 说,从来没有人会逃避挑战,“好吧,我可以做得更好。”

新项目用新的操作系统堆栈取代了Linux和Kubernetes,其底层是数据库系统,原型是Stonebraker发起的多节点多核、事务性、高可用的VoltDB。

“基本上,操作系统是数据库的应用程序,而不是相反,”他确认地说。

在Stonebraker 与 Zaharia 等人共同撰写的一篇论文解释道:“所有操作系统状态都应该统一表示为数据库表,并且应该通过来自其他无状态任务的查询来对该状态进行操作。这种设计使得可以轻松扩展和开发操作系统。无需进行整个系统重构,检查和调试系统状态,不需要停机即可升级组件,使用机器学习管理决策,并实现更复杂的安全功能。”

无论想法成功与否,操作系统即数据库应用程序的想法也不是 Stonebraker 的最后一个想法。2023年10 月,他刚满了 80 岁,他告诉全世界,他不会放慢脚步。

Stonebraker坦言道:

“我无法想象,每周打三天高尔夫球有什么意思。我喜欢我所做的事情,只要我能在智力上具有竞争力,我就会这样干”。

作者:场长

评论