隨著互聯(lián)網(wǎng)的爆發(fā)式增長,數(shù)據(jù)庫作為IT信息產(chǎn)業(yè)最重要最核心的部分,迎來了成長和發(fā)展的絕佳時機。如何把握機遇,迎接海量數(shù)據(jù)、通用高性能的挑戰(zhàn)?國產(chǎn)自研分布式數(shù)據(jù)庫OceanBase,在國家內(nèi)循環(huán)、新基建政策的引導(dǎo)下,發(fā)揮著強大的中國制造的技術(shù)魅力。
在互聯(lián)網(wǎng)爆炸式增長對海量業(yè)務(wù)中數(shù)據(jù)庫高并發(fā)、高性能的嚴(yán)苛要求下,數(shù)據(jù)庫領(lǐng)域的標(biāo)桿OceanBase,以其高性能、可擴展、高可用以及低成本等特點,特別是阿里集團內(nèi)部包含網(wǎng)商銀行、支付寶等航母量級的數(shù)據(jù)庫場景應(yīng)用的成熟經(jīng)驗,保障了業(yè)務(wù)連續(xù)、穩(wěn)定、高效運轉(zhuǎn),為用戶創(chuàng)造更大價值。
2020數(shù)據(jù)技術(shù)嘉年華上,北京奧星貝斯科技有限公司CTO、OceanBase數(shù)據(jù)庫創(chuàng)始人陽振坤,接受了企業(yè)網(wǎng)的專訪。他對OceanBase的發(fā)展歷史進行了總結(jié)和回顧,全面詮釋了數(shù)據(jù)庫技術(shù)的發(fā)展歷程,同時作為前沿的技術(shù)專家,也對未來數(shù)據(jù)庫系統(tǒng)的發(fā)展趨勢做了預(yù)測和展望。
北京奧星貝斯科技有限公司CTO、OceanBase數(shù)據(jù)庫創(chuàng)始人陽振坤
數(shù)據(jù)庫從誕生至今已有幾十年的時間,但是市場格局變化不大,最早發(fā)展起來的數(shù)據(jù)庫廠商長期占據(jù)著統(tǒng)治地位。由于數(shù)據(jù)庫處在整個IT產(chǎn)業(yè)鏈最基礎(chǔ)的位置,替換風(fēng)險很大,但收益相比起來卻小得多,因此非常難被替換。這也是為什么像IBM、微軟這樣的后來者也難以取代Oracle。這就導(dǎo)致了數(shù)據(jù)庫變成一個門檻極高、強者恒強的領(lǐng)域。
然而,時代的發(fā)展往往會打破慣例?;ヂ?lián)網(wǎng)的爆發(fā)式增長對數(shù)據(jù)庫的高并發(fā)、大數(shù)據(jù)量提出了很高的要求,而傳統(tǒng)關(guān)系型數(shù)據(jù)庫難以滿足,這就給OceanBase的問世創(chuàng)造了“天時”基礎(chǔ)。加之阿里巴巴內(nèi)部從淘寶到支付寶擁有大量使用數(shù)據(jù)庫的場景,OceanBase可以從不是特別關(guān)鍵的應(yīng)用場景開始嘗試,一步步地將數(shù)據(jù)庫做到關(guān)鍵系統(tǒng),這也是絕大多數(shù)互聯(lián)網(wǎng)企業(yè)可以做數(shù)據(jù)庫的優(yōu)勢——自帶場景的“地利”條件。最后便是以陽振坤為代表的具備分布式技術(shù)背景的團隊,在當(dāng)時單機數(shù)據(jù)庫已經(jīng)走到盡頭的情況下,以“人和”之勢定下了走向分布式的路線。
就這樣,打破傳統(tǒng)數(shù)據(jù)庫一統(tǒng)天下格局的OceanBase在一個千載難逢的機遇下應(yīng)運而生,讓國產(chǎn)自研關(guān)系型數(shù)據(jù)庫嶄露頭角并推廣使用,不斷推動國產(chǎn)數(shù)據(jù)庫技術(shù)快速發(fā)展和走向成熟。目前,OceanBase已經(jīng)在數(shù)十家商業(yè)銀行上線運行。在簡要回顧OceanBase十年的成長路時,陽振坤的自豪之情溢于言表。
其實在OceanBase立項之初時,關(guān)于“分布式”曾有一番熱烈的討論。隨著業(yè)務(wù)的高速發(fā)展,海量數(shù)據(jù)激增,數(shù)據(jù)庫面臨著巨大的挑戰(zhàn)和困境。大家常見的解決方法是拆庫做分庫分表,就是將原來一個數(shù)據(jù)庫,根據(jù)業(yè)務(wù)的不同拆分成多個數(shù)據(jù)庫,一個數(shù)據(jù)庫放一個表,后期如果業(yè)務(wù)處理不了,再將一張表拆分成多個分表。要是業(yè)務(wù)量小,尚可滿足業(yè)務(wù)需求,但是隨著拆分到上千甚至上萬個分表,這個事情就變得極其復(fù)雜且解決起來異常困難。因為每天每一個表都會進行無數(shù)次變更,這些變更需要做在所有的分片上,只要一個分片異常就需要回滾,就有概率出現(xiàn)回滾不成功,從而導(dǎo)致數(shù)據(jù)丟失或影響業(yè)務(wù)的連續(xù)性,給企業(yè)帶來的損失將是不可彌補甚至不堪設(shè)想的。
能從根源上解決數(shù)據(jù)庫發(fā)展的問題,最完善的解決方案是真正的分布式數(shù)據(jù)庫。分庫分表只能稱為分布式系統(tǒng),是分布式數(shù)據(jù)庫嗎?陽振坤笑了笑,“打個問號吧!”很多人都清楚事務(wù)的ACID特性,知道事務(wù)要滿足原子性、一致性、隔離性和持久性,這是從數(shù)據(jù)庫本身的角度來看。有人混淆分布式數(shù)據(jù)庫的概念,把分庫分表也叫分布式,但其實它不是分布式數(shù)據(jù)庫,因為它是多個數(shù)據(jù)庫而不是一個數(shù)據(jù)庫。分庫分表方案雖然可以解決一些問題,但也帶來更多的挑戰(zhàn),更大的復(fù)雜性和更高的成本。
正因為如此,陽振坤的團隊毅然決然地選擇了最難走的一條路——做一款原生分布式關(guān)系數(shù)據(jù)庫。這需要所有代碼一行一行自己寫,沒有任何一行別人的代碼,沒有任何其他人的東西。另外,除了要滿足事務(wù)和數(shù)據(jù)庫里面的各種約束、各種一致性,還包含分布式事務(wù)處理、性能和響應(yīng)時間,而最困難的是故障恢復(fù),因為分布式環(huán)境下出故障是必然的,且故障率會隨著節(jié)點的增加呈指數(shù)級增加。再有就是整個性能的穩(wěn)定和分布式上的優(yōu)化,單機上的優(yōu)化器已經(jīng)很難了,分布式優(yōu)化器,尤其是做整個事務(wù)處理的優(yōu)化器,挑戰(zhàn)要大得多得多?;貞浧餙ceanBase從初生到成長的過程,以及團隊所攻克的一個又一個難關(guān),陽振坤不禁感慨良多。
解決了從數(shù)據(jù)庫本身的角度來做一款真正意義上的分布式數(shù)據(jù)庫后,從業(yè)務(wù)的角度,客戶對數(shù)據(jù)庫其實有更高的要求。第一個要求是數(shù)據(jù)不能錯,第二個要求是服務(wù)不能停,第三個要求是事務(wù)高并發(fā)處理能力。陽振坤補充道,全世界有非常多的數(shù)據(jù)庫廠商,近年來也進入了國產(chǎn)數(shù)據(jù)庫的繁榮時期,但是能真正把業(yè)務(wù)角度客戶關(guān)注的這三點做到,并在實際生產(chǎn)中全面應(yīng)用的其實少之又少。如今,OceanBase已經(jīng)可以做到水平擴展,不需要重新拆分業(yè)務(wù),就可以在主庫做交易處理,在備庫做數(shù)據(jù)分析處理,甚至在未來可以在主庫上同時完成交易和分析的處理。這一技術(shù)上的革新很好地克服了分庫分表方案的弊端。陽振坤介紹道,OceanBase跟分庫分表最根本的區(qū)別在于分庫分表是多個庫,而原生分布式是不管有多少臺機器仍是一個數(shù)據(jù)庫。用戶可以像使用一個傳統(tǒng)商業(yè)數(shù)據(jù)庫一樣來使用它,這就很自然地應(yīng)對了站在業(yè)務(wù)角度客戶所關(guān)注的三方面要求。
數(shù)據(jù)庫的成長發(fā)展離不開業(yè)務(wù)的打磨。OceanBase今天有數(shù)以萬計的服務(wù)器,晝夜運行在支付寶整個系統(tǒng)里,它從邊緣系統(tǒng)到次重要系統(tǒng)最后引用到核心系統(tǒng),一步步經(jīng)過應(yīng)用實踐檢驗發(fā)展過來。OceanBase在多年前就成功實現(xiàn)異地多活跨城應(yīng)用,陽振坤分享道:OceanBase異地的多活,跨幾個城市的多活,具有很成熟的實踐基礎(chǔ),因為支付寶的業(yè)務(wù)早就是國際型了。到目前為止,這個實際場景所帶來的技術(shù)實現(xiàn)依然具有實踐意義和參考價值,技術(shù)也是非常領(lǐng)先的。
如今的海量數(shù)據(jù)處理系統(tǒng),不論是大數(shù)據(jù)系統(tǒng)還是數(shù)據(jù)倉庫,都是分布式——原生分布式。再回過頭來看關(guān)系型數(shù)據(jù)庫,尤其是OLTP數(shù)據(jù)庫,目前仍然是以單機/集中式為主。不是OLTP數(shù)據(jù)庫不需要做分布式,而是分布式的OLTP數(shù)據(jù)庫的研發(fā)異常艱難。但如同汽車終將代替馬車:回想起150多年前,汽車剛剛被發(fā)明時,馬車還是最主流的交通工具,當(dāng)時在馬路上優(yōu)先通行的是馬車,汽車也沒有生態(tài)。而到了2020年的今天,作為主流交通工具的馬車早已成為遠(yuǎn)古的過去,汽車早就成為了不可逆轉(zhuǎn)的主流。所以,OceanBase正在撰寫數(shù)據(jù)庫的現(xiàn)在,創(chuàng)造數(shù)據(jù)庫的未來,值得期待。
關(guān)于OceanBase數(shù)據(jù)庫:
●2010年,OceanBase項目立項。
●2011年,淘寶收藏夾上線。
●2014年,支付寶交易庫上線。
●2015年,網(wǎng)商銀行成立,OceanBase成為全球首個應(yīng)用在金融核心業(yè)務(wù)系統(tǒng)的分布式關(guān)系數(shù)據(jù)庫;
●2016年,OceanBase 1.0版本在支付寶賬務(wù)系統(tǒng)上線,支撐12萬筆/秒支付峰值;
●2017年,支付寶首次把賬務(wù)庫在內(nèi)的所有核心數(shù)據(jù)鏈路全部遷移到OceanBase上,創(chuàng)造4200萬筆/秒數(shù)據(jù)庫處理峰值紀(jì)錄;
●2017年,OceanBase走出阿里對外商用,先后在南京銀行等多家商業(yè)銀行落地。
●2019年,OceanBase參加國際標(biāo)準(zhǔn)的數(shù)據(jù)庫TPC-C基準(zhǔn)性能測試,以6088萬tpmC登頂TPC-C性能榜;
●2020年,OceanBase再次登頂TPC-C測試性能榜首,并創(chuàng)造了7.07億tpmC的新紀(jì)錄;
●2020年,OceanBase公司成立,以專注發(fā)展OceanBase數(shù)據(jù)庫,向客戶提供更專業(yè)服務(wù)。