一體化架構(gòu):重新定義分布式數(shù)據(jù)庫,進軍核心業(yè)務系統(tǒng)
原創(chuàng)【51CTO.com原創(chuàng)稿件】隨著互聯(lián)網(wǎng)的飛速發(fā)展,人類社會的數(shù)據(jù)量迅速激增。而互聯(lián)網(wǎng)業(yè)務的發(fā)展通常具有爆發(fā)性,業(yè)務量很可能在短時間內(nèi)呈爆發(fā)式增長,對應的數(shù)據(jù)會相應地飛漲。如果系統(tǒng)不夠穩(wěn)定,將造成無法訪問等后果。
在這種情況下,傳統(tǒng)的單機數(shù)據(jù)庫在擴展性、性價比方面已經(jīng)無法滿足需求。為了解決系統(tǒng)性能、成本以及擴展性的需求,分布式數(shù)據(jù)庫系統(tǒng)應運而生。
從技術(shù)模塊角度來看,要實現(xiàn)一個分布式數(shù)據(jù)庫,最直接的做法就是把事務層與存儲層分離,抽取一個單獨的分布式KV系統(tǒng),在分布式KV系統(tǒng)實現(xiàn)分布式的擴展性和高可用的能力。這樣雖然實現(xiàn)簡單,但是它犧牲了單機性能,系統(tǒng)的延遲很高,因而無法應用到核心業(yè)務系統(tǒng),因此只能在非核心的業(yè)務系統(tǒng)上使用。而一體化架構(gòu)將事務層與存儲層有機地結(jié)合,在事務層實現(xiàn)了擴展性,這就沒有犧牲單機性能,最終能夠做到單機性能與集中式數(shù)據(jù)庫的性能基本相當,因而適用于核心業(yè)務場景。
詳解一體化架構(gòu)
一體化架構(gòu)集合了原生分布式框架和HTAP兩種技術(shù)優(yōu)勢。
首先來看原生分布式。原生分布式的底層是一個基于Paxos的,與數(shù)據(jù)同步的、靈活的容災架構(gòu),支持同城三機房、三地五中心、兩地三中心等靈活的容災模式。在Paxos的容災架構(gòu)之上是一個集中式、分布式一體化的架構(gòu),能夠兼具單機性能易用性,以及多機可擴展性,并且保證全局的強一致性。
再來看HTAP。從產(chǎn)業(yè)角度來說,在互聯(lián)網(wǎng)浪潮出現(xiàn)之前,企業(yè)的數(shù)據(jù)量并不太大,尤其是核心的業(yè)務數(shù)據(jù),通常一個單機數(shù)據(jù)庫就可以應對,存儲也不需要復雜的架構(gòu),所有的聯(lián)機事務處理 (OLTP, Online Transactional Processing) 和聯(lián)機分析處理 (OLAP, Online Analytical Processing) 都運行在在同一個數(shù)據(jù)庫實例中。
隨著企業(yè)業(yè)務數(shù)據(jù)量的不斷增多,單機數(shù)據(jù)庫在海量數(shù)據(jù)場景下的使用受到了制約。在實際應用中,為了應對不同的業(yè)務需求,OLTP、OLAP這兩類任務處理往往由不同團隊完成。在數(shù)據(jù)量激增的情況下,OLAP 和 OLTP 系統(tǒng)間通常會有幾分鐘甚至幾小時的時延,OLAP 數(shù)據(jù)庫和 OLTP 數(shù)據(jù)庫之間的一致性也無法保證,難以應對一些對分析的實時性要求很高的業(yè)務場景。同時,管理和維護不同數(shù)據(jù)庫也大大增加了企業(yè)成本。因此,能夠統(tǒng)一支持事務處理和工作負載分析的數(shù)據(jù)庫成為眾多企業(yè)的需求。
2014年,Gartner的一份報告中使用HTAP(混合事務/分析處理,Hybrid Transactional/Analytical Processing)一詞來描述新型的應用程序框架,以打破OLTP和OLAP之間的隔閡,既可以應用于事務型數(shù)據(jù)庫場景,也可以應用于分析型數(shù)據(jù)庫場景。這種架構(gòu)不但避免了繁瑣且昂貴的ETL操作,還可以更快地對最新數(shù)據(jù)進行分析。Gartner 提出,HTAP數(shù)據(jù)庫將成為數(shù)據(jù)庫領(lǐng)域的重要發(fā)展趨勢,一個集成的數(shù)據(jù)平臺將會加速數(shù)字化轉(zhuǎn)型。
當然,讓數(shù)據(jù)庫既做 OLTP 又做 OLAP ,即 HTAP,面臨著非常大的挑戰(zhàn),這是因為 OLTP 與 OLAP 存在巨大差異,且這種差異始終存在。比如從數(shù)據(jù)量來看,OLTP的數(shù)據(jù)量通常較小,而OLAP的數(shù)據(jù)量通常很大。從事務尺寸來看,OLTP的事務通常較小,而OLAP的事務通常都很大;從數(shù)據(jù)的一致性來看,OLTP的事務數(shù)據(jù)都有非常高的一致性,OLAP的數(shù)據(jù)的一致性相對較低;從事務的并發(fā)量來看,OLTP通常有很高的并發(fā)量,而OLAP的并發(fā)量并不大;從事務的響應時間來看,OLTP有嚴格的響應時間要求,而OLAP的數(shù)據(jù)庫響應時間相對比較寬松;從數(shù)據(jù)的存儲來看,OLTP的數(shù)據(jù)庫通常是行存,而且實時更新,而OLAP的數(shù)據(jù)庫,通常是列存,批量更新。
所以,HTAP數(shù)據(jù)庫的挑戰(zhàn)主要表現(xiàn)在四個方面。首先是分布式的事務處理,由于分析處理所需的數(shù)據(jù)量和計算量龐大,要求整個系統(tǒng)必須是分布式的。其次是事物的優(yōu)先級,分析的大查詢,需要消耗大量的CPU、內(nèi)存和IO資源,很可能導致交易的小查詢無法得到所需的資源而等待并超時。第三是行列的混合存儲,由于行存對交易事務處理友好,而列存對分析處理友好,所以HTAP 系統(tǒng)既需要行存又需要列存,也就是行列的混合存儲。第四是 HTAP 的性能評估,當今各種 benchmark 都是單一的性能評估,要么是事物處理,要么是分析處理,但 HTAP 同時需要兩者。
OceanBase:完美詮釋HTAP
在國內(nèi),真正實現(xiàn)HTAP 的數(shù)據(jù)庫并不多,業(yè)界某些HTAP數(shù)據(jù)庫使用了兩套引擎來實現(xiàn)HTAP,即主備庫物理隔離,主庫做 OLTP,備庫做 OLAP,主備之間通過 redo 日志做同步,備庫與主庫之間有一定的延遲。而OceanBase則自研了一套引擎,可以同時支持了OLTP和OLAP,這是與其它HTAP數(shù)據(jù)庫差異化的體現(xiàn),也重新定義了分布式數(shù)據(jù)庫!
OceanBase是原生分布式數(shù)據(jù)庫的代表,它背后的核心技術(shù)就是一體化架構(gòu)。一方面,它的底層仍然是一個原生分布式架構(gòu),能夠充分享受到分布式技術(shù)無限擴展、永遠在線的技術(shù)紅利,RPO等于0,能夠動態(tài)地增加減少服務器;另一方面它對外體現(xiàn)的是與經(jīng)典集中式數(shù)據(jù)庫完全兼容的功能和單機性能。OceanBase通過一體化架構(gòu),發(fā)揮了分布式+集中式的雙重技術(shù)優(yōu)勢。
OceanBase在一套HTAP引擎里同時支持OLTP與OLAP混合負載,并且做到OLTP與OLAP兩種負載之間的資源隔離。同時兼容兩種SQL的使用接口,即商業(yè)數(shù)據(jù)庫 Oracle和開源數(shù)據(jù)庫 MySQL,保證了集中式數(shù)據(jù)庫到分布式數(shù)據(jù)庫的平滑遷移。
過去的幾年中,OceanBase經(jīng)歷了三次迭代,第一代分布式存儲系統(tǒng),將LSM Tree首次引入到關(guān)系數(shù)據(jù)庫領(lǐng)域中,大幅降低關(guān)系數(shù)據(jù)庫的存儲成本;第二代分布式數(shù)據(jù)庫OceanBase再次將Paxos 協(xié)議引入到關(guān)鍵數(shù)據(jù)庫領(lǐng)域中,首次做到 RPO = 0;第三代原生分布式數(shù)據(jù)庫OceanBase 做到了在一套引擎同時支持OLTP與OLAP混合負載,并且參與TPC-C和TPC-H打榜都取得世界第一的成績。
五大核心產(chǎn)品技術(shù)突破和出色的TPC-C成績
2021年,OceanBase又取得五大核心產(chǎn)品技術(shù)突破:從OLTP到HTAP,TPC-H整體性能提升620%,30TB刷新世界紀錄;單核性價比大幅提升,sysbench整體性能提升68%,支持小規(guī)格部署性價比,在全球分布式數(shù)據(jù)庫領(lǐng)域遙遙領(lǐng)先;更強的跑批能力,支持超大事務,能夠在一套引擎同時處理交易和跑批兩類工作負載,并且確保跑批負載不會影響正在進行的交易業(yè)務,并行DML和大數(shù)據(jù)導入性能分別提升270%和58%;OceanBase 是業(yè)內(nèi)首個支持平滑遷移Oracle的原生分布式數(shù)據(jù)庫,并且得到銀行、保險、證券、運營商、公共事業(yè)等多個行業(yè)的核心業(yè)務場景的應用;易用性提升:OceanBase實現(xiàn)了不依賴單點的分布式主動死鎖檢測,也能夠通過全鏈路監(jiān)控來大幅降低問題排查成本。
2020年的5月,OceanBase參與了TPC-C 二期的測試,取得7.07億 tpmC的成績,排名世界第一。2021年5月,OceanBase再次參加了TPC-H 30TB的打榜,取得了1526萬 QphH的成績,再次排名世界第一。這樣充分證明了一個基于分布式架構(gòu)的原生分布式數(shù)據(jù)庫,能夠?qū)崿F(xiàn)與經(jīng)典集中式數(shù)據(jù)庫完全對標的強一致的ACID能力,且整個系統(tǒng)能夠持續(xù)穩(wěn)定長期的運行性能無抖動。
全新亮相:3.X工具家族和OceanBase 3.1.2 社區(qū)版本
在近日召開的DC 2021分布式數(shù)據(jù)庫開發(fā)者大會上,OceanBase發(fā)布了全新 3.X工具家族,包括:運維管理工具OCP、開發(fā)者工具ODC、數(shù)據(jù)遷移工具OMA &OMS。其中,OCP在已經(jīng)實現(xiàn)基礎(chǔ)運維工作全面白屏化的基礎(chǔ)之上,進一步提升了智能診斷的能力和運維效率,最大支持超過1500臺機器的集群;ODC支持PL存儲過程的開發(fā)與調(diào)試,通過增強的安全審計能力,邁向企業(yè)級安全管控的一大步;OMS持續(xù)完善數(shù)據(jù)源,支持超過10個不同類型的數(shù)據(jù)源,同時實現(xiàn)了從遷移評估、數(shù)據(jù)遷移、數(shù)據(jù)同步、數(shù)據(jù)校驗等一系列一站式遷移服務的能力,實現(xiàn)了從客戶的集中式數(shù)據(jù)庫到分布式數(shù)據(jù)庫的平滑遷移。
會上,OceanBase 3.1.2 社區(qū)版本正式發(fā)布。包括三大核心技術(shù)升級:第一、秒殺性能提升 300%,第二、生態(tài)適配全面加速,支持 Hbase 對接能力;第三、推出全新社區(qū)版工具體系(社區(qū)版 OCP、社區(qū)版 ODC、社區(qū)版 OMS),提供白屏化集群管理、租戶管控、開發(fā)調(diào)試、數(shù)據(jù)同步、導入導出等完整功能,協(xié)助社區(qū)用戶快速上手。
后記
近年來,“國產(chǎn)化核心替代”成為了一大熱詞,2008年,阿里提出“去IOE”,至今十多年,國產(chǎn)數(shù)據(jù)庫百花齊放,并逐步應用于核心業(yè)務系統(tǒng)。雖然相較于Oracle,國產(chǎn)數(shù)據(jù)庫在單機性能、優(yōu)化器、復雜查詢處理等能力上還有一定差距,但通過分布式的技術(shù)架構(gòu),不少國產(chǎn)數(shù)據(jù)庫在海量并發(fā)場景下表現(xiàn)出了更優(yōu)于Oracle的擴展性和高可用。
相信數(shù)據(jù)庫的未來,一定是采用一體化架構(gòu)實現(xiàn)的,兼具分布式與集中式的雙重技術(shù)優(yōu)勢的原生分布式數(shù)據(jù)庫。
【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】