互联网环境下分布式事务处理系统现状与趋势
互聯網環境下分布式事務處理系統現狀與趨勢
馬鵬瑋, 魏凱, 姜春宇
中國信息通信研究院云計算與大數據研究所,北京 100191
摘要:傳統集中式數據處理系統由于摩爾定律的逐漸失效,開始顯露出性能瓶頸,無法有效支撐當前業務的快速發展。同時由于安全、成本、政策等原因,原有集中式數據處理系統向分布式數據處理系統轉型成為必經之路。從分布式事務處理系統的發展背景、優勢及挑戰、技術特點、應用要點、未來發展方向等方面介紹了分布式事務處理系統的意義、現狀及趨勢,為后續分布式事務處理系統的應用及發展提供了理論基礎和指導。
關鍵詞:分布式;數據庫;事務
doi:10.11959/j.issn.2096-0271.2018021
論文引用格式:馬鵬瑋, 魏凱, 姜春宇. 互聯網環境下分布式事務處理系統現狀與趨勢[J]. 大數據, 2018, 4(2): 86-96.
MA P W, WEI K, JIANG C Y. State of the art and future research on distributed processing system in Internet environment[J]. Big Data Research, 2018, 4(2): 86-96.1? 分布式事務處理系統發展背景
中國互聯網持續快速發展,帶來了當前信息的快速消費以及數據的快速增長,這種優勢為中國創造了巨大的信息紅利。與此同時,指數級增長的互聯網業務量也為背后的信息支撐系統帶來了巨大的壓力與挑戰。以阿里巴巴淘寶網為例,2009—2017年“雙十一”交易額如圖1所示。
圖1 ?淘寶網“雙十一”交易額
巨大交易增長量的背后,后臺信息支撐系統除了直接面向用戶的電商網站系統外,相關的物流系統、支付系統、倉儲系統、訂單系統等也都接受了巨大的考驗。而上述各類信息系統的核心數據處理能力,幾乎均與數據處理系統的性能息息相關。
各類數據處理場景可以分為事務場景和非事務場景兩大類。事務場景即數據處理過程需要滿足原子性、一致性、隔離性、持久性(atomicity、consistency、isolation、durability,ACID)4個特性。典型的場景如銀行賬戶間轉賬、物流倉庫的運輸等。非事務場景對數據處理過程沒有對ACID特性的嚴格要求。典型的場景有搜索展現場景、報表分析場景等。
因為事務場景具有ACID特性,所以相比于非事務場景,事務場景對底層數據處理系統提出了更高的技術要求。以銀行支付系統為例,目前核心的支付系統經過幾十年的發展,形成了采用所謂的IOE(即IBM公司的大中型服務器、Oracle公司的數據庫軟件、EMC公司的存儲設備)結構作為事務場景的支撐系統。這套系統結構用于支撐銀行傳統的柜臺業務沒有大問題,但是隨著國內移動互聯網以及電商業務的快速發展,其中存在的問題逐漸暴露。
(1)性能上限
傳統的IOE結構為集中式系統,即所有的軟件系統都運行在一個性能十分強大的服務器上,例如IBM公司的AS 400、AS 390等。當業務壓力變大時,一般采用縱向擴展(scale up)方案,即繼續增加單臺服務器的性能上限。但是隨著摩爾定律逐漸失效,靠增大壓縮器件尺寸提高單臺服務器性能上限的方案已經逐漸失效,縱向擴展路線即將走到盡頭。
(2)成本巨大
當業務量上升時,不僅硬件系統的規模需要呈指數級增長,同時軟件系統相應的服務費用也會隨之增長,中國銀行、中國農業銀行、中國建設銀行、中國工商銀行每年相應的支出達到數億元,且仍在持續增長。
(3)嚴重捆綁
采用IOE結構的公司,因為各環節信息系統供應商的壟斷化及單一化,會造成嚴重的服務提供商捆綁問題。傳統的IOE服務提供商會對相應功能實施生態封閉策略,造成服務消費方對其服務的嚴重依賴,這為未來埋下了嚴重的隱患。例如IBM公司近年來市場份額逐漸下降,未來方向尚不明確,如果將來IBM公司不再提供服務器的供應或維護,那當前相應的IOE體系服務消費方將會遭受嚴重打擊。
(4)非自主化產品
IOE體系均為國外的技術與產品,這方面需要進行自主化改造,從而掌握核心技術主動性。
(5)適應新業務環境
隨著業務產品的逐漸豐富,底層數據系統架構需要增加擴展能力,從而適應多種業務類型的靈活性要求,而集中式架構在這方面具有先天缺陷。
為解決以上各類問題,各大技術公司逐漸開始研發分布式事務數據系統技術,從而逐漸在事務場景中替代傳統的IOE結構。
2 ?分布式事務數據處理系統優勢及面臨的挑戰
分布式事務數據處理系統是利用高速通信網絡以及多臺服務器的分布化方式,解決數據處理事務場景的數據處理系統,其具有以下特性。
● 以橫向擴展路線代替縱向擴展路線。通過集群模式,將任務和數據分發到多臺服務器上,多臺服務器共同協作,通過增加橫向擴展服務器的數量達到提高單臺服務器性能上限的目的,從而解決性能上限問題。
● 使用廉價服務器及開源產品解決成本問題。分布式事務處理系統在底層不再采用成本巨大的超級服務器以及專有商業事務數據庫,而是采用多臺廉價的x86服務器以及開源的數據庫產品達到相應效果,預計單一企業在該方面的成本將從千萬級下降到百萬級。
● 多元化、開源化解決服務商捆綁問題。分布式事務處理系統可從硬件、軟件等多個環節對接業內多種企業或開源產品。例如硬件支撐系統可以采用華為、浪潮、戴爾等多種x86服務器提供商提供的相應產品,軟件支撐系統可以采用MySQL、MariDB、PostgreSQL等多款開源數據庫產品,從而解決嚴重捆綁的問題。
● 國內企業研發解決非自主可控問題。當前國內涌現出多款自主研發分布式事務處理系統產品,例如阿里巴巴的OceanBase數據庫、騰訊的TDSQL數據庫、中興通訊的GoldenDB數據庫、PingCAP的TiDB數據庫等。這樣,可以通過國內企業的創新力量解決非自主可控的問題。
理論上分布式事務數據處理系統橫向擴展路線可以達到數據處理能力上限。但是為了保證事務場景ACID特性,分布式事務數據處理系統無法達到其理論上限。深層次的原因為分布式事務數據處理系統在數據處理過程增加了網絡傳輸環節,而根據統計分析,數據在網絡中傳輸處理的速度大概為單機系統內傳輸處理的千分之一,所以傳統事務數據處理系統中成熟的保證事務場景ACID的技術方案無法直接應用到分布式事務數據處理系統中。
為了研究如何使分布式事務數據處理系統保障事務場景ACID特性的問題,學術界提出:一致性、可用性、分區容錯性(consistency、 availability、partition tolerance,CAP)無法同時全部滿足,只能同時滿足兩個特性。通俗解釋為:為了滿足分區容錯性,數據庫系統中的數據需要同時保證多副本分散分布,而多副本分散分布會帶來無法保證各副本間數據一致性的問題,而嚴格保證各副本間數據一致性,又會導致數據庫系統性能下降。所以, CAP 3個特性無法同時得到滿足。
在分布式體系結構中,分區現象是默認存在的,所以分區容錯性默認必須得到滿足。而事務特性要求一致性必須得到滿足,所以相應的分布式事務數據處理系統必須保證分區容錯性和數據一致性,酌情降低了系統可用性。
同時,分布式體系結構存儲數據的方式相對于集中式存儲系統存儲數據的方式來說,增加了兩種新型的擴展形式。
第一種數據擴展形式為數據分區處理,即“大表變小表”。當一張表的容量達到上限或者出現業務交叉時,常進行水平拆分處理,即將一張表的數據拆分成幾張表共同存儲,各表分別放在不同的服務器上,從而針對不同小表訪問的業務可以分散到不同的服務器上,減少單點問題,提高可用性。
第二種數據擴展形式為數據鏡像處理,即“一份變多份”。一張表進行數據鏡像,從而形成內容為同一份數據的多張表,但是從物理位置上看,卻分散在不同的服務器上。針對某一份數據的業務可以分散到這份數據其余的鏡像數據服務器上,從而提升服務性能。同時,當其中某臺服務器發生故障、無法提供服務時,它的數據鏡像所在的服務器仍然能夠提供服務,提升了分區容錯性。
新增的數據擴展形式在帶來優點的同時,也為分布式事務性的保障提出了新的挑戰。
● 首先,針對數據分區擴展形式產生了分布式事務中的多機協作問題。當某個事務處理過程涉及多個分區的數據,而這多個分區的數據分散在不同的服務器上時,通過服務器之間的網絡通信,保證事務的ACID屬性成為挑戰。
● 其次,針對數據鏡像擴展形式產生了分布式事務中的數據同步問題。當某個事務針對某份數據進行更改操作時,利用服務器間網絡通信使這份數據的鏡像數據與之保持同步,從而維護數據鏡像的特點,使對外提供服務的鏡像數據與源數據之間不會出現數據不一致的現象,這是另一個挑戰。
3 ?分布式事務數據處理系統各類技術方案
數據分區擴展形式帶來的挑戰通常稱為分區一致性(consistency)問題,數據鏡像擴展形式帶來的挑戰通常稱為副本一致性(consensus)問題。
針對分區一致性問題,核心解決方案依然是沿襲傳統集中式數據庫系統的事務問題解決方案,即處理好事務過程中鎖與并發的控制問題。傳統集中式數據庫系統解決此問題的方式為兩階段鎖(2 phase lock,2PL)方案,即通過兩階段鎖控制本次事務涉及的資源,從而達到事務屬性。在分布式系統中,原有的2PL方案轉化為兩階段提交(2 phase commit,2PC)類方案,即通過分別向同一事務涉及的多臺服務器發送兩階段的提交要求,完成同步提交的效果。2PC方案根據各類事務隔離級別要求,后續又被改進為3PC、2+XPC、異步消息隊列、TCC(try confirm cancel)方案等。目前各類應用都是針對不同的實際業務場景,抽象出業務的實際隔離級別需求,然后在上述各種方案中選擇合適的分區一致性解決方案。
副本一致性的核心問題為分布式系統中的數據復制問題。由于分布式系統增加了網絡傳輸的延遲性和不確定性,一致性方案主要分為服務器邏輯架構設計解決方案和數據自組織解決方案。常見服務器邏輯架構解決方案設定為主從模式或者主主模式,通過掐斷數據復制過程中從服務器的數據輸出能力,達到副本一致性的目的。常見的數據及組織解決方案為Paxos、Raft、Zab等一致性算法協議,通過自由選舉、過半投票確認、分區容錯的解決方式自組織解決副本一致性問題。
業內為了綜合解決上述兩個問題,從各個方向逐漸發展出了3種相應的架構方案。
第一種架構方案為中間件方案,其架構示意如圖2所示。
圖2 Cobar中間件方案架構
整個分布式事務數據處理系統架構分為3層,最上層為應用層,第二層為中間件層,第三層為數據庫實例層。其中,底層數據庫實例層常采用開源的集中式數據庫,負責本實例上的數據存儲與處理;中間件層負責手動數據分區之后的分區信息維護、上層應用下發的SQL語句分布式解析下發、分布式事務的統一執行控制等,從而實現數據分區與分布式事務的實現。
第二種架構方案為共享存儲方案,其架構示意如圖3所示。
圖3 Oracle RAC共享存儲方案架構
整個分布式事務數據處理系統架構分為3層,最上層為應用層,第二層為數據庫計算實例層,第三層為共享存儲層。數據庫計算實例層通過分布式擴展,保證集群的計算性能,增強可用性。同時共享存儲層采用新型存儲硬件結構,保證高速I/O性能的同時,避免了存儲層數據網絡通信的環節,通過改進一定量傳統的集中式數據庫系統的事務解決方案,保障了共享存儲架構中的分布式事務能力。但是由于統一式存儲帶來的并發和I/O能力的理論極限,集群規模無法做到大規模擴展。業內實踐案例表明,當此類解決方案集群數量達到百臺規模時,性能將會出現比較大的下滑。
第三種架構方案為計算存儲均分布式擴展方案,其架構示意如圖4所示。
圖4 計算存儲均分布式擴展方案架構
整個分布式事務數據處理系統架構分為3層,最上層為應用層,第二層為分布式計算層,第三層為分布式存儲層。分布式計算層與共享存儲方案的數據庫計算實例層相似,均通過分布式擴展能力保證集群的計算性能,增強可用性。而分布式存儲層采用零共享(shared nothing)架構,同時大部分產品具備自動化分區功能,不需要人為定義分區模式,各個存儲節點之間通過高速互聯網絡進行通信,通過一致性算法即多版本并發控制(multi-version concurrency control,MVCC)保障數據執行過程中的集群狀態正確性以及事務的ACID屬性。但是當存儲層分布式化之后,事務設計不同節點通信時,由于網絡時延問題,與統一存儲相比,事務整體執行過程的時延勢必有一定比例的增加。
最后根據新數據時代下對數據庫的功能需求,本文簡單從幾個維度對上述3類數據庫方案進行粗略的對比和總結,對比結果見表1。
表1 ?3類數據庫方案對比
4 ?分布式事務數據處理系統應用注意事項
分布式事務數據處理系統相比于集中式數據處理系統具有一系列優點,但是在成功應用之前,仍然需要注意幾點問題。
(1)正確認識自身業務需求
分布式系統中的CA P決定了強一致性、高可用性、分區容錯性三者不能同時實現。正確地認識自身業務需求,明確當前業務在上述3種特性中的重點,才能切合實際地對后續分布式事務數據處理系統功能做出取舍。而正確認識業務主要是服務規模和服務質量兩方面。例如,對于金融行業中的核心業務,服務質量是必須滿足的,所以必須要保證強一致性,從而弱化高可用性。而對于互聯網系統中的查詢業務,服務規模是主要需求,所以高可用性必須保障,而一致性可以相應地進行弱化。
(2)明確分布式事務數據處理系統各產品特點及適用場景
分布式事務數據處理系統因為底層技術路線不同,所以上層適用場景也不盡相同。例如,部分分布式事務數據處理系統需要在管理節點數量大于某個數量時,才能發揮較優性能,這就對應用方集群規模做出了限制;部分分布式事務數據處理系統需要使用特殊的硬件作為存儲或計算介質,從而達到較優性能,這就對應用方硬件環境做出了限制。其他的類似區別指標有是否需要人工參與數據分區、適用的服務規模范圍、是否具備多中心容災能力、是否能夠提供多種事務隔離級別等。
(3)正確規劃已有IT架構向分布式體系遷移的路徑及策略
目前現有數據庫系統以集中式架構為主,且當前實際業務和第三方應用大部分也是基于集中式數據庫結構實現的。如何在數據庫架構從集中式向分布式轉移過程中,保證上層業務的正常服務能力以及盡量少的原有業務體系變動,是需要格外注意的問題。為達到此目的,首先需要對轉型后系統與原系統的兼容能力做一個充分評估,其次需要合理規劃轉型過程中存量業務和增量業務的關系,最后需要在新型系統正式上線前進行充分驗證,做好原有系統災備的充足準備。
(4)驗證分布式事務數據處理系統產品能力
在正式遷移應用之前,需要正確篩選符合要求的分布式事務數據處理系統產品,同時驗證各類分布式事務數據處理系統產品能力范圍。筆者所在單位于2017年7月開始分布式事務數據處理系統標準化的嘗試,梳理出分布式事務數據處理系統基準測試的方法論和具體實施方法。基準測試主要包括功能和性能兩大方向,指標項包括兼容能力、透明能力、管理能力、分布式能力、事務能力、安全能力、高可用能力、場景化性能指標等多個維度,從而全面衡量分布式事務數據處理系統產品能力。
5? 分布式事務數據處理系統未來趨勢
近幾年,以Google Spanner為代表的NewSQL類數據庫發展迅速,其以全球范圍內的擴展性、強事務支持能力、靈活的應用形式、廉價的軟硬件成本等特點,逐漸成為數據庫的最新演進形態,而這也是當前信息社會環境下的必然結果。究其原因,數據庫的最初需求就是高性價比地實現數據的管理工作。首先高性價比可以從經濟成本和業務成本兩方面衡量,NewSQL類數據庫實現了基于x86等廉價服務器搭建,并在底層實現數據自動化均衡處理,對業務侵入性不高,不需要應用過多感知,同時節約了經濟成本和業務成本。其次,數據的管理工作分為存儲和處理兩方面。在大數據時代,數據的基本特征為數量大、類型多、價值密度低、速度快、時效高,所以對數據處理的需求為擴展性強、數據兼容能力強、具備分析能力、處理能力強,而NewSQL類數據庫具備聯機分析處理(online analytical processing,OLAP)/聯機事務處理過程(on-line transaction processing,OLTP)混合能力、存儲與計算強擴展性、兼容結構化與非結構化數據等多個特點,切合了當前時代數據管理功能需求。
隨著大數據、物聯網、人工智能等應用的快速興起,分布式架構取代集中式架構是大勢所趨,未來分布式事務數據處理系統將會作為數據時代的技術結構,為未來技術浪潮的發展提供更多的數據基礎能力,未來分布式事務數據處理系統將在幾個方面繼續延伸變化。
首先,分布式事務數據處理系統的功能形態將會更加豐富。隨著大數據和人工智能產業的發展,各數據應用企業都利用自身快速增長的業務數據,擴展出核心業務能力之外的數據分析能力,這就需要底層數據處理過程除了滿足事務型邏輯之外,分析功能需求占到越來越多的比例。數據庫作為數據底層服務設施,保障上層業務事務特性的同時提供高可用的分析能力是未來的發展趨勢。目前已有將底層存儲結構對接上層兩套邏輯系統,完成上述功能的實例。未來如何平衡事務和分析兩種業務的支撐占比以及相應技術實現方式,仍然需要繼續探索與實踐。
其次,新型硬件之下的分布式事務數據處理系統形態得到發展。底層存儲與計算硬件(如3D內存、Flash卡、硬件壓縮卡、非易失性存儲器等)的快速發展,是原有數據庫系統發展過程未曾預想到的。當前數據庫系統的底層讀寫模式仍是以原有磁盤存儲介質特點進行設計并發展起來的,例如事務日志刷盤模式、緩沖區大小計算方法、I/O與網絡的性能瓶頸評估等,這些傳統設計方法造成了新型硬件介質的優勢特點無法被現有數據庫系統充分應用。未來的分布式事務數據處理系統需要針對新型硬件特性進行相關研發,從而突破傳統數據庫的思維及認知局限。
最后,利用協調硬件突破軟件困境。例如因為物理時鐘難以同步,所以傳統事務數據庫通常采用邏輯時鐘維護事務順序,但是邏輯時鐘的維護會限制數據庫的規模大小,所以覆蓋全球范圍的事務數據庫幾乎不可能實現。而Google公司推出的Spanner數據庫直接采用硬件GPS加上原子鐘方案,解決了物理時鐘同步問題,做到了全球范圍的數據庫事務一致性。預計未來將會出現更多協調硬件輔助數據庫軟件系統解決之前無法解決的問題。
6 結束語
IT架構作為企業架構的基礎,支撐著上層業務架構的建設與發展,促進了頂層愿景和戰略的順利實施。而傳統集中式事務數據處理系統面對新環境下OLTP業務的迅速增長,相關問題逐漸暴露,故需要完成集中式體系向分布式體系的轉型,從而釋放數據紅利,充分發展數字經濟。而當前分布式事務數據處理系統正處于快速創新發展時期,多種體系架構并存,在擴展性、性能、可用性等方面優于傳統集中式數據處理系統,但穩定性、服務能力等方面仍與傳統集中式數據處理系統存在差距。故在轉型過程中,應用方需要充分掌握相關技術特點、應用方法、實現方式等知識體系,從而實現快速、平穩的轉型進程。
點擊下方?閱讀原文?即可獲取全文
作 者 簡 介
馬鵬瑋(1993-),男,中國信息通信研究院云計算與大數據研究所大數據研發與測試工程師,主要研究方向為大數據技術體系以及數據庫技術體系。
?
魏凱(1981-),男,中國信息通信研究院云計算與大數據研究所部門主任,中國信息通信研究院互聯網領域副主席,國際電信聯盟分布式賬本焦點組(ITU-T FG DLT)副主席,ITU-T SG16 Q21報告人,中國通信標準化協會TC1大數據與區塊鏈工作組組長。牽頭完成數據中心聯盟大數據基準測試、可信區塊鏈評測等標準和評測體系。主要研究方向為大數據和區塊鏈相關技術與標準。
?
姜春宇(1987-),男,中國信息通信研究院移動互聯網與大數據部工程師,數據中心聯盟大數據技術與產品工作組組長。主要研究方向為大數據技術體系,從事大數據技術和產品的標準化工作,牽頭建立了國內首個大數據產品能力評測體系。參與起草《促進國家大數據發展行動綱要》,參與編寫工業和信息化部《大數據產業“十三五”發展規劃》。
?
《大數據》期刊
《大數據(Big?Data?Research,BDR)》雙月刊是由中華人民共和國工業和信息化部主管,人民郵電出版社主辦,中國計算機學會大數據專家委員會學術指導,北京信通傳媒有限責任公司出版的科技期刊。
關注《大數據》期刊微信公眾號,獲取更多內容
總結
以上是生活随笔為你收集整理的互联网环境下分布式事务处理系统现状与趋势的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 构造函数和析构函数深拷贝和浅拷贝
- 下一篇: “数据资产化”线上论坛圆满结束!