基於開源數據庫開發國產商用數據庫產品的一些理解

 

  最近同學羣裏談論國產基礎軟件比較多,網上“從華爲數據庫到阿里數據庫世界第一,畝產一萬斤的浮誇何時休”這篇文章也多有轉發。我在數據庫方面熟悉一些,最近8年主要參與分析型數據庫GBase 8a MPP的相關研發,將一些內容整理後分享給大家。

1、基於開源數據庫開發商用數據庫產品有無法律上的障礙?

  首先來在百度百科https://baike.baidu.com/item/開源協議的圖片。

 

圖 1 常見的開源協議

  顯而易見,軟件公司只要遵循相應的開源協議,就符合法律和相應的道義。對於國內軟件廠商,肯定不想將商用產品的代碼開源,所以引用BSD、MIT、Apache協議的居多,都是可以進行閉源的二次開發和發佈的,如果是基於GPL/LGPL/Mozilla的開源協議,他們常常有對應的商用協議,只要給對應公司適當的費用也可以用於商用。

  至於強行修改協議,冒名頂替的,在基礎軟件不太常見,從開發工程師本身來說,一般樂得遵循對應的協議。

  順便說一句,在數據庫領域,Mysql、Mariadb系列都是GPL協議(GPL協議的傳染性),Postgresql系列是BSD協議,其中GreenPlum是Apache協議。所以國產數據庫的基礎以Postgresql系列軟件爲主,分佈式數據庫以其中GreenPlum爲主。

  回答爲什麼國產數據庫常常基於開源數據庫開發的原因,最主要的自然是成本,能站在巨人肩膀上,還非得從零開始的話,對於要盈利的公司是不現實的。另外最近10年中,數據庫本身可以說沒有革命性/顛覆性的新理論、新算法的出現,(Stonebraker創建Vertica是2005年)按我以前同事孟祥斌的說法,最近一次革命性的變化還是OLAP(分析型)數據倉庫業務中粗糙集索引技術在列存數據庫的應用,從而誕生了Sybase IQ、Vertica等一系列OLAP產品。

  我個人認爲從2000年以後,是客戶應用驅動了數據庫的發展,無論是列存數據庫、圖數據庫、全文數據庫、KV數據庫還是Hadoop生態的諸多產品,除了Oracle在事務數據庫上一騎絕塵,其他產品都是因爲某些特性滿足了某些業務應用,從而在細分市場上得以發展,無論是阿里還是南大通用,數據庫廠商都是拿Oracle“砸掛”,一說就是比Oracle快XXX倍,其實就是Oracle本來就不適合那個業務場景。

  如在一個幾十億行的數據表上增加、刪除一列,Oracle也許要好幾天,而列存數據庫連1秒都不用,這種對比就沒有太大意義,但是實際業務中卻又很常見,而根本原因是該業務場景壓根兒不應該用Oracle,如Stonebraker所說的單一模式不能包打天下。

  與之相對應的,“集成”,“混搭”,“融合”倒是有技術可行性,將各個數據庫融合打通,方便開發、運維,降低整體運行成本的方案和產品在近年多有出彩之處。

2、類似的問題,基於開源數據庫開發商用數據庫有無道德上的障礙呢?

  日常中,讓大家感到噁心的是國內基於開源軟件開發的OS、數據庫軟件都是用着開源代碼,打着“完全自主知識產權”的名義非法佔用國家經費以及過度市場宣傳的案例。

  “非法佔用國家經費”是那些負責審批的領導和專家關注的範圍,自然由法律來懲罰,“過度市場宣傳”確實欺騙了我們大衆的感情,可這是那些低級客戶的問題,就像有人非買“腦白金”一樣,但是不怕,低級客戶選擇錯了,肯定由其上級或者最終用戶懲罰,關鍵基礎軟件尤其是數據庫軟件這種比例還是很低的,原因下面再補充。

  我們可以談談 “完全自主知識產權”這個口號。我個人認爲這是某位大領導/大專家一起興起,想到的一個詞,他完全沒有法律和道義上的含義,就象“歡春節”。實際上哪怕你在Linux上寫一個“Hello World!”,

#include <stdio.h>
int main(void)
{
  printf("Hello World!\n");
  return 0 ;
}

都要用到如下鏈接庫

 

  圖 2 Hello World的依賴庫

  那麼理論上,我們在版權聲明中應該聲明,此軟件用到了諸如glibc等GPL協議的軟件庫。在Windows平臺上也是如此,即使能把所有庫靜態鏈接,本質不會發生什麼變化。

  相信國家也理解了“完全自主知識產權”是個僞命題,現在這種說法官方說的少了,而是開始宣傳“自主可控”,“安全可信”,即最近金額高達幾千億規模AK(安可)項目,後來國家發現類似阿里的合資或者上市公司無法參與,後又有“實際控制人”的說法。

3、案例解析

  案例:南大通用在2015年經工信部(中華人民共和國工業和信息化部)撮合從IBM花巨資購買了Informix數據庫的源代碼(IBM在中國共賣了3份源碼),當時我們崔總(崔維力)與工信部某領導確認,經Informix源代碼改後的GBase 8t關係型數據庫(後來改名GBase 8s)算不算國家的“自主可控”、“安全可信”產品,該領導明確表示“算”,在後來我們用此產品參加國家安全、軍事等領域的項目,證明確實算作AK軟件。

  推而廣之,基於開源代碼並號稱能完全掌握:可修改bug、增強安全(符合國密XXX),可以優化,可提供技術支持和定製開發,也符合法律條文(沒有違背開源協議、軟件著作權登記和軟件專利)的數據庫軟件,都可以申請爲AK數據庫。

4、關於數據庫方面的軟文

  軟文常出現在一些IT新聞網站、自媒體,乃至軟件公司的官方網站上,它是市場推廣的一種模式,就像馬季相聲《吹牛》,有正着吹的,反着吹的,有貶低別人吹的,有貶低自己吹的,大家就看一個熱鬧就好了。

  核心是我們軟件工程的定義,軟件的核心是爲客戶/用戶帶來價值,現在國內基礎軟件非常難,完全是買方市場,在項目中POC測試(Proof of Concept,用戶場景驗證測試)階段非常長,我們常常做一個項目需要一兩年才能部署,就是客戶/用戶會將它們所有的APP都跑很長時間,一直到所有的功能和性能滿足需求,並且還會提出大量的定製需求,然後幾個產品都測一輪或者幾輪,纔會開始招標,如果運氣好中標了,給你籤協議,部署,再運行很長時間後纔會給你錢(沒有暴富的機會,這就是資本市場拋棄數據庫等基礎軟件的重要原因之一),分佈式數據庫項目常常會出現A公司在一個項目中辛辛苦苦兩三年,將所有的移植、優化POC都做完,然後被B公司搶單的現象。

  所以至少是目前,真實客戶不會爲這些軟文打動的,當然這也是國內基礎軟件競爭慘烈的一個表現。我們和美國不同,DOD一直花大筆錢培養和管理軟件市場,我們是大量三產公司左手倒右手,去年參與一個XX系統項目,是涉及幾十家公司的大項目,只有南大通用一家非XX三產,所以國家在IT投入很大,實際效果還需要時間來驗證。包括這次國家大筆投入的AK,因爲鼓勵各省市的本地公司,所以這兩年出現了幾十家新的數據庫公司(估計其他子領域新成立的針對AK的軟件公司也很多吧),AK的最終結果,我們只能說拭目以待。

  基礎軟件廠商的軟文常常不是給大衆看的,是給自己公司的同事看的,自己鼓勵一下自己,最近南大通用也在規劃軟文呢,歡迎同學們扔磚。

5、關於數據庫評測

  無論是工信部的測試還是類似這次阿里參加TPCC的測試都是營銷手段,隨着國內軟件市場招投標的推動,各家企業都在不斷推高入圍的門檻。近年來國家有很多這樣的機構,南大通用數據庫參加的中國信息通信研究院(簡稱信通院)測試最多。至於質量如何,大家參考軟件著作權申請時的測試就可以了,認認真真走流程已經是表現最好的了。

  國外的TPC系列測試(TPC-C針對事務性數據庫,TPC-H,TPC-DS針對分析型數據庫,還有針對Hadoop平臺的測試),他們的特點是公開性比較好,標準中包含了數據生成、評估工具,其中選擇的場景比較典型,還能不斷演進,如TPC-H逐漸不具有代表性後,就推出更高級的TPC-DS。其實前兩年星環科技也大力宣傳在TPC-DS第一的測試結果,可能大家不太注意罷了。參考資料:央視三大頻道權威欄目集中報道,星環科技全球首個通過TPC-DS測試

  其次就是各種排名了,國內賽迪、信通院爲代表,只能說排名相對公平,最近幾年爲了多收錢,將數據處理行業添加了很多維度,導致劃分的足夠細,進入排行榜的企業很多,給人的感覺含金量下降了。

  國外從大來說是Gartner的權威性要好一些,它本身針對技術趨勢的研究也多一些,下圖是2018年和2019年Gartner發佈的數據管理方向的魔力象限(注:進入Gartner和進入Gartner魔力象限是兩件事呀,發現巨杉還一直宣傳自己入選Gartner呢,實際上是入選Gartner列表,確實也很了不起)。國內進入的就是南大通用、華爲、阿里(其中華爲和阿里在雲方面加分比較多)。在2018年之前發佈的報告,國內數據庫廠商有過星環數據庫、巨杉數據庫,這兩年沒有了。這種評選產品實力很重要,但評選本身也是非常耗錢和精力,小的或者不太專業的數據庫公司是沒辦法參與的。

 

圖 3 Gartner2018年初發布的報告

  在2018年的報告中,阿里(Alibaba Cloud)和華爲(Huawei)的體量比南大通用(GBase)大,技術先進性不如GBase。在2019年的報告中,華爲就超過了南大通用。原因之一就是崔維力先生意外辭世,在2018年南大通用公司和產品都沒有穩定發展。

  另外這兩年的圖形中,大家都可以看到Oracle遙遙領先,國產數據庫還都沒有進入領導者象限的,大家還需要努力呀。

 

圖 4 Gartner2019年初發布的報告

  其次數據庫排名還有https://db-engines.com,權威性差一些,謹供參考吧。

小結

1、 使用開源數據庫或者以開源數據庫爲基礎開發自己的數據庫,只要按協議辦事,就合規合法,也沒有什麼可丟人的。

2、 騙國家經費的難逃法網,騙大家感情的數據庫軟件還算是比較少的。

3、 數據庫軟件是買方市場,POC測試是重要成本,客戶一般不會因爲廠商的市場宣傳就減免測試。

4、 網絡軟文就是給大家一樂,不要太認真。

5、 國家大力推動AK軟件,具體效果需要時間來證明。

6、 國內評測和排名的質量一般,國外Gartner質量好一些,門檻也較高,但這些的直接效益就在招投標的供客戶參考罷了。

7、 "不積跬步,無以至千里;不積小流,無以成江海",阿里的這次進步是國產基礎軟件的一次紮紮實實的進步,如果說其有些自吹自擂,那就讓這些值的自吹自擂的進步來的多一些吧。

 

下一篇文章再講解南大通用分析型數據庫GBase 8a MPP的演進之路,以及我們和開源軟件的一些糾結。感謝大家花時間看這篇短文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章