數(shù)據(jù)庫(kù)底層技術(shù):正經(jīng)歷50年未有之大變局
數(shù)千年前,數(shù)字被用來計(jì)算羊群的數(shù)量,幾何圖形被用來測(cè)量田地并繪制道路,這是數(shù)字首次出現(xiàn)在人類歷史長(zhǎng)河里。
如今,過去零散的自然數(shù)字已經(jīng)逐漸演變成信息時(shí)代龐大并且無處不在的數(shù)據(jù)庫(kù),無論是電商、游戲、社交等互聯(lián)網(wǎng)行業(yè),還是通訊、交通、金融等傳統(tǒng)行業(yè),現(xiàn)代社會(huì)的商業(yè)和經(jīng)濟(jì)活動(dòng)都離不開數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)并非新興行業(yè),其發(fā)端于上世紀(jì)六十年代,但在很長(zhǎng)一段時(shí)間里,行業(yè)幾乎一直在傳統(tǒng)數(shù)據(jù)庫(kù)制定的游戲規(guī)則下發(fā)展。時(shí)至今日,這道固若金湯的防線才逐漸被撕裂。
6月8日,螞蟻集團(tuán)宣布,將自研數(shù)據(jù)庫(kù)產(chǎn)品OceanBase獨(dú)立進(jìn)行公司化運(yùn)作,成立由螞蟻100%控股的數(shù)據(jù)庫(kù)公司北京奧星貝斯科技,并由螞蟻集團(tuán)CEO胡曉明親自擔(dān)任董事長(zhǎng)。此舉標(biāo)志著螞蟻旗下這一明星科技產(chǎn)品走上大規(guī)模商業(yè)化軌道,也推動(dòng)分布式數(shù)據(jù)庫(kù)這一中國(guó)頂級(jí)自研技術(shù)進(jìn)入全新發(fā)展階段。
不到1個(gè)月前的5月21日,數(shù)據(jù)庫(kù)領(lǐng)域最權(quán)威的榜單TPC-C公布了最新結(jié)果,支付寶OceanBase僅用7個(gè)月的時(shí)間打破了自己在去年創(chuàng)造的世界紀(jì)錄,將榜單的性能分?jǐn)?shù)從千萬級(jí)提升到了億級(jí),達(dá)到7.07億tpmC。
傳統(tǒng)數(shù)據(jù)庫(kù)看似固若金湯的地位,正在面臨一定沖擊,支付寶正在撬開技術(shù)變革的大門。
五十年興衰史,傳統(tǒng)數(shù)據(jù)庫(kù)逐步走下神壇
上世紀(jì)五六十年代,IT產(chǎn)業(yè)與現(xiàn)在硬件發(fā)展的步伐落后于軟件、算法截然不同,彼時(shí)的科技創(chuàng)新大多是硬件驅(qū)動(dòng)軟件。
當(dāng)時(shí),計(jì)算機(jī)由晶體管時(shí)代進(jìn)入集成電路時(shí)代,計(jì)算能力、內(nèi)存容量都得到了大幅提升,計(jì)算機(jī)也從軍事領(lǐng)域,逐步走進(jìn)了中小企業(yè),最基本的用途就是做數(shù)據(jù)管理。
但遺憾的是,傳統(tǒng)的文件系統(tǒng)在面對(duì)復(fù)雜的數(shù)據(jù)時(shí)捉襟見肘,這主要因?yàn)閿?shù)據(jù)共享性差并且無法描述數(shù)據(jù)之間的關(guān)系,為了解決這一難題,數(shù)據(jù)庫(kù)才以“新物種”的方式被提出。
1970年,關(guān)系數(shù)據(jù)庫(kù)之父、IBM研究員E.F.Codd發(fā)表了一篇名為“A Relational Modelof Data for Large Shared Data Banks”的論文,首次提出了關(guān)系模型的概念,并成為現(xiàn)代數(shù)據(jù)庫(kù)產(chǎn)品的主流,今天,我們看到的主流數(shù)據(jù)庫(kù)幾乎都是圍繞這一模型研究。
1978年,當(dāng)時(shí)還在為美國(guó)中央情報(bào)局做一個(gè)數(shù)據(jù)項(xiàng)目的拉里·埃里森(Larry Ellison),率先嗅到了關(guān)系型數(shù)據(jù)庫(kù)的商機(jī)。幾個(gè)月后,Oracle 1.0 誕生了,盡管這一產(chǎn)品沒有祭出太多的功能,只能完成簡(jiǎn)單關(guān)系查詢,但就是這樣一個(gè)不成熟的產(chǎn)品,讓數(shù)據(jù)庫(kù)行業(yè)正式邁入了大航海時(shí)代。
當(dāng)年,Oracle 1.0就拿下了美國(guó)中央情報(bào)局和海軍情報(bào)所兩個(gè)大單,在政府機(jī)構(gòu)的背書下,埃里森的公司聲名鵲起,頓時(shí)大量國(guó)際商業(yè)巨頭紛紛尋求與埃里森合作。
此后,硅谷科技公司紛紛推出各自的數(shù)據(jù)庫(kù)產(chǎn)品。關(guān)系數(shù)據(jù)庫(kù)的提出者,IBM在1983年推出首個(gè)商業(yè)數(shù)據(jù)庫(kù);六年后,軟件巨頭微軟姍姍來遲,祭出了首個(gè)商業(yè)數(shù)據(jù)庫(kù)SQL server。
天下熙熙皆為利來。對(duì)于企業(yè)級(jí)場(chǎng)景而言,商業(yè)數(shù)據(jù)庫(kù)是和操作系統(tǒng)一樣重要的軟件,由于技術(shù)門檻高,其價(jià)格極為昂貴。按照當(dāng)時(shí)的價(jià)格,傳統(tǒng)數(shù)據(jù)庫(kù)價(jià)格在數(shù)十萬到百萬不等。而在商業(yè)數(shù)據(jù)庫(kù)市場(chǎng)里,僅Oracle、SQL Server、IBM DB2就擁有超過80%的市場(chǎng)份額,傳統(tǒng)數(shù)據(jù)庫(kù)因此賺得盆滿缽滿。
2018年12月,Oracle公司在《2018世界品牌500強(qiáng)》中就排名31,而埃里森本人也以661億美元身家名列世界富豪榜第七。
但數(shù)據(jù)庫(kù)行業(yè)并沒有就此停下前進(jìn)的腳步。昂貴的價(jià)格,以及互聯(lián)網(wǎng)時(shí)代對(duì)數(shù)據(jù)庫(kù)提出了完全不同的需求,加速了數(shù)據(jù)庫(kù)行業(yè)的變革,越來越少的企業(yè)愿意為傳統(tǒng)數(shù)據(jù)庫(kù)買單。
因此,數(shù)據(jù)庫(kù)領(lǐng)域涌現(xiàn)了一股新生力量,例如開源數(shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)等,這些新興技術(shù)的誕生正在一步步擠壓傳統(tǒng)數(shù)據(jù)庫(kù)的市場(chǎng)。根據(jù)第三方機(jī)構(gòu)顯示,到2021年,傳統(tǒng)數(shù)據(jù)庫(kù)市場(chǎng)會(huì)下降20%至30%。
分布式數(shù)據(jù)庫(kù)成不可逆趨勢(shì)
阿里巴巴是最早遇到互聯(lián)網(wǎng)規(guī)模挑戰(zhàn)的企業(yè)之一。
2009年,阿里巴巴的Oracle RAC集群節(jié)點(diǎn)數(shù)達(dá)到了創(chuàng)記錄的20個(gè),雖然這已經(jīng)是當(dāng)時(shí)亞洲最大的Oracle數(shù)據(jù)集群,但依舊無法解決當(dāng)時(shí)的流量壓力。
因?yàn)樵趥鹘y(tǒng)架構(gòu)上獲得千萬級(jí)并發(fā)處理能力、PB級(jí)數(shù)據(jù)庫(kù)管理能力、一天之內(nèi)系統(tǒng)擴(kuò)容百倍并在業(yè)務(wù)高峰期后立即釋放,獲得這樣的性能需要巨大的成本,因?yàn)閭鹘y(tǒng)數(shù)據(jù)庫(kù)集群難以橫向擴(kuò)展,最多只有數(shù)十個(gè)節(jié)點(diǎn),且難以做到性能線性增長(zhǎng)。
為了解決與日俱增的流量壓力,阿里巴巴決定用分布式架構(gòu)替代傳統(tǒng)“IOE”架構(gòu),而分布式數(shù)據(jù)庫(kù)OceanBase替代的就是傳統(tǒng)數(shù)據(jù)庫(kù)。
從當(dāng)時(shí)的數(shù)據(jù)庫(kù)行業(yè)來看,團(tuán)隊(duì)面臨兩個(gè)選擇—;—;
一是基于開源數(shù)據(jù)庫(kù)研發(fā),好處是可以研發(fā)周期短,但開源數(shù)據(jù)庫(kù)的性能瓶頸依舊存在;
而另一條路徑就是走完全自研道路,難度高、周期長(zhǎng),但更具想象力,其可以在性能上實(shí)現(xiàn)更大的突破。
作為OceanBase的創(chuàng)始人,陽振坤的態(tài)度非常堅(jiān)決,他認(rèn)為單機(jī)數(shù)據(jù)庫(kù)已經(jīng)走到了盡頭,下一步一定是走向分布式,而且當(dāng)時(shí)團(tuán)隊(duì)成員大多是研究分布式出身,做的就是自己最擅長(zhǎng)的工作。團(tuán)隊(duì)?wèi)?yīng)該去研發(fā)一款新型的分布式數(shù)據(jù)庫(kù)。陽振坤堅(jiān)信:“這是千載難逢的機(jī)會(huì),我們一定要做,而且一定能做成?!?/p>
2010年,項(xiàng)目正式啟動(dòng),團(tuán)隊(duì)寫下了OceanBase第一行代碼。
高科技的自研之路從來都是從滿荊棘,而且整個(gè)分布式數(shù)據(jù)庫(kù)領(lǐng)域還沒有太多成功案例,團(tuán)隊(duì)就像在黑暗中前行,沒有任何模仿對(duì)象。很少有人敢相信團(tuán)隊(duì)可以完成全面替代Oracle數(shù)據(jù)庫(kù)這一使命。
但出乎所有人意料的是,僅僅一年的時(shí)間,這支團(tuán)隊(duì)就跨越了死亡之谷。
2011年,OceanBase 迎來了第一個(gè)客戶—;—;淘寶收藏夾。當(dāng)時(shí)的淘寶收藏夾正處于業(yè)務(wù)高速發(fā)展期,數(shù)據(jù)庫(kù)的訪問量飛快增長(zhǎng),而OceanBase首戰(zhàn)就嶄露頭角,將淘寶收藏加的服務(wù)器數(shù)量降低了一個(gè)數(shù)量級(jí)。
此后幾年,OceanBase一路狂奔—;—;
2014年雙11,OceanBase支撐了十分之一的交易流量;
2015 年,支付寶交易庫(kù)和支付庫(kù)都換成了OceanBase;
2016 年,支付寶賬務(wù)系統(tǒng)上線,這也標(biāo)記著 OceanBase 真正在金融系統(tǒng)最核心最關(guān)鍵的領(lǐng)域站住了腳;
2017 年,OceanBase 開始走出支付寶、走出螞蟻金服,在商業(yè)銀行推廣使用,至今已在數(shù)十家商業(yè)銀行上線運(yùn)行。
從今天來看,分布式數(shù)據(jù)庫(kù)跨越的是上一代數(shù)據(jù)庫(kù)的技術(shù)鴻溝,其既能通過擴(kuò)展集群實(shí)現(xiàn)擴(kuò)展能力的大幅提升,又可以充分保證業(yè)務(wù)場(chǎng)景的一致性,實(shí)現(xiàn)整體性能的數(shù)量級(jí)提升。
此次TPC-C測(cè)試中,OceanBase也向世界展示了分布式數(shù)據(jù)庫(kù)的力量。1500多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn),5000多萬個(gè)倉(cāng)庫(kù)以及對(duì)應(yīng)數(shù)量的客戶端,并進(jìn)行8個(gè)多小時(shí)的持續(xù)壓測(cè),OceanBase完成數(shù)據(jù)庫(kù)領(lǐng)域的新成就。
OceanBase的成功也為各行業(yè)企業(yè)帶來了更多可選項(xiàng)。過去幾年,企業(yè)數(shù)據(jù)庫(kù)選擇的天平逐漸在向分布式數(shù)據(jù)庫(kù)傾斜。由于分布式數(shù)據(jù)庫(kù)兼顧了性能及價(jià)格方面的優(yōu)勢(shì),在過去十幾年,銀行的IT架構(gòu)已從大型機(jī)時(shí)代的集中架構(gòu),轉(zhuǎn)移到UNIX小型機(jī),到現(xiàn)在全面擁抱分布式存儲(chǔ)與數(shù)據(jù)庫(kù)技術(shù)。
作為國(guó)內(nèi)第一個(gè)擁有自主產(chǎn)權(quán)的分布式數(shù)據(jù)庫(kù)OceanBase,已服務(wù)建設(shè)銀行、南京銀行、西安銀行、人保健康險(xiǎn)、蘇州銀行、廣東農(nóng)信、網(wǎng)商銀行等多家商業(yè)銀行和保險(xiǎn)機(jī)構(gòu)。
據(jù)了解,獨(dú)立之后的新公司將在今年內(nèi)發(fā)布重大版本升級(jí),在原有功能基礎(chǔ)上增加分析型業(yè)務(wù)處理能力,OceanBase將升級(jí)為一款支持HTAP混合負(fù)載的企業(yè)級(jí)分布式數(shù)據(jù)庫(kù)。OceanBase同時(shí)還宣布,將在未來三年內(nèi)服務(wù)全球超過萬家企業(yè)客戶
分布式數(shù)據(jù)庫(kù)才是未來
為什么OceanBase會(huì)選擇分布式數(shù)據(jù)庫(kù)方向,為什么機(jī)構(gòu)越來越多地選擇使用分布式數(shù)據(jù)庫(kù)?分布式數(shù)據(jù)庫(kù)相對(duì)于傳統(tǒng)數(shù)據(jù)庫(kù),到底有哪些優(yōu)勢(shì)?
我們知道,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),由二維表及其之間的聯(lián)系組成,其實(shí)就是一個(gè)數(shù)據(jù)組織。關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)勢(shì)在于:
關(guān)系模型相對(duì)網(wǎng)狀、層次等其他模型來說更容易理解;
使用方便,使用SQL,可用于復(fù)雜的查詢;
統(tǒng)一使用關(guān)系模型來構(gòu)建,減低了數(shù)據(jù)冗余和數(shù)據(jù)不一致的概率,維護(hù)起來更容易。
但其不足也很明顯,當(dāng)用戶集中查詢時(shí),查詢請(qǐng)求,傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)壓力大;而且很難進(jìn)行橫向擴(kuò)展,想通過添加硬件和服務(wù)節(jié)點(diǎn)來擴(kuò)展性能,并不容易,數(shù)據(jù)庫(kù)系統(tǒng)升級(jí)和擴(kuò)展是個(gè)難題;特別是,處理大規(guī)模和高并發(fā)的微博、微信、社交媒體數(shù)據(jù)時(shí),傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)力不從心。
以往應(yīng)對(duì)這些難點(diǎn),多是采用非關(guān)系型數(shù)據(jù)庫(kù)路線,不需要事先定義數(shù)據(jù)模式,預(yù)定義表結(jié)構(gòu)。當(dāng)插入數(shù)據(jù)時(shí),并不需要預(yù)先定義它們的模式,可以在系統(tǒng)運(yùn)行的時(shí)候,動(dòng)態(tài)增加或者刪除結(jié)點(diǎn)。
OceanBase依然是關(guān)系型數(shù)據(jù)庫(kù),但與Oracle不同,它是分布式架構(gòu)的數(shù)據(jù)庫(kù)。OceanBase實(shí)現(xiàn)突破,在于其采用了新一代分布式設(shè)計(jì)技術(shù),可以在線擴(kuò)容、縮容、遷移、以及做負(fù)載均衡,并且通過分布式擴(kuò)展集群實(shí)現(xiàn)擴(kuò)展能力的大幅提升,整個(gè)集群可以異地部署,跨城市部署。
這樣,顛覆了傳統(tǒng)數(shù)據(jù)庫(kù)集中式處理技術(shù)架構(gòu)。OceanBase還通過分布式選舉技術(shù)、事務(wù)技術(shù),保證業(yè)務(wù)場(chǎng)景的一致性,實(shí)現(xiàn)性能提升。當(dāng)下,OceanBase集群節(jié)點(diǎn)數(shù)突破了1500,是目前全球唯一超千個(gè)節(jié)點(diǎn)并通過TPC-C測(cè)試的數(shù)據(jù)庫(kù)。
在最新的TPC-C基準(zhǔn)測(cè)試中,OceanBase性能分?jǐn)?shù)突破億級(jí)大關(guān),達(dá)到7.07億tpmC,意味著每分鐘創(chuàng)建新訂單數(shù)7.07億,相比去年10月的6088萬tpmC,提升近12倍。這背后,就是分布式技術(shù)構(gòu)架帶來的效果。
分布式構(gòu)架存在穩(wěn)定性的問題,隨著機(jī)器和節(jié)點(diǎn)的增加,可用率會(huì)下降。如何解決這一問題,OceanBase采用了多處備份的方法,將每一份數(shù)據(jù)同時(shí)備份三份,存放在三臺(tái)不同的機(jī)器上。一臺(tái)pc機(jī)出故障的概率如果是千分之一,兩臺(tái)同時(shí)壞的概率可能就是百萬分之一,三臺(tái)同時(shí)壞的概率則是十億分之一。這樣就保障了分布式系統(tǒng)的穩(wěn)定性。
能夠很好的解決性能問題,又可以保持較好的穩(wěn)定性,這樣的分布式數(shù)據(jù)庫(kù)必然是行業(yè)的未來,能給眾多銀行級(jí)客戶認(rèn)可也就不難理解了。
結(jié)語
IT產(chǎn)業(yè)過去數(shù)十年里,歷經(jīng)了多次技術(shù)革命,每次技術(shù)浪潮都是一次新舊勢(shì)力的交替。技術(shù)進(jìn)步?jīng)]有終點(diǎn),數(shù)據(jù)庫(kù)未來也還會(huì)向更穩(wěn)定、反應(yīng)更敏捷、操作更友好的方向演化,目前傳統(tǒng)數(shù)據(jù)庫(kù)還占據(jù)著主要的份額,但在未來,會(huì)有更多份額被分布式數(shù)據(jù)庫(kù)蠶食。
當(dāng)然分布式數(shù)據(jù)庫(kù)發(fā)展也不是一蹴而就,想要打開市場(chǎng),一方面要在產(chǎn)品和技術(shù)上繼續(xù)突破,并在實(shí)際應(yīng)用中證明自己,另一方面也需要有一個(gè)教育市場(chǎng)的過程。