暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

数据库大师访谈 - 迈克尔·斯通布雷克Michael Stonebraker访谈录 (数据库实现,Ingres)

学术空间ScholarSpace 2021-09-02
3550

迈克尔·斯通布雷克(Michael Stonebraker,生于 1943 10 11日,著名的数据库学者, SybaseASE/ MS SQL Server 奠基人。1966 年在普林斯顿大学获得学士学位,分别于 1967年和 1971 年在密歇根大学获得硕士和博士学位。此后,他在加州大学伯克利分校计算机科学系任教达29年,在此期间领导开发了关系数据库系统Ingres、对象关系数据库系统Postgres,联邦数据库系统Mariposa,同时也是以下数据库公司的创始人:IngresIllustraCoheraStreamBase SystemsVertica 等,将大量研究成果和原型系统实现商业化,其中Ingres 被公认为关系数据库系统的先驱,对现代数据库做出了卓越的贡献。迈克尔·斯通布雷克教授1992 年凭借Ingres 系统获得著名的 ACM 系统软件奖,1994年被 ACM SIGMOD 授予最佳年度创新奖,此外他还获得了IEEE 颁发的冯·诺依曼奖章以及第一届SIGMOD Edgar F. Codd创新奖。他于 1994年成为 ACM会士, 1997年当选为美国国家工程院院士。 2015年因其在数据库系统大量的创新成就成为数据库领域至今第4位图灵奖得主,并应邀在2015年中国计算机大会上作主旨演讲。目前他是麻省理工学院客座教授,所参与的项目包括:AuroraC-StoreH-StoreMorpheus以及 SciDB 系统等。


本专访介绍了迈克尔·斯通布雷克开发Ingres过程中的酸甜苦辣,以及他在数据库理论研究中的成功与失败、对创业的价值和中间件等问题的看法,更多内容请看访谈录。



问:欢迎来到本期ACM SIGMOD Record数据库领域杰出人物访谈。我是玛丽安·温丝特,我们现在在威斯康星州麦迪逊市—2002年PODS和SIGMOD的主会场。我身边的这位是迈克尔·斯通布雷克(Michael Stonebraker),他不久将成为麻省理工学院的客座教授,此前他在加州大学伯克利分校任教近30年。他领导开发的Ingres系统证明了关系模型是一个切实可行的理论,并且可以在数据库中被实际应用的完美模型。随后他创办了Ingres公司,同时他还是Illustra信息技术公司的创始人之一,Illustra公司将他在对象–关系数据库方面的研究成果商业化。迈克尔博士毕业于密歇根大学。接下来,欢迎迈克尔。

迈克尔·斯通布雷克:谢谢!


问:迈克尔,当年您还是加州大学伯克利分校的助教,着手去构建一个关系数据管理系统,做了一个非常大胆的尝试。当时关系模型在数据库领域的大多数人看来是一个不切实际的想法,并且还没有一个成型的关系数据库系统。那么当您决定去做Ingres时,您考虑了多久?

迈克尔·斯通布雷克:博士期间我研究的是应用马尔科夫理论—应用运筹学,来到伯克利后,我很快地意识到如果继续我的博士课题将无法获得大学的终身教职。所以我必须要做一些全新的东西,这时我决定做数据库。1971年Codd写了篇开创性的文章,立刻引发了传统数据库学者和关系数据库学者之间的一场激烈争论。传统数据库学者攻击说:“你不可能构建出来一个全新的数据库系统,即使可以,也没有人能够理解你的查询语言。”关系数据库学者争论到:“只要不和传统数据库一样复杂的东西,都可能是一件正确的事情。”一些研究者认为:“根据关系模型尝试构建出一个关系数据库系统是一个有趣而重要的工作”。我非常赞成这种观点。

我们很快构建了一个最初的原型系统,在这个阶段我们集中了90%的精力去努力使这个原型尽可能成为一个真实的系统,并让它差不多可以运行起来。回顾开发Ingres的那段经历,我们曾经做过的最明智的事情就是把90%的精力集中在努力使Ingres真正运行起来,我认为这是Ingres与其他的传统学术项目最大的区别所在。Ingres项目花费了我们团队整整5年的时间,这个团队包括一个全职的程序员和4~5个聪明的研究生和本科生。构建Ingres在当时看起来仅仅是一个很好的想法,刚开始的时候,我对数据库系统是什么以及需要多长时间可以去构建这样一个系统没有一点概念,但是我必须取得终身教职,于是我赌了一把。


问:您认为Ingres 项目中最大的成功和失败分别是什么?

迈克尔·斯通布雷克:我认为我们最大的成功是让Ingres系统运转起来,这在当时是一个非常有创意的工作。回想起来,我们当时做了很多幸运而又意外的决定。我们选择了UNIX和C,当时这些都是一些疯狂的想法。我认为我们做出这些选择仅有的一个原因是Ken Thompson,他是加州大学伯克利分校的毕业生,来我们这做过一次访问,而且我们相信他很清楚他自己正在做些什么。我们成功的另外一个因素是我们遵循这样一句名言:“如果你觉得它错了,就扔掉它重写”。所以,在Ingres真正能运行之前,我们对Ingres中的很多代码都进行了多次重写,并且乐此不疲。总之,我认为最大的成功就是使Ingres正常地运行起来。

最大的失败是真实用户对系统的认可度问题。由于我们有了一个可以真正运行的关系系统,到70年代后期人们已经不说“你不可能使它运行起来并且人们也不能理解这种查询语言”这样的话了,但是他们还在不停地攻击我们:“它不能很好地扩展!谁会是你们最大的用户?关系数据库不合时宜!”当时,我认为具有说服力的案例是,1978年亚利桑那州立大学打算将大约40000名学生的信息放入Ingres数据库中。但是,亚利桑那州立大学需要面对两个严峻的现实问题,首先他们必须从AT&T获得还未得到任何软件支持的UNIX操作系统,其次是要从伯克利的菜鸟那儿获取同样没有任何其它应用软件支持的数据库系统;当他们意识到在UNIX系统中不能使用COBOL时,这个项目自然就流产了。而且正因为如此,Ingres系统渗透到现实应用中的希望又一次破灭,因为他们的技术依赖于COBOL,而当时还没有任何应用软件提供对UNIX和Ingres的支持。Ingres作为一个学术原型系统,不可能很好地克服这些障碍,唯一可行的途径是商业化。


问:您觉得在Ingres 项目中获得了哪些经验教训?

迈克尔·斯通布雷克:如果能预知这一切的话,可能我根本就不会尝试去构建Ingres,它对于当时的我们来说是如此之难,大大超出了我的想象。在构建系统的过程中有大量的工作要做,这些在项目初期我们根本无法考虑到。如果我比较明智,根本就不会开始它,因为就如我所说的,它真的太难了。但是当时我已经做出了那个不明智的决定,所以我对年轻的自己的唯一建议就是:停止所有怀疑,放手去做吧!不积跬步,无以至千里;不积小流,无以成江海。你需要做的是一步一步坚定地迈出你的脚,不管前面的路有多艰难。

另外一些建议是招募一些好的本科生为你工作,尽量给他们提供最好的设备,即使代价非常高昂。给出这个建议的原因是Ingres很多的代码都是由伯克利的本科生写的。项目中我们招募了一些比较聪明的大一和大二的学生,给他们提供最好的设备,让他们可以全心全意地为我们写代码,他们做出了卓越的工作。所以,我非常热衷于招一些天才的本科生,并为他们创造出一个良好的氛围。


问:作为一个有两次创业经验的前辈,您对现在打算创办公司的新人有什么好的建议?

迈克尔·斯通布雷克:这个问题很好。如果你觉得自己有了一个好的想法,那么尝试着从无到有地把它创造出来,我认为这是检验你的想法是否真的具有意义的一个好方法。另外,如果你真的能从无到有地通过创办一家公司去实现你的想法,那是一个满足用户的真正需求,以及和一些拥有难题的聪明应用者讨论你的产品的好方法。这也是产生新问题和有趣想法的一个重要来源。在学术界或研究领域,我们相对来说比较孤立,创业是让研究建立在实际问题基础上的一个好方法。


问:听起来似乎您也支持教员休假投入工业界或者是刚刚起步的团队?

迈克尔·斯通布雷克:我认为学术界最大的问题就是它促使我们每个人都在为得到终身教职而挤破头皮,大家的目标是尽可能把自己的简历填得更完美,而这就意味着你需要花费你的休假时间去写很多无用的论文,这是不能培养出全面的研究型人才的。如果研究人员解决的是一些实际的研究问题,我非常赞同他们进行学术休假,暂时离开学校去工业界或工业研究实验室去实现和检验自己的想法,尤其是自己创业。我认为在休假的时候去其他的大学进行交流访问是一件最没有意义的事情,因为这意味着你把时间花在跟你做同样事情的人身上。


问:迄今为止,数据库理论产生过一些真正有价值的东西吗?现阶段数据库理论研究人员应该关注什么样的研究问题?

迈克尔·斯通布雷克:我猜接下来你是想要讨论关于Laguna Beach的未来数据库研究报告,它发表于1989年,距离现在有一段时间了。当时,递归查询是理论研究界关注的一个重要的研究问题。所以,当时几乎所有的人都在研究递归查询,在Laguna Beach就有10~12个研究者从事这个方面的研究,但是他们中没有任何人注意到其实用户对这个问题没有任何兴趣。


问:难道传递闭包查询算不上有价值的研究吗?

迈克尔·斯通布雷克:一些用户需要的仅仅是线性递归查询,没有真正的用户在查询中需要用到它,而数据库理论人员却都在研究这方面的内容。因此,我们向理论学家提出挑战:在你解决这个理论难题之前,你应该问一下自己:是否有人真的需要它或对它感兴趣!

我觉得理论界最大的问题是他们把自己孤立起来,他们按照自己的方式一个课题接着一个课题做下去,并不关心他们所做的事情是否有用。我认为对递归的研究就是其中的一个最大的失败,因为现在我仍然找不到对非线性递归查询感兴趣的人。这些理论学者中存在的最大问题是他们感兴趣的是那些可解决的问题,而不是那些真正重要的问题。我对理论学者的建议和我刚谈论的是相同的:花一些时间去了解现实世界中的真正需求,并尝试去解决这些问题。


问:您认为理论学者花一些时间处理实际问题的时候,他们是继续从事理论研究还是从中找一些非理论的实际问题进行研究?在处理实际问题的时候,他们会转向系统研究还是继续理论研究?

迈克尔·斯通布雷克:我认为理论界最大的成功是并发控制和可串行化理论。他们在这个领域做出了卓越的贡献。我认为Avi Silberschatz去贝尔实验室并转换为做系统类型的研究是一件很好的事情。事实上这样的案例并不少见,据说康乃尔大学的John Hopcroft也转向系统方面的研究,虽然他的研究领域不是数据库。所以说,如果在这条路上能做出重要贡献,那是非常值得去做的。我认为数据库理论研究总是脱离实际问题太远,这些研究并不符合我们的实际需要,而且他们也不能很好地进行角色转换,把研究的成果转化为系统。


问:很少有人像您一样曾经在两所世界顶级的大学任职,您可以评价一下加州大学伯克利分校(UCB)和麻省理工学院(MIT)之间的区别在哪里吗?

迈克尔·斯通布雷克:首先,我想说明的是,在MIT我是一个传教士的角色。自从1981年Mike Hammer离开之后,MIT就没有做数据库的人了,所以我在那里是唯一做数据库的人。而在伯克利有很多人从事数据库研究,在这两所学校我做的工作是非常不同的。

我认为UCB是一个学术氛围非常浓厚的大学。在伯克利,大家喜欢在一起工作,这些人花大量的时间在他们的办公室相互交流。这里有很多合作项目,大家都努力为一些共同的利益而工作。MIT的大学氛围与UCB完全不一样,那里的老师更多的时候是在单兵作战。拿办公室这件事来举个例子,在伯克利,所有的办公室都以系为单位来进行管理,而在MIT,系里只负责处理学术上的事务,如果你想要间办公室,你必须从每个独立的实验室(比如计算机科学实验室、人工智能实验室、多媒体实验室等实验室)那里申请。以至于所有人一下子就能划清界线,因为从哪个实验室申请办公室已经确定了你将忠于那个阵营。

我认为这两所学校的学科侧重点非常不同。MIT在人工智能和语音处理方面很强,而伯克利在传统系统方面比较强。这两所学校都有非常出色的学生和教员,所以我认为最大的不同点在于学校的特质方面的不同。比如,在伯克利,在学校的年度活动中,每个人都会为聘请新的教师出谋划策;而在MIT,教师的委任完全由一个小的委员会来决定。


问:过去您在学术界和工业界的工作中,您认为最大的成功和失败分别是什么?

迈克尔·斯通布雷克:最大的成功毫无疑问是领导Ingres的开发,它在学术界和工业界都确实产生了巨大的影响。至于Postgres是否会产生同样的影响,正如我们前面所说的,还需要“跨越鸿沟”,谁也不知道它是否会发生。我认为最大的失败是Cohera,它是一个非常成熟的联邦数据库系统,只是因为当时市场对这个技术的需求非常小,我们花费了大量精力去推动它,但是仍然很难找到相应的应用需求,最终它彻底失败了。


问:作为一个计算机科学专家,如果您可以改变一件关于自己的事情,那会是什么呢?

迈克尔·斯通布雷克:我认为有两件我要做的事情。第一,我要把编码学好。我从来都没有时间成为一个真正的实践者,我们在前面谈到为什么人们需要利用学术休假去工业界做一些事情,对于我来说,如果我有休假,我会去学习如何成为一个产品程序员。


问:但是您并没有在学术休假的时候去做这件事情?是因为创业太忙了吗?

迈克尔·斯通布雷克:是的,学习编程是需要花费大量时间的,它总是不停地被往后推,因为还有很多更重要的事情需要去做。所以我一直都没有时间去学好编程。我认为如果期望成为一名研究者,我们应该做的一件事情就是首先成为一名合格的程序员,但是我不是。我认为问题在于我并没有接受大量的编程训练就完成了本科和研究生的教育。所以在学校的时候我从来没有获得足够的编程经验,毕业以后再也没有时间去学习。

另外一件想要改变的事情是我在毕业之前缺乏对计算机科学全面的了解,当时我对编译技术了解很少。我发现现在的很多学生知识面非常广泛,他们对许多技术都有很深的了解,而这些东西我却知之甚少。所以,如果再重给我一次机会,我想选择接受现在学生们所接受的教育,对计算机科学有一个更全面的了解,而这在当时是不可能实现的。


问:非常感谢您今天接受我的采访。



附:孟小峰教授绘制的Ingres Tree,从中可以看到当今几乎所有主流数据库系统都流淌着Ingres的“血液 ”。


最后修改时间:2021-09-02 12:17:03
文章转载自学术空间ScholarSpace,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论