17611538698
webmaster@21cto.com

数据库传奇人物 Mike Stonebraker:Postgres诞生记与AI时代的挑战

技术人生 0 21 9小时前
图片

21CTO导读:在最近的一次博客访谈中,Stonebraker回顾了自己如何进入数据库领域以及从Ingres到Postgres的演进历程与关键技术突破,并坦诚分享了在数据库架构理念上与谷歌、亚马逊等巨头的分歧。

Mike Stonebraker(迈克尔·斯通布雷克)是数据库领域的传奇人物。

他亲手创造了Ingres和Postgres等开创性系统,并获得了图灵奖以及IEEE约翰·冯·诺依曼奖获得者。在最近的一次采访中,他分享了数据库系统的创业故事、技术争论,以及对人工智能时代数据库未来的深刻见解。他的观点直接、坦率,往往挑战行业共识。

从学术原型到商业产品:Ingres之诞生


Mike Stonebraker的数据库生涯始于一次机遇。

1971年,他从加州大学伯克利分校毕业后留校任教。他的导师Gene Wong建议他研究数据库。当时,Ted Codd刚刚发表了关于关系模型的里程碑式论文。

当时主导市场的有两种系统:一种是低级的、基于指针网络的“Codasyl提案”,另一种是IBM的IMS分层数据库。Stonebraker认为这两种方案都有严重缺陷。Codasyl方案难以调试,且数据结构一变,整个系统就要推倒重来。IMS虽然试图扩展网络结构,但本质上是个“粗糙的修补”。

相比之下,Ted Codd的关系模型在逻辑上更为清晰合理。

于是,Stonebraker和团队决定“造一个这样的东西”。他们在1972年启动了Ingres项目。对于一名助理教授来说,这是争取终身教职的“敲门砖”。项目最终在1976年为他赢得了 tenure。

团队没有止步于一个只能运行的“学生代码”原型。他们投入了巨大的努力,让加州大学版本的Ingres成为一个真正可用的数据库系统。随着Unix系统的流行,这个免费的、运行在Unix上的数据库在学术界大受欢迎,被大约一百所大学采用。

然而,学术成功并不等于商业可行。一个关键事件暴露了Ingres的设计局限。亚利桑那州立大学考虑用Ingres管理4万名学生的记录数据。他们可以接受使用贝尔实验室不支持的Unix系统,也可以接受使用伯克利大学不支持的数据库。但项目最终失败,因为他们发现Unix上没有可用的Cobol语言编译器,而他们整个系统都依赖Cobol。

Stonebraker意识到,唯一的出路是成立商业公司。1980年,他们获得了一笔风险投资,成立了Ingres公司,将Ingres移植到VMS等“真正的”商业操作系统上,并提供商业支持,开始了商业化之旅。

Postgres的诞生:解决Ingres的根本缺陷


尽管Ingres当时在技术上领先,但它有一个本质上的弱点,这是个inflexible type system(非灵活类型的系统)。

最初的Ingres目标是支持一个地理信息系统(GIS),这需要点、线、多边形等复杂数据类型。但Ingres只支持整数、浮点数、文本字符串等标准类型,无法有效支持GIS。

这导致学术版的Ingres在GIS应用上完全失败。

另一个例子来自一位Ingres商业版用户。这位用户处理金融债券,需要按特殊的“30/360”计息规则进行日期计算(例如,3月15日减去2月15日等于30天)。Ingres内置的格里高利历法日期计算不符合他的需求。他只能将数据取到用户代码中计算,效率变得低下。

用户问:“为什么我不能用我自己的定义来重载你们的减法运算?”在Ingres中,这是不可能的,一切都被硬编码了。

如此这些教训催生了后来Postgres的核心设计思想:

一个可扩展的类型系统——用户可以根据需要定义高效的数据类型。无论是金融日期计算,还是地理空间数据,都能得到原生支持。这成为Postgres最重要的特性。此外,Postgres还早期支持了继承、时间旅行等“非常巧妙”的功能(尽管时间旅行的实现不佳,后来被移除)。

关于人才、竞争与行业误判


Stonebraker在识别人才方面有自己的独到看法。

他说,优秀的软件工程师通常是“显而易见”的。如果一个人在学校完成的工作量是合理预期的三倍,那他一定是出类拔萃的。反过来,识别不够聪明的人也很“容易”:通过深入的技术对话,询问项目细节、错误处理、技术选型原因等问题,很快就能判断对方的水平。

他也从不回避对竞争对手的批评。

他谈到Oracle早期通过“将现在时和将来时混为一谈”的方式销售尚未完成的功能,并让早期客户帮助调试。他将某些做法称为“非常 shady 的商业行为”,认为对客户撒谎是“绝不可容忍的”。

对于21世纪初风靡的MapReduce与最终一致性,Stonebraker持强烈反对意见。他认为,许多人是盲目跟随谷歌的光环,但Hadoop“效率低得离谱”。

他在2011年的论文中指出,分布式数据库系统可以轻松击败Hadoop。

对于谷歌推崇的最终一致性,他的批评则更为尖锐。

他如此举例说明道,在东西海岸数据库副本间采用最终一致性更新库存,可能导致超卖(库存变为负值)。这对于大多数企业是不可接受的。他总结道,这是在用数据正确性换取性能。最终,谷歌在Spanner系统中放弃了最终一致性,回归传统的交易处理。Stonebraker之前曾提议与谷歌合作,但被拒绝了。

对于亚马逊等大公司,他认为其问题在于支持了过多(约15种)的数据库系统,其中许多并非性能最优选。例如,图数据库在大多数情况下并非性能最佳选项。他建议公司应该只保留在关键市场上有性能优势的少数几类数据库。

颠覆性构想:用数据库重构操作系统与编程


Stonebraker近年还领导了一个大胆的学术项目:用数据库系统取代操作系统的上层核心

此灵感来自Databricks的联合创始人Matei Zaharia。当时Databricks需要调度数百万个Spark作业,发现所有传统的操作系统调度器都无法胜任。他们将调度数据放入Postgres数据库,用一个Postgres应用进行调度,效果显著。

这引发了一个颠覆性想法:操作系统核心功能(如文件系统、调度、进程管理)本质上是大规模数据管理问题,应该用数据库技术来实现。他们将这个学术项目称为“DebOS”。

他们与斯坦福大学合作,在Linux上层用数据库重建了文件系统、调度器等核心组件。结果表明:

  • 基于DBMS的文件系统比Linux原生文件系统更快。
  • 调度器性能与其他调度器更有竞争力。
  • 系统天然获得了高可用性等高级特性。


“答案是真的没有缺点。”Stonebraker说。

那么为什么Linux没有采纳这一设计?他表示,操作系统领域的研究人员感到了“威胁”,认为这是“数据库这家伙要来抢地盘了”。同样,编程语言社区对于用数据库实现运行时环境也抱有戒心。但他相信,就像Java花了十年才被广泛接受一样,好技术的普及需要一段时间。

基于这一研究,他们于2023年创立了公司DebOS Inc.。

考虑到直接取代Linux生态的挑战,他们转向了应用层,专注于为云原生应用提供内置数据库特性的编程模型

公司开发了TypeScript、Java、Go、Python的扩展版本,使普通程序能无缝获得持久化、事务、故障恢复等数据库级功能,特别适合有状态的工作流应用

目前,许多客户将其用于智能体AI(Agentic AI)应用。

现阶段大多数智能体AI是只读的(例如预测用户信用)。Stonebraker预测,未来智能体AI将越来越多地进行读写操作(例如转账),这将更依赖数据库的事务保障能力,而这正是DebOS的优势领域。

AI時代的数据库未来:挑战与机遇


Stonebraker对当前AI热潮中的一些流行技术持冷静态度。

他的研发团队正在深入研究文本到SQL(Text-to-SQL)在实际生产数据仓库中的应用。

他们从四个真实的数据仓库中获取了实际工作负载和对应的自然语言描述,构建了基准测试。结果与业界常见的Spider或Bird基准测试大相径庭:

  • 在Spider/Bird基准上,最好的大语言模型(LLM)准确率可达85%左右。
  • 在他们真实的数据仓库基准上,LLM的准确率是0%
  • 即使加入RAG等增强技术,准确率也仅升至10%。
  • 即使明确给出需要访问的表和连接条件,准确率也只有约35%。


为什么差距如此之大?Stonebraker指出了几个关键原因:

对比维度
Spider/Bird 基准
真实数据仓库
训练数据
数据可能出现在训练语料库中
专有业务数据从未出现在训练语料中
查询复杂度
SQL约10-20行
SQL可达100行,复杂得多
模式清晰度
表名、列名清晰易理解
存在大量物化视图,列名可能杂乱无章
数据特性
常见通用数据
包含大量业务特有的术语和数据

“这项技术根本行不通,短期内也不行。”他总结道。一个懂SQL的专业用户在理解问题后,准确率可达90%以上,这远非当前LLM可以比较。

那么未来的方向是什么?Stonebraker认为,将一切转化为表结构,并通过查询优化器进行连接操作,是更有希望的方向。他们正在与德国慕尼黑交通部门合作,该项目需要连接SQL数据库(电车时刻表)、CAD数据(交叉路口)、德国联邦法规文本与慕尼黑本地法规文本。

他们的技术解决方案是将所有数据源(包括文本)表格化,然后进行高效的SQL连接查询。

给年轻人的建议:追随激情,挑战潮流


回顾自己的职业生涯,Stonebraker给年轻时的自己的建议是:“跳出框框思考。去想一些疯狂的点子,然后努力实现它。”

他说,当初他和团队对数据库和实现一无所知,他也不是像Bill Joy那样的编程高手,但依然凭着努力让想法成真。

对于今天的学生,他的建议更为直率。当被问及会主修什么专业时,他指出说:“计算机科学未来可能不再是高增长行业。” 他认为医疗健康和建筑行业是更稳妥的选择。对于即将获得博士学位的人,他建议选择最有声望的工作,找到愿意指导你的导师,然后选择一个不随大流的领域去深耕。

最后,他分享了一些个人感悟。

尽管他本人不完全相信“追随激情,钱自然来”这句话,但他认为应该这样告诉下一代。他以自己的妻子为例,她拥有计算机科学学位,但真正的热情在于成为一名K-12教师,却因父母认为收入不高而放弃,至今非常后悔。

Stonebraker认为,找到你热爱的事,你或许并不会致富,但很可能比从事一份仅仅是为了糊口的工作要快乐得多。对他而言,工作本身就是乐趣,而非朝九晚五之间的煎熬。

作者:场长

来源:

https://www.youtube.com/watch?v=YPObBOwIrHk

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信