之前我写了文章简单的讲了一下最近非常热闹的由Databricks发起的和Snowflake的撕逼文章们:
刺刀见血,Databricks说Snowflake为了测试结果好看改了TPC-DS的输入数据
有一些粉丝读了原文blog后问我Databricks提到的Dewitt Clause到底是什么?原文在这里:
https://databricks.com/blog/2021/11/15/snowflake-claims-similar-price-performance-to-databricks-but-not-so-fast.html
具体截图如下:
今天就给大家科普一下这个著名的DeWitt clause。这里面的DeWitt就是David DeWitt,一个在database 研究圈子里非常有名的人,他和他的徒子徒孙们在database圈子里,无论是工业界还是学术界,都成一派。
话说回到上世纪80年代,David DeWitt还是威斯康辛大学的一名普通教授,为自己的研究事业添砖加瓦。他做的研究方向主要是各种各样的分布式数据库。他也给自己的分布式数据库们卖了一个好价钱。这是后话。
上世纪80年代,还是商业数据库的天下,开源数据库是后来的事情了。
David DeWitt为了测试一下自己的分布式数据库到底表现怎么样,和他的几个同事搞了一个测试标准,就是后来著名的Wisconsin Database Benchmark。
这不测还要,一测试不得了啊,妈蛋,原来那些吹牛逼的数据库,真的是吹牛逼。比如说那个Larry Elison吹的牛逼Oracle。实话实说,Oracle数据库现在是真牛逼。但是它最开始几个版本也是真的吹牛逼。
David DeWitt等就把自己研究的结果给发表了。这一发表就戳穿了Larry Elison的牛逼。Larry Elison气急败坏的。据说他直接打电话给威斯康辛大学的计算机系,要求系里把David DeWitt给开除了。
威斯康辛大学的计算机系还是比较有骨气的,富贵不能淫,贫贱不能移,威武不能屈的那种,自己家的教授发了个论文,做了点研究,揭露了一下某些厂商的虚假宣传,怎么就能开了呢?大学的计算机系没有向罪恶的资本金屈服。
罪恶的资本家们当然是不会善罢甘休的。于是Oracle就修改了它的授权协议,里面加了一段,大概的意思是,在取得我们官方的同意之前,买家不得公开发表对我这个数据库产品的任何评测报告。
后面的玩家基本上都跟进了,包括微软的SQL Server。从此以后数据库圈子里面的很多论文,里面实验部分就变成了商业数据库A,商业数据库B,开源数据库某某某等。你也不知道它评测的是哪家,但是其实你也能猜出来实际上是哪家。大家既心知肚明,又不点名的奇葩现象。
不过值得表扬一下的是IBM的DB2一直都没有加入这个所谓的DeWitt Clause。可见上世纪80年代的IBM,确实是人才济济,信心十足。当时代表了计算机领域最顶尖水平。只不过今时不同往日,再怎么样的百年老店也有日薄西山的一天。IBM不死,IBM只会慢慢凋零。
所谓的remove DeWitt clause就是从这个授权协议里面把这一条拿掉,让大家可以随意的benchmark别人的产品。这样做,到底是不是好,就见仁见智了。
但是不管怎么样,对学术界来说,这肯定的是值得欢迎的。一家新的公司,或者一个新的学术研究,可以声明说我家的这个东西比Databricks的TPC-DS结果快10倍,也许也不会令人吃惊。