一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法
【專利摘要】本發(fā)明公開了一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,包括以下步驟,1)分布式任務(wù)管理系統(tǒng)節(jié)點(diǎn)狀態(tài)的維護(hù);2)分布式任務(wù)管理系統(tǒng)的任務(wù)初始化;3)分布式任務(wù)管理系統(tǒng)的任務(wù)狀態(tài)改變;4)節(jié)點(diǎn)故障和恢復(fù)的處理。本發(fā)明的適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,自動(dòng)化程度高、可靠性高、魯棒性高、通信效率高、占用帶寬小、可移植性好,任務(wù)部署簡(jiǎn)單,具有良好的應(yīng)用前景。
【專利說(shuō)明】一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,屬于分布式處理【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]在分布式處理系統(tǒng)中,每個(gè)節(jié)點(diǎn)處理全局任務(wù)的子集,但一般需要協(xié)同工作和進(jìn)行狀態(tài)同步,在所有節(jié)點(diǎn)處理完成后匯總結(jié)果,再進(jìn)行下一輪處理,系統(tǒng)運(yùn)行過(guò)程中隨時(shí)可能改變?nèi)蝿?wù)的運(yùn)行狀態(tài),如需要在某幾個(gè)節(jié)點(diǎn)增加一些任務(wù)、需要進(jìn)行任務(wù)負(fù)載均衡的調(diào)整或者某個(gè)節(jié)點(diǎn)的任務(wù)發(fā)生故障等,系統(tǒng)中每個(gè)節(jié)點(diǎn)都必須準(zhǔn)確及時(shí)的知道其他節(jié)點(diǎn)的存在和運(yùn)行了哪些子任務(wù),否則可能會(huì)出現(xiàn)任務(wù)遺漏、任務(wù)重復(fù)、任務(wù)遲延等情況,從而如何保證分布式任務(wù)系統(tǒng)在全局范圍內(nèi)的運(yùn)行狀態(tài)一致性是保證分布式任務(wù)系統(tǒng)正常運(yùn)行的關(guān)鍵點(diǎn)。
[0003]現(xiàn)有的分布式管理系統(tǒng)解決上述問(wèn)題一般有如下三種方法,但分別存在不同的缺點(diǎn),具體如下,
(I)人工配置和干預(yù)法,分布式管理系統(tǒng)初始是由人工配置好節(jié)點(diǎn)上運(yùn)行的任務(wù),當(dāng)節(jié)點(diǎn)故障或恢復(fù)時(shí)再人工調(diào)整任務(wù)部署的情況,或者是正常運(yùn)行時(shí)人工的調(diào)整任務(wù)部署,其的缺陷是不夠靈活,系統(tǒng)的維護(hù)成本高。
[0004](2)全局協(xié)調(diào)器法,分布式管理系統(tǒng)中有一個(gè)全局管理節(jié)點(diǎn),其上運(yùn)行管理程序?qū)ο到y(tǒng)的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,系統(tǒng)的狀態(tài)變換都有此節(jié)點(diǎn)發(fā)出指令,這種方法可以保證系統(tǒng)在同一時(shí)刻只執(zhí)行一條指令,其的缺陷是全局協(xié)調(diào)器成為系統(tǒng)的單點(diǎn)故障瓶頸。
[0005](3)定期同步法,分布式管理系統(tǒng)的每個(gè)節(jié)點(diǎn)定期向系統(tǒng)中廣播自己的狀態(tài),此方法缺陷是通信量大,且各個(gè)節(jié)點(diǎn)只能知曉其他節(jié)點(diǎn)的運(yùn)行狀態(tài),但是對(duì)故障的處理還是各自執(zhí)行,很容易在廣播報(bào)文丟失或延遲的情況下產(chǎn)生不一致性。
[0006]總之,上述的狀態(tài)一致性管理方法在有可能出現(xiàn)的節(jié)點(diǎn)故障和網(wǎng)絡(luò)通信故障條件下都有不完善的地方。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的是克服現(xiàn)有的分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,不夠靈活、維護(hù)成本高、同一時(shí)刻只執(zhí)行一條指令、通信量大時(shí)廣播報(bào)文容易丟失或延遲的問(wèn)題。本發(fā)明的適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,自動(dòng)化程度高、可靠性高、通信效率高、占用帶寬小、可移植性好,具有良好的應(yīng)用前景。
[0008]為了達(dá)到上述目的,本發(fā)明所采用的技術(shù)方案是:
一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:包括以下步驟,步驟(I ),分布式任務(wù)管理系統(tǒng)統(tǒng)節(jié)點(diǎn)狀態(tài)的維護(hù),分布式任務(wù)管理系統(tǒng)的所有節(jié)點(diǎn)定期廣播發(fā)送心跳報(bào)文,通知其他節(jié)點(diǎn)本機(jī)的生存狀態(tài);
步驟(2),分布式任務(wù)管理系統(tǒng)的任務(wù)初始化,在分布式任務(wù)管理系統(tǒng)的每個(gè)節(jié)點(diǎn)上運(yùn)行任務(wù)管理程序,在任意一個(gè)節(jié)點(diǎn)上輸入所有的待部署任務(wù),任務(wù)管理程序根據(jù)活躍節(jié)點(diǎn)數(shù)量決定部署情況,并與分布式任務(wù)管理系統(tǒng)中所有節(jié)點(diǎn)進(jìn)行通信,得到確認(rèn)回復(fù)后,分布式任務(wù)管理系統(tǒng)到達(dá)一致的初始化狀態(tài);
步驟(3),分布式任務(wù)管理系統(tǒng)的任務(wù)狀態(tài)改變,當(dāng)分布式任務(wù)管理系統(tǒng)的任意一個(gè)節(jié)點(diǎn)上的任務(wù)運(yùn)行狀態(tài)發(fā)生改變時(shí),任務(wù)管理程序都會(huì)與分布式任務(wù)管理系統(tǒng)中所有節(jié)點(diǎn)進(jìn)行通信,得到確認(rèn)回復(fù)后,每個(gè)節(jié)點(diǎn)同時(shí)實(shí)施改動(dòng),分布式任務(wù)管理系統(tǒng)進(jìn)入另一個(gè)一致的狀態(tài);
步驟(4),節(jié)點(diǎn)故障和恢復(fù)的處理,當(dāng)分布式任務(wù)管理系統(tǒng)中的一個(gè)節(jié)點(diǎn)故障退出或者恢復(fù)加入后,分布式任務(wù)管理系統(tǒng)的節(jié)點(diǎn)集合發(fā)生改變,分布式任務(wù)管理系統(tǒng)保持維持一致的狀態(tài)。
[0009]前述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(I)所述分布式任務(wù)管理系統(tǒng)的所有節(jié)點(diǎn)定期廣播發(fā)送的心跳報(bào)文包括節(jié)點(diǎn)名、節(jié)點(diǎn)編號(hào)、本機(jī)狀態(tài)編號(hào),當(dāng)3秒的時(shí)間間隔后,分布式任務(wù)管理系統(tǒng)接收不到某個(gè)節(jié)點(diǎn)的心跳,判斷該節(jié)點(diǎn)為故障,能正常收到心跳的節(jié)點(diǎn)判斷為活躍節(jié)點(diǎn),節(jié)點(diǎn)編號(hào)為節(jié)點(diǎn)的優(yōu)先級(jí),編號(hào)越小的優(yōu)先級(jí)越大。
[0010]前述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(2)所述任務(wù)管理程序根據(jù)活躍節(jié)點(diǎn)數(shù)量決定部署情況的過(guò)程為,
(1)任務(wù)管理程序查看所有活躍的節(jié)點(diǎn);
(2)將任務(wù)負(fù)載均衡的部署到每個(gè)活躍的節(jié)點(diǎn)上,并將部署計(jì)劃通知到每個(gè)活躍節(jié)點(diǎn)。
[0011]前述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(3)所述任務(wù)管理程序都會(huì)與分布式任務(wù)管理系統(tǒng)中所有節(jié)點(diǎn)進(jìn)行通信,將需要進(jìn)行的改變發(fā)出給所有節(jié)點(diǎn),得到半數(shù)以上節(jié)點(diǎn)確認(rèn)回復(fù)后,每個(gè)節(jié)點(diǎn)同時(shí)實(shí)施改動(dòng),分布式任務(wù)管理系統(tǒng)進(jìn)入另一個(gè)一致的狀態(tài)。
[0012]前述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(3)分布式任務(wù)管理系統(tǒng)的每一次狀態(tài)改變,都會(huì)在各節(jié)點(diǎn)心跳報(bào)文的本機(jī)狀態(tài)編號(hào)的當(dāng)前狀態(tài)編號(hào)加1,各節(jié)點(diǎn)的初始化的本機(jī)狀態(tài)編號(hào)為O。
[0013]前述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(3)需要狀態(tài)改變的節(jié)點(diǎn)將狀態(tài)改變作為提案請(qǐng)求發(fā)出,并進(jìn)行提案接收,發(fā)出提案請(qǐng)求時(shí),當(dāng)前狀態(tài)編號(hào)加I,若接收的提案的狀態(tài)編號(hào)大于本機(jī)的狀態(tài)編號(hào),則給出確認(rèn)回復(fù),否貝U,給出否定回復(fù)反對(duì)接收到的提案,需要狀態(tài)改變的節(jié)點(diǎn)接收到半數(shù)以上的活躍節(jié)點(diǎn)確認(rèn)回復(fù)后,表示此提案請(qǐng)求被批準(zhǔn),則該節(jié)點(diǎn)發(fā)送提交報(bào)文讓分布式任務(wù)管理系統(tǒng)所有活躍節(jié)點(diǎn)改變?nèi)蝿?wù)狀態(tài),所有活躍節(jié)點(diǎn)更新本機(jī)狀態(tài)編號(hào),并且回復(fù)完成給發(fā)送提交報(bào)文的節(jié)點(diǎn)。
[0014]前述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:若接收到多個(gè)節(jié)點(diǎn)的提案請(qǐng)求,且每個(gè)提案請(qǐng)求的本機(jī)狀態(tài)編號(hào)一致,則只確認(rèn)回復(fù)節(jié)點(diǎn)編號(hào)最小的提案請(qǐng)求。
[0015]前述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(4)分布式任務(wù)管理系統(tǒng)出現(xiàn)一個(gè)故障節(jié)點(diǎn),則總節(jié)點(diǎn)數(shù)減一,提案獲得半數(shù)以上通過(guò)的數(shù)量閾值相應(yīng)降低;故障恢復(fù)的節(jié)點(diǎn)首先向分布式任務(wù)管理系統(tǒng)中發(fā)出設(shè)置本機(jī)當(dāng)前任務(wù)狀態(tài)的提案請(qǐng)求,本機(jī)的任務(wù)由斷網(wǎng)改變?yōu)樵诰€的狀態(tài)改變提案,其他節(jié)點(diǎn)收到后發(fā)現(xiàn)編號(hào)過(guò)舊,則會(huì)發(fā)出否定回復(fù),并附加本機(jī)的任務(wù)狀態(tài)信息,故障恢復(fù)的節(jié)點(diǎn)接收到否定回復(fù),并選擇最大編號(hào)的節(jié)點(diǎn)進(jìn)行學(xué)習(xí),更新本地任務(wù)狀態(tài)后重新加入分布式任務(wù)管理系統(tǒng)運(yùn)行,總的節(jié)點(diǎn)數(shù)加一,提案獲得半數(shù)以上通過(guò)的數(shù)量閾值相應(yīng)增加。
[0016]前述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:所述接收者若接收的提案的狀態(tài)編號(hào)比本地狀態(tài)編號(hào)小或者等于本地編號(hào),則說(shuō)明提案發(fā)送者的狀態(tài)比系統(tǒng)中全局的狀態(tài)要舊,存在狀態(tài)變化的提交報(bào)文丟失過(guò),此時(shí)狀態(tài)舊的節(jié)點(diǎn)需要從狀態(tài)新的節(jié)點(diǎn)學(xué)習(xí)狀態(tài)信息,提案接收者在給出否定回復(fù)時(shí),順帶捎上本節(jié)點(diǎn)最新的任務(wù)狀態(tài)信息。
[0017]前述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:所述接收者若在接收到比本機(jī)狀態(tài)編號(hào)大提案的狀態(tài)編號(hào)后,又接收到一個(gè)編號(hào)更大的提案的狀態(tài)編號(hào),接收者給此更大編號(hào)的提案者發(fā)送確認(rèn)回復(fù)時(shí)要捎帶本節(jié)點(diǎn)需要先學(xué)習(xí)到最新狀態(tài)的請(qǐng)求,發(fā)送者在給此接收者發(fā)出提交報(bào)文時(shí)捎帶上一輪的狀態(tài),接收者學(xué)習(xí)完上一輪狀態(tài)后,在本地提交狀態(tài)改變。
[0018]本發(fā)明的有益效果是:本發(fā)明是適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,具有以下優(yōu)點(diǎn),1、不受單節(jié)點(diǎn)故障的影響,完全分布式運(yùn)行;2、自動(dòng)化程度高,除部署任務(wù)外整個(gè)系統(tǒng)運(yùn)行過(guò)程不需要人工干預(yù);3、可靠性高,在各種運(yùn)行條件下均能在有限步驟后收斂,使分布式任務(wù)管理系統(tǒng)達(dá)到一致狀態(tài);4、占用帶寬小,采用發(fā)出改變信息,避免了同步時(shí)傳送所有狀態(tài)數(shù)據(jù);5、魯棒性高,在各種故障條件下,分布式任務(wù)管理系統(tǒng)均能通過(guò)一致性算法恢復(fù)正常運(yùn)行;6、可移植性好,所有功能完全是有計(jì)算機(jī)程序?qū)崿F(xiàn),可運(yùn)行在各種UNIX和LinuX、Wind0WS操作系統(tǒng)上,不需要借助任何操作系統(tǒng)自帶的軟件;7、部署簡(jiǎn)單,只需部署一個(gè)服務(wù)程序、一個(gè)動(dòng)態(tài)庫(kù)、一個(gè)配置文件即可運(yùn)行,綜上所述,自動(dòng)化程度高、可靠性高、通信效率高、占用帶寬小、可移植性好,具有良好的應(yīng)用前景。
【專利附圖】
【附圖說(shuō)明】
[0019]圖1是本發(fā)明的適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法的流程圖。
[0020]圖2是發(fā)明的分布式任務(wù)管理系統(tǒng)的任務(wù)初始化的流程圖。
[0021]圖3是本發(fā)明的分布式任務(wù)管理系統(tǒng)的任務(wù)狀態(tài)改變的第一示意圖。
[0022]圖4是本發(fā)明的分布式任務(wù)管理系統(tǒng)的任務(wù)狀態(tài)改變的第二示意圖。
[0023]圖5是本發(fā)明的分布式任務(wù)管理系統(tǒng)的任務(wù)狀態(tài)改變的第三示意圖。
[0024]圖6是本發(fā)明的分布式任務(wù)管理系統(tǒng)的任務(wù)狀態(tài)改變的第四示意圖。
[0025]圖7是本發(fā)明的接收節(jié)點(diǎn)一致性處理的流程圖。
[0026]圖8是本發(fā)明的發(fā)送節(jié)點(diǎn)一致性處理的流程圖。
【具體實(shí)施方式】
[0027]下面將結(jié)合說(shuō)明書附圖,對(duì)本發(fā)明作進(jìn)一步說(shuō)明。以下實(shí)施例僅用于更加清楚地說(shuō)明本發(fā)明的技術(shù)方案,而不能以此來(lái)限制本發(fā)明的保護(hù)范圍。
[0028]本發(fā)明的適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,不受單節(jié)點(diǎn)故障的影響,自動(dòng)化程度高、可靠性高、占用帶寬小、魯棒性高,可移植性好,所有功能完全是由計(jì)算機(jī)程序?qū)崿F(xiàn),可運(yùn)行在各種UNIX和Linux、Windows操作系統(tǒng)上,不需要借助任何操作系統(tǒng)自帶的軟件,部署簡(jiǎn)單,只需部署一個(gè)服務(wù)程序、一個(gè)動(dòng)態(tài)庫(kù)、一個(gè)配置文件即可運(yùn)行,如圖1所示,具體包括以下步驟,
步驟(I ),分布式任務(wù)管理系統(tǒng)節(jié)點(diǎn)狀態(tài)的維護(hù),分布式任務(wù)管理系統(tǒng)的所有節(jié)點(diǎn)定期廣播發(fā)送心跳報(bào)文,通知其他節(jié)點(diǎn)本機(jī)的生存狀態(tài),心跳報(bào)文包括節(jié)點(diǎn)名、節(jié)點(diǎn)編號(hào)、本機(jī)狀態(tài)編號(hào),當(dāng)3秒的時(shí)間間隔后,分布式任務(wù)管理系統(tǒng)接收不到某個(gè)節(jié)點(diǎn)的心跳,判斷該節(jié)點(diǎn)為故障,能正常收到心跳的節(jié)點(diǎn)判斷為活躍節(jié)點(diǎn),節(jié)點(diǎn)編號(hào)為節(jié)點(diǎn)的優(yōu)先級(jí),編號(hào)越小的優(yōu)先級(jí)越大。
[0029]步驟(2),分布式任務(wù)管理系統(tǒng)的任務(wù)初始化,如圖2所示,在分布式任務(wù)管理系統(tǒng)的每個(gè)節(jié)點(diǎn)上運(yùn)行任務(wù)管理程序,在任意一個(gè)節(jié)點(diǎn)上輸入所有的待部署任務(wù),任務(wù)管理程序根據(jù)活躍節(jié)點(diǎn)數(shù)量決定部署情況,并與分布式任務(wù)管理系統(tǒng)中所有節(jié)點(diǎn)進(jìn)行通信,得到確認(rèn)回復(fù)后,分布式任務(wù)管理系統(tǒng)到達(dá)一致的初始化狀態(tài),任務(wù)管理程序根據(jù)活躍節(jié)點(diǎn)數(shù)量決定部署情況的過(guò)程為:
(1)任務(wù)管理程序查看所有活躍的節(jié)點(diǎn);
(2)將任務(wù)負(fù)載均衡的部署到每個(gè)活躍的節(jié)點(diǎn)上,并將部署計(jì)劃通知到每個(gè)活躍節(jié)占.步驟(3),分布式任務(wù)管理系統(tǒng)的任務(wù)狀態(tài)改變,當(dāng)分布式任務(wù)管理系統(tǒng)的任意一個(gè)節(jié)點(diǎn)上的任務(wù)運(yùn)行狀態(tài)發(fā)生改變時(shí),任務(wù)管理程序都會(huì)與分布式任務(wù)管理系統(tǒng)中所有節(jié)點(diǎn)進(jìn)行通信,得到確認(rèn)回復(fù)后,每個(gè)節(jié)點(diǎn)同時(shí)實(shí)施改動(dòng),分布式任務(wù)管理系統(tǒng)進(jìn)入另一個(gè)一致的狀態(tài);
所述任務(wù)管理程序都會(huì)與分布式任務(wù)管理系統(tǒng)中所有節(jié)點(diǎn)進(jìn)行通信,將需要進(jìn)行的改變發(fā)出給所有節(jié)點(diǎn),得到半數(shù)以上節(jié)點(diǎn)確認(rèn)回復(fù)后,每個(gè)節(jié)點(diǎn)同時(shí)實(shí)施改動(dòng),分布式任務(wù)管理系統(tǒng)進(jìn)入另一個(gè)一致的狀態(tài),分布式任務(wù)管理系統(tǒng)的每一次狀態(tài)改變,都會(huì)在各節(jié)點(diǎn)心跳報(bào)文的本機(jī)狀態(tài)編號(hào)的當(dāng)前狀態(tài)編號(hào)加1,各節(jié)點(diǎn)的初始化的本機(jī)狀態(tài)編號(hào)為0,需要狀態(tài)改變的節(jié)點(diǎn)將狀態(tài)改變作為提案請(qǐng)求發(fā)出,并進(jìn)行提案接收,發(fā)出提案請(qǐng)求時(shí),當(dāng)前狀態(tài)編號(hào)加1,若接收的提案的狀態(tài)編號(hào)大于本機(jī)的狀態(tài)編號(hào),則給出確認(rèn)回復(fù),否則,給出否定回復(fù)反對(duì)接收到的提案,需要狀態(tài)改變的節(jié)點(diǎn)接收到半數(shù)以上的活躍節(jié)點(diǎn)確認(rèn)回復(fù)后,表示此提案請(qǐng)求被批準(zhǔn),則該節(jié)點(diǎn)發(fā)送提交報(bào)文讓分布式任務(wù)管理系統(tǒng)所有活躍節(jié)點(diǎn)改變?nèi)蝿?wù)狀態(tài),所有活躍節(jié)點(diǎn)更新本機(jī)狀態(tài)編號(hào),并且回復(fù)完成給發(fā)送提交報(bào)文的節(jié)點(diǎn);
步驟(4),節(jié)點(diǎn)故障和恢復(fù)的處理,當(dāng)分布式任務(wù)管理系統(tǒng)中的一個(gè)節(jié)點(diǎn)故障退出或者恢復(fù)加入后,分布式任務(wù)管理系統(tǒng)的節(jié)點(diǎn)集合發(fā)生改變,分布式任務(wù)管理系統(tǒng)保持維持一致的狀態(tài),分布式任務(wù)管理系統(tǒng)出現(xiàn)一個(gè)故障節(jié)點(diǎn),則總節(jié)點(diǎn)數(shù)減一,提案獲得半數(shù)以上通過(guò)的數(shù)量閾值相應(yīng)降低;故障恢復(fù)的節(jié)點(diǎn)首先向分布式任務(wù)管理系統(tǒng)中發(fā)出設(shè)置本機(jī)當(dāng)前任務(wù)狀態(tài)的提案請(qǐng)求,本機(jī)的任務(wù)由斷網(wǎng)改變?yōu)樵诰€的狀態(tài)改變提案,其他節(jié)點(diǎn)收到后發(fā)現(xiàn)編號(hào)過(guò)舊,則會(huì)發(fā)出否定回復(fù),并附加本機(jī)的任務(wù)狀態(tài)信息,故障恢復(fù)的節(jié)點(diǎn)接收到否定回復(fù),并選擇最大編號(hào)的節(jié)點(diǎn)進(jìn)行學(xué)習(xí),更新本地任務(wù)狀態(tài)后重新加入分布式任務(wù)管理系統(tǒng)運(yùn)行,總的節(jié)點(diǎn)數(shù)加一,提案獲得半數(shù)以上通過(guò)的數(shù)量閾值相應(yīng)增加。
[0030]分布式任務(wù)管理系統(tǒng)中每個(gè)節(jié)點(diǎn)都賦予一個(gè)唯一的節(jié)點(diǎn)編號(hào),提案請(qǐng)求、提案報(bào)文中包含節(jié)點(diǎn)編號(hào),可有效解決每一輪選舉中可能產(chǎn)生的死鎖問(wèn)題,如果接收到多個(gè)節(jié)點(diǎn)編號(hào)的提案請(qǐng)求,且每個(gè)提案請(qǐng)求的本機(jī)狀態(tài)編號(hào)一致,則只回復(fù)節(jié)點(diǎn)編號(hào)最小的提案,表示支持,不會(huì)發(fā)生每個(gè)提案各自獲得一部分節(jié)點(diǎn)的支持而產(chǎn)生死鎖。對(duì)其后到達(dá)的節(jié)點(diǎn)編號(hào)較大的提案給出否定回復(fù),但是不捎帶本地狀態(tài)信息,發(fā)送者不需要學(xué)習(xí),此時(shí)發(fā)送節(jié)點(diǎn)可以等當(dāng)前提案形成決議后再用新編號(hào)加I提出新的提案請(qǐng)求。
[0031]接收者若接收的提案的狀態(tài)編號(hào)比本地狀態(tài)編號(hào)小或者等于本地編號(hào),則說(shuō)明提案發(fā)送者的狀態(tài)比系統(tǒng)中全局的狀態(tài)要舊,存在狀態(tài)變化的提交報(bào)文丟失過(guò),此時(shí)狀態(tài)舊的節(jié)點(diǎn)需要從狀態(tài)新的節(jié)點(diǎn)學(xué)習(xí)狀態(tài)信息,提案接收者在給出否定回復(fù)時(shí),順帶捎上本節(jié)點(diǎn)最新的任務(wù)狀態(tài)息。
[0032]接收者若在接收到比本機(jī)狀態(tài)編號(hào)大提案的狀態(tài)編號(hào)后,又接收到一個(gè)編號(hào)更大的提案的狀態(tài)編號(hào),接收者給此更大編號(hào)的提案者發(fā)送確認(rèn)回復(fù)時(shí)要捎帶本節(jié)點(diǎn)需要先學(xué)習(xí)到最新狀態(tài)的請(qǐng)求,發(fā)送者在給此接收者發(fā)出提交報(bào)文時(shí)捎帶上一輪的狀態(tài),接收者學(xué)習(xí)完上一輪狀態(tài)后,在本地提交狀態(tài)改變。
[0033]根據(jù)圖3-6,介紹本發(fā)明的步驟(3)分布式任務(wù)管理系統(tǒng)的任務(wù)狀態(tài)改變的具體流程,
圖3中所示的4個(gè)分布式任務(wù)管理系統(tǒng)的節(jié)點(diǎn)上,各自運(yùn)行了一些任務(wù),它們的本機(jī)狀態(tài)編號(hào)都為N,在某一時(shí)刻I號(hào)節(jié)點(diǎn)和4號(hào)節(jié)點(diǎn)都判斷出自身的負(fù)載比較輕,同時(shí)都想增加一個(gè)任務(wù),為了避免增加的是同一個(gè)任務(wù),假設(shè)I號(hào)節(jié)點(diǎn)和4號(hào)節(jié)點(diǎn)同時(shí)提出提案請(qǐng)求,由于發(fā)出提案的時(shí)間和消息傳遞速度的不確定性,這個(gè)過(guò)程中還存在以下情況,
(1)1號(hào)節(jié)點(diǎn)提案請(qǐng)求先于4號(hào)節(jié)點(diǎn)的到達(dá)2、3號(hào)節(jié)點(diǎn),則這個(gè)提案請(qǐng)求被2號(hào)節(jié)點(diǎn)和3號(hào)節(jié)點(diǎn)接收并給出確認(rèn)回復(fù),這樣I號(hào)節(jié)點(diǎn)的提案肯定獲得半數(shù)以上確認(rèn),本機(jī)必然同意I號(hào)節(jié)點(diǎn)的提案請(qǐng)求,而且I號(hào)節(jié)點(diǎn)的節(jié)點(diǎn)編號(hào)是最小的,當(dāng)I號(hào)節(jié)點(diǎn)的提案到達(dá)4號(hào)節(jié)點(diǎn)后也會(huì)讓4號(hào)節(jié)點(diǎn)放棄本機(jī)的提案請(qǐng)求并確認(rèn)回復(fù)I號(hào)節(jié)點(diǎn)的提案請(qǐng)求,隨后I號(hào)節(jié)點(diǎn)發(fā)出提交報(bào)文,2、3、4號(hào)節(jié)點(diǎn)最后會(huì)回復(fù)完成,這樣1-4號(hào)節(jié)點(diǎn)的本機(jī)狀態(tài)編號(hào)都為N+1,但是,4號(hào)節(jié)點(diǎn)發(fā)出的提案請(qǐng)求到達(dá)2、3號(hào)節(jié)點(diǎn)時(shí),提案請(qǐng)求的本機(jī)狀態(tài)編號(hào)還為N,且4號(hào)節(jié)點(diǎn)的節(jié)點(diǎn)編號(hào)大,所以該提案請(qǐng)求會(huì)被否決。
[0034](2)4號(hào)節(jié)點(diǎn)的提案請(qǐng)求先于I號(hào)節(jié)點(diǎn)的到達(dá)2、3號(hào)節(jié)點(diǎn),則2、3號(hào)節(jié)點(diǎn)對(duì)4號(hào)節(jié)點(diǎn)給出確認(rèn)回復(fù),但是4號(hào)節(jié)點(diǎn)的提案請(qǐng)求晚于I號(hào)節(jié)點(diǎn)產(chǎn)生提案請(qǐng)求的時(shí)刻到達(dá)I號(hào)節(jié)點(diǎn),則I號(hào)節(jié)點(diǎn)的提案請(qǐng)求還是會(huì)發(fā)出并到達(dá)2、3號(hào)節(jié)點(diǎn),因?yàn)楣?jié)點(diǎn)編號(hào)小也會(huì)收到2號(hào)和3號(hào)節(jié)點(diǎn)的確認(rèn)回復(fù),這樣I號(hào)節(jié)點(diǎn)的提案就得到了多數(shù)票,最終會(huì)得以形成決議,但是4號(hào)節(jié)點(diǎn)的報(bào)文到達(dá)I號(hào)節(jié)點(diǎn)的時(shí)刻因?yàn)镮號(hào)節(jié)點(diǎn)已經(jīng)有自身的提案,所以不會(huì)確認(rèn)回復(fù)4號(hào)節(jié)點(diǎn)的,在4號(hào)機(jī)的角度觀察,它會(huì)先收到2、3號(hào)機(jī)的確認(rèn)報(bào)文形成多數(shù)票,但是緊接著會(huì)收到I號(hào)機(jī)的提案,由于節(jié)點(diǎn)編號(hào)的優(yōu)先級(jí)4號(hào)節(jié)點(diǎn)低,隨即放棄自己的提案請(qǐng)求;
(3)與(I)的前期步驟一樣,但是最終I號(hào)節(jié)點(diǎn)發(fā)往4號(hào)節(jié)點(diǎn)的提案請(qǐng)求報(bào)文丟了或者延遲到很晚到達(dá),這種情況在廣域網(wǎng)中有可能發(fā)生,這樣4號(hào)及節(jié)點(diǎn)不會(huì)放棄自己的提案請(qǐng)求,則發(fā)出提交報(bào)文,但是此提交報(bào)文會(huì)被1、2、3號(hào)機(jī)拒絕,因?yàn)樗鼈兌际盏搅艘粋€(gè)優(yōu)先級(jí)更高的I號(hào)節(jié)點(diǎn)的提案報(bào)文;
(4)4號(hào)節(jié)點(diǎn)的提案請(qǐng)求先于I號(hào)節(jié)點(diǎn)的到達(dá)2、3號(hào)節(jié)點(diǎn),并且也先于I號(hào)節(jié)點(diǎn)產(chǎn)自己生提案請(qǐng)求的時(shí)刻到達(dá)I號(hào)節(jié)點(diǎn),這樣1、2、3號(hào)節(jié)點(diǎn)都會(huì)給出確認(rèn)回復(fù),最終會(huì)形成決議,I號(hào)節(jié)點(diǎn)就暫時(shí)不再產(chǎn)生自己的提案請(qǐng)求,一直等到4號(hào)節(jié)點(diǎn)的提案實(shí)施完成后,用新的提案編號(hào)再次發(fā)出自己的提案請(qǐng)求。
[0035]圖4所示,4號(hào)節(jié)點(diǎn)是一個(gè)斷網(wǎng)恢復(fù)的節(jié)點(diǎn),它的任務(wù)狀態(tài)比較舊,假設(shè)本機(jī)狀態(tài)編號(hào)為N-1,其他正常節(jié)點(diǎn)的設(shè)本機(jī)狀態(tài)編號(hào)為N,當(dāng)4號(hào)節(jié)點(diǎn)以N編號(hào)發(fā)出一個(gè)提案請(qǐng)求時(shí),其他節(jié)點(diǎn)會(huì)發(fā)現(xiàn)這個(gè)提案編號(hào)(發(fā)送節(jié)點(diǎn)的本機(jī)狀態(tài)編號(hào))等于本機(jī)狀態(tài)編號(hào)(其他節(jié)點(diǎn)的),然后發(fā)出否定回復(fù)給4號(hào)節(jié)點(diǎn)并捎帶了編號(hào)為N的狀態(tài)信息,4號(hào)節(jié)點(diǎn)這個(gè)提案就被否決了,同時(shí)開始學(xué)習(xí)最新的狀態(tài)。
[0036]圖5所示,4、5、6號(hào)節(jié)點(diǎn)均是斷網(wǎng)恢復(fù)的節(jié)點(diǎn),6號(hào)節(jié)點(diǎn)的狀態(tài)最舊,此時(shí)若4號(hào)節(jié)點(diǎn)以編號(hào)N發(fā)出一個(gè)提案,則會(huì)被6號(hào)節(jié)點(diǎn)確認(rèn),隨后3號(hào)節(jié)點(diǎn)的提案N+1也會(huì)被6號(hào)節(jié)點(diǎn)確認(rèn),至此6號(hào)節(jié)點(diǎn)會(huì)停止接受所有編號(hào)小于N+1的提案,所以5號(hào)節(jié)點(diǎn)的最后的提案N會(huì)被給予否定回復(fù)。
[0037]圖6所示,四個(gè)節(jié)點(diǎn)的狀態(tài)的編號(hào)均是N,在同一時(shí)刻1、2、3號(hào)節(jié)點(diǎn)均提出一個(gè)提案請(qǐng)求,因?yàn)楣?jié)點(diǎn)I的節(jié)點(diǎn)編號(hào)最小,則如果4號(hào)節(jié)點(diǎn)先收到I號(hào)節(jié)點(diǎn)的提案請(qǐng)求則會(huì)否定2號(hào)和3號(hào)節(jié)點(diǎn)的提案請(qǐng)求,如果先收到2號(hào)節(jié)點(diǎn)的提案請(qǐng)求,則會(huì)確認(rèn)2號(hào)節(jié)點(diǎn)和I號(hào)節(jié)點(diǎn)的提案請(qǐng)求,否定3號(hào)節(jié)點(diǎn)的提案請(qǐng)求,這時(shí)即使2號(hào)節(jié)點(diǎn)能發(fā)出提交報(bào)文(如I號(hào)節(jié)點(diǎn)的提案請(qǐng)求未能到達(dá)2號(hào)節(jié)點(diǎn)),也會(huì)被4號(hào)節(jié)點(diǎn)拒絕,2號(hào)節(jié)點(diǎn)只能夠在I號(hào)節(jié)點(diǎn)的提案N+1形成決議實(shí)施完成后,使用本機(jī)狀態(tài)編號(hào)N+2再次發(fā)出提案請(qǐng)求。
[0038]如圖7所示,本發(fā)明的接收節(jié)點(diǎn)一致性處理流程圖,首先接收者處于準(zhǔn)備狀態(tài),此時(shí)如果收到一個(gè)本機(jī)狀態(tài)編號(hào)(提案編號(hào))為N大于本機(jī)狀態(tài)編號(hào)的提案請(qǐng)求,則發(fā)出確認(rèn)回復(fù),并進(jìn)入等待狀態(tài),如果收到的提案編號(hào)小于或者等于本地狀態(tài)編號(hào),則發(fā)出否定回復(fù)并捎帶本地狀態(tài)提供給對(duì)方學(xué)習(xí),然后重新進(jìn)入準(zhǔn)備狀態(tài);
處于等待狀態(tài)時(shí)如果超時(shí)未收到剛剛回應(yīng)的提案N的提交報(bào)文,此時(shí)則需要與其他接收者聯(lián)系,如果發(fā)現(xiàn)另一個(gè)接收者是提交狀態(tài),則本節(jié)點(diǎn)也提交。如果沒有一個(gè)其他接收者是提交狀態(tài),說(shuō)明發(fā)送者在發(fā)出提交之前就崩潰了,則發(fā)出“拒絕”報(bào)文,返回初始的準(zhǔn)備狀態(tài)。如果收到另一個(gè)編號(hào)更大的提案請(qǐng)求N’,則發(fā)出確認(rèn)回復(fù)并要求學(xué)習(xí)到這個(gè)新提案發(fā)送者的當(dāng)前狀態(tài),然后再次回到等待狀態(tài),此時(shí)如果收到編號(hào)小于剛剛回應(yīng)的提案請(qǐng)求,將發(fā)出否定回復(fù),如果收到的不是剛剛回應(yīng)的提案的提交報(bào)文,則都發(fā)出拒絕回,即此時(shí)僅能接受編號(hào)更大的請(qǐng)求報(bào)文和編號(hào)等于剛剛回應(yīng)的提案的提交報(bào)文,此時(shí)提案N’發(fā)送者在發(fā)出提交報(bào)文時(shí)捎帶本地最新的狀態(tài),接收者收到報(bào)文后先學(xué)習(xí)后提交修改,進(jìn)入提交狀態(tài),如果中途不存在N’的插入,則提案N的發(fā)送者僅發(fā)出提交報(bào)文即可,接收者最后發(fā)出完成報(bào)文,一個(gè)提案的實(shí)施過(guò)程完畢。
[0039]如圖8所示,本發(fā)明的發(fā)送節(jié)點(diǎn)一致性處理流程圖,首先提案發(fā)送節(jié)點(diǎn)發(fā)出本地狀態(tài)編號(hào)N加I的提案請(qǐng)求,如果收到否定回復(fù)則說(shuō)明本地狀態(tài)較舊,進(jìn)行學(xué)習(xí)后調(diào)整本機(jī)狀態(tài)編號(hào),然后重新進(jìn)入準(zhǔn)備狀態(tài),如果超時(shí)未收到半數(shù)以上節(jié)點(diǎn)的回復(fù)也重新進(jìn)入準(zhǔn)備狀態(tài),如果收到半數(shù)以上節(jié)點(diǎn)對(duì)提案N+1的確認(rèn)回復(fù),則發(fā)出提交報(bào)文(如果有節(jié)點(diǎn)需要學(xué)習(xí)則捎帶本地信息),進(jìn)入提交狀態(tài),如果此時(shí)收到一個(gè)提案N+1的拒絕提交報(bào)文,則發(fā)送回滾報(bào)文到所有節(jié)點(diǎn),然后重新進(jìn)入準(zhǔn)備狀態(tài),否則如果收到一個(gè)完成報(bào)文則提交完成能進(jìn)入實(shí)施完成狀態(tài)。
[0040]以上顯示和描述了本發(fā)明的基本原理、主要特征及優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說(shuō)明書中描述的只是說(shuō)明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會(huì)有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明范圍內(nèi)。本發(fā)明要求保護(hù)范圍由所附的權(quán)利要求書及其等效物界定。
【權(quán)利要求】
1.一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:包括以下步驟, 步驟(I ),分布式任務(wù)管理系統(tǒng)節(jié)點(diǎn)狀態(tài)的維護(hù),分布式任務(wù)管理系統(tǒng)的所有節(jié)點(diǎn)定期廣播發(fā)送心跳報(bào)文,通知其他節(jié)點(diǎn)本機(jī)的生存狀態(tài); 步驟(2),分布式任務(wù)管理系統(tǒng)的任務(wù)初始化,在分布式任務(wù)管理系統(tǒng)的每個(gè)節(jié)點(diǎn)上運(yùn)行任務(wù)管理程序,在任意一個(gè)節(jié)點(diǎn)上輸入所有的待部署任務(wù),任務(wù)管理程序根據(jù)活躍節(jié)點(diǎn)數(shù)量決定部署情況,并與分布式任務(wù)管理系統(tǒng)中所有節(jié)點(diǎn)進(jìn)行通信,得到確認(rèn)回復(fù)后,分布式任務(wù)管理系統(tǒng)到達(dá)一致的初始化狀態(tài); 步驟(3),分布式任務(wù)管理系統(tǒng)的任務(wù)狀態(tài)改變,當(dāng)分布式任務(wù)管理系統(tǒng)的任意一個(gè)節(jié)點(diǎn)上的任務(wù)運(yùn)行狀態(tài)發(fā)生改變時(shí),任務(wù)管理程序都會(huì)與分布式任務(wù)管理系統(tǒng)中所有節(jié)點(diǎn)進(jìn)行通信,得到確認(rèn)回復(fù)后,每個(gè)節(jié)點(diǎn)同時(shí)實(shí)施改動(dòng),分布式任務(wù)管理系統(tǒng)進(jìn)入另一個(gè)一致的狀態(tài); 步驟(4),節(jié)點(diǎn)故障和恢復(fù)的處理,當(dāng)分布式任務(wù)管理系統(tǒng)中的一個(gè)節(jié)點(diǎn)故障退出或者恢復(fù)加入后,分布式任務(wù)管理系統(tǒng)的節(jié)點(diǎn)集合發(fā)生改變,分布式任務(wù)管理系統(tǒng)保持維持一致的狀態(tài)。
2.根據(jù)權(quán)利要求1所述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(1)所述分布式任務(wù)管理系統(tǒng)的所有節(jié)點(diǎn)定期廣播發(fā)送的心跳報(bào)文包括節(jié)點(diǎn)名、節(jié)點(diǎn)編號(hào)、本機(jī)狀態(tài)編號(hào),當(dāng)3秒的時(shí)間間隔后,分布式任務(wù)管理系統(tǒng)接收不到某個(gè)節(jié)點(diǎn)的心跳,判斷該 節(jié)點(diǎn)為故障,能正常收到心跳的節(jié)點(diǎn)判斷為活躍節(jié)點(diǎn),節(jié)點(diǎn)編號(hào)為節(jié)點(diǎn)的優(yōu)先級(jí),編號(hào)越小的優(yōu)先級(jí)越大。
3.根據(jù)權(quán)利要求1所述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(2)所述任務(wù)管理程序根據(jù)活躍節(jié)點(diǎn)數(shù)量決定部署情況的過(guò)程為, (1)任務(wù)管理程序查看所有活躍的節(jié)點(diǎn); (2)將任務(wù)負(fù)載均衡的部署到每個(gè)活躍的節(jié)點(diǎn)上,并將部署計(jì)劃通知到每個(gè)活躍節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求1所述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(3)所述任務(wù)管理程序都會(huì)與分布式任務(wù)管理系統(tǒng)中所有節(jié)點(diǎn)進(jìn)行通信,將需要進(jìn)行的改變發(fā)出給所有節(jié)點(diǎn),得到半數(shù)以上節(jié)點(diǎn)確認(rèn)回復(fù)后,每個(gè)節(jié)點(diǎn)同時(shí)實(shí)施改動(dòng),分布式任務(wù)管理系統(tǒng)進(jìn)入另一個(gè)一致的狀態(tài)。
5.根據(jù)權(quán)利要求1或2所述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(3)分布式任務(wù)管理系統(tǒng)的每一次狀態(tài)改變,都會(huì)在各節(jié)點(diǎn)心跳報(bào)文的本機(jī)狀態(tài)編號(hào)的當(dāng)前狀態(tài)編號(hào)加1,各節(jié)點(diǎn)的初始化的本機(jī)狀態(tài)編號(hào)為O。
6.根據(jù)權(quán)利要求1所述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(3)需要狀態(tài)改變的節(jié)點(diǎn)將狀態(tài)改變作為提案請(qǐng)求發(fā)出,并進(jìn)行提案接收,發(fā)出提案請(qǐng)求時(shí),當(dāng)前狀態(tài)編號(hào)加1,若接收的提案的狀態(tài)編號(hào)大于本機(jī)的狀態(tài)編號(hào),則給出確認(rèn)回復(fù),否則,給出否定回復(fù)反對(duì)接收到的提案,需要狀態(tài)改變的節(jié)點(diǎn)接收到半數(shù)以上的活躍節(jié)點(diǎn)確認(rèn)回復(fù)后,表示此提案請(qǐng)求被批準(zhǔn),則該節(jié)點(diǎn)發(fā)送提交報(bào)文,讓分布式任務(wù)管理系統(tǒng)所有活躍節(jié)點(diǎn)改變?nèi)蝿?wù)狀態(tài),所有活躍節(jié)點(diǎn)更新本機(jī)狀態(tài)編號(hào),并且回復(fù)完成給發(fā)送提交報(bào)文的節(jié)點(diǎn)。
7.根據(jù)權(quán)利要求1或6所述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:若接收到多個(gè)節(jié)點(diǎn)的提案請(qǐng)求,且每個(gè)提案請(qǐng)求的本機(jī)狀態(tài)編號(hào)一致,則只確認(rèn)回復(fù)節(jié)點(diǎn)編號(hào)最小的提案請(qǐng)求。
8.根據(jù)權(quán)利要求1所述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:步驟(4)分布式任務(wù)管理系統(tǒng)出現(xiàn)一個(gè)故障節(jié)點(diǎn),則總節(jié)點(diǎn)數(shù)減一,提案獲得半數(shù)以上通過(guò)的數(shù)量閾值相應(yīng)降低;故障恢復(fù)的節(jié)點(diǎn)首先向分布式任務(wù)管理系統(tǒng)中發(fā)出設(shè)置本機(jī)當(dāng)前任務(wù)狀態(tài)的 提案請(qǐng)求,本機(jī)的任務(wù)由斷網(wǎng)改變?yōu)樵诰€的狀態(tài)改變提案,其他節(jié)點(diǎn)收到后發(fā)現(xiàn)編號(hào)過(guò)舊,則會(huì)發(fā)出否定回復(fù),并附加本機(jī)的任務(wù)狀態(tài)信息,故障恢復(fù)的節(jié)點(diǎn)接收到否定回復(fù),并選擇最大編號(hào)的節(jié)點(diǎn)進(jìn)行學(xué)習(xí),更新本地任務(wù)狀態(tài)后重新加入分布式任務(wù)管理系統(tǒng)運(yùn)行,總的節(jié)點(diǎn)數(shù)加一,提案獲得半數(shù)以上通過(guò)的數(shù)量閾值相應(yīng)增加。
9.根據(jù)權(quán)利要求6所述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:所述接收者若接收的提案的狀態(tài)編號(hào)比本地狀態(tài)編號(hào)小或者等于本地編號(hào),則說(shuō)明提案發(fā)送者的狀態(tài)比系統(tǒng)中全局的狀態(tài)要舊,存在狀態(tài)變化的提交報(bào)文丟失過(guò),此時(shí)狀態(tài)舊的節(jié)點(diǎn)需要從狀態(tài)新的節(jié)點(diǎn)學(xué)習(xí)狀態(tài)信息,提案接收者在給出否定回復(fù)時(shí),順帶捎上本節(jié)點(diǎn)最新的任務(wù)狀態(tài)信息。
10.根據(jù)權(quán)利要求6所述的一種適用于分布式任務(wù)管理系統(tǒng)的狀態(tài)一致性維護(hù)方法,其特征在于:所述接收者若在接收到比本機(jī)狀態(tài)編號(hào)大提案的狀態(tài)編號(hào)后,又接收到一個(gè)編號(hào)更大的提案的狀態(tài)編號(hào),接收者給此更大編號(hào)的提案者發(fā)送確認(rèn)回復(fù)時(shí)要捎帶本節(jié)點(diǎn)需要先學(xué)習(xí)到最新狀態(tài)的請(qǐng)求,發(fā)送者在給此接收者發(fā)出提交報(bào)文時(shí)捎帶上一輪的狀態(tài),接收者學(xué)習(xí)完上一輪狀態(tài)后,在本地提交狀態(tài)改變。
【文檔編號(hào)】G06F9/46GK104077181SQ201410292893
【公開日】2014年10月1日 申請(qǐng)日期:2014年6月26日 優(yōu)先權(quán)日:2014年6月26日
【發(fā)明者】高原, 顧文杰, 任升, 盧建剛, 沙一川, 方華建 申請(qǐng)人:國(guó)電南瑞科技股份有限公司