Goodbye Dewitt Clause



    相信大家在閱讀資料庫相關的論文(e.g. VLDB、SIGMOD...)時,常常會在實驗結果,看到匿名的比較對象(e.g. DBMS-A DBMS-B),我之前一直搞不懂有什麼好匿名,直到最近 Databricks 🧱 大戰 Snowflake ❄️ 後續的餘波蕩漾,我才知道這一切都源自於辣個地球上市值最高的法律公司 Oracle。

    2021 11月初時,Databricks 宣布他們的 Databricks SQL 在 100TB TPC-DS 這個 benchmark 下成功超越前一次紀錄保持者阿里巴巴 [1] ,不過項莊舞劍 意在沛公,我整篇文章看下來就一個心得,「 盤子才用 Snowflake ,Databricks 給你更快更便宜的 SQL 」,Databricks 固然介紹了幾個他們在設計上的考量與突破,但文章內的效能成本比較圖,還有SNS分享的 OG Image 都顯示他們衝著 Snowflake 來的。Snowflake 的人當然不爽這樣被臭,他們寫了一篇部落格反擊 [2] ,大致上就是在 AWS 用 Snowflake warehouse 重跑一次 100TB TPC-DS benchmark ,證明 Snowflake 的效能和價錢沒有 Databricks 文章寫得那麼差,有興趣的朋友可以註冊 Snowflake 的服務並且花 300 鎂重現一下這個實驗 [3]

    當我以為這就是一次兩家頂尖的 SaaS 公司日常競爭時,Reynold Xin(Cofounder of Databricks 🧱 )又寫了一篇部落格,宣示 Databricks 往後將把 DeWitt 條款 從使用者條約中拿掉 [4] ,讀完的當下,我只覺得美國會源源不絕孕育出了不起的軟體公司,真不是沒有原因的。DeWitt 條款源自於,1982 年 UW-Madison 的年輕助理教授 David DeWitt 與他的同事開發出了一套新的 parallel database systems(DIRECT),不過他們苦於當時並沒有標準的 database benchmark 來衡量他們的 DIRECT 系統, 所以 David DeWitt 教授自然而然的做了一套新的 database benchmark 叫做 Wisconsin Benchmark ,並且用 Wisconsin Benchmark 跑了當時各家商用的DBMS,這對於當時方興未艾的商用DBMS市場無疑是掀起一陣腥風血雨,每過一陣子,都會有新的廠商出來宣稱自己創下了新紀錄,有了數字,DBMS的比較就變的容易多了,有比較就當然會有輸家,假如這個輸家你惹不起,顯然事情就不是這麼有趣了。

    Oracle 的 CEO Larry Ellison 看到了自家的 DBMS 表現這麼差,整個暴怒,既然解決不了 benchmark 低分的問題,那就來解決提出 benchmark 的人,Larry Ellison 直接要求 UW-Madison CS 的系主任開除 David DeWitt 教授,除此之外 Oracle 的法律機器也動了起來,Oracle 在相關的產品加入了所謂 DeWitt 條款(可以算是另類的 Talk is cheap. Show me the code 啦!),指的是在未經供應商許可下,任何使用者不得擅自發布該軟體相關的測試資訊。簡單來說就是在大部分商用 DBMS 上,你沒辦法像,科技 youtuber 一樣,把他們最新拿到的手機拿去跑分,接著做成公開的資訊。 一旦公佈了有 DeWitt 條款的商用 DBMS 相關實驗數據,你可能要確保你的系主任或你的上司,可以保得住你。

    DeWitt 條款也在往後的 30 年成為資料庫行業的一部分事實標準,這就是爲什麼 VLDB、SIGMOD 等論文常常有姑且隱其姓名的測試結果。其實 Wisconsin Benchmark 不止激怒了 Larry Ellison,大名鼎鼎的 Michael Stonebraker,也因為 Ingres 在某些 query 表現不夠好的事實,不太開心。後來 David DeWitt 在一個 SIGMOD 的訪問中給一個相當中懇的建議 [5] ,建議年輕學者拿到 tenure 後,再來做 benchmark 類型的研究。IBM 一直一來都沒有在他們的 DBMS 加入 DeWitt 條款 , 直到 2008 Erik Paulson 在 DB2 跑了有關 MapReduce 的實驗,DB2 表現得不太好,IBM 也一個暴怒,威脅要在他們所有的產品加入 DeWitt 條款,已經成為一代宗師(ACM Software Systems award)的 David DeWitt 出面擺平了這件事,IBM 還派了一位 DBA 幫助 Erik Paulson 完成他的論文。

    Databricks 大戰 Snowflake 我覺得雙方都展現出除技術外,想成就頂尖軟體公司的氣度。Reynold Xin 的這段話就是讓我想跟大家分享的原因

Almost 40 years have passed since the introduction of the original DeWitt Clause – 40 years of DeWitt’s name, the name of a tech pioneer who was pro benchmarking, being synonymous with preventing its use.

    就算強如美國軟體界,在沒有競爭的情況下,還是有可能讓 DeWitt 條款這種很瞎的事情發生將近 40 年。各位可以想看看如果今天 Apple 不讓自家的 Iphone 跑分成績被那些評測網站公布,社會輿論會怎麼發展, 就可以明白 DeWitt 條款有多瞎。

Databricks 做為商業上的挑戰者,不僅僅要打造更好的大數據平台,也要當業界的領頭羊,帶領整個產業往好的地方發展,他們敢拿掉 DeWitt 條款並且鼓勵業界都拿掉(Azure、Aws、Snowflake已拿掉了),我認為正是對自己產品的絕對自信,超級酷。

Snowflake 的回應我覺得也很棒,新一代的產品本來在效能表現上就容易比較好,Snowflake 當然知道 Databricks 的效能表現可能贏過自家的產品,不過他們實在無意在 2021 再度陷入 80s 的 ”benchmark war”,SaaS 公司真正最重要的事情不是證明自己的技術多卓越,而是專注在『客戶』的需要,優化使用體驗,讓 Development teams 專注在真實世界的 workloads ,更非在測試的 benchmark 中贏過對手,畢竟很少人會單看 CPU 跑分買手機吧?

[1] https://databricks.com/blog/2021/11/02/databricks-sets-official-data-warehousing-performance-record.html

[2] https://www.snowflake.com/blog/industry-benchmarks-and-competing-with-integrity/

[3] https://twitter.com/MarkCallaghanDB/status/1459277646148239362

[4] https://databricks.com/blog/2021/11/08/eliminating-the-dewitt-clause-for-database-benchmarking.html

[5] https://sigmod.org/publications/interviews/pdf/dewitt-interview.pdf

🙏🙏🙏

感謝你讀到最後, 如果你覺得這篇文章讓你有收穫, 趕快分享給你的朋友R~~ 💖! 如果有什麼想問我, 歡迎寫信給我