開源一年,openGauss詮釋什麼是快速成長
中國開源史,比大多數人想象的都要早。
1991年,“中國 Linux 第一人”宮敏博士用手提肩扛的方式,為中國揹回了20盒磁帶,磁帶裡裝著80G的自由軟體。從此國內技術人員用上了Linux,在中國點亮了開源的火種……
開源是促進技術創新的有利武器,在開源軟體的加持下,中國軟體人的創造力有如神助。不過,中國的開源軟體雖然不少,但普遍集中於中下游的應用型開發,很少專注上游的原創性核心技術和系統級的開源專案。好在這種局面,近些年在逐漸改變。
2020年6月30日,openGauss資料庫正式開源。還有2個月就是openGauss開源一年。
openGauss開源的這1年,中國開源在跌宕起伏中也逐漸趟出了自己的前進方向。2019年8月,中國首個開源協議誕生。2020年9月,中國首個開源基金會成立。2021年3月,開源首次被明確列入“十四五”規劃綱要中。每一件都是中國開源史上的重要里程碑。
而作為國內首個使用木蘭寬鬆許可證v2並在本土開源託管平臺Gitee託管的開源資料庫專案,openGauss從一出生就備受各方關注。
openGauss為什麼開源?開源的這一年進展如何?近日,老魚獨家專訪了openGauss技術專家、社群TC(技術委員會)成員李士福,透過他我們來一探究竟。
熱度快速攀升
從百度指數看,從今年2月開始,openGauss熱度出現快速增長,這說明openGauss還是非常受歡迎的。
openGauss開源背景淺談
“openGauss是一款開源關係型資料庫管理系統,採用木蘭寬鬆許可證v2發行。openGauss早期版本核心源自PostgreSQL,深度融合華為在資料庫領域多年的經驗,結合企業級場景需求,持續構建競爭力特性。”這是openGauss開源社群上對openGauss描述的。
肯定有人會說,既然openGauss基於PostgreSQL,為什麼不直接貢獻程式碼給上游,非要弄出個分支?
回答這個問題,本質是要回答2個問題:
- 華為為什麼要做資料庫?
- openGauss為什麼要開源?
華為做資料庫主要是自身業務需求,華為資料庫最早誕生於2001年,源自運營商業務需求,最初版本名為GMDB。時至今日,華為自研資料庫在自身業務有著大量的應用。(參見老魚此前文章《華為高斯戰記》);
華為開源高斯資料庫,建立openGauss開源社群有兩方面的原因,其一、資料庫是數字經濟時代的核心基礎設施,中國這麼多年來無陣列織和團隊投入了很多資源,但到目前為止沒有特別成功的,所以,華為將多年的積累開源出來,加速產業的發展,透過社群協作,提高效率。其二、打造自己的計算生態。
畢竟,開原始碼雖然無國界,但人卻有國籍。
李士福說,鯤鵬是計算產業,ICT發展到現階段已經不是單產品和技術的競爭而是生態層面的競爭。在華為計算產業生態中,openGauss是不可缺少的一環,是基礎軟體皇冠上的明珠。在生態中,因為有了openGauss就可以打通從硬體到軟體的全棧創新。
對於計算產業,華為的策略是硬體開放、軟體開源、使能夥伴、發展人才,否則,僅靠華為一家生態是做不起來的。這就要求華為必須要懂得與生態鏈上的夥伴們去分享利益。所以,華為開源了openGauss。支援夥伴基於openGauss打造自有品牌的資料庫商業發行版,支援夥伴持續構建商業競爭力。
差異化競爭優勢
沒有自研,就沒有開源,如果說開源是水龍頭,那自研就是保證水龍頭水源供應的水庫。
雖然openGauss核心源於PostgreSQL,但其中接近80+%的資料庫核心程式碼是華為自研,在架構、事務、儲存引擎、最佳化器及ARM架構上都有巨大改造。
李士福說,openGauss從一開源就主打企業級開源資料庫,有眾多企業級特性是首次透過開源資料庫的形式開放出來,在企業級方面的能力要比其他開源資料庫強。
例如剛剛釋出的openGauss 2.0.0版本,這是openGauss社群釋出的第一個Release版本。2.0與之前版本保持相容的同時,也新增了眾多的新特性,尤其是在效能、安全、運維上有了更大的突破。
在效能方面,透過持續架構和工程最佳化,分析40萬條業務場景SQL流,制定分類固化典型短事務型別儲存引擎介面,Bypass SQL最佳化器,實現SQL效率提升30%。在SQL執行計劃生成階段,透過動態剪枝方法,提升搜尋效率20%。針對儲存引擎的無鎖最佳化演算法,提高了使用者執行緒資料操作的並行度,吞吐率提升50%。
透過這些最佳化,openGauss 2.0在四路鯤鵬伺服器上效能達到了230萬tpmC,使基於單臺通用伺服器進行超高效能資料庫部署成為現實。
在資料安全方面,2.0版本採用客戶端語法解析機制,在客戶端對資料進行加解密,安全傳輸到openGauss資料庫,並以密態的形式計算和儲存,實現端到端的資料保護。透過高效加密引擎,密態資料的處理、查詢效能損耗不超過5%。
在運維方面,針對資料庫應用和開發中常見的索引設計、慢SQL診斷等痛點,2.0版本的智慧索引推薦,對啟發式演算法和假設索引驗證演算法進行了深度最佳化,可解決90%以上的索引配置問題,達到人工調優水平。對慢SQL的智慧診斷率達到90%以上。
開源後社群參與度
自從openGauss開源之後,究竟社群參與了多少?這是判斷一個開源專案是否具備可持續性的重要指標。
據李士福介紹,截止至2021.04.27,openGauss社群官方網站訪問量78萬+;官方網站訪客人數7萬+;官方網站安裝包下載量16萬+,下載遍及全球49個國家328個城市;社群開發者人數1200+;社群累計需求程式碼PR提交數達到2600+,累計Commit數達到4500+。
有超過20家企業簽署社群CLA,參與社群程式碼貢獻。並且,其中有6家合作伙伴釋出基於openGauss的商業發行版。
值得注意的是,海量資料基於openGauss商業發行版 ”海量資料庫(Vastbase)成功入圍2021央採(中央國家機關軟體協議供貨採購專案)名錄。
雲和恩墨基於openGauss商業發行版“MogDB”已經落地郵儲銀行、民生銀行。
作為一個開源不到一年的開源專案,openGauss社群的發展速度令人吃驚的,成果也是豐碩。
截止目前,openGauss已經成立包括OM、In-place Update、IoT、AI等13個專項興趣小組(簡稱SIG),包括海量資料、雲和恩墨、工商銀行、清華大學等多個組織的成員發起或參與到社群的各個SIG小組,帶領小組成員擴充技術方向,貢獻新特性,實現下一個版本的技術規劃。社群技術委員也持續運作,openGauss社群開放治理日趨完善。
顯然,經過近一年的發展和沉澱,openGauss無論從技術演進、社群生態建立、商業落地均已進入快速成長期。
但這只是開始,還遠遠不夠。李士福說,未來openGauss將圍繞客戶場景和需求持續構建更多競爭力,打造世界級的資料庫開源社群。
寫在最後
開源是一個高度國際化的產業,中國真的能孵化出世界級開源專案嗎?
過去,中國開源專案一直呈現小而散的碎片化狀態,缺少科技巨頭參與和專業的運營團隊,缺乏長期持續運營和投入,難以形成強大的生態體系,而這些問題,在openGauss上都不是問題。
如果,年輕的openGauss社群能真正為資料庫產業生態去持續投入推動發展,老魚相信,未來幾年,中國或許真就能孵化出世界級開源專案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69965512/viewspace-2771019/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 開源堡壘機是什麼?開源堡壘機的優缺點是什麼?
- 阿里一年,聊聊我成長了什麼阿里
- 美團開源Graver框架:用“雕刻”詮釋iOS端UI介面的高效渲染框架iOSUI
- 5W1H聊開源之What——開源是什麼?
- 開源是什麼意思?開源軟體優缺點有哪些?
- openGauss不僅程式碼開源
- 在Linux中,開源的優勢是什麼?Linux
- 快取和web快取分別是什麼?快取Web
- 為什麼11·11物流一年比一年快?奧祕就在這裡!
- 什麼是HTTP快取機制?HTTP快取
- MHCHXM超快恢復二極體SFF1604為什麼是開關電源的常客
- 開源+SEO=什麼?
- 通過程式碼解釋什麼是API,什麼是SDK?API
- openGauss 釋出
- 什麼是redis快取雪崩、快取穿透、快取擊穿Redis快取穿透
- 快取穿透、快取雪崩和快取擊穿是什麼?快取穿透
- 什麼是redis的快取雪崩與快取穿透Redis快取穿透
- 什麼是DNS快取?DNS快取有哪些作用?DNS快取
- 什麼是Godaddy?站長使用它的原因是什麼Go
- 什麼是LRU快取淘汰機制快取
- 系列:開源是一種開發模式、商業模式還是其他什麼?(一)模式
- 谷歌釋出的Translatotron是什麼?谷歌
- JavaScript的註釋格式是什麼JavaScript
- 如openGauss、PolarDB、OceanBase等選擇開源
- 到底什麼是Linux?快進來學習!Linux
- Jtti:Centos清理快取的方法是什麼JttiCentOS快取
- 什麼是DNS快取投毒?有哪些危害?DNS快取
- 瀏覽器快取是什麼?它的機制又是什麼?瀏覽器快取
- "開源"是什麼?為啥這麼火?一定免費嗎?
- Jtti:為什麼大部分Linux系統是開源的?JttiLinux
- 為什麼redis是單執行緒的以及為什麼這麼快?Redis執行緒
- Netty是什麼,Netty為什麼速度這麼快,執行緒模型分析Netty執行緒模型
- 面試官:快取穿透、快取雪崩和快取擊穿是什麼?面試快取穿透
- 區塊鏈是什麼通俗解釋區塊鏈
- 如何通俗解釋Docker是什麼_1Docker
- Python多行註釋符號是什麼?Python符號
- 給孩子解釋什麼是緩衝
- 跨域資源共享(CORS)是什麼?跨域CORS