為什么說OceanBase4.0開啟了國(guó)產(chǎn)數(shù)據(jù)庫(kù)新的里程碑?
時(shí)間:2023-03-31 02:58:01 | 來源:電子商務(wù)
時(shí)間:2023-03-31 02:58:01 來源:電子商務(wù)
傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)本質(zhì)上是單機(jī)系統(tǒng),通常采用昂貴的高端服務(wù)器和儲(chǔ)存,也因此較難以應(yīng)對(duì)海量互聯(lián)網(wǎng)應(yīng)用所帶來的高擴(kuò)展、高性能要求等;但它的解決方案,分布式數(shù)據(jù)庫(kù)雖然具有高擴(kuò)展性,卻因?yàn)楦邤U(kuò)展性損失了性能。OceanBase 4.0的優(yōu)點(diǎn)在于,它
不僅可以作為分布式數(shù)據(jù)庫(kù),也可以作為傳統(tǒng)數(shù)據(jù)庫(kù)(單機(jī)系統(tǒng))使用,甚至可以兼具媲美單機(jī)數(shù)據(jù)庫(kù)的高性能(相比MySQL),以及分布式數(shù)據(jù)庫(kù)的高擴(kuò)展性。此外,OceanBase 4.0還是業(yè)界首個(gè)單機(jī)&分布式一體化架構(gòu)產(chǎn)品,即適用于規(guī)模龐大的銀行核心系統(tǒng)和巨型電商網(wǎng)站,也支持小規(guī)模場(chǎng)景的單機(jī)化部署,可大可小,大大降低數(shù)據(jù)庫(kù)的使用門檻。
這就比較厲害了。
事實(shí)上,在過去半個(gè)世紀(jì)左右的時(shí)間里,數(shù)據(jù)庫(kù)從無到有,經(jīng)歷了層次、網(wǎng)狀和關(guān)系型數(shù)據(jù)庫(kù)幾個(gè)發(fā)展階段,時(shí)至今日,關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)完全占據(jù)了主流,而且隨著數(shù)據(jù)越來越多,各大公司的數(shù)據(jù)業(yè)務(wù)也越發(fā)重要,對(duì)數(shù)據(jù)庫(kù)的并發(fā)能力、伸縮性能和數(shù)據(jù)性價(jià)比的要求也越發(fā)苛刻,這些問題集中式的通用關(guān)系型數(shù)據(jù)庫(kù)都難以滿足。從目前來看,業(yè)界共識(shí)是需要可以支持高并發(fā),強(qiáng)伸縮性的數(shù)據(jù)庫(kù)系統(tǒng)來推動(dòng)商業(yè)數(shù)據(jù)庫(kù)的發(fā)展,這一思想的代表產(chǎn)物就是分布式數(shù)據(jù)庫(kù),而OceanBase是分布式數(shù)據(jù)庫(kù)中的一個(gè)代表產(chǎn)物。
圖源自網(wǎng)絡(luò)早在2010年,螞蟻集團(tuán)就已經(jīng)開始立項(xiàng)研發(fā)OceanBase,并在次年發(fā)布了0.1版本,首先應(yīng)用在淘寶收藏夾。2014年,OceanBase首次替代 Oracle 在支付寶交易系統(tǒng)上線,負(fù)擔(dān)“雙十一”10% 流量,到今天已經(jīng)連續(xù)9年穩(wěn)定支撐雙11峰值的嚴(yán)峻考驗(yàn)。2016年,OceanBase的1.0版本在支付寶賬務(wù)系統(tǒng)上線,為包括交易、支付在內(nèi)的所有的核心業(yè)務(wù)提供支持,峰值可達(dá)12 萬筆/秒支付。
2018 年,OceanBase 發(fā)布2.0 版本,定位為金融級(jí)分布式商業(yè)數(shù)據(jù)庫(kù),為南京銀行在內(nèi)的多家金融客戶提供支持,并擴(kuò)展至智慧企業(yè)、證券、保險(xiǎn)等場(chǎng)景。2021年,OceanBase 3.0升級(jí)為支持混合負(fù)載(HTAP)的企業(yè)級(jí)分布式數(shù)據(jù)庫(kù),同時(shí)具備事務(wù)處理和數(shù)據(jù)分析兩類任務(wù)的高性能能力。2022年8月10日,OceanBase發(fā)布4.0版本,推出業(yè)內(nèi)首個(gè)單機(jī)分布式一體化數(shù)據(jù)庫(kù),突破分布式數(shù)據(jù)庫(kù)的單機(jī)性能瓶頸,讓分布式數(shù)據(jù)庫(kù)更具通用性。
1. OceanBase的設(shè)計(jì)思路,以及從1.0到4.0所反映的互聯(lián)網(wǎng)產(chǎn)業(yè)變革
二十世紀(jì)六十年代,國(guó)外就已經(jīng)出現(xiàn)了商業(yè)數(shù)據(jù)庫(kù),七十年代,關(guān)系型數(shù)據(jù)庫(kù)的概念興起,在這個(gè)時(shí)代,聯(lián)機(jī)交易處理逐漸發(fā)展,數(shù)據(jù)庫(kù)廣泛應(yīng)用于銀行、證券、民航、繳費(fèi)等領(lǐng)域。而同一時(shí)期,國(guó)內(nèi)的數(shù)據(jù)庫(kù)理論研究剛剛起步,國(guó)內(nèi)市場(chǎng)長(zhǎng)期被Oracle、IBM和微軟壟斷。
數(shù)據(jù)庫(kù)發(fā)展歷程(圖源自網(wǎng)絡(luò))傳統(tǒng)應(yīng)用領(lǐng)域的數(shù)據(jù)庫(kù)系統(tǒng),通常只有少數(shù)人和設(shè)備并發(fā)操作數(shù)據(jù)庫(kù),例如銀行的職員及ATM機(jī)、商場(chǎng)的收銀員、飛機(jī)票火車票的售票員等,后臺(tái)的數(shù)據(jù)庫(kù)系統(tǒng)的并發(fā)訪問往往只有幾千個(gè)。然而,在互聯(lián)網(wǎng)時(shí)代,每個(gè)用戶都可能訪問數(shù)據(jù)庫(kù),互聯(lián)網(wǎng)應(yīng)用的后臺(tái)數(shù)據(jù)庫(kù)需要具備幾百萬甚至更高的并發(fā)處理能力,設(shè)計(jì)時(shí)需要滿足高并發(fā)和強(qiáng)一致性,而這對(duì)于數(shù)據(jù)庫(kù)產(chǎn)品往往是一種兩難的路徑。
而且互聯(lián)網(wǎng)應(yīng)用的訪問量波動(dòng)性極大,可能在幾小時(shí)內(nèi)增加/減少幾十倍,需要數(shù)據(jù)庫(kù)具備很強(qiáng)的伸縮性。盡管2003年起阿里就是Oracle在亞洲的大客戶,但傳統(tǒng)數(shù)據(jù)庫(kù)的性能瓶頸和成本壓力還是限制了淘寶業(yè)務(wù)的增長(zhǎng),因而開始研發(fā)針對(duì)互聯(lián)網(wǎng)應(yīng)用的OceanBase關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。
圖源自網(wǎng)絡(luò)自研數(shù)據(jù)庫(kù)一般有兩條路徑,一條是基于PG/MySQL/ Clickhouse/RocksDB等相對(duì)成熟的國(guó)外開源項(xiàng)目?jī)?nèi)核做自研,例如TiDB、openGauss等。而為了克服高并發(fā)、強(qiáng)伸縮性、低成本、高可用等挑戰(zhàn),OceanBase選擇從頭開始自研一款通用的國(guó)產(chǎn)分布式數(shù)據(jù)庫(kù)。作為關(guān)系數(shù)據(jù)庫(kù)的核心技術(shù),事務(wù)的ACID原則是保障淘寶和天貓等商業(yè)交易業(yè)務(wù)和支付寶等金融交易業(yè)務(wù)的關(guān)鍵。為了控制單筆交易的成本,OceanBase使用PC服務(wù)器及其磁盤,主要是固態(tài)盤代替了傳統(tǒng)數(shù)據(jù)庫(kù)使用的高端服務(wù)器和存儲(chǔ)。讀寫事務(wù)性能都是數(shù)據(jù)庫(kù)的主要指標(biāo),因?yàn)樽x事務(wù)可通過緩存提升性能,OceanBase在設(shè)計(jì)實(shí)現(xiàn)上偏重于寫事務(wù)的性能,并消除了磁盤的隨機(jī)寫,以充分利用固態(tài)盤良好的隨機(jī)讀性能
[1]。
圖源自網(wǎng)絡(luò)為應(yīng)對(duì)互聯(lián)網(wǎng)業(yè)務(wù)的伸縮需求,OceanBase采用了分布式架構(gòu),可隨時(shí)增加/減少服務(wù)器,并自動(dòng)進(jìn)行數(shù)據(jù)遷移和負(fù)載均衡,以提供極致的擴(kuò)展能力。而在故障恢復(fù)方面,由于PC服務(wù)器的故障率更高,OceanBase提出單元化架構(gòu)實(shí)現(xiàn)異地多活和三地五中心容災(zāi)架構(gòu),其本質(zhì)是將系統(tǒng)進(jìn)行水平拆分或數(shù)據(jù)后的邏輯隔離,單元化中的每一個(gè)單元都具備完整功能,保證軟硬件故障不會(huì)造成太大影響,隨時(shí)有備份可以同城或異地容災(zāi)
[2]。
通過上述設(shè)計(jì),OceanBase主要解決了數(shù)據(jù)庫(kù)的擴(kuò)展性和成本痛點(diǎn)。到2018年2.0版本發(fā)布后,OceanBase替換了螞蟻交易、支付業(yè)務(wù)在內(nèi)所有核心業(yè)務(wù)部門中的商業(yè)數(shù)據(jù)庫(kù),實(shí)現(xiàn)了對(duì)于核心數(shù)據(jù)庫(kù)的自主可控。作為金融級(jí)的分布式商業(yè)數(shù)據(jù)庫(kù),南京銀行成為OceanBase的第一家外部客戶。
圖源自網(wǎng)絡(luò)隨著云計(jì)算的發(fā)展,依托云原生技術(shù)的分布式數(shù)據(jù)庫(kù)技術(shù)帶來新的技術(shù)革命。除了資源池化和計(jì)算與存儲(chǔ)分離外,云原生技術(shù)能夠讓數(shù)據(jù)庫(kù)的計(jì)算分析一體化,不再需要兩套系統(tǒng)搭建OLTP(在線交易處理)和OLAP(在線分析處理),并耗費(fèi)大量的資源做數(shù)據(jù)遷移。順應(yīng)這一發(fā)展趨勢(shì),OceanBase的3.0版本支持HTAP 混合負(fù)載,大幅提升了事務(wù)處理和數(shù)據(jù)分析性能,幫助企業(yè)實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型。
圖源自網(wǎng)絡(luò)針對(duì)分布式數(shù)據(jù)庫(kù)的單機(jī)部署局限和成本問題,最新發(fā)布的OceanBase 4.0則采用了單機(jī)分布式一體化架構(gòu),解決了分布式數(shù)據(jù)庫(kù)無法在小型設(shè)備上部署的痛點(diǎn)。OceanBase 4.0最小可在4核8G的電腦上正常運(yùn)行,且單機(jī)部署性能超越集中式數(shù)據(jù)庫(kù)MySQL,可實(shí)現(xiàn)小型化的按需擴(kuò)展。這意味著OceanBase 4.0能夠覆蓋更豐富的應(yīng)用場(chǎng)景,成為云時(shí)代的通用數(shù)據(jù)庫(kù),并將為中小企業(yè)的低成本數(shù)字化轉(zhuǎn)型創(chuàng)造條件。
2. 為什么分布式數(shù)據(jù)庫(kù)存在性能損失?用戶在性能損失中可能失去的是什么?
隨著系統(tǒng)交易量的不斷上升,集中式數(shù)據(jù)庫(kù)暴露出讀寫性能嚴(yán)重下降的缺陷。面對(duì)海量數(shù)據(jù)的場(chǎng)景化需求,自2000年至今,分布式數(shù)據(jù)庫(kù)逐漸成為主流選擇。分布式數(shù)據(jù)庫(kù)(Distributed Database),簡(jiǎn)稱DDB,即物理上分散而邏輯上集中的數(shù)據(jù)庫(kù)系統(tǒng)。它是數(shù)據(jù)庫(kù)技術(shù)與計(jì)算機(jī)網(wǎng)絡(luò)相結(jié)合的產(chǎn)物,包含若干個(gè)物理意義上的分散的數(shù)據(jù)庫(kù)單元,而單元之間通過網(wǎng)絡(luò)進(jìn)行連接,通過網(wǎng)絡(luò)協(xié)議進(jìn)行數(shù)據(jù)交換。也因此,高度依賴高速網(wǎng)絡(luò)。
圖源自網(wǎng)絡(luò)然而,分布式數(shù)據(jù)庫(kù)也存在性能損失,其最大的問題是引入了數(shù)據(jù)傳輸,而數(shù)據(jù)傳輸會(huì)給系統(tǒng)帶來額外的處理時(shí)延和計(jì)算難度,這會(huì)極大降低數(shù)據(jù)庫(kù)本身的性能,不僅僅是多節(jié)點(diǎn)同時(shí)工作時(shí)的數(shù)據(jù)校驗(yàn)等工作,在單節(jié)點(diǎn)工作時(shí)依然會(huì)有所體現(xiàn)。為存儲(chǔ)海量數(shù)據(jù),分布式數(shù)據(jù)庫(kù)引入了數(shù)據(jù)分片的概念,即將數(shù)據(jù)進(jìn)行拆分,分散在多個(gè)數(shù)據(jù)庫(kù)實(shí)例上,在查詢時(shí)將切片數(shù)據(jù)匯聚起來。分布式數(shù)據(jù)系統(tǒng)需要應(yīng)對(duì)網(wǎng)絡(luò)故障、節(jié)點(diǎn)故障帶來的性能損失,用戶也會(huì)因數(shù)據(jù)錯(cuò)亂受到困擾。例如,在用戶認(rèn)為是正常的事務(wù)執(zhí)行中,讀寫數(shù)據(jù)時(shí)出現(xiàn)數(shù)據(jù)異常、順序錯(cuò)誤或部分缺失的情況,使用錯(cuò)誤的數(shù)據(jù)導(dǎo)致出現(xiàn)損失。
并發(fā)控制(圖源自網(wǎng)絡(luò))此外,由于數(shù)據(jù)庫(kù)要滿足“高可用、高可靠”以及在線實(shí)時(shí)提供服務(wù)的特性,因此每個(gè)數(shù)據(jù)分片就有了多個(gè)副本。數(shù)據(jù)多副本使得分布式數(shù)據(jù)庫(kù)的“一致性”問題變得更為復(fù)雜,一旦出現(xiàn)網(wǎng)絡(luò)延遲導(dǎo)致并發(fā)事務(wù)的間并發(fā)訪問,就會(huì)造成副本間數(shù)據(jù)同步與數(shù)據(jù)可見性的異常情況
[3]。數(shù)據(jù)備份和復(fù)雜的結(jié)構(gòu)也讓硬件成本開銷大大增加,這意味著在單機(jī)系統(tǒng)中,分布式數(shù)據(jù)庫(kù)的性能要遠(yuǎn)遠(yuǎn)落后于集中式數(shù)據(jù)庫(kù),僅當(dāng)數(shù)據(jù)庫(kù)規(guī)模擴(kuò)大到一定數(shù)量級(jí)時(shí),分布式數(shù)據(jù)庫(kù)才具有部署價(jià)值。
3. 當(dāng)分布式數(shù)據(jù)庫(kù)和單機(jī)數(shù)據(jù)庫(kù)性能可以媲美,這會(huì)帶來什么樣的改變?
近年來我國(guó)數(shù)字經(jīng)濟(jì)如火如荼,數(shù)據(jù)庫(kù)、操作系統(tǒng)等基礎(chǔ)軟件就是數(shù)字經(jīng)濟(jì)繁榮發(fā)展的基石。據(jù)中國(guó)信通院測(cè)算,2020年中國(guó)數(shù)據(jù)庫(kù)市場(chǎng)規(guī)模約241億元。預(yù)計(jì)到2025年,中國(guó)數(shù)據(jù)庫(kù)市場(chǎng)規(guī)模將達(dá)688億元,年復(fù)合增長(zhǎng)率為23.4%,這意味著數(shù)據(jù)庫(kù)的重要性日益增加。
2020年全球企業(yè)基礎(chǔ)軟件各部分市場(chǎng)規(guī)模(圖源自網(wǎng)絡(luò))相比關(guān)系型數(shù)據(jù)庫(kù)市場(chǎng)被頭部企業(yè)占領(lǐng)的情況,分布式數(shù)據(jù)庫(kù)是我們國(guó)產(chǎn)數(shù)據(jù)庫(kù)彎道超車,打破國(guó)外集中式數(shù)據(jù)庫(kù)壁壘的絕佳途徑。分布式數(shù)據(jù)庫(kù)的優(yōu)勢(shì)是通過水平擴(kuò)展的方式,把數(shù)據(jù)分散存儲(chǔ)到多個(gè)節(jié)點(diǎn)上,以較低的成本地突破磁盤、CPU和內(nèi)存等單機(jī)瓶頸;將數(shù)據(jù)在多個(gè)節(jié)點(diǎn)上并行執(zhí)行,提高了整體的吞吐效率,滿足在線高并發(fā)業(yè)務(wù)請(qǐng)求和海量數(shù)據(jù)存儲(chǔ)的需求;性價(jià)比高,可用性好。分布式數(shù)據(jù)庫(kù)的缺點(diǎn)也很明顯,即分布式事務(wù)的代價(jià)較高。這主要是因?yàn)橥ㄐ艂鬏旈_銷;數(shù)據(jù)的存取結(jié)構(gòu)復(fù)雜;容災(zāi)等造成的資源需求。與單機(jī)的集中式數(shù)據(jù)庫(kù)相比,分布式數(shù)據(jù)庫(kù)往往只在大規(guī)模應(yīng)用中具有性價(jià)比優(yōu)勢(shì),適合服務(wù)大企業(yè)的海量數(shù)據(jù)存儲(chǔ)和分析。
而OceanBase 4.0的單機(jī)分布式一體化架構(gòu)則是數(shù)據(jù)庫(kù)領(lǐng)域的一大突破,也讓其應(yīng)用場(chǎng)景不再局限于金融等大型企業(yè)。針對(duì)中小企業(yè)的數(shù)據(jù)庫(kù)小型化需求,OceanBase 4.0采用動(dòng)態(tài)日志流技術(shù)降低硬件配置要求與資源開銷,這讓分布式數(shù)據(jù)庫(kù)既具備大規(guī)模處理的能力,又能在性能上與傳統(tǒng)單機(jī)數(shù)據(jù)庫(kù)相抗衡。因而在小規(guī)模的場(chǎng)景下,OceanBase 4.0在單機(jī)上可作為傳統(tǒng)數(shù)據(jù)庫(kù)使用,具備分布式部署的完整功能,在可擴(kuò)展性上相比單體機(jī)有很大優(yōu)勢(shì),不必?fù)?dān)心后續(xù)業(yè)務(wù)量改變導(dǎo)致的架構(gòu)調(diào)整。
這將極大擴(kuò)展OceanBase的應(yīng)用范圍,我們?cè)谠O(shè)計(jì)高性能解決方案時(shí),不必額外優(yōu)化數(shù)據(jù)庫(kù)分布式所帶來的資源損耗,這對(duì)用戶和行業(yè)來說都有比較重要的意義。各類客戶選用OceanBase 4.0后,不必困擾于規(guī)模小而無法部署分布式數(shù)據(jù)庫(kù),在業(yè)務(wù)發(fā)展不同階段均能按需求擴(kuò)展,從而滿足各種應(yīng)用場(chǎng)景需要,極大降低企業(yè)使用分布式數(shù)據(jù)庫(kù)的門檻。
當(dāng)OceanBase部署至各行各業(yè),這或許是一種數(shù)據(jù)庫(kù)“大一統(tǒng)時(shí)代”的來臨。
參考
- ^陽振坤.OceanBase關(guān)系數(shù)據(jù)庫(kù)架構(gòu)[J].華東師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2014(05):141-148+163.
- ^深入淺出:一文讀懂?dāng)?shù)據(jù)庫(kù)發(fā)展、實(shí)踐與未來,https://baijiahao.baidu.com/s?id=1600401122950225165&wfr=spider&for=pc
- ^張永奎. 數(shù)據(jù)庫(kù)原理與設(shè)計(jì)[M].人民郵電出版社:, 201909.260.
關(guān)鍵詞:數(shù)據(jù),國(guó)產(chǎn),里程碑,開啟