在迈克尔・斯通布雷克之前,数据库领域已有3位图灵奖获得者。比他们幸运的是,有了谷歌横空出世的赞助,斯通布雷克的奖金从25万美元一路飙升至100万美元。
斯通布雷克获得图灵奖是因为他“对现代数据库系统底层的概念与实践所做出的基础性贡献”。但如果不与图灵奖联系在一起,斯通布雷克的名字对一般人来说着实陌生,尽管他被称为数据库领域的布道者,是目前主流数据库——SQL Server/Sysbase的奠基人。
最成功的Ingres
数年前,有人问斯通布雷克,在学术和工业方面,最大的成功是什么。斯通布雷克毫不犹豫地回答:“当然是领导Ingres的开发。”
1971年,也就是斯通布雷克从密歇根大学博士毕业的同一年,Codd写了一篇开创性的文章,引发了传统数据库学者和关系数据库学者之间的一场激烈争论。传统数据库阵营认为,全新的关系数据库不可能被构建出来,即使建起来,也没有人能理解。关系数据库派则反唇相讥,认为这是一项有趣而重要的工作。加州大学伯克利分校的小助教斯通布雷克坚定地站在了关系数据库一派。
“博士期间,我研究的是运筹学中的应用马尔科夫理论,来到伯克利后,我很快意识到,如果继续博士课题,将无法获得大学的终身教职。所以我必须要做一些全新的、无中生有的东西,我决定做数据库。”没有人想到,他选择数据库竟然是因为这样一个“不太体面”的理由。
到了1973年前后,IBM正要启动RDBMS(关系数据库管理系统)的验证原型项目System R。斯通布雷克认为机会到了,他决定大胆赌一把,做出一个RDBMS原型。他和伙伴Eugene Wong为尚未诞生的“宝贝”取了一个名字——Ingres,其中In-g-re-s分别取自英文单词“交互式—图形—获取—系统”。
最初的原型系统建立并不难,但如何让它成为一个真实的系统并且可以运行起来,才是令斯通布雷克头疼的事,而这耗费了他和团队5年的时光。“如果你觉得它错了,就扔掉它重写”,他们坚持这一原则。事实上,在Ingres真正能运作之前,他们不知道重写了多少次代码才熬出眉目。
然而,质疑者并没有因为他们的成功而放弃立场,只是把攻讦之语换成了“关系数据库不能很好的扩展,原型系统用户少”,总之是不合时宜。这话倒不是无源之水。1978年,亚利桑那州立大学打算将大约4万名学生的信息放入Ingres数据库中,但当时的技术依赖于Cobol,没有任何应用软件可以提供对Unix和Ingres的支持。
为了推广应用,斯通布雷克团队最终做了一个决定:把Ingress置于BSD保护之下。BSD即“Berkeley Software Distribution(伯克利软件发行)”,是一个软件开源协议,对软件商十分友好,免费使用,可以修改,改后还可再开源,也不妨碍发布和销售。这样一来,只要你想,都可以免费获得Ingres的全部源程序。源代码免费的结果是,到1980年止,Ingres共分发了1000份拷贝,不少公司使用这些代码形成了自己的产品线。
回想那段岁月,斯通布雷克若精通中文,或许会说4个字——年少轻狂。多年后的他曾经感叹,这个项目之难超出了他的想象:“如果我比较明智,我根本就不会开始它……但当时已经做出了那个不明智的决定,所以我对年轻的自己唯一的建议就是停止所有怀疑,放手去做吧!”
不“退休”
2001年,斯通布雷克跳槽到麻省理工学院,过上了与以往不太一样的日子。相对于加州大学伯克利分校,麻省理工学院自上世纪80年代之后,专门研究数据库的学者就寥寥无几了。斯通布雷克却并没有过上妻子向往的“退休”生活,“每天坐在花园里晒晒太阳或者打打高尔夫”,理由是他会觉得厌倦。
所以,他依然忙着他的数据库,几乎每年都会与人合作开发一种新类型的数据库或者数据处理系统,并在创办公司中得以商品化,例如:StreamBase Systems、Vertica、Goby、Paradigm4、Tamr等。
他把自己定位为“传教士”,不断地发出洪亮的呐喊。2007年,他在辩论中说,通用数据库将拼不过专用技术;2010年,发起了关于MapReduce/Hadoop的论战;2011年,为NewSQL呐喊。
2012年,他发现大数据俨然成为最时髦的术语,忍不住为大数据重新设计了4种含义。2014年年底,他又做出5个预言,判定:单一模式不能包打天下、数据库领域可以有很多赢家、NoSQL会被广泛接受、Oracle将感受到来自SAP的压力,以及Facebook会继续寻找MySQL的替代品,不过可能劳而无功。对着他肆无忌惮的谈吐,“玻璃心”们也只好收起脆弱,毕竟,这些主张已经比之前温柔得多了。
不信?你听!
“我认为学术界最大的问题就是它促使我们每个人都在为得到终身教职而挤破头皮,大家的目标是尽可能把自己的简历填得更完美,这意味着你需要花费你的休假时间去写很多无用的论文,这不能培养出全面的研究型人才。我也认为在休假的时候去其他大学交流访问是一件最没意义的事情,因为这意味着你把时间花在跟你做同样事情的人身上。”
斯通布雷克的话总是令人瞠目,如果你反问他,他则会告诉你,“如果我有休假,我会去学习如何成为一个产品程序员”。