999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

增量同步約束條件下的多節點間主節點選舉算法

2013-04-12 00:00:00談興秋
現代電子技術 2013年14期

摘 要: 為了滿足在異地分布多中心的數據服務系統中,選取一個節點作為主節點,提供數據寫服務,其他節點作為備節點提供讀服務,主節點與備節點之間采用增量同步方式同步數據系統運行模式的需要。在此列舉了在數據增量同步條件下進行主備選舉時,需要遵循約束條件,提出一個基于數據版本作為主要約束條件的主備選舉算法。描述了在選舉過程中,節點的狀態定義,各個狀態轉換關系,以及在各個狀態下需要進行的相關處理。通過實際工程運用,驗證了算法滿足使用要求,同時總結了目前不足和后續改進要點。

關鍵詞: 增量同步; 選舉算法; 狀態轉換; 數據服務系統

中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2013)14?0051?04

Algorithm for primary?node election in multi nodes under condition of data incremental synchronization constraint

TAN Xing?qiu

( The 28th Research Institute of China Electronics Technology Group Corporation, Nanjng 210007, China)

Abstract: In order to meet the demands of selecting a node as the master node in the multi?center data service systems distributed in allopatry to provide data writing services, other nodes as backup nodes to provide reading services, and adopting the synchronous data system operating pattern of incremental synchronization mode between the master node and the backup node, the constraint conditions which should be abided when the main and preparation elections are performed under the condition of data incremental synchronization are listed in this paper. The main and preparation election algorithm on the basis of data version as the main constraint is put forward. The state definition of the node, the conversion relation between various states and the related processing in different situations are described. The algorithm was verified in the actual engineering application. The insufficiency and the future improvement points are pointed out in this paper.

Keywords: incremental synchronization; election algorithm; state transformation; data service system

0 引 言

在系統進行設計時,考慮到容災備份[1]和負載均衡[2],需要在廣域網上設置多個服務節點。多個服務節點之間,常需要選舉出一個服務節點作為工作節點,完成系統的控制以及對數據進行更新,稱此節點為“主”節點;其他節點作為“主”節點的備份,在“主”服務點失效的情況下接替“主”節點的工作,稱這些節點為“備”節點。系統軟件通過算法確定節點的工作狀態的過程,稱為“主備選擇”過程。一般“主備選擇”過程需要遵循以下原則:

(1)在網絡狀態良好的情況下,同一時刻系統內只應該有一個主節點;

(2)新節點的加入,不影響處于穩定狀態主備關系;

(3)在節點集合失去主節點時或沒有主節點時,啟動主備選擇過程;

(4)在網絡故障,由于出現多個連通網絡,而出現多個主節點時,可以自動沖突消解[3],保留一個節點作為主節點,其他節點降為備節點。

在實際的系統設計中,常需要考慮到網絡帶寬的限制,服務節點之間的數據同步,采用基于數據版本的增量同步[4]的方法時,這給節點之間的主備選擇增加了以下兩個約束條件:

(5)為了盡可能地減少數據丟失,在主節點失效后,需要選舉數據版本最新的備節點接替主節點的工作。

(6)為了保證數據的一致性,在系統的工作過程中不能容忍雙主情況的存在,即使雙主處于不同的連通網絡時,系統也不可恢復。

基于以上原因,本文提出在數據基于版本的增量同步下,在多節點間進行主備選擇的算法。

1 相關名詞說明

鎖服務:相對于參與選舉的節點而言,作為選舉的外部的裁判,主要解決選舉過程中可能出現的沖突而依靠節點自身狀態無法判斷的問題,如兩個節點參加選舉,而節點之間網絡斷線,從而自身無法選舉出主節點地情況。只在選舉時,特定的情況下起作用,平時節點的工作狀態不依賴鎖服務的存在。鎖服務采用先申請、先獲得的原則。申請成功后,申請的節點向鎖服務發送心跳報[5],來維持對鎖服務的擁有。

數據版本:數據每次更新形成一個數據版本,數據版本由節點與序列組合成的版本號和更新日志組成,在原主備節點間數據同步的情況下,備節點可以依據更新日志在本地完成相應版本的增量同步。

全同步:在備節點與主節點不能繼續進行增量同步的情況下,將所有數據同步到備節點的情況,一般在節點之間的版本差異超過更新日志存儲的范圍時發生。

連接數:一個節點可以正常與其他節點之間進行雙向通信的節點數目,稱為連接數[6]。

2 節點狀態定義

未同步:包括節點不可探測或未能與主節點進行聯系的狀態,新節點加入系統,先從未同步狀態開始進行處理,未同步狀態為常態。

初始化:為節點與主節點取得聯系后,進行初始化全同步的工作,以達到可以作為備運行的狀態,為暫態[7]。

備:正常工作,可以與主節點之間進行增量同步,可以作為備選節點接替主節點工作的狀態,為常態。

選主:備節點在發現失去主節點時,申請作為主節點的工作狀態,為暫態。

升主:選主節點在初步判斷后,并經過收斂時間,認為自身能夠作為候選主節點的狀態,是選主節點轉換為主節點的中間狀態,為暫態。

主:當前系統的主工作節點,為穩態[7]。

降備:主工作節點在收到主節點切換命令后降為備節點的過渡狀態,此狀態是一個人工觸發而出現的狀態,在軟件自動選舉的過程中不會出現,為暫態。

數據處理在各個狀態下需要遵循的約束如表1所示。

3 節點狀態轉換關系及狀態處理

節點加入系統從“未同步”狀態開始,根據觸發條件進行相應的狀態轉換從而融入系統進行工作。圖1給出節點狀態轉換關系。

圖1 節點狀態轉換關系

表1 各狀態數據處理模塊需要遵循的約束

第3.1~3.7節,以偽代碼的方式,給出節點處于各狀態下,主備選擇可能預見的各種觸發條件和在此觸發條件下需要進行的相關處理。

3.1 未同步狀態的處理

if(收到其他節點的心跳探測報文)

then{ 上報自身為“未同步”狀態

if(節點心跳探測報文表明節點為“主”狀態) then向主節點發送同步申請報文;}

if(收到主節點的同步應答報文)

then{ 記錄下主節點的地址

if(應答報文為“增量同步”) then設置自身的狀態為“備”;

if(應答的報文為“全同步”) then設置自身的狀態為“初始化”;

立即向其他節點報告自身狀態;}

if(收到升主命令) then設置自身為“主”;應答控制節點;向其他節點報告;

if(周期探測時控到) then 向地址列表內的所有節點發送狀態探尋心跳報文;

3.2 初始化狀態的處理

if(收到其他節點的心跳探測報文)

then {if(節點心跳探測報文表明節點為非“主”狀態) then上報自身為“初始化”狀態

if(節點心跳探測報文表明節點為“主”狀態)。

then{ if(節點地址==當前記錄的主節點地址) then上報自身為“初始化”狀態;

if(節點地址!= 當前記錄的主節點地址)

then 刪除主節點地址,更改自身狀態為“未同步”,廣播“未同步”;

}

}

if(收到主節點的同步應答報文) then{

if(應答報文為“增量同步”) then 設置自身的狀態為“備”,廣播自身為“備”;}

if(應答報文非“增量同步”) then繼續進行全同步的過程;

}

if(周期探測時控到)

then { 向地址列表內的所有節點發送狀態探尋心跳報文;

計算自身當前的連接數;

if(節點的連接數小于N/2) then { 刪除主節點地址,更改自身狀態為“未同步”;

廣播自身為“未同步”;}

}

3.3 備狀態的處理

if(收到其他節點的心跳探測報文) then

{

if(節點心跳探測報文表明節點為“主”狀態) (節點地址!= 當前主節點地址)

then {記錄新主節點地址,廣播自身為“備”狀態;}

}

if(收到主節點的同步應答報文) then

{

if(應答報文為不可“增量同步”) then{更改自身狀態為“未同步”,廣播 “未同步”;}

if(應答報文“增量同步”) then 進行同步的過程;

}

if(收到設置主節點命令) then { 更改自身狀態為“主”;

應答設置主的命令,廣播自身為“主”;}

if(周期探測時控到) then

{

向地址列表內的所有節點發送狀態探尋心跳報文;

if(主節點不在線) then { 刪除主節點地址;

更改自身狀態為“選主”,廣播狀態 “選主”;;

設置選主超時;

}

計算自身當前的連接數;

if(節點的連接數小于) then {刪除主節點的地址;

更改自身狀態為“未同步”,并廣播 “未同步”;}

}

3.4 選主狀態的處理

if(收到其他節點的心跳探測報文)then{

if(節點心跳探測報文表明節點為非“主”狀態) then上報自身為“選主”狀態

if(節點心跳探測報文表明節點為“主”狀態) then

記錄主節點地址,更改自身狀態為“備”,并廣播自身狀態;

}

if(選主超時時間到達) then {

if(節點均為“選主”或者“未知”,且自身數據版本最高) then {

設置自身的狀態為“升主”,并設置升主超時,廣播自身為“升主”;}

else{ 設置選主超時;}

if{周期探測時控到} then {

向地址列表內的所有節點發送狀態探尋心跳報文;

計算自身當前的連接數;

if(節點的連接數小于) then 更改自身狀態為“未同步”,并廣播;

}

3.5 升主狀態的處理

if(節點的連接數大于等于) then {

向鎖服務申請鎖

if(獲得鎖)then 更改自身狀態為“主”,并廣播;

if(被鎖服務拒絕)then 更改自身狀態為“選主”,并廣播;

}

if(升主狀態超時)then更改自身狀態為“選主”,并廣播;

if(節點連接數小于)then更改自身狀態為“未同步”,并廣播;

3.6 主狀態的處理

if(收到其他節點的心跳探測報文) then 應答自身為“主”狀態;

if(收到降備的控制報文)then 設置自身的狀態為“降備”,并設置降備超時;

if(周期探測時控到)then {

向地址列表內的所有節點發送狀態探尋心跳報文;

計算自身當前的連接數;

if(連接數小于) then更改自身狀態為“未同步”,并廣播;

}

3.7 降備狀態的處理

if(收到其他節點的心跳探測報文) then 應答自身為“主”狀態;

if(降備狀態超時)then {

設置自身的狀態為“主”;

刪除降備的目標主機節點;

回答降備過程失敗

}

if(目標主機節點的同步完成) then{

則設置自身的狀態為“備”;

向目標主機節點發送升主命令,并廣播自身為“備”;

if(周期探測時控到)then {

向地址列表內的所有節點發送狀態探尋心跳報文;

計算自身當前的連接數;

if(節點的連接數小于)then 更改自身狀態為“未同步”,并廣播;

}

4 結 語

本文給出一個基于數據版本作為主要選擇條件的主備選擇算法,描述了在主備選擇過程中,節點的狀態定義,各個狀態轉換關系,以及在各個狀態下需要進行的相關處理。此算法已在實際使用中得到驗證。但還存在以下問題,需要進一步優化:鎖服務本身在切換時,會變成關鍵節點[8],異地主備[9]不能很好地解決,需要進一步研究;由于過程控制過于嚴格,本算法在網絡振蕩[10]的情況下,會產生假全同步需求,會浪費一定的資源,可以考慮設計檢查點,進一步研究在節點重新入網時人工參與從而解決全同步問題。

參考文獻

[1] 范建華,趙文.容災備份異地架構在“不可抗力因素”下的應用研究[J].陜西理工學院學報:自然科學版,2011,27(1):54?59.

[2] 楊錦,李肯立,吳帆.異構分布式系統的負載均衡調度算法[J]. 計算機工程,2012,38(2):166?168.

[3] 陳立杉,段莉莉.基于相關度的同步協同設計沖突消解策略[J].武漢大學學報:工學版,2012,45(2):268?272.

[4] 王玉標,饒錫如,何盼.異構環境下數據庫增量同步更新機制[J].計算機工程與設計,2011,32(3):948?951.

[5] 田錦.GPRS數據分包長度和心跳包間隔性能分析[J].電訊技術,2012,52(4):576?580.

[6] 孟輝,張東戈,陶九陽.基于感知信息共享的C2網絡特征分析[J].指揮控制與仿真,2009,31(1):26?29.

[7] 劉衛民,樊越甫,劉方.基于磁通補償的新型有源電力濾波器的暫態特性分析[J].高壓電器,2012,48(6):65?69.

[8] 陳燕.分布式虛擬實驗系統關鍵節點設計[J].電腦編程技巧與維護,2011(12):88?89.

[9] 王紅熳.智能網容災系統設計的關鍵技術研究[D].北京:北京郵電大學,2009.

[10] 李新樂.軍隊計算機網絡安全防護探析[J].電腦知識與技術, 2012(8):5312?5313.

[11] 景慎艷.分布式數據庫同步技術及其應用[J].現代電子技術,2008,31(12):48?45.

主站蜘蛛池模板: 亚洲无码在线午夜电影| 欧美啪啪网| 亚洲区第一页| 亚洲视频免| 国产精品私拍在线爆乳| 欧美不卡二区| av尤物免费在线观看| 精品三级网站| 久久不卡精品| 日韩不卡免费视频| 久久精品视频一| 成AV人片一区二区三区久久| 狠狠色婷婷丁香综合久久韩国 | 蜜臀av性久久久久蜜臀aⅴ麻豆| 韩日午夜在线资源一区二区| 国产欧美日韩另类精彩视频| 国产精品久久久久久久伊一| 中文字幕人妻无码系列第三区| 亚洲欧美自拍中文| 久久精品只有这里有| 毛片卡一卡二| 999精品在线视频| 综合五月天网| 免费看的一级毛片| 野花国产精品入口| 国产成人精品18| 午夜毛片免费看| 四虎影视库国产精品一区| 中文无码精品A∨在线观看不卡 | 91精品国产情侣高潮露脸| 国产女人18水真多毛片18精品| a级毛片免费网站| 在线va视频| 国产91麻豆免费观看| 四虎国产精品永久一区| 国产成人综合日韩精品无码不卡| 国产人成在线视频| 亚洲第一成人在线| 国产青榴视频| 久久精品人人做人人爽电影蜜月| 亚洲国产欧美国产综合久久 | 好紧太爽了视频免费无码| 久久综合丝袜长腿丝袜| 欧美一级特黄aaaaaa在线看片| 91麻豆精品国产91久久久久| 国产黄色爱视频| 日韩毛片在线视频| 99精品在线视频观看| 91色在线视频| 九九精品在线观看| 国产欧美专区在线观看| 久操中文在线| 日韩人妻少妇一区二区| 亚洲女同一区二区| 视频国产精品丝袜第一页| 精品国产亚洲人成在线| 亚洲一区精品视频在线| 国产日韩欧美视频| 婷婷六月综合网| 国产九九精品视频| 高潮爽到爆的喷水女主播视频| 国产日韩AV高潮在线| 婷婷亚洲视频| 97在线公开视频| 99九九成人免费视频精品| 日韩久草视频| 免费人成网站在线观看欧美| 在线国产综合一区二区三区| 精品国产一区91在线| 亚洲香蕉久久| av无码一区二区三区在线| 国产青青草视频| 国产欧美日韩视频怡春院| 蜜桃视频一区二区三区| 成人国产免费| 国内熟女少妇一线天| 国产第四页| 国产精品伦视频观看免费| 国产另类乱子伦精品免费女| 99热6这里只有精品| 成人在线视频一区| 欧美精品H在线播放|