劉宏義
(解放軍邊防學院 戰(zhàn)斗實驗室,陜西 西安 710108)
?
基于DDS通信模型的數(shù)據(jù)管理問題研究
劉宏義
(解放軍邊防學院 戰(zhàn)斗實驗室,陜西 西安 710108)
DDS實時發(fā)布-訂閱模型無中心,多備份特點給通信數(shù)據(jù)的管理帶來了完整性和一致性的問題。不同于P2P分布式存儲,DDS應用具有硬實時、數(shù)據(jù)量較少的特點,其數(shù)據(jù)處理的核心問題是在不明顯影響實時性的情況下,保證分布式系統(tǒng)中數(shù)據(jù)的完整性和一致性。文中基于DDS使用的通信模型,研究分析了在此種通信模型下引發(fā)的持久化數(shù)據(jù)管理問題,并給出了相應的解決方案。
DDS;發(fā)布-訂閱;一致性;負載分配
隨著Internet技術的廣泛應用和計算機技術的發(fā)展,各種應用系統(tǒng)的體系結構呈現(xiàn)出以網絡為中心的趨勢,這對通信的實時性、動態(tài)靈活性提出了更高要求,同時要求分布式系統(tǒng)各參與者間采用一種具有松散耦合特性和通信服務質量保障策略QoS(Quality of Service)支持的靈活通信模型和交互機制。OMG(Object Management Group)組織于2004年頒布的基于發(fā)布-訂閱通信模型的信息交換規(guī)范DDS(Data Distribution Service),能夠有效地解決上述問題。
實時發(fā)布-訂閱通信模式具有無中心、數(shù)據(jù)多備份的特點。如何高效集約地管理和維護數(shù)據(jù),使多個通信結點間保持歷史數(shù)據(jù)的一致,成為實時發(fā)布-訂閱通信系統(tǒng)研發(fā)設計中必須面對的挑戰(zhàn)。僅從動態(tài)數(shù)據(jù)交換角度來說,發(fā)布-訂閱模型無疑是最適用于松耦合數(shù)據(jù)交換的一種通信模式,但從靜態(tài)數(shù)據(jù)訪問角度來說,這種多數(shù)據(jù)源的通信方式存在潛在的數(shù)據(jù)一致性問題和負載分配問題。
如圖1所示[1],DDS使用以數(shù)據(jù)為中心的通信模式,數(shù)據(jù)的存在與否并不依賴于某一個具體的物理結點。圍繞著一個數(shù)據(jù)對象,數(shù)據(jù)發(fā)送者、接收者被抽象成為這一類數(shù)據(jù)的發(fā)布者、訂閱者。應用程序將不用直接關心目的地的具體網絡地址和端口,只要將需要共享的數(shù)據(jù)對象提交給DDS實現(xiàn)系統(tǒng),由DDS負責基于消息內容進行無中心的傳輸,送達數(shù)據(jù)訂閱端。
圖1 DDS網絡通信模型
相反,在以對象為中心的通信中,基本概念是應用程序間的接口,接口由一組已知類型方法組成。以對象為中心的系統(tǒng)由接口服務器和客戶端組成,通信則基于客戶端在對應服務器所服務的命名接口上調用方法。以數(shù)據(jù)為中心和以對象為中心的通信方式是分布式系統(tǒng)中互補的兩種模式,前者更適合實時通信,后者更適合應用程序。
DDS系統(tǒng)本質上是將傳輸層協(xié)議進行封裝,是一個典型的消息中間件。它直接提供給應用層程序標準的通信接口,讓應用程序可以靈活地定義通信類型和通信質量需求(QoS),從根本上消除各種通信軟件之間數(shù)據(jù)交換的障礙。DDS采用以數(shù)據(jù)為中心的發(fā)布-訂閱模式可以良好地適應松耦合、無中心的分布式消息交換應用,數(shù)據(jù)發(fā)送、接收方可以自由加入和退出通信組。與有中心的SAFMQ(Store and Forward Message Queue)不同,DDS這種無中心的消息交換模型直接造成了對歷史數(shù)據(jù)維護的困難,主要表現(xiàn)為數(shù)據(jù)一致性問題和負載分配問題兩方面。
2.1 數(shù)據(jù)一致性問題
由于DDS的通信模式是以數(shù)據(jù)為中心,許多結點都可以向同一個通信組寫入消息。在不考慮結點失敗的情況下,設在一個通信組內總數(shù)據(jù)集合S={s1,s2,s3,…,sn},S由n個數(shù)據(jù)塊組成,并且分別由數(shù)據(jù)寫入者W={w1,w2,w3,…,wn}集合進行發(fā)布并記錄在永久介質中,即每個寫入者只維護編號與之相同的數(shù)據(jù)塊,讀取者集合R={r1,r2,r3,…,rm},每一個訂閱者都擁有完備的數(shù)據(jù)集S。物理結點集合N={n1,n2,n3,…,nr},所擁有的數(shù)據(jù)集{s1,s2,s3,…,sn}。設ni={Ri,Wi|Ri?R且Wi?W,1≤i≤r|}
Ri∪Wi≠?,ni∩nj=?(1≤j≤r且i≠j)
當一個新的讀取者rm+1加入到讀取者集合中,請求歷史數(shù)據(jù)時,數(shù)據(jù)提供結點應當擁有完整的數(shù)據(jù)集S(Si=S,1?i?r)。這樣的結點需要滿足條件1
ns={RS,WS|RS≠?,WS=W,1?s?r|}
由于網絡環(huán)境不穩(wěn)定,滿足條件1的結點會因為某種原因不存在于系統(tǒng),因此rm+1將不能獲得完整的數(shù)據(jù)集S,分布式結點中的數(shù)據(jù)視圖將發(fā)生在同一時間點上不一致的情況。
2.2 負載分配問題
解決數(shù)據(jù)訪問一致性問題的前提是在無中心的數(shù)據(jù)交換模型中選出一個保證具有完整數(shù)據(jù)集的結點(Master),所有數(shù)據(jù)請求全部由該結點負責傳輸。數(shù)據(jù)源的唯一性是數(shù)據(jù)訪問一致性的必要保證。一個結點對歷史數(shù)據(jù)的訪問本質上是跨結點的內存訪問。隨著分布式系統(tǒng)的擴展,這種跨結點內存訪問將會遇到結點I/O瓶頸,嚴重時將破壞數(shù)據(jù)傳輸?shù)膶崟r性。因此,不僅需要選擇高效的存儲方案,而且需要給上層應用程序提供負載分配的解決方案。
基于DDS的應用有其自身的特點:結構化的數(shù)據(jù)、較小卻頻繁的數(shù)據(jù)交換、硬實時性都使其區(qū)別于P2P的大規(guī)模數(shù)據(jù)傳輸。依據(jù)某種策略在某個通信范圍內找到一個統(tǒng)一的歷史數(shù)據(jù)維護結點(Master),負責向各結點提供統(tǒng)一的數(shù)據(jù)視圖,并保證Master結點的可替代性,將是問題的關鍵。
3.1 數(shù)據(jù)一致性解決方案
DDS通信模型的基本操作單元是通信組,只有同一個通信組內的數(shù)據(jù)寫入和讀取者才能相互交換同種數(shù)據(jù)模型的數(shù)據(jù)。因此DDS數(shù)據(jù)一致性問題的原子問題即某一個通信組下數(shù)據(jù)的一致性問題??紤]到DDS應用程序需要很高的容錯性,需要通過增加不同結點中完整數(shù)據(jù)的備份個數(shù)來增強系統(tǒng)魯棒性。
3.1.1 完整數(shù)據(jù)集獲取策略
滿足條件1的結點才會擁有完備的數(shù)據(jù)集S,Wi=W條件與DDS松耦合性質沖突,應當通過滿足Ri≠?這個條件來獲取完整的數(shù)據(jù)集合S。Ri需要滿足另一個前提條件:Ri必須在S由空集變?yōu)榉强占熬痛嬖谟诮Y點ni中,并且在nm+1請求歷史數(shù)據(jù)之前沒有退出過系統(tǒng),這樣才能保證最終Si=Sb。但這樣的條件是苛刻的,不能容忍結點失敗。因此需要引入數(shù)據(jù)校準的方式來將S進行傳遞,從而打破對于苛刻條件的依賴。數(shù)據(jù)校準步驟:(1) 通信域第1個結點1啟動,將其選擇為Master結點,并由系統(tǒng)產生一個R1專門訂閱通信組內的數(shù)據(jù),以滿足條件1,此時數(shù)據(jù)通信開始,Master結點中的W1開始生產數(shù)據(jù);(2) 第2個結點啟動后,無論其上層應用是否請求歷史數(shù)據(jù),此結點都向Master結點請求其產生的所有歷史數(shù)據(jù),將完整的歷史數(shù)據(jù)集復制于本地,同時由系統(tǒng)新建一個R2。這時結點2的W2向網絡寫入數(shù)據(jù)D《》2,由于Master具有R1,所以W2所寫的數(shù)據(jù)也將傳給Master一份加入到S中,此時結點1和2的數(shù)據(jù)集都為S={Di,D2};(3) 第3個結點啟動,同樣從Master處復制一份完整數(shù)據(jù)集S={D1,D2}到本地,同理建立W3和R3,寫入D3;(4) 通信系統(tǒng)中每一個結點都擁有完整數(shù)據(jù)集S={D1,D2,D3},當結點1失效后,依然可以保證通信組中完整數(shù)據(jù)集的存在。校準流程如圖2所示。
圖2 數(shù)據(jù)校準實例
數(shù)據(jù)校準過程是為了避免數(shù)據(jù)集S的一致性隨結點的進入和退出而損壞,與上層應用程序需要與否無關。通信數(shù)據(jù)是否需要進行持久化存儲,是可選的QoS保證之一,若一個數(shù)據(jù)不需要持久化,那么不會啟用校準策略。
3.1.2 數(shù)據(jù)內容一致性
Paxos算法較好地解決了分布式系統(tǒng)中多備份數(shù)據(jù)一致性問題[4]。Paxos算法提供了完整的理論證明,操作請求結點接收到超過一半結點的回應后即可開始操作數(shù)據(jù),并且不會破壞一致性。為避免Paxos算法的“活鎖”問題,將采用其改進算法Fast Paxos[4]。
Paxos算法及其改進算法直接適用于小規(guī)模數(shù)據(jù)(Zookeeper[5]建議<1 MB)一致性的達成。但DDS應用程序所產生的歷史數(shù)據(jù)量較大,不能直接使用Paxos算法去對所有歷史數(shù)據(jù)進行一致性維護,否則將會隨著數(shù)據(jù)量的增大嚴重影響到系統(tǒng)實時性。因此需要一種方案來對某些系統(tǒng)關鍵部分進行一致性處理。
除去網絡傳輸差錯影響,可以認為從同一個結點獲取的完整數(shù)據(jù)集合是相同的。有了數(shù)據(jù)維護結點(Master),數(shù)據(jù)內容一致性問題就轉化為了Master選取的一致性問題。使用Paxos分布式一致性服務表現(xiàn)為將Master結點的ID號作為系統(tǒng)內一致性的操作對象,由Fast Paxos中的Leader[4]來提交Master的建議值,并在通信系統(tǒng)各個結點中達成Master的最終一致。
網絡傳輸?shù)牟铄e或者人為的篡改都會造成從同一結點獲取的數(shù)據(jù)內容不正確,將Master處的完整數(shù)據(jù)集使用MD5摘要算法生成一個唯一值,將這個值也作為一致性服務的操作對象,如果某個結點發(fā)現(xiàn)本身具有的數(shù)據(jù)集的摘要值與Master的摘要值不同,需要重新從Master處得到一份數(shù)據(jù)。保證自己維護的數(shù)據(jù)時刻與Master保持內容上的一致。
3.1.3 數(shù)據(jù)操作一致性
DDS給上層應用不僅要提供獲取數(shù)據(jù)的功能,還應當具備數(shù)據(jù)操作的接口。完整數(shù)據(jù)集S在整個分布式系統(tǒng)中將會有很多備份,多個備份之間必須保持一致才能保證歷史數(shù)據(jù)的一致。所有的數(shù)據(jù)操作請求應首先提交給Master結點,Master結點通知所有的結點按照此操作請求來操作數(shù)據(jù)。Master會對每一個數(shù)據(jù)操作進行編號,其他結點若沒有收到值較小的操作則不會進行較大編號操作,防止了操作命令亂序。Master會在每個校準流程開始時給請求結點發(fā)送一個數(shù)據(jù)包,包括此數(shù)據(jù)副本的最近操作編號,結點校準完畢后,不再接受小于此編號的操作命令。每次對數(shù)據(jù)集的操作都會通過Master進行處理,這樣的策略給事務的提交和回滾提供了可能。
圖3 數(shù)據(jù)操作一致性實例
3.2 負載分配策略
隨著結點擴展,如果依然按照單個通信組的處理方式選舉出一個控制整個通信域的Master結點來保證數(shù)據(jù)的完整和一致,將會造成通信域中Master結點的過載,造成系統(tǒng)響應緩慢,失去了實時性的保證。因此需要一種合理的方案來降低結點負載量。
3.2.1 兩種Master選舉方法
(1)全局唯一Master。全局Master為實現(xiàn)功能將會加入通信域中所有的通信組。這種策略在結點數(shù)量不多的情況下還能適用,但系統(tǒng)的可擴展性將會很差。隨著DDS應用結點的增多,通信域中任何一個結點都無法達到需要的I/O速度,這就導致一個請求有可能很久后才得到回應,破壞了實時性;
(2)每個通信組都包含一個Master。這樣的策略可以通過控制Master選舉過程來將不同通信組的Master分配到盡量分散的結點,從而降低具體Master結點的負載量。這樣的策略理論上較好地增強了系統(tǒng)的可擴展性,但在實際情況中卻并非如此。Master的選舉牽涉到通信域內的一致性,所以當通信組很多的情況下,選舉過程所耗費的時間將嚴重影響系統(tǒng)的實時性。
圖4 不同Master的情況
Master的選舉范圍是問題的關鍵,應使用一種折中的策略來劃分Master的選舉范圍,由使用DDS實現(xiàn)系統(tǒng)的系統(tǒng)管理員靈活配置Master選舉范圍,從而使Master負載問題和Master選舉延時問題對系統(tǒng)實時性的影響降到最低。為了解決這個問題,需要引入命名空間的概念。
3.2.2 命名空間
設通信組的集合G={g1,g2,g3,…,gn},命名空間集合P={p1,p2,p3,…,pm},pi={Gi|G,1≤i≤m},Gi∩Gj=?。一種DDS應用或許會涉及到多個數(shù)據(jù)類型,每個數(shù)據(jù)類型都劃分出一個通信組,命名空間從數(shù)據(jù)相關性的角度對多個通信組再做出一個劃分,同一個命名空間下的通信組會選擇出同一個Master,擁有統(tǒng)一處理的數(shù)據(jù)集合。給上層應用提供了這種手段后,系統(tǒng)管理員可以根據(jù)具體需要來對通信組進行劃分,找出實時性最好的劃分方案。
該方案應用在了清華大學實時服務總線(RTSB)原型系統(tǒng)上。Master重選延遲和通信域結點個數(shù)及命名空間個數(shù)的關系如圖5所示。結點個數(shù)越多或者同一時刻需要重選Master的命名空間越多,Master選舉完成的延遲越長。因此命名空間的劃分原則應當是,在單一結點服務能力不會出現(xiàn)瓶頸的情況下,盡量少的劃分命名空間,才能保證系統(tǒng)的高可伸縮性。
圖5 Master重選延遲
在實際應用中,就算引入了命名空間的概念,依然不能真正降低Master選舉的時間,這就給系統(tǒng)響應實時性帶來了隱患。命名空間中具有完整數(shù)據(jù)集的結點將會有很多,如果某結點僅為了獲取數(shù)據(jù)而不需要操作數(shù)據(jù),那么任何一個具有完整數(shù)據(jù)集的結點都可以作為數(shù)據(jù)的提供者,而無需等到選出Master后才響應數(shù)據(jù)請求。因此在一個命名空間中沒有Master時,系統(tǒng)應當選取一個具有命名空間完整數(shù)據(jù)集的結點來作為數(shù)據(jù)提供結點,進一步增強系統(tǒng)實時性。
本文從以數(shù)據(jù)為中心的發(fā)布-訂閱模型入手,研究分析了在這種通信模型下持久化數(shù)據(jù)的管理存在的問題,結合DDS通信模式,設計了靈活的數(shù)據(jù)管理域劃分機制,選取了合適的數(shù)據(jù)管理結點選擇策略,在不嚴重影響系統(tǒng)實時性的情況下,應用Paxos算法較好解決了DDS網絡通信中間件在網絡通信中歷史數(shù)據(jù)一致性問題。
[1] Angelo Corsaro.Addressing the data-distribution challenges of next-generation business and mission-critical systems[EB/OL].(2008-11-13)[2016-03-12]http://www.dis.uniroma1.it/tucci/corsi/SD08/SD08-dds.pdf.
[2] Gerardo Pardo Castellote.OMG data-distribution service achitectural overview[C].Atlanta:IEEE International Conference on Distributed Computing Systems,2003.
[3] Woochul Kang.RDDS: a real-time data distribution service for cyber-physical systems[J].Industrial Informatics, 2012,8(2):393-405.
[4] Leslie Lamport.Fast paxos[J].Distributed Computing,2006,19(2):79-103.
[5] Flavio P Junqueira,Benjamin C Reed,Marco Serafni.Zab: high-performance broadcast for primary-backup systems[C].Salt Lake:IEEE/IFIP 41st International Conference on Dependable Systems&Networks,2011.
[6] Marco Primi.Paxos made code: implementing a high throughput atomic broadcast [D].Lugano:University of Lugano,2009.
[7] OMG.The real-time publish-subscribe wire protocol DDS interoperability wire protocol specification version2.1.OMG available specification formal[EB/OL] (2009-10-23)[2016-03-10]http://www.omg.org/spec/DDSI/2.1.
[8] 任昊利,李旺龍,張少楊,等.數(shù)據(jù)分發(fā)分發(fā)服務—以數(shù)據(jù)為中心的發(fā)布/訂閱通信[M].北京:清華大學出版社,2014.
Research on Data Management Problems Based on DDS Communication Model
LIU Hongyi
(Battle Laboratory,College of the PLA Border,Xi’an 710108,China)
Non- center and multi-replica of this DDS real-time pub-sub model brings integrity and consistency challenges for data management. Different from P2P distributed storage problem, DDS applications has hard real-time/less data characteristics. Data management’s core problem is to ensure the integrity and consistency of the data in distributed systems under hard real-time environment. This paper starts from the communication model used by the DDS and then analyzes persistent data management problems caused by such model, given a kind of appropriate solutions.
DDS;pub-sub;consistency;load balancing
2016- 05- 11
劉宏義(1972-),男,副教授。研究方向:作戰(zhàn)仿真和虛擬現(xiàn)實技術。
10.16180/j.cnki.issn1007-7820.2016.11.041
TN914
A
1007-7820(2016)11-146-04