開源PolarDB,阿里雲的誠意

魚論發表於2022-06-21

題圖:來自2021阿里雲開發者大會李飛飛演講截圖


2017年9月,北京,阿里雲PolarDB釋出會現場,老魚曾問過前阿里雲資料庫負責人褚霸一個問題,PolarDB會開源嗎?當時褚霸的回答:不排除未來開源,可能會以捐贈模組的方式,部分開源。


2021年5月29日,同樣在北京,阿里雲開發者大會上,阿里雲宣佈開源PolarDB,並率先開源了 PolarD B for PostgreSQL。



“我們希望將阿里雲在雲原生分散式資料庫技術上積累的豐富經驗,透過標準技術元件和系統的方式開放出來,共建開源資料庫生態。”阿里雲智慧資料庫產品事業部負責人李飛飛表示。

 

PolarDB是阿里雲自研的雲原生關係型資料庫,採用的是分散式共享儲存(儲存與計算分離)架構。2017年9月正式對外發布,在2018年10月商業化後,迅速成為阿里雲增長最快的資料庫產品。2021年4月,PolarDB獲得科技進步一等獎,這無疑是對PolarDB極大的褒獎。

 

很多人不禁要問,對於這樣一個有著光環加成且最核心的資料庫進行開源,阿里雲的目的是什麼?開源誠意又有多少?應該如何看待阿里雲開源 PolarDB

 

為此,老魚獨家專訪了阿里雲智慧資料庫產品事業部負責人李飛飛和阿里雲智慧資深技術專家曲山。


開源目的


阿里云為什麼開源PolarDB?


PolarDB既不缺資源,也不缺市場份額,更不缺認同,似乎很難找到必須開源的理由。


其實不然,通常大廠開源目的主要有2種:


1、覆蓋使用者

2、建立生態


覆蓋使用者,透過開源,降低准入門檻,這樣可以使得使用者量大增,合作伙伴也愛用(因為,可以基於社群版基礎做商業發行版,用自己的總比用別人的強)。Google開源Andriod就是很好的例子。


建立生態,資料庫產業是生態型產業,生態不行是做不起來的,這點Oracle就是一個很好的例子。不僅自身產品強大,周邊生態非常完善,與上下游產品的相容性,配套軟體、工具、技術人才等等,這些都非常重要。


據傳,最初對於開源,阿里雲內部有過非常激烈的探討,阿里雲智慧總裁張建鋒與李飛飛甚至拍過桌子,但最終還是決定開源。


李飛飛強調,開源並非靈丹妙藥,但開源是建立生態非常關鍵的抓手。


為何開源 PG版


為了相容資料庫生態,針對不同資料庫協議,PolarDB有三個版本,分別是PolarDB for PostgreSQL,PolarDB for MySQL,PolarDB for Oracle。


阿里云為什麼選擇開源PolarDB for PostgreSQL而不是另外兩個版本?這不得不讓人產生聯想。畢竟,華為開源的openGauss就是基於PostgreSQL核心。


不過,李飛飛告訴老魚,阿里雲選擇開源PolarDB for PostgreSQL不能說與 openGauss毫無關係,但關係很小,更主要的還是基於兩個原因。


1、阿里雲已經開源了AliSQL,也就是說,在MySQL生態方面,阿里雲已經做了一個,再開源一個沒有必要,難道還要自己跟自己打?因此,在這樣的前提下,很自然PolarDB就選擇PostgreSQL版開源。


2、PostgreSQL另一個好處是核心程式碼學院派,學院派的特點是非常模組化,程式碼可讀性很高,二次開發友好,遠高於MySQL。另外,搞技術的都清楚,PostgreSQL查詢最佳化器要遠優於MySQL,HTAP是阿里雲認定的未來重點方向之一,後續阿里雲希望與開發者共建打造HTAP能力,這是一個關鍵因素。


李飛飛強調,PolarDB技術在MySQL版和PostgreSQL版上,只是實現的工程程式碼不同,但技術原理完全一致,這並不影響對技術的探索。簡而言之,本質上開源哪個並不是那麼重要,重要的是 PolarDB的開源並非遮遮掩掩,而是有著明確的開源路線圖,且分量十足。


阿里雲 開源誠意


據瞭解,此次阿里雲開源的PolarDB for PostgreSQL是基於Paxos複製的高可用三節點叢集版。開源範圍包括資料庫產品核心、相關外掛、工具指令碼、測試用例以及設計文件。


從公佈的資訊看,開源的PolarDB for PostgreSQL擁有不少自己的核心技術的,如:基於X-Paxos和混合邏輯時鐘(HLC)的分散式和全域性一致,全面相容PostgreSQL單機SQL能力,細粒度sharding和彈性,以及透過外掛化實現快速易用的升級。這裡必須點個贊。


阿里雲智慧資深技術專家曲山告訴老魚,開源的PolarDB for PostgreSQL,採用Apache Version 2.0 協議。李飛飛強調,該協議非常友好,無傳染性, PolarDB開源不僅面向中國,也面向世界。


目前,該專案已經在Github()釋出,作為阿里巴巴開源專案的一部分。


預計6月,阿里雲會成立PolarDB開源社群。


對於開源後的版本規劃,阿里雲很明確,半年一個小版本,一年一個大版本。“當然,今年會比較特殊,版本迭代會更頻繁,每半年會出一個大版本。”曲山特別強調。


值得一提的是,曲山告訴老魚,隨後,具有較好規模化擴充套件能力和效能的PolarDB for PostgreSQL分散式外掛版也將開源。


那麼,開源後的PolarDB for PostgreSQL技術路線圖是怎樣的?曲山說,研發計劃將透過三步走的方式來完成。



首先,釋出基於Paxos複製的高可用三節點叢集版,聚焦單機高可用和高效能。


其次,引入分散式事務、時鐘和分散式SQL計算等核心技術,將三節點高可用叢集擴充套件為分散式share-nothing OLTP叢集版,該版本既具備三節點版的高可用和單機高效能,同時也具備100+節點的分散式擴充套件能力,相容單機的大部分SQL能力和全域性一致的ACID能力。


最後,統一資料庫元件角色,支援細粒度的sharding,透過外掛化分散式能力,實現對社群版本的快速相容。



據阿里雲資料庫開源規劃,後續還將陸續開源MySQL生態的系列產品與技術元件:雲原生MySQL資料庫ApsaraDB GalaxySQL(也是阿里雲MySQL RDS服務核心)、高價效比儲存引擎X-Engine和分散式一致性協議演算法庫X-Paxos。


曲山透露,未來PolarDB-X很有可能也走向開源。


李飛飛最後強調,開源是否有誠意,不能以是否完全開源(內部版與開源版完全一致)作為評判標準。在商言商,完全開源不現實,哪怕國內開源最友好的TiDB也不是完全開源,也同樣有很多核心技術不開源,國外開源專案亦是如此。


開源是否有誠意,關鍵看開源元件是否有足夠的分量,如果開源的只是些“小蝦米”,甚至開源出來的東西都執行不起來,那才是沒誠意。


寫在最後


整個採訪下來,老魚能感覺到李飛飛的坦誠,對於尖銳的問題並不迴避,對阿里雲開源的動機也沒有任何遮掩粉飾,否則上述不少內容,各位就會無緣得見。


將最核心的資料庫產品開源,並把接下來的開源路線圖都講的非常清楚,代表的是阿里雲開源的誠意。


總的來說,開源是好事,國內的開源氛圍也越來越好。


目前,國內開源的分散式資料庫並不多,而一個繁榮的新資料庫生態是需要多樣化的產品和技術,畢竟有競爭,才能讓更好的資料庫繼續演進。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70018962/viewspace-2901826/,如需轉載,請註明出處,否則將追究法律責任。

相關文章