很多人都分不清Apache Doris 和 DorisDB、StarRocks,以及他們之間的社區(qū)分化的原因是什么“、“為什么 StarRocks 不回饋給 Apache Doris ”的問題。
關(guān)于這些問題,Apache Doris 主要維護(hù)團(tuán)隊(duì)做了聲明,以下是全文:
關(guān)于 Apache Doris 和 DorisDB、StarRocks 的關(guān)系
Apache Doris 的前世今生相信很多同學(xué)都有些許了解,之前在公眾號(hào)里有過歷史文章闡明關(guān)系,在 Apache Doris X Apache Pulsar 聯(lián)合 Meetup 上也做過題為 “ Apache Doris 的過去、現(xiàn)在和未來 ”的分享。
Doris 最早是解決百度鳳巢統(tǒng)計(jì)報(bào)表的專用系統(tǒng),隨著百度業(yè)務(wù)的飛速發(fā)展對(duì)系統(tǒng)進(jìn)行了多次迭代,逐漸承擔(dān)起百度內(nèi)部業(yè)務(wù)的統(tǒng)計(jì)報(bào)表和多維分析需求。2013 年,我們把 Doris 進(jìn)行了 MPP 框架的升級(jí),并將新系統(tǒng)命名為 Palo ,2017 年我們以百度 Palo 的名字在 Github 上進(jìn)行了開源,2018 年貢獻(xiàn)給 Apache 基金會(huì)時(shí),由于與國外數(shù)據(jù)庫廠商重名,因此選擇用回最初的名字,這就是 Apache Doris 的由來。
那么 StarRocks 以及 DorisDB 是什么?
2020 年 2 月,百度 Doris 團(tuán)隊(duì)的個(gè)別同學(xué)離職創(chuàng)業(yè),基于 Apache Doris 之前的版本做了自己的商業(yè)化閉源產(chǎn)品 DorisDB ,這就是 StarRocks 的前身。
關(guān)于社區(qū)分化的原因
按照 Apache License,基于開源產(chǎn)品進(jìn)行商業(yè)化是被允許的。所以我們初期是希望能共同建設(shè) Apache Doris 社區(qū)的,個(gè)人在職業(yè)上的選擇與社區(qū)無關(guān)。在開源社區(qū),每個(gè)人的社區(qū)身份都是被認(rèn)可的。
后來我們發(fā)現(xiàn),事情發(fā)展與我們的預(yù)期背道而馳。
比如 DorisDB 團(tuán)隊(duì)在對(duì)外宣傳時(shí),會(huì)宣稱自己“是 Apache Doris 的主創(chuàng)團(tuán)隊(duì)”、“ Apache Doris 的核心開發(fā)人員大部分在任職”等諸類話術(shù)。
實(shí)際上, GitHub 上公開的數(shù)據(jù)顯示,Apache Doris 貢獻(xiàn)代碼前三的 Contributor 全部在百度 Doris 團(tuán)隊(duì)就職,不知所謂的“大部分”和“主創(chuàng)”從何說起。
最近一年,提交 Commits 數(shù)量前二十的 Contributor 中,有一半來自百度 Doris 團(tuán)隊(duì),另一半來自小米、美團(tuán)、字節(jié)跳動(dòng)、蜀海、網(wǎng)易等 Apache Doris 的開源用戶,在此也對(duì)所有的 Contributors 表示由衷地感激。
而唯一一個(gè) DorisDB 的 Contributor ,入職 DorisDB 時(shí)間為 2021 年 8 月 27 日。沒錯(cuò),入職 DorisDB 快兩周了,之前在百度 Doris 團(tuán)隊(duì)。
實(shí)際上,從 2020 年初起, DorisDB 團(tuán)隊(duì)幾乎沒有向 Apache Doris 提交過一行代碼。少部分開發(fā)者原本是 Apache Doris 的 Contributor ,在加入 DorisDB 團(tuán)隊(duì)后,同樣不再向 Apache Doris 貢獻(xiàn)一行代碼。
比如 DorisDB 團(tuán)隊(duì)在人員擴(kuò)張時(shí),會(huì)故意定向挖 Apache Doris 企業(yè)用戶的員工。開源社區(qū)的發(fā)展離不開用戶的支持,挖用戶墻角更無異于自掘墳?zāi)埂?duì)于員工個(gè)人主動(dòng)的選擇我們不去評(píng)判,但這讓企業(yè)用戶對(duì)自己?jiǎn)T工的培養(yǎng)做了嫁衣。而短視的人是不會(huì)看到這些的,更認(rèn)為與他們毫無關(guān)系, Apache Doris 的死活與他們無關(guān),只要自己能招到人就行。
比如 DorisDB 的商標(biāo)問題,從品牌角度來說,開源項(xiàng)目與商業(yè)化產(chǎn)品的品牌必須存在區(qū)分度,比如 linux 和 RedHat 、 Hadoop 與 Cloudera 、Apache Kylin 和 Kyligence 。
而 DorisDB 和 Apache Doris ,相信很多開源用戶在初次接觸 Doris 的時(shí)候都會(huì)迷惑這兩個(gè)產(chǎn)品的區(qū)別是什么,甚至以為是同一個(gè)產(chǎn)品。這也是 DorisDB 的目的所在,品牌上的混淆可以帶來用戶流量,這就夠了。而 Apache 基金會(huì)對(duì)此事件有過多次發(fā)聲, DorisDB 及其團(tuán)隊(duì)不管不問,企圖繼續(xù)混淆視聽,直到最后在 Apache 基金會(huì)的壓力下,才不得不通過所謂的“開源”來更名。
比如所謂的“致 Clickhouse 的一封信”。Apache Doris 與 Clickhouse 都是 MPP 數(shù)據(jù)庫領(lǐng)域的優(yōu)秀產(chǎn)品,各自擅長的領(lǐng)域或適用的場(chǎng)景存在差異,所有用戶可以基于技術(shù)認(rèn)知和業(yè)務(wù)需求來抉擇到底該選擇哪一款產(chǎn)品,甚至在大多場(chǎng)景里兩者是可以并存和相互補(bǔ)足的。
Apache Doris不會(huì)、也十分不認(rèn)可,通過貶低 Clickhouse 來達(dá)到推廣自己的目的,這與開源的精神十分不符。而 DorisDB 選擇向 Clickhouse 開戰(zhàn)的行為,也使 Apache Doris 承受了許多本不應(yīng)該由我們承擔(dān)的罵名和非議。
比如 Apache Doris 的向量化執(zhí)行引擎,本來至少提前一個(gè)季度就可以與用戶們見面。DorisDB 已經(jīng)有接近兩年沒有參與過一次社區(qū)討論,唯獨(dú)在我們把向量化引擎的代碼提交 PR 并發(fā)起 Veto 這一關(guān)鍵的時(shí)間點(diǎn),給了唯一的 -1 。DorisDB 給 -1 的理由我想不言而喻,無非是為了自己的商業(yè)化利益來阻攔社區(qū)的關(guān)鍵發(fā)展。
盡管無意義的 -1 可以忽視,但我們?nèi)宰袷厣鐓^(qū)規(guī)范,這無疑帶來了我們?cè)S多額外的工作量,也打亂了我們?cè)ǖ陌l(fā)版節(jié)奏。不過幸好最晚 9 月中旬,我們自己的向量化引擎就會(huì)提交到社區(qū)了,歡迎所有小伙伴關(guān)注。
………
諸如此類的事情日積月累,我們明白其實(shí)社區(qū)的分化已經(jīng)無可避免。作為 Apache Doris 的維護(hù)團(tuán)隊(duì),我們其實(shí)不愿意面對(duì)這樣的局面,但當(dāng)少數(shù)人想要凌駕于社區(qū)規(guī)則之上并持續(xù)向社區(qū)吸血時(shí),附骨之蛆不要也罷。