趙雪章
(佛山職業(yè)技術學院,廣東 佛山 528137)
海量數據的一致性研究
趙雪章
(佛山職業(yè)技術學院,廣東 佛山 528137)
實現海量數據管理的關鍵技術之一是數據復制,維護多節(jié)點副本間數據的一致性是提高分布式數據庫的容錯能力與性能的重要保證。文章在介紹數據一致性基本理論和比較分析各種數據一致性維護方法的基礎上,對海量數據一致性維護過程中出現的更新傳播模型、更新傳播內容及解決更新沖突等進行分析,并提出了相應的解決辦法。
海量數據;數據一致性;數據維護
海量數據的支撐是諸多互聯網應用必不可少的條件和前提,并且要求海量數據保持高度的完備性和一致性,需要研究合適的分布存儲機制,特別是對分布式存儲環(huán)境下數據一致性維護的研究,以滿足海量數據處理需求,大幅提升計算速度和準確度。
一般分布式存儲機制通常采用結構化數據庫管理原數據,由分散多處的獨立設備和結點組成存儲集群和存儲網絡,設計這些系統(tǒng)結構首先考慮可擴展性,避免存儲任務承擔過高的負荷,保證整個系統(tǒng)的工作效率和可靠程度,必然在數據一致性方面有一定程度的犧牲和妥協(xié),但數據是動態(tài)變化的,用戶在每個副本結點都有可能更新訪問到數據,必須對同一數據對象的所有副本進行一致性維護,向外界提供統(tǒng)一的視圖。因此研究海量數據存儲機制和數據一致性維護,將海量數據分布存儲在各地的數據結點,在多結點間實現完備的數據復制處理機制,為復雜運算提供高效可靠的數據支撐,保證數據處理的速度和精度是重要的研究課題。
2.1 數據的一致性
事務處理模型中,各個事務隔離執(zhí)行能夠保證數據從一個一致性狀態(tài)變成另一個一致性狀態(tài),海量數據由一組數據變量D組成,對數據變量d∈D,Dom(d)表示d的域,且包含數據常量、集合、列表、字符串常量等。數據狀態(tài)將各個數據項d映射到值V,V∈Dom(d)。一個數據項狀態(tài)DS可以表示成d中數據變量及其值的有序對集:
DS=(d,v):d∈D∧v∈Dom(d),假設(d,v1)∈DS∧(d,v2)∈DS,則v1=v2。即各個數據項在某一時刻具有唯一值。所有可能的數據變量狀態(tài)的子集被定義成完整性約束,如果一個數據項狀態(tài)屬于該子集,則維護了數據的一致性。
2.2 數據一致性方法比較
數據一致性方法比較,如表1所示。
表1 數據一致性方法的比較
2.2.1 事務控制法
事務控制法通過2PL協(xié)議來保證事務執(zhí)行的可串行性,也就是保證事務執(zhí)行的一致性調度,及通過兩段鎖協(xié)議來同步更新各副本數據,這對事務執(zhí)行時間短、數據操作范圍窄的情況下有效。但在海量數據環(huán)境下2PL協(xié)議嚴重影響事務并發(fā)程度,同時,2PC協(xié)議對網絡資源需求高,會使事務重啟或事務持鎖時間過長而陷入長期等待狀態(tài),難以達成一致性要求。
2.2.2 消息隊列法
消息隊列法由兩個以上的進程間通過共享的系統(tǒng)消息隊列來交換信息,通過異步更新實現可靠信息收發(fā)的一種機制,進而維護多節(jié)點數據的一致,涉及的消息隊列有發(fā)送、應答、接收和管理隊列。當某個節(jié)點完成一次數據更新后,將節(jié)點數據同步信息及本地應答與管理隊列信息存放到消息中,發(fā)送到另一節(jié)點接收隊列中,同時,每個節(jié)點上的監(jiān)控守護程序一旦發(fā)現本節(jié)點上的接收隊列有新消息到達,系統(tǒng)解析消息,并處理本節(jié)點上的相應數據副本所解析的更新處理。若數據更新一致則結束;否則根據應答隊列的地址發(fā)出錯信息,節(jié)點上的監(jiān)控守護程序根據收到的錯誤信息,它將在本節(jié)點上試圖撤消相應的更新操作。消息隊列法有穩(wěn)定的跨平臺性、良好的可擴展移植性。其中穩(wěn)定的跨平臺性能保證消息一經發(fā)送,就肯定可以傳送到消息接收端,而且保證消息的一次性接收。穩(wěn)定的可擴展移植性為用戶方便地在分布式環(huán)境下多節(jié)點數據間進程級別上加入復雜更新處理程序,從而滿足系統(tǒng)的某些特定功能。
2.2.3 數據復制控制法
數據復制就是將數據從一個節(jié)點復制到另一節(jié)點,可分為同步復制和異步復制,同步復制是當事務對某一數據復制副本進行了更新時,事務管理系統(tǒng)必須向其他節(jié)點的副本數據強制更新信息以保持數據各副本一致,如果節(jié)點出現故障,則需要等待節(jié)點恢復正常再進行處理,但頻繁地數據的更新操作和向系統(tǒng)發(fā)送的復制信息,導致內部系統(tǒng)通信量大,整體處理速度受到影響和制約。與同步復制機制不同的是:當某一節(jié)點數據發(fā)生更新后,系統(tǒng)并不是立即將所有數據副本保持一致,而是在一段時間后再作信息更新,在某一時刻不同節(jié)點數據暫不同步。異步復制法主要解決兩個問題,即如何捕捉更新數據和選取復制時機。
一般情況下維護數據一致性的流程:當用戶需要更新某一節(jié)點的數據對象并提交到系統(tǒng)中時;系統(tǒng)根據維護一致性方法在多個節(jié)點副本間進行更新;副本按照相對應的順序接收更新,然后按照設計的規(guī)則更新數據,達到數據一致性。
3.1 更新傳播模型
一個系統(tǒng)中多節(jié)點數據對象有很多個副本時,會產生傳播延遲增加、更新頻率、沖突增加等一系列問題,系統(tǒng)的性能受更新傳輸模型的影響比較大。副本間更新傳播的方式有:ditect-mial方式,原理是盡可能地將更新傳播到多個副本,這是一種不可靠的組播方式;rumor-mongery方式是將最新的更新從一個副本傳播給另一個副本;會話方式是兩個副本階段性地交換自身已知的更新。在這3種傳播方式中,anit-entorpy會話有基于拓撲的策略、確定性策略和隨機選擇策略等幾種選擇,并且可以解決單主本發(fā)布更新遇到的問題,同時anit-entorpy方式可以確保更新被傳遞到副本圖。每個副本確定一個時間向量存儲其他副本的更新進度,每次選擇進度最慢的副本相互更新。將所有副本形成樹形結構,可以通過樹中多個節(jié)點發(fā)布更新,通過“捷徑”提高更新傳播的速度,比采用組播協(xié)議更有效。
3.2 更新傳播內容
傳輸更新日志需要對更新日志進行維護,可以更靈活地操作更新沖突、減少網絡開銷和計算。日志更新主要依賴的不是數據對象的大小而是更新發(fā)生的頻率及本身的大小,因此傳輸日志更新更適宜大型數據對象。同時數據對象本身較大、更新力度很強,也會產生海量的更新日志。當海量數據出現更新日志中,通過對系統(tǒng)更新確認效率的提高,減小本地存儲的更新日志歷史紀錄的長度,來解決在維護更新日志時占用較多的本地存儲空間;通過設計日志更新策略,在不造成維護一致性較大影響的條件下,有效取舍日志內容,減少更新傳輸時增加的網絡負載和更新傳播延遲,提高系統(tǒng)實用性。由于維護數據副本一致性中需要較多的控制更新傳播,需要將更新傳播策略與提高傳輸效率兩者結合起來。
3.3 解決更新沖突
系統(tǒng)中在某個時間段或同一時間內,可能存在多個節(jié)點副本同時發(fā)布多個更新,即使數據副本接收到相同的一致更新,也不能確保達到最終一致,因為副本可能以不同的順序接收到副本更新,維護一致性協(xié)議中必須解決哪些更新被確認及按什么順序確認的問題,目前解決更新沖突主要有全排序和部分排序。
全排序基本原理是所有節(jié)點數據副本必須依據系統(tǒng)設計的相同順序檢測到某次更新操作之前所有的更新,然后再提交這次更新操作。全排序對所有的數據副本分散執(zhí)行,按照相同的順序執(zhí)行更新,最終確保所有數據副本一致。優(yōu)點是不會放棄任何更新,需要設計嚴格的排序算法,且不能保存各副本之間更新的相互依賴關系和語義關系,某個副本失效可能阻止所有其他副本前進,可能導致長時間的更新應用延遲。
為克服全排序的缺點,部分排序方法充分利用更新可交換性的特點。解決辦法有:數值節(jié)點上的加減法運算、文件系統(tǒng)中同目錄內多個文件的創(chuàng)建;給每個更新附加上上一次更新的名稱;后續(xù)更新一定等到所有前更新執(zhí)行之后。目前大多數系統(tǒng)對節(jié)點數據的更新是采用全排序,再適當引入部分排序解決較高更新頻率的問題。
隨著互聯網的發(fā)展,海量數據逐漸成了數據處理領域的一個主流,維護副本數據一致性也成為一個主攻方向。本文在介紹數據一致性基本理論和比較分析各種數據一致性維護方法的基礎上,對維護海量數據一致性過程中出現的更新傳播模型、更新傳播內容及解決更新沖突等進行分析,并提出了相應的解決辦法。下一步將深入研究相應的解決辦法,提出解決方案并模擬實驗。
[1]盧正鼎,楊玉萍,李長磊,等.多數據庫系統(tǒng)中的一致性維護[J].計算機研究與發(fā)展,2001(2):158-162.
[2]GANTI V,GEHRKE J,RAMAKRISHNAN R.Mining very large databases[J].Computer,1999(8):38-45.
[3]張斌.虛擬專用網環(huán)境中保持數據庫一致性的一種方法[J].計算機工程,2000(10):134.
[4]謝夢.一種基于MANET的協(xié)作緩存一致性模型及維護機制[D].廣州:中山大學,2010.
[5]黃宇.移動自組網環(huán)境下協(xié)作緩存一致性維護機制研究[D].合肥:中國科學技術大學,2007.
Study of mass data consistency
Zhao Xuezhang
(Foshan Polytechnic,Foshan 528137,China)
Data replication is one of the key technologies to realize mass data management.To maintain data consistency between nodes copy is the important guarantee of improving the tolerance and performance of the distributed database.Based on the introduction of basic theory of data consistency and maintenance method of comparative analysis of all kinds of data consistency,this paper analyzed the update propagation model and the update content of the communication in the process of the consistency maintenance of massive data and resolving the update conflict and so on,then the corresponding solution was proposed.
mass data;data consistency;data maintenance
趙雪章(1972—),男,河南南陽,碩士,副教授;研究方向:圖像及數據處理。