他就是2014年图灵奖得主、Postgres创始人迈克尔-斯通布雷克(Michael Stonebraker)。
斯通布雷克在2023年迎来了自己的80岁生日,即使高龄,他仍坚持从事数据库研究工作。开源关系型数据库系统 PostgreSQL 无疑是斯通布雷克在业界画下最为浓墨重彩的一笔。
根据2023年 tack Overflow 的调查,PostgreSQL首次成为开发人员最受欢迎的数据库。除了成为流行的开源 DBMS (Database Management System,数据库管理系统)之外,云服务行业巨头们、CockroachDB 和 YugabyteDB 等供应商都提供与 PostgreSQL 前端兼容的数据库服务。
从马尔可夫链到数据库
斯通布雷克最有影响力的工作始于早期的关系型数据库系统 Ingres。1971年,被任命为加州大学伯克利分校助理教授后,斯通布雷克开始这项研究课题。
他在接受科技新闻网站 The Register 的采访时回答:“我的博士论文原本是从马尔可夫链的特定视角切入的,但我意识到这没有任何实用价值。我来到伯克利分校后,(依据学校要求)老师可以在五年时间内研究新课题并争取获得终身教职,但我并不想针对马尔可夫链展开研究。此时,伯克利的另一位教员王佑曾(Eugene Wong)提议:‘我们为什么不研究一下数据库呢?’”
他们两人阅读了 IBM 研究员埃德加-科德(Edgar Codd)当时一份内容与关系数据库相关、名为《大型共享数据银行的关系数据模型》的提案。
斯通布雷克和王佑曾认为,这位英国研究员的想法既优雅又简单。“(需要做的)下一步显而易见,我们尝试建立一个关系数据库系统。虽然我和 Eugene (王佑曾)都没有构建系统软件的经验,但学者的钻研心促使我们前进,让我们试一试,看看会发生什么。于是,两个毫无经验的人开始构建Ingres系统,我也借此获得了终身教职。”
Ingres 并非没有竞争者。IBM 的 System R 是第一个证明关系方法实现可用事务性能的系统,也是第一个使用如今已普遍推广的SQL 系统。其后,甲骨文公司(Oracle)在 20 世纪 70 年代推出了自己的关系系统。
与此同时,Ingres 还面临平台方面的问题。
“有很多人到访伯克利,询问谁是 Ingres 最大的用户。亚利桑那州立大学希望使用 Ingres 管理 35,000 名学生的记录数据库,但Ingres 无法在贝尔实验室提供的操作系统Unix之上正常运行。”
Ingres 的目标市场是中端系统,而彼时 Unix 刚刚兴起,这也意味着它不支持当时商业计算领域的主流语言 COBOL。
“唯一的解决办法就是成立一家公司。”斯通布雷克说。
随后,他创建了 Relational Technology 公司,将Ingres 系统商业化。该公司后来更名为 Ingres Corporation,1990 年被 ASK Corporation收购, ASK Corporation在1994 年又被 Computer Associates 公司收购。
伯克利 Ingres 团队的另一位成员罗伯特-爱泼斯坦(Robert Epstein)后来创建了 Sybase 公司,该公司曾有十年在全球关系数据库市场上的份额仅次于甲骨文公司。1992 年,Sybase 的产品线被授权给微软,相关技术被微软用于早期版本的 SQL Server。
但斯通布雷克也必须承认,Ingres 的商业代码库远远领先于开源研究项目——其他研究人员只需支付象征性的一点费用(包括存储所需的磁带及邮寄费用),就能获得代码——因此他的团队决定放弃Ingres ,重新打造一款数据库。
Ingres 之后是什么?Postgres 诞生了。
新时代来临
1986年,斯通布雷克与拉里-罗(Larry Rowe)共同撰写的一篇28页的论文公布了Postgres的设计方案,并提出六项指导性目标。其中两项目标支撑了Postgres的长盛不衰,其一是为复杂对象提供更好的支持;其二是为数据类型、运算符和访问方法提供用户可扩展性。
斯通布雷克在采访中提到,通过与 Ingres 客户的交谈,他了解到可扩展性对未来数据库的成功非常重要。“这位客户有次打电话告诉我,‘你们的时间系统全都错乱了’。”
这让身为伯克利大学教授的斯通布雷克非常困惑,因为他的团队已耗费大量精力来确保准确执行儒略历(现今国际通用的公历的前身)以及闰年。某些金融债券的偿付周期将一年看作360天,即每个月是30天。Ingres 无法实现这种时间计算方式,但在 PostgreSQL 中可以实现。
同时,让数据库具备可扩展性也是为了支持新的数据类型。Ingres 的早期项目之一曾试图将其用作地理信息系统,这与其业务数据的主要业务相去甚远。斯通布雷克评价这类用例时说道:“速度慢得离谱,而且无法修复。”
十年之后,这一选择被证明卓有远见且回报颇丰。十年前,PostgreSQL 增加了对 Json 文档的支持,即 NoSQL 数据库 MongoDB 和 Couchbase 使用的文件格式。
斯通布雷克过去曾公开批评过 NoSQL 运动。他在接受媒体The Register采访时说,NoSQL 正在与关系型数据库融合,因为它们正在采用 SQL 或类 SQL 的语言,而且能够满足一致性需求。
“NoSQL 最大的优点是开箱即用的体验,因为使用 SQL 数据库,你必须先构建数据库,然后再定义游标(cursor),所以很难使用。这也是当时SQL数据库饱受诟病的问题:开箱即用体验非常糟糕。用户应该能够直接打开它说‘这里有一些数据’,然后开始使用数据。”
而提供 PostgreSQL 以及 PostgreSQL 兼容数据库的各种服务在一定程度上解决了以上问题,但这款开源 DBMS 系统流行起来则完全是个意外,斯通布雷克并未在推广上费心。
斯通布雷克在1992年创建Illustra公司时就发现,虽然数据库的研究代码自始至终都是开源的,但在当时基于开源代码建立一家数据库公司并不现实。“当我们申请Ingres和Postgres的风险投资时,投资方都未将开源当作投资的决定因素,开源对投资的吸引力在当时仍未显现。”
2005 年,斯通布雷克创立了 Vertica 公司,该公司为数据仓库提供非共享、面向列的DBMS。他认为“如果开放源代码,Vertica 发展将更顺利,但开源项目在风投界受到瞩目是最近才出现的现象,当时没能预料到。”
闭源数据库不符合未来趋势
再次颠覆数据库
如果字段的最大可能长度超过255字节,那么长度值可能…
只能说作者太用心了,优秀
感谢详解
一般干个7-8年(即30岁左右),能做到年入40w-50w;有…
230721