您現在的位置是:首頁 > IT基礎架構 > 計算存儲 >

分布式數據庫走到拐點

2021-07-06 16:57:38作者:毛爍來源:中國信息化周報

摘要隨著數字經濟的大力推行,數據量呈現爆發式增長, 數據管理模式也發生著急劇的變化, 傳統的集中式架構數據庫在很多應用場景下顯得捉襟見肘, 新型的“分布式架構數據庫” 正逐漸成為數據庫技術研究和應用的熱點。 ...

隨著數字經濟的大力推行,數據量呈現爆發式增長, 數據管理模式也發生著急劇的變化, 傳統的集中式架構數據庫在很多應用場景下顯得捉襟見肘, 新型的“分布式架構數據庫” 正逐漸成為數據庫技術研究和應用的熱點。 



中國軟件評測中心發布的《分布式數據庫發展路徑研究》報告顯示,隨著傳統的數據庫技術日趨成熟、計算機網絡技術飛速發展、應用范圍擴展,數據庫應用已經普遍建立于計算機網絡之上,基于此,集中式數據庫系統便表現出它的不足之處,諸如:數據按實際需要已在網絡上分布存儲,再采用集中式處理,勢必造成數據傳輸方面得開銷;應用程序集中在一臺計算機上運行,一旦該計算機發生故障,則整個系統受到影響,可靠性不高;集中式處理使得系統的規模和配置都不夠靈活,系統的可擴展性差。在這種形勢下,“集中計算”概念開始向“分布計算”概念發展。
分布式數據庫是數據庫技術與網絡技術相結合的產物,在數據庫領域已經形成了一個分支。分布式數據庫的研究始于20世紀70年代中期。世界上第一個分布式數據庫系統“SDD-1”是由美國計算機公司(CCA)于1979年在DEC計算機上實現。

20世紀90年代以來,分布式數據庫系統進入商品化應用階段,傳統的關系數據庫產品發展成以計算機網絡及多任務操作系統為核心的分布式數據庫產品,同時分布式數據庫逐步向客戶機/服務器模式發展。
分布式數據庫是傳統數據庫技術與計算機網絡的有機結合,相比于傳統的單機或主備模式的集中式數據庫,分布式數據庫在平滑擴展、性能、可靠性、可用性、成本、容災備份等方面頗具優勢,特別是在性能方面,它可以突破集中式數據庫的瓶頸,具有很強的研究和應用價值。

極具代表性的應用領域——互聯網

互聯網行業是分布式數據庫首先被重點應用的領域,極具代表性。數據量和系統訪問量作為互聯網行業的“根基”,對于數據庫的選擇,是必須考慮的關鍵問題。隨著數據量和系統訪問量的增加,依賴縱向擴展的傳統數據庫架構,采用小型機、磁陣和商用數據庫軟件的購買和維護成本會越來越高。而采用廉價的PC 服務器、使用本地存儲的分布式數據庫,可以有效降低用戶成本,同時還能帶來良好的系統成長性。北京字節跳動科技有限公司(以下簡稱“字節跳動”)作為互聯網行業的龍頭企業,對于分布式數據庫的運用頗為“考究”。

字節跳動數據庫團隊負責人告訴記者,字節跳動自主研發的分布式OLTP(聯機事務處理)數據庫,支持MySQL、Postgresql、Mongodb等多個開源生態,涵蓋抖音、今日頭條、西瓜視頻等應用,教育、電商、直播等業務線。字節跳動數據庫團隊負責人透露,未來,字節跳動將結合其自身的工作負載和新的硬件、軟件技術打造更多的數據庫產品,在字節跳動內部實施更大范圍的落地,并逐步開放給其他企業用戶。目前,字節跳動旗下智能科技品牌——火山引擎,已將該數據庫提供給外部企業用戶使用。

由于互聯網行業的應用場景繁多且駁雜,包括各種大型促銷活動、春節搶票活動、秒殺活動、節日搶紅包活動等應用場景,都有短時間內數據并發量激增的情況。如果按照業務峰值提前采購計算資源,必然會導致資源浪費。對于這一點,OLTP數據庫的表現頗為“亮眼”。

字節跳動數據庫團隊負責人表示,從工作負載上看,字節跳動的分布式OLTP數據庫擁有上萬個實例,其容量可達到數PB之多,且具備較大的吞吐量。面對短時間內數據并發量激增的情況,OLTP數據庫展現出良好的適應能力。例如,在2021年“抖音春晚紅包雨”活動上,OLTP分布式數據庫保障了“抖音春晚紅包”活動期間“抖音APP”的穩定運行。
“抖音春晚紅包雨”活動面臨的最大挑戰,便是其數以億計用戶的“關系查詢”問題。抖音的用戶關系數據是抖音產品形態和數據分發的“中樞”,如何存儲海量的關系數據并保證在毫秒級內實現并發關系查詢結果的反饋,是系統架構領域的難題。對此,字節跳動自研了分布式的“圖數據庫系統”——ByteGraph,該系統以“圖(Graph)中點”和“邊數據模型”來應對復雜多樣的應用場景需求。

分布式數據庫被廣泛應用

由于分布式數據庫產業發展良好,除互聯網領域外,在其他重點行業也擁有諸多成功的應用案例。浪潮集團作為我國頂尖的大型IT企業,其分布式數據庫的應用場景廣泛,且具備良好的發展前景。浪潮ZNBase數據庫總經理王小虎告訴記者,浪潮自主研發的Inspur ZNBase數據庫(以下簡稱“ZNBase”)已經實現了在金融、工業互聯網、政企和智慧校園等行業的應用。

ZNBase作為新一代的 NewSQL分布式數據庫,參考了谷歌“Span -ner+F1”的設計思想,采用“去中心”架構,讓ZNBase具備云原生、多中心、高可用、事務強一致等特性,滿足HTAP (混合事務和分析處理)場景需求,有效地實現了對諸多行業的賦能。對于銀行業,ZNBase可布局在銀行的反欺詐系統項目中,實現將“商戶黑名單風控子系統”及“公司業務事后風險監控子系統”從Oracle/Postgres數據庫遷移到“ZNBase DB數據庫”中。在金融領域,某信托公司的大數據分析與應用平臺項目中,基于ZNBase構建的“統一大數據分布式數據庫”與“數據ETL處理平臺”,進一步提升了信托業務貸后數據分析能力與監管報送能力。在工業互聯網領域,ZNBase為某工業互聯網大數據中心應用提供的OLTP/OLAP數據服務,以其高可用、高可靠的特性,在工業互聯網場景下,實現了元數據管理、多租戶權限管理、AI開發、建知識圖譜等功能。此外,ZNBase還“涉足”政企、智慧校園等領域。王小虎透露,ZNBase已經部署在某市大數據局智慧政務系統及某大學海洋數據中臺項目中。

關鍵特性與顯著優勢

分布式數據庫之所以“備受追捧”,緣于其在各行業領域的關鍵技術特性方面具備顯著優勢。北京人大金倉信息技術股份有限公司(以下簡稱“人大金倉”)總裁杜勝曾發表觀點稱,任何事物都遵循發展的規律。例如,高質量的發展需要利用資源形成可量化的標準,故而人們不惜一切代價追求經濟規模的持續增長和發展速度。但我們需要明白,在多個條件限制下實現的經濟增長,其實現難度和基礎成本的攀升,是整個世界和人類文明可持續發展的必然選擇。在杜勝看來,軟件行業同樣遵循這樣的發展規則,而這一規律在分布式關系數據庫產品設計方面體現得尤為形象。設計集中式關系數據庫的出發點,就是要充分利用每一份資源,但由于資源本身具備上限,即使能夠支持數據庫的垂直擴展,也很容易達到資源瓶頸。

而分布式數據庫的最大優勢就是可以平滑地進行節點擴展,這樣使得在系統運行初期,分布式數據庫暫時不需要規劃部署大量機器,隨著業務增長,可動態增加節點,提升整體存儲容量和處理性能,同時實現業務無感知的平滑擴容,以滿足業務連續性要求。這種擴展能力,使得分布式數據庫通過機器橫向堆疊實現存儲容量和處理性能的提升,突破了集中式數據庫由于硬件配置帶來的存儲和性能限制,以滿足海量數據存儲和高并發處理要求,可以達到幾十萬級 TPS、百萬級 QPS 以上的處理性能。

《分布式數據庫發展路徑研究》報告顯示,分布式數據庫一般基于通用的 PC 服務器和操作系統,數據也存儲在本地磁盤中,其硬件成本,比傳統小型機和高端磁陣有明顯優勢。特別是在節點擴展到一定規模后,不僅實現了集中式數據庫無法實現的高并發,而且單個事務處理消耗的成本也會比集中式數據庫顯著降低。

通常,分布式數據庫都會采用多副本機制,一份數據在多個節點上保存,副本間通過Raft、Paxos等一致性協議保證數據一致性。當某個節點或者部分節點故障時,數據不會丟失,上層業務不受影響。在多地多活的分布式方案中,分布式數據庫亦可以實現分布式單元化架構,保證數據一致性的前提下,向外提供穩定可靠高效的服務能力。分布式數據庫的多副本機制實現了系統的容災能力,提升系統可靠性。

挑戰與對策

盡管分布式數據庫具備獨特的技術應用優勢,但其發展也面臨一系列問題。對于分布式數據庫來說,其最大的挑戰便是解決各個節點狀態的同步問題。根據分布式系統的“CAP 理論”,不存在一個分布式系統,既能保證數據一致性(C),也能保證可用性(A),還能保證分區容錯性(P)。所以通常情況下,一般的分布式數據庫會選擇“CA”或者“CP”,或者犧牲一部分“C”來換取“A”的提升。在分布式系統中,由于網絡可能會出現延遲、丟包甚至中斷等問題,導致分區容錯性是必須要實現的,但是不同的應用系統對一致性、可用性和性能的要求各不相同,因此企業需要在一致性和可用性之間進行權衡。

在杜勝看來,在分布式產品方面,目前行業內大多數企業的思路是在保障高可用性的前提下,更好地滿足架構的彈性、伸縮性,這種思路可以在單節點效率不高的情況下,通過不斷增加節點算力來提升吞吐量,繼而支持線性擴展。簡單來講,這是一種“大力出奇跡“的思路,盡管采用不斷堆疊算力的方式,可以解決整體問題,但這樣的設計思路卻并不完美,因為單節點的低效和節點間協同所帶來的資源浪費也是顯而易見的。

在字節跳動負責人看來,產品方面,企業需要從多個角度分析。字節跳動負責人告訴記者,在字節跳動的架構中,存儲層采用了Quorum協議,所以在數據庫訪問存儲方面具備強一致性,而對于用戶側,除非用戶有強一致性的需求,需要強制訪問數據庫的主節點,否則只對用戶提供最終一致性的保證。

“由于一份數據會以多個副本的形式存儲在多個網絡分區(可用域),在分區容錯性方面,會在系統出現單分區網絡故障時,保證分布式數據庫系統的分區容錯性。”字節跳動負責人說。他強調,如果數據庫服務不可用,可能會導致前端業務失能,最終影響用戶體驗,所以保證系統的高可用性至關重要。

王小虎介紹,針對CAP原則中的分區容錯性,其ZNBase采用增強型RAFT共識協議來保證分區的強一致性,利用網絡分區將原先的“Leader節點”和“Follower節點”進行分隔,若“Follower節點”無法收到“Leader節點”的信號,系統便會“選舉”產生新的“Leader節點”,介時便形成了雙“Leader節點”的狀態。由于原先的“Leader節點”獨立在一個分區中,故而向其提交的數據便不可能復制到多數節點,最終無法實現提交。然而,“Follower節點”卻可以向新的“Leader節點”成功提交數據,當網絡恢復正常后,舊的“Leader節點”發現集群中有了新的“Leader節點”,便自動降級為“Follower節點”并從新“Leader節點”處進行數據同步,最終達成集群數據一致。

針對CAP原則中一致性與可用性的權衡問題,王小虎透露,ZNBase主要提供以下幾種方案,滿足客戶各種服務乃至同一服務下各種應用場景對數據庫一致性和可用性的差異性要求:
■讀取“節點”滿足可用性
采用配置數據就近讀取的模式,在多數據中心的部署場景下,讓應用連接最近的數據中心,獲得其最新的數據。
■“強同步副本”滿足一致性
采用“兩數據中心三副本”模式,該模式可實現當某一數據中心出現故障后,另一數據中心繼續對外提供服務;“Leader節點”進行日志提交時,不僅需要提交日志,還需要強同步副本提交日志,以實現在任意時間段內,兩數據中心同步讀取到最新的數據。
■塊設備同步(DRBD)方案滿足一致性
DRBD是在“存儲設備層+網絡層”實現高可用集群的資源代理(RA),一旦其中一個節點宕機,資源便會自動轉移到另一個節點,從而保證服務的連續性。

合理選擇分布式數據庫

隨著技術的不斷演進,在市場中,種類繁多的分布式數據庫系統不斷涌現,選擇一款適用、合理的分布式數據庫系統至關重要。針對不同應用場景,選擇與之對應的使用模式,是浪潮ZNBase決勝的關鍵。

在浪潮ZNBase數據庫總經理王小虎看來,利用ZNBase“多副本+地理分區標簽”的特性,將數據調度到不同的機房、機架、機器,可以有效保障數據的一致性、可靠性,同時滿足系統高可用性、可擴展性、容災性。當部分機器出現故障時,ZNBase可以幫助分布式數據庫系統實現自動切換,確保其RTO(恢復時間目標)不高于30s ,RPO (復原點目標)歸零;針對數據存量、增量較大的應用,可利用ZNBase將所有的數據庫整合成一個邏輯統一的數據庫,以實現降低應用開發復雜度、提高應用開發敏捷性的效果;對于源數據庫為POSTGRES(關系型數據庫)或GP(MPP數倉)的部分用戶來說,ZNBase可幫助其實現“一鍵遷移”。

目前,ZNBase已實現將“列式存引擎”與“行式存儲引擎”相結合,構建出HTAP(混合事務和分析處理)數據庫,實現在同一個系統中進行聯機交易處理、實時數據分析,拋棄了原有數倉作業中耗時巨大、操作重復的ETL處理流程,極大地節約用戶的成本。

無獨有偶,在字節跳動看來,分布式數據庫的選型,需要考慮以下四點。

第一,應用對數據模型有無特殊要求,是否要求關系型模型/key-value模型/圖模型;第二,應用訪問數據庫的邏輯是否有特殊性,其使用的SQL語法是否能得到100%的支持;第三,應用訪問數據庫的工作負載有何特點,讀取和寫入的占比多少,讀取、寫入QPS有無較明確要求;第四,可預測時間范圍內,應用的數據存量和數據增量。

結合AI技術實現分布式架構

杜勝認為,采用分布式數據庫首先要明確的一個前提共識:明確的規則是提高群體工作效率的基礎,混亂適用于創造,秩序才能提高效率。所以,提供明確的業務規則并沒有錯,錯的是這些規則無法隨著外部環境的變化而隨之自動變化,當環境發生改變時,靜態的規則便難以為繼。

誠然,企業在最初賦予系統規則的階段,是依靠以往的經驗總結出來的,系統在運行過程中不斷對各類訪問行為進行收集和分析,并自動對已有的、不適應的規則進行調整,并重新對各個節點進行分工,同時調整節點的增減,這一切的工作都由分布式數據庫進行統籌和安排。當外部環境發生變化時,依靠節點間的協調和溝通,發現并執行規則,以提升處理效率。

企業需要在整個分布式關系數據庫架構中增加規則的智能管理節點,節點在系統運行過程中不斷收集、觀測訪問行為,同時將計算和存儲分離,存儲節點根據規則重新分布數據,計算節點則根據業務熱點將多個存儲節點的數據匯聚并進行緩存。杜勝說:“結合AI技術的分布式架構,本質上是分布式關系數據庫數字化和智能化的實現。該架構一旦在實際項目中應用,系統會隨著運行時間的增加,不斷提高規則的適應性,繼而提高整個系統效率。”

應大力發展分布式數據庫的技術、產品、生態

隨著分布式數據庫在各行各業中的應用日益廣泛,促使產品技術不斷迭代,諸多挑戰將逐一被攻克。未來,隨著分布式數據庫標準體系及評價體系的健全,分布式數據庫產品的生態體系也將逐漸完善,在運維保障、數據遷移、運行監測等方面的配套工具也將逐步成熟。

《分布式數據庫發展路徑研究》報告建議:目前,國內絕大部分數據庫企業均推出了分布式數據庫產品,我國分布式數據庫發展基本與國際同步,在一些技術指標和應用層面處于領先水平,而且互聯網、金融等領域應用場景對分布式數據庫具有切實需求,當前應大力發展分布式數據庫的技術產品,加快行業應用,促進數據庫產業高質量發展。對于分布式數據庫產業的發展,營造環境,打造分布式數據庫的生態體系是重中之重。

從產業發展角度來看,相比于集中式數據庫,分布式數據庫還處于發展的初期,技術體系、標準規范、測評機制、產品推廣等方面尚不健全。第三方研究和服務機構應起到帶頭作用,聯合推進技術標準、測評認證、遷移驗證、示范試點等工作,共同營造良性的分布式數據庫生態體系。目前相關企業發起了國產數據庫的開源社區,并形成了部分商業發行版產品,這或許是建設分布式數據庫生態體系的新思路。


(本文不涉密)
責任編輯:wangyan

站點信息

  • 運營主體:中國信息化周報
  • 商務合作:趙瑞華 010-88559646
  • 微信公眾號:掃描二維碼,關注我們
娇妻在老头跨下高潮呻吟