开源中国-最新资讯 ( ) • 2024-03-15 13:55

数据库领域一共出了四位图灵奖获得者,按照先后顺序分别是:

  1. 开创数据库品类的 Charles Bachman
  2. 发明数据库关系模型的 Edgar F. Codd
  3. 实现第一个关系型数据库系统 System R,引入 ACID 的 Jim Gray
  4. 以及本文的主人公 Michael Stonebraker,也是唯一健在的一位

Stonebraker 教授之前在伯克利,现在在 MIT。他主要的贡献来自于两方面,一方面是在数据库理论上,引入对象概念,如今知名的 PostgreSQL 数据库的前身就是他发起的 Ingres 项目。Postgres 既是 Post-Ingres,后来加上了 SQL 层,才变成了今天的 PostgreSQL。另一方面是在工业界的实践,教授是一名连续创业者。最早基于 Postgres 工作创立了 Illustra,卖给了当年的数据库巨头 Informix。后来又先后创立了 Vertica 以及 VoltDB。

file

本来以为教授该颐养天年了,没想到以 80 岁高龄,再度出山。这次老爷子还跨界了,把手伸到了操作系统领域,要把操作系统建在数据库上。通常的认知里,数据库是建在操作系统之上的,而教授则要乾坤反转。大概是下面这个架构。

file

来是一张更加具体的图。

file

是不是还是有点抽象,那就看下面这个例子,来自 IBM 古早的 AS/400 大型机。是的,这个架构在很早的 IBM 大型机里就有了。

file

上面这张图是文件目录,PEOPLE 是一个文本文件。QCSRC 也是一个文本文件,不过是代码文件。而 HELLOWORLD 则是通过 QCSRC 编译出的程序。这个看上去和我们现在熟悉的文件目录类似,但其实这是一张数据库的表,为什么这么说,我们看下面这张图。

file

我们打开了 QCSRC 的源代码文件,展示了 Hello world 的 C 代码。但是这个打开的方式,不是 open file.c。而用的是 SQL 语言 SELECT * FROM qcsrc。仔细看的话,这其实是一样表,每一行就是表的数据行。

file

因为是一张表,所以我们也可以用 SELECT * FROM qcsrc ORDER BY scrdta 打开,这时你会看到行重新排列了。

作为当年的卧龙凤雏,IBM 之外,微软也曾经动过这个念头。微软历史上 WinXP 大获成功,而之后发布的 Vista 不仅大大延期,发布后还差评一片。其实在 WinXP 和 Vista 之间还有一个被砍掉的操作系统,代号 longhorn。配合 longhorn 还准备开发一个叫做 WinFS (Windows Future Storage) 的全新存储系统。

file

WinFS 看名字就知道被寄托了很大的希望,它的愿景来自于比尔盖茨,要把 WinFS 构建在 SQL Server 上,让 Windows 也能做类似于 AS/400 那样的操作。当然随着 longhorn 的破产,WinFS 项目也就嘎然而止了。

DBOS 故名思义,基于 DB 的 OS,就是把数据库作为操作系统的底层,这样操作系统就获得了数据库的特性。比如事务性。像下面这个例子是确保一个客户下单流程的事务性,可以处理各种异常情况。

file

本来在应用层要妥善处理这样涉及多个外部系统的工作流,会非常复杂。也诞生了像 Temporal 这样专门解决这个问题的独角兽公司。

file

除了给操作系统原生的数据库能力之外,DBOS 的另一个目标是做一个云原生的操作系统。现在的操作系统都是面向单机的,然后在应用层用 Kubernetes 把这些单机的操作系统糊在一起。如果我们把分布式,调度直接做到操作系统里的话,就不需要 Kubernetes 了。而分布式,调度这些正是分布式数据库的拿手好戏。

file

DBOS 这个项目 2022 年就启动了,发起者中也有国人。考虑到 Stonebraker 教授的年龄,这也可能是他生涯最后一战。教授乃是性情中人,当年 NoSQL 风头正劲,大有要灭了关系型数据库的势头。教授实在看不下去,下场写了篇 what goes around comes around (因果报应),给大家好好上了堂数据库历史课。

file

这次 DBOS 的愿景和商业落地难度还要远超教授之前的 Vertica 和 VoltDB。但作为数据库领域当世第一战神,干就是了!

Uploading file...


💡 更多资讯,请关注 Bytebase 公号:Bytebase