亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

確定分布式計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)狀態(tài)一致全局觀察的方法

文檔序號(hào):6416661閱讀:211來(lái)源:國(guó)知局
專利名稱:確定分布式計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)狀態(tài)一致全局觀察的方法
技術(shù)領(lǐng)域
本發(fā)明涉及確定包含至少三個(gè)計(jì)算機(jī)的分布式計(jì)算機(jī)網(wǎng)絡(luò)的系統(tǒng)狀態(tài)的一致全局觀察的方法。本發(fā)明進(jìn)而涉及用于執(zhí)行該方法的分布式計(jì)算機(jī)網(wǎng)絡(luò)。
在分布式計(jì)算機(jī)網(wǎng)絡(luò)中,系統(tǒng)狀態(tài)的變化有時(shí)作為有意的事件(例如,新的計(jì)算機(jī)的添加)、或者作為無(wú)意的事件(例如,計(jì)算機(jī)故障)的結(jié)果而發(fā)生。在這種變化發(fā)生時(shí),必須保證計(jì)算機(jī)網(wǎng)絡(luò)中的計(jì)算機(jī)盡快獲得新的系統(tǒng)狀態(tài)的一致的全局觀察。如何形成系統(tǒng)狀態(tài)一致的全局觀察的問題常常又稱為“成員資格(membership)問題”。
在諸如鐵路傳信或發(fā)電廠技術(shù)中,用來(lái)監(jiān)視和控制安全性至關(guān)重要的過(guò)程的分布式計(jì)算機(jī)網(wǎng)絡(luò)中,這一成員資格問題就特別重要。在這種計(jì)算機(jī)網(wǎng)絡(luò)中,各計(jì)算機(jī)比較它們的結(jié)果。只有它們被計(jì)算機(jī)的大部分彼此獨(dú)立地確定,結(jié)果才輸出給過(guò)程。例如,如果在三個(gè)計(jì)算機(jī)網(wǎng)絡(luò)中,一個(gè)計(jì)算機(jī)有故障,其它兩個(gè)計(jì)算機(jī)能夠繼續(xù)把結(jié)果傳送給過(guò)程。然而,這要求這兩個(gè)計(jì)算機(jī)得到系統(tǒng)狀態(tài)的一致的全局觀察,即關(guān)于哪一個(gè)計(jì)算機(jī)已經(jīng)出故障以及哪些計(jì)算機(jī)沒有故障必須一致。
從L.E.Moser等人1991年五月在Arlington,TX,USA在關(guān)于分布式計(jì)算系統(tǒng)第11屆國(guó)際會(huì)議上題為“非同步分布式系統(tǒng)的成員資格的算法”的出版物頁(yè)480-488,可知道用于解決非耦合分布式計(jì)算機(jī)網(wǎng)絡(luò)的成員資格問題的不同算法。這些算法基于故障假設(shè),根據(jù)這種假設(shè)計(jì)算機(jī)或者不發(fā)送消息或者發(fā)送正確的消息。計(jì)算機(jī)發(fā)送錯(cuò)誤消息的情形沒有被假設(shè)。如果一個(gè)接收者還沒有收到消息,所述的算法使用其傳輸被重復(fù)的消息。此外,在這種情形下存在其傳輸沒有被重復(fù)的消息。例如,這后一組包括請(qǐng)求消息,計(jì)算機(jī)以這種消息通知其它計(jì)算機(jī),它希望重新成為成員。對(duì)這種請(qǐng)求的許可是由其它計(jì)算機(jī)通過(guò)特別的認(rèn)可消息認(rèn)可的。那里所描述的算法被限制在非耦合計(jì)算機(jī)網(wǎng)絡(luò),且不能適用于同步或虛擬同步分布式網(wǎng)絡(luò)。
于是本發(fā)明的一個(gè)目的,是要提供確定包含至少三個(gè)計(jì)算機(jī)的同步或虛擬同步分布式計(jì)算機(jī)網(wǎng)絡(luò)的系統(tǒng)狀態(tài)的一致全局觀察的一種方法。本發(fā)明的另一目的,是要提供用于執(zhí)行該方法的分布式計(jì)算機(jī)網(wǎng)絡(luò)。
這些目的分別由權(quán)利要求1和7中陳述的特點(diǎn)達(dá)到。根據(jù)本發(fā)明,計(jì)算機(jī)之間的通信是以傳輸環(huán)繞(transmission round)的形式實(shí)現(xiàn)的。傳輸環(huán)繞的特征在于,在這種環(huán)繞中,每一計(jì)算機(jī)接收來(lái)自沒有差錯(cuò)的其它的一個(gè)計(jì)算機(jī)的消息。每一計(jì)算機(jī)評(píng)估從其它計(jì)算機(jī)收到的消息,并基于評(píng)估的結(jié)果,向每一其它計(jì)算機(jī)指定至少三個(gè)不同定義的計(jì)算機(jī)狀態(tài)之一。這樣,每一計(jì)算機(jī)確定系統(tǒng)狀態(tài)的其自身局部觀察。計(jì)算機(jī)交換這些局部觀察。然后,例如通過(guò)使局部觀察受到多數(shù)判定,每一計(jì)算機(jī)從收到的局部觀察確定系統(tǒng)狀態(tài)的全局觀察。在所有的計(jì)算機(jī)具有相同的局部觀察時(shí),它們都得到系統(tǒng)狀態(tài)的相同的全局觀察。
這一方法對(duì)傳輸?shù)耐叫詻]有嚴(yán)格的要求。它只要求在不必是固定的但是必須為有限并受到限制的一個(gè)時(shí)間周期內(nèi),每一計(jì)算機(jī)已經(jīng)收到來(lái)自每一其它計(jì)算機(jī)的消息。這樣該方法能夠以下面的通信協(xié)議使用,根據(jù)該通信協(xié)議計(jì)算機(jī)只能在固定指定的時(shí)隙進(jìn)行發(fā)送,但也可以使用其中不存在這種固定指定的通信協(xié)議。
此外,為了啟動(dòng)分布式計(jì)算機(jī)網(wǎng)絡(luò),根據(jù)本發(fā)明的方法的使用不需要特別的操作順序,從而顯著降低了計(jì)算機(jī)網(wǎng)絡(luò)的復(fù)雜性。
由從屬權(quán)利要求,本發(fā)明進(jìn)一步先進(jìn)的特點(diǎn)顯而易見。
從以下結(jié)合附圖所閱讀的實(shí)施例的說(shuō)明,本發(fā)明將更易理解,其中

圖1表示有三個(gè)計(jì)算機(jī)R1,R2和R3的一分布式計(jì)算機(jī)網(wǎng)絡(luò);圖2是用于說(shuō)明術(shù)語(yǔ)“傳輸環(huán)繞”的略圖3a是如果使用嚴(yán)格同步通信協(xié)議,用來(lái)解釋術(shù)語(yǔ)“傳輸環(huán)繞”的略圖;圖3b是如果使用虛擬同步通信協(xié)議,用來(lái)解釋術(shù)語(yǔ)“傳輸環(huán)繞”的略圖;圖4表示帶有一故障計(jì)算機(jī)的分布式計(jì)算機(jī)網(wǎng)絡(luò),以便解釋根據(jù)本發(fā)明的方法;圖5表示根據(jù)本發(fā)明用于圖4中所示分布式計(jì)算機(jī)網(wǎng)絡(luò)的傳輸環(huán)繞過(guò)程;圖6表示根據(jù)本發(fā)明如權(quán)利要求2中所述的消息結(jié)構(gòu);圖7表示為解釋如權(quán)利要求5中所述的實(shí)施例的分布式計(jì)算機(jī)網(wǎng)絡(luò);圖8表示其中發(fā)生Byzantine故障的分布式計(jì)算機(jī)網(wǎng)絡(luò);圖9表示根據(jù)本發(fā)明對(duì)于在其中定義四個(gè)計(jì)算機(jī)狀態(tài)的分布式計(jì)算機(jī)網(wǎng)絡(luò)引導(dǎo)期間傳輸環(huán)繞的過(guò)程。
圖1示出包含三個(gè)計(jì)算機(jī)R1,R2和R3的分布式計(jì)算機(jī)網(wǎng)絡(luò)VRNW。計(jì)算機(jī)R1,…,R3由通信鏈路KV12,KV13和KV32互連,使得每一計(jì)算機(jī)能夠與計(jì)算機(jī)網(wǎng)絡(luò)中每一其它計(jì)算機(jī)通信。圖1中,這些通信鏈路表示為物理點(diǎn)對(duì)點(diǎn)連接。然而在很多情形下,更好的是使計(jì)算機(jī)R1,…,R3通過(guò)數(shù)據(jù)總線通信。
控制計(jì)算機(jī)R1,…,R3之間通信的通信協(xié)議是包指向的,并使得消息包(以下簡(jiǎn)稱“消息”)能夠選擇地向各計(jì)算機(jī)尋址。被訪地址在一位置以便借助于消息識(shí)別發(fā)送者。此外通信協(xié)議是這樣設(shè)計(jì)的,使得消息是以傳輸環(huán)繞的形式交換。傳輸環(huán)繞的特征在于,在這種環(huán)繞中,每一計(jì)算機(jī)在沒有差錯(cuò)的情形下從每一其它計(jì)算機(jī)接收消息?,F(xiàn)在將參照?qǐng)D2以及圖3a和3b更詳細(xì)地說(shuō)明“傳輸環(huán)繞”這一術(shù)語(yǔ)。
圖2表示簡(jiǎn)化示出圖1的分布式計(jì)算機(jī)網(wǎng)絡(luò)VRNW中的傳輸環(huán)繞的過(guò)程。假設(shè)計(jì)算機(jī)R1分別向兩個(gè)其它計(jì)算機(jī)R2和R3發(fā)送消息A和A’。消息A和A’可以是不同的或相同的。計(jì)算機(jī)R2和R3分別通過(guò)傳輸消息B,B’和C,C’響應(yīng)消息A和A’的接收。這一結(jié)果是這樣一種狀態(tài),即每一計(jì)算機(jī)已從每一其它計(jì)算機(jī)收到一消息。
然而消息的交換的實(shí)現(xiàn)是與所使用的通信協(xié)議相關(guān)的。圖3a簡(jiǎn)略示出密耦合同步分布式計(jì)算機(jī)網(wǎng)絡(luò)中傳輸環(huán)繞的過(guò)程。時(shí)間軸分為多個(gè)周期Zi,其限度在圖3a中以灰色帶條標(biāo)出。在每一周期中,對(duì)每一計(jì)算機(jī)指定計(jì)算機(jī)可在其間通過(guò)通信鏈路發(fā)送消息的一時(shí)隙。為了指定給它們的時(shí)隙的定時(shí),每一計(jì)算機(jī)必須有共同的時(shí)間基準(zhǔn)。
在周期Zi中,第一時(shí)隙指定給計(jì)算機(jī)R1。從而它開始向其它兩個(gè)計(jì)算機(jī)R2和R3發(fā)送消息。由于可能有不同的傳播時(shí)延,由其它計(jì)算機(jī)R2和R3不是同時(shí)收到消息,但是仍然在指定給計(jì)算機(jī)R1的時(shí)隙內(nèi)。周期Zi中,下一個(gè)時(shí)隙指定給計(jì)算機(jī)R2,該計(jì)算機(jī)現(xiàn)在向其它計(jì)算機(jī),即向計(jì)算機(jī)R1和R3發(fā)送消息。計(jì)算機(jī)R3類似地進(jìn)行。在周期Zi末尾,每一計(jì)算機(jī)已經(jīng)收到來(lái)自每一其它計(jì)算機(jī)的消息。順次的周期Zi+1和Zi+2遵循相同的模式。
圖3b中所描述的傳輸環(huán)繞過(guò)程是基于虛擬同步、松散耦合分布式計(jì)算機(jī)網(wǎng)絡(luò)的,它不需要公共的時(shí)間基準(zhǔn)。在所示的實(shí)施例中,第一傳輸環(huán)繞i是由向兩個(gè)其它計(jì)算機(jī)R2和R3發(fā)送消息的計(jì)算機(jī)R1起始的。一旦兩個(gè)其它計(jì)算機(jī)R2和R3已經(jīng)收到消息,它們又分別向其它兩個(gè)計(jì)算機(jī)R1、R3和R1、R2發(fā)送消息。然而這里,沒有固定計(jì)算機(jī)可在其間發(fā)送消息并在其內(nèi)消息必須收到的時(shí)隙。計(jì)算機(jī)之間這樣的耦合只是在計(jì)算機(jī)R2和R3以它們自身的消息的傳輸來(lái)響應(yīng)來(lái)自計(jì)算機(jī)R1的消息的接收才存在。
在這一虛擬同步計(jì)算機(jī)網(wǎng)絡(luò)中,當(dāng)每一計(jì)算機(jī)已經(jīng)收到來(lái)自其它每一計(jì)算機(jī)的消息時(shí),傳輸環(huán)繞也就完成。這一時(shí)間點(diǎn)對(duì)每一計(jì)算機(jī)一般是不同的;這是由彎曲的垂直帶條指示的。例如,如果計(jì)算機(jī)R3沒有從計(jì)算機(jī)R2收到消息,直到經(jīng)過(guò)定義的等待時(shí)間后,對(duì)計(jì)算機(jī)R3的傳輸環(huán)繞才完成。
在這一虛擬同步分布式計(jì)算機(jī)網(wǎng)絡(luò)中,與上述同步計(jì)算機(jī)網(wǎng)絡(luò)不同,任何計(jì)算機(jī)能夠啟動(dòng)傳輸環(huán)繞。因而,例如如圖2b所示,下一個(gè)傳輸環(huán)繞i+1能夠由計(jì)算機(jī)R2啟動(dòng)。在這一傳輸環(huán)繞i+1中,計(jì)算機(jī)R1首先檢測(cè)環(huán)繞的末尾。因而,雖然傳輸環(huán)繞n+1對(duì)其它兩個(gè)計(jì)算機(jī)還沒有完成,但它已經(jīng)能夠啟動(dòng)下一個(gè)傳輸環(huán)繞n+2。
根據(jù)本發(fā)明,每一傳輸環(huán)繞中,每一計(jì)算機(jī)評(píng)估從其它計(jì)算機(jī)收到的消息,并基于評(píng)估的結(jié)果,向每一其它計(jì)算機(jī)指定至少三個(gè)不同定義的計(jì)算機(jī)狀態(tài)之一。在本發(fā)明的第一實(shí)施例中,收到的消息可指定以下三個(gè)類別之一(a)成員資格消息是由作為成員的計(jì)算機(jī)發(fā)送的。當(dāng)一成員已經(jīng)收到消息,它以其自身的消息的傳輸在每一傳輸環(huán)繞中可靠地進(jìn)行響應(yīng)。
(b)申請(qǐng)消息是由還不是成員但希望成為成員的計(jì)算機(jī)發(fā)送的。
(c)零消息或者沒有收到消息,或者接收計(jì)算機(jī)通過(guò)差錯(cuò)檢測(cè)代碼的評(píng)估確定收到的消息是不可靠的。
已經(jīng)從其它一計(jì)算機(jī)收到消息的計(jì)算機(jī),現(xiàn)將根據(jù)該消息屬于這些類別的哪一個(gè),向發(fā)送的計(jì)算機(jī)指定以下三個(gè)計(jì)算機(jī)狀態(tài)之一(a)“成員”(簡(jiǎn)化為m)。已經(jīng)發(fā)送成員資格消息的計(jì)算機(jī)。
(b)“申請(qǐng)”(簡(jiǎn)化為a)。已經(jīng)發(fā)送申請(qǐng)消息的計(jì)算機(jī)。
(c)“非成員”(簡(jiǎn)化為n)。已經(jīng)發(fā)送零消息的計(jì)算機(jī)。
圖4中所示的例子中,計(jì)算機(jī)R1已經(jīng)開始傳輸環(huán)繞i,由虛線箭頭指示。計(jì)算機(jī)R3是有故障的;因而,它既不向計(jì)算機(jī)R1發(fā)送消息,也不向計(jì)算機(jī)R2發(fā)送消息。計(jì)算機(jī)R1和R2把這解釋為“零消息”,并從而向故障計(jì)算機(jī)R3指定狀態(tài)“非成員”(n)。由于計(jì)算機(jī)R1和R2已經(jīng)成功地交換了成員資格消息A和B,故它們彼此分類為“成員”(m)。此外,計(jì)算機(jī)R1和R2認(rèn)為它們自身是成員。
這些計(jì)算機(jī)狀態(tài)是由進(jìn)入到分布式計(jì)算機(jī)網(wǎng)絡(luò)的局部觀察的每一計(jì)算機(jī)組成的。這樣,由計(jì)算機(jī)R1在傳輸環(huán)繞i(簡(jiǎn)化為L(zhǎng)Si,1)中確定的局部觀察中,計(jì)算機(jī)R1和R2是成員(m),而計(jì)算機(jī)R3是非成員(n)。在圖4中這以表達(dá)式LSi,1=mmn符號(hào)表示。由計(jì)算機(jī)R2在傳輸環(huán)繞i(簡(jiǎn)化為L(zhǎng)Si,2)中確定的局部觀察也是mmn。計(jì)算機(jī)R3已經(jīng)收到來(lái)自所有其它計(jì)算機(jī)的成員資格消息,并能夠把它自身和其它計(jì)算機(jī)看作是成員。然而,計(jì)算機(jī)R3可能恰好嚴(yán)重地出故障以至完全不能確定系統(tǒng)狀態(tài)的的局部觀察。因此,由計(jì)算機(jī)R3確定的局部觀察由表達(dá)式“???”設(shè)定。
在下一個(gè)傳輸環(huán)繞i+1中,根據(jù)本發(fā)明,三個(gè)計(jì)算機(jī)Rx,x=1,2或3,交換由它們?cè)诃h(huán)繞i中所確定的局部觀察LSi,x。圖5以簡(jiǎn)化的表示示出這一點(diǎn)。在傳輸環(huán)繞i中,只有計(jì)算機(jī)R1和R2,但不是故障的R3,發(fā)送消息。在傳輸環(huán)繞i+1中,計(jì)算機(jī)R1和R2發(fā)送消息通知接收者由發(fā)送者對(duì)先前傳輸環(huán)繞所確定的各局部觀察。這樣,在傳輸環(huán)繞i+1的末尾,兩個(gè)計(jì)算機(jī)R1和R2的每一個(gè)具有其自身的觀察和由其它各計(jì)算機(jī)確定的局部觀察。由于計(jì)算機(jī)R3在傳輸環(huán)繞i+1中不發(fā)送消息,即使局部觀察已經(jīng)確定,但它不能通知其它計(jì)算機(jī)其系統(tǒng)狀態(tài)的局部觀察。
通過(guò)局部觀察的交換,根據(jù)本發(fā)明的方法保證了在傳輸環(huán)繞i+1的末尾,至少每一功能正常的計(jì)算機(jī)保持著相同的局部觀察。如果所有的計(jì)算機(jī)根據(jù)相同的規(guī)則從局部觀察確定系統(tǒng)狀態(tài)的全局觀察,則可靠地保證了這些全局觀察是相同的,因而是一致的。于是,以下對(duì)傳輸環(huán)繞i只談及一個(gè)全局觀察GSi。
從各局部觀察確定全局觀察的一個(gè)可能的規(guī)則,是使局部觀察經(jīng)過(guò)簡(jiǎn)單多數(shù)判定。這意味著在全局觀察中,對(duì)計(jì)算機(jī)指定計(jì)算機(jī)處于局部觀察多數(shù)的計(jì)算機(jī)狀態(tài)。在以上只有兩個(gè)相同的局部觀察的例子中,結(jié)果當(dāng)然是
其中大寫字母表示全局觀察中的計(jì)算機(jī)狀態(tài)。如果有故障的計(jì)算機(jī)R3在傳輸環(huán)繞i+1中向兩個(gè)其它計(jì)算機(jī)R1和R2發(fā)送其局部觀察,這不會(huì)改變這些計(jì)算機(jī)的全局觀察,因?yàn)樗鼈內(nèi)匀惶幱诙鄶?shù)
這還表示,在下一個(gè)傳輸環(huán)繞i+1完成之前,即在環(huán)繞i的局部觀察被交換之前,不能確定傳輸環(huán)繞i中的系統(tǒng)狀態(tài)的全局觀察。
剛才解釋的簡(jiǎn)單多數(shù)判定能夠由更有資格的多數(shù)判定代替。例如,在帶有五個(gè)計(jì)算機(jī)的分布式計(jì)算機(jī)網(wǎng)絡(luò)中,能夠同意,在全局觀察中,只有如果不僅在三個(gè)局部觀察中而且至少四個(gè)局部觀察中為成員的計(jì)算機(jī),才被看作是成員(M)。另一方面,在一定環(huán)境中,可能需要少于簡(jiǎn)單多數(shù)的判定;參見以下所述實(shí)施例,其中定義了四個(gè)計(jì)算機(jī)狀態(tài)。
在確定全局觀察中,不僅被交換的局部觀察,而且正在進(jìn)行的傳輸環(huán)繞的全局觀察可被計(jì)算在內(nèi)。例如可以同意,可以把那些只是在上次確定的全局觀察中是成員的那些計(jì)算機(jī)的局部觀察考慮在內(nèi)。類似地,可以同意,根據(jù)上次確定的全局觀察,計(jì)算機(jī)可以發(fā)送什么類別的消息。這一例子將在稍后說(shuō)明。
根據(jù)本發(fā)明的過(guò)程最好擴(kuò)展到所有的傳輸環(huán)繞,即在每一傳輸環(huán)繞中,在計(jì)算機(jī)之間交換局部觀察。然而與各種應(yīng)用有關(guān),可以理解的一種情形是,只有響應(yīng)特別的初始信號(hào)或在(多數(shù))固定的區(qū)間(例如,每十個(gè)傳輸環(huán)繞),才進(jìn)行局部過(guò)程的確定及其后繼的交換。局部過(guò)程的交換不依賴于其它消息的交換。
在一優(yōu)選實(shí)施例中,計(jì)算機(jī)之間交換的消息都具有圖6所示的格式。每一消息包括含有以下信息的標(biāo)題HEAD(a)消息類別NK;
(b)傳輸環(huán)繞的數(shù)目i;以及(c)在傳輸環(huán)繞i中由計(jì)算機(jī)j確定的系統(tǒng)狀態(tài)的局部觀察LSi,j。
如果由分布式計(jì)算機(jī)網(wǎng)絡(luò)正在執(zhí)行的應(yīng)用程序需要,消息可以包含有效負(fù)載ND。例如圖4中所示,如果計(jì)算機(jī)在傳輸環(huán)繞中向所有其它計(jì)算機(jī)發(fā)送消息A和A’,這些消息A和A’可能只是在它們的有效負(fù)載ND不同。然而標(biāo)題HEAD在兩個(gè)消息中必須相同,因?yàn)榉駝t沒有統(tǒng)一的相同狀態(tài)觀察可被確定。
故障容限如圖4所示,如果每一計(jì)算機(jī)在傳輸環(huán)繞中從每一其它計(jì)算機(jī)精確地接收一個(gè)消息,則根據(jù)本發(fā)明的上述方法能夠用來(lái)可靠地確定系統(tǒng)狀態(tài)的一致全局觀察,如果能夠?qū)τ?jì)算機(jī)中的故障指示以下兩個(gè)錯(cuò)誤類型之一1.計(jì)算機(jī)完全沒有發(fā)送消息。
2.計(jì)算機(jī)發(fā)送錯(cuò)誤消息,但錯(cuò)誤本身對(duì)所有的計(jì)算機(jī)以相同方式顯示。
根據(jù)本發(fā)明的方法能夠有效地與通信協(xié)議一同使用,通信協(xié)議保證由任何計(jì)算機(jī)向其它計(jì)算機(jī)發(fā)送的數(shù)據(jù)包由那些其它計(jì)算機(jī)發(fā)送轉(zhuǎn)發(fā),使得在沒有錯(cuò)誤的情形下,每一其它計(jì)算機(jī)將接收這一數(shù)據(jù)包至少兩次。對(duì)此現(xiàn)將參照?qǐng)D7更為詳細(xì)地說(shuō)明。在圖7所示的分布式計(jì)算機(jī)網(wǎng)絡(luò)中,計(jì)算機(jī)R1向計(jì)算機(jī)R2和R3發(fā)送標(biāo)識(shí)消息A。計(jì)算機(jī)R2接收消息A,并向計(jì)算機(jī)R3不加改變地轉(zhuǎn)發(fā)這一消息。計(jì)算機(jī)R3以相同的方式處理從計(jì)算機(jī)R1收到的消息。這樣,每一計(jì)算機(jī)R2和R3接收消息A兩次,即分別直接從計(jì)算機(jī)R1并間接地通過(guò)計(jì)算機(jī)R3和R2接收。
使用這一通信協(xié)議,即使計(jì)算機(jī)中的故障能夠被指定為第三個(gè)錯(cuò)誤類型,根據(jù)本發(fā)明的方法也能夠用來(lái)確定系統(tǒng)狀態(tài)的一致全局觀察。如上述第二錯(cuò)誤類型那樣,在這一錯(cuò)誤類型中,故障的計(jì)算機(jī)發(fā)送錯(cuò)誤的消息。然而,故障本身可以向其它計(jì)算機(jī)以不同的方式顯示(所謂Byzantine故障)。
這種故障的情形簡(jiǎn)略地示于圖8。計(jì)算機(jī)R1有故障并產(chǎn)生不同的消息A和A’,而不是相同的消息。兩個(gè)消息以“校正”差錯(cuò)檢測(cè)代碼提供,于是兩個(gè)其它計(jì)算機(jī)R2和R3不能夠檢測(cè)到任何差錯(cuò)。然而如果通信協(xié)議以上述方式保證了消息被轉(zhuǎn)發(fā),然后例如計(jì)算機(jī)R2將確定直接從計(jì)算機(jī)R1收到的消息A與經(jīng)由計(jì)算機(jī)R3收到消息A’不同。計(jì)算機(jī)R3將作出對(duì)應(yīng)的判定。因?yàn)檫@一差異,在由兩個(gè)功能正常的計(jì)算機(jī)R2和R3確定的局部觀察中,計(jì)算機(jī)R1將被看作是非成員。在轉(zhuǎn)發(fā)消息期間只是假設(shè)沒有錯(cuò)誤發(fā)生;否則對(duì)于計(jì)算機(jī)R2不能再區(qū)分計(jì)算機(jī)R1是否已經(jīng)發(fā)送不同的消息,或者計(jì)算機(jī)R3是否已把從計(jì)算機(jī)R1收到的消息A破壞為消息A’。
如果使用這種通信協(xié)議,則即使計(jì)算機(jī)之間的通信鏈路有故障,也能確定系統(tǒng)狀態(tài)的一致的全局觀察。例如,如果圖7中計(jì)算機(jī)R1和R2之間的鏈路失效,則兩個(gè)受影響的計(jì)算機(jī)R1和R2能夠通過(guò)計(jì)算機(jī)R3繼續(xù)交換消息。如果在消息中另外又規(guī)定了消息已經(jīng)采用的通路,那么明顯地,所有的計(jì)算機(jī)能夠確定哪一個(gè)通信鏈路出了故障。
四個(gè)計(jì)算機(jī)的狀態(tài)在一優(yōu)選實(shí)施例中,對(duì)計(jì)算機(jī)指定四個(gè)而不是三個(gè)不同定義的狀態(tài)。于是,有四個(gè)不同定義的消息類別(a)成員資格消息(簡(jiǎn)化為mb)由作為成員的計(jì)算機(jī)發(fā)送。一成員當(dāng)已經(jīng)收到消息時(shí),以自身消息的傳輸在每一傳輸環(huán)繞中可靠地響應(yīng)。
(b)結(jié)合的消息(簡(jiǎn)化為bind)由還不是成員但在全局觀察中已經(jīng)被看作申請(qǐng)者(見以下)的計(jì)算機(jī)發(fā)送。
(c)引導(dǎo)消息(簡(jiǎn)化為boot)由處于引導(dǎo)過(guò)程或已經(jīng)完成這種過(guò)程的計(jì)算機(jī)發(fā)送。
(d)零消息(簡(jiǎn)化為null)或者沒有收到任何消息,或者接收計(jì)算機(jī)已經(jīng)通過(guò)評(píng)估錯(cuò)誤檢測(cè)代碼確定,收到的消息被破壞。
以下的四個(gè)計(jì)算機(jī)狀態(tài)對(duì)應(yīng)于這些四個(gè)不同的消息類別
(a)“成員”(簡(jiǎn)化為m)已經(jīng)發(fā)送成員資格消息的計(jì)算機(jī)。
(b)“初級(jí)成員”(簡(jiǎn)化為p)已經(jīng)發(fā)送結(jié)合消息的計(jì)算機(jī)。
(c)“申請(qǐng)者”(簡(jiǎn)化為a)已經(jīng)發(fā)送引導(dǎo)消息的計(jì)算機(jī)。
(d)“非成員”(簡(jiǎn)化為n)已經(jīng)發(fā)送零消息的計(jì)算機(jī)。
以下將通過(guò)例子說(shuō)明這些消息類別和計(jì)算機(jī)狀態(tài)以及從這些定義得到的優(yōu)點(diǎn)的意義。
分布式計(jì)算機(jī)網(wǎng)絡(luò)的引導(dǎo)圖9簡(jiǎn)略示出,在引導(dǎo)分布式計(jì)算機(jī)網(wǎng)絡(luò)時(shí),如何能夠以四計(jì)算機(jī)狀態(tài)確定系統(tǒng)狀態(tài)一致的全局觀察。在這一例子中,假設(shè)計(jì)算機(jī)R1首先引導(dǎo),緊跟的是計(jì)算機(jī)R2,稍后是計(jì)算機(jī)R3。于是,第一傳輸環(huán)繞1以由計(jì)算機(jī)R1向其它計(jì)算機(jī)發(fā)送的引導(dǎo)消息(boot)開始。圖9中,給出由計(jì)算機(jī)確定的各個(gè)消息類別NK以及各個(gè)局部觀察LS。還給出由計(jì)算機(jī)確定的全局觀察。
由于計(jì)算機(jī)R1沒能從其它計(jì)算機(jī)收到任何消息,故向這些計(jì)算機(jī)指定狀態(tài)“非成員”(n)。它把自身看作是申請(qǐng)者(a),因?yàn)樗l(fā)送引導(dǎo)消息。由于還沒有得到任何其它局部觀察,多數(shù)判定自動(dòng)產(chǎn)生最低可能的全局系統(tǒng)狀態(tài),即GS1=NNN。
在傳輸環(huán)繞2中,除了計(jì)算機(jī)R2之外計(jì)算機(jī)R1發(fā)送引導(dǎo)消息。因而,計(jì)算機(jī)R1和R2彼此指定狀態(tài)“申請(qǐng)者”(a),于是局部觀察為L(zhǎng)S2,1=LS2,2=aan。從先前的傳輸環(huán)繞,只能得到一個(gè)局部觀察,于是對(duì)局部觀察的多數(shù)判定不能產(chǎn)生結(jié)果。因而,系統(tǒng)狀態(tài)保持NNN。
在傳輸環(huán)繞3,計(jì)算機(jī)R1和R2再次發(fā)送引導(dǎo)消息,并交換在先前的傳輸環(huán)繞2中所確定它們的局部觀察。由于這兩個(gè)局部觀察等同,故兩個(gè)計(jì)算機(jī)都確定全局觀察為GS3=AAN。
由于在全局觀察中兩計(jì)算機(jī)R1和R2都是申請(qǐng)者,它們能夠在下一個(gè)傳輸環(huán)繞即環(huán)繞4中發(fā)送結(jié)合的消息(bind)。在收到結(jié)合的消息時(shí),計(jì)算機(jī)R1和R2彼此指定計(jì)算機(jī)狀態(tài)“初級(jí)成員”(p),于是由這兩個(gè)計(jì)算在傳輸環(huán)繞5中交換的局部觀察為L(zhǎng)S4,1=LS4,2=ppn。
在傳輸環(huán)繞5中,由于在先前確定的全局觀察中它們?nèi)匀皇巧暾?qǐng)者(A),故計(jì)算機(jī)仍然發(fā)送結(jié)合消息。等同的局部觀察LS4,1=LS4,2=ppn結(jié)果是全局觀察GS3=PPN。在傳輸環(huán)繞5中,計(jì)算機(jī)R3第一次發(fā)送引導(dǎo)消息,于是在下一個(gè)傳輸環(huán)繞即環(huán)繞6的末端,在全局觀察中已經(jīng)被看作是申請(qǐng)者(A)。在這一傳輸環(huán)繞中,兩個(gè)計(jì)算機(jī)R1和R2能夠第一次發(fā)送成員資格消息,因?yàn)樵谙惹暗膫鬏敪h(huán)繞中,它們?cè)谌钟^察中被看作是初級(jí)成員。在傳輸環(huán)繞7中,兩個(gè)計(jì)算機(jī)R1和R2在全局觀察中都是成員。分布式計(jì)算機(jī)網(wǎng)絡(luò)現(xiàn)在具有多數(shù)成員。
這例子說(shuō)明了,其中計(jì)算機(jī)能夠從傳輸環(huán)繞到傳輸環(huán)繞逐步上升的計(jì)算機(jī)狀態(tài)的分層結(jié)構(gòu),是如何由根據(jù)本發(fā)明的方法生成的。在剛才解釋的例子中,只有局部觀察的多數(shù)一致,在全局觀察中計(jì)算機(jī)才將上升。然而如果在較高層次由在全局觀察中看作是成員的單一計(jì)算機(jī)看到時(shí),計(jì)算機(jī)在全局觀察中已經(jīng)上升,則這可能是有利。只有對(duì)上升到全局最高層次(M)仍然需要多數(shù)表決。這樣,層次的上升在很多情形下能夠加速。
如果發(fā)現(xiàn)計(jì)算機(jī)有故障,則最好在由計(jì)算機(jī)確定的局部觀察中同意,立即下降到最低計(jì)算機(jī)狀態(tài),即非成員狀態(tài)(n)。逐步下降也是可用的。計(jì)算機(jī)必須下降到什么層次,例如能夠依照已經(jīng)發(fā)生的故障類型作出,如果能夠確定這種類型。
各計(jì)算機(jī)被接納(Re)到分布式計(jì)算機(jī)網(wǎng)絡(luò)類似于剛剛描述的順序。然而最后引導(dǎo)的計(jì)算機(jī)R3被接納到計(jì)算機(jī)網(wǎng)絡(luò)能夠借助于圖9被推導(dǎo)出。在傳輸環(huán)繞8中(未示出),計(jì)算機(jī)R3再次發(fā)送結(jié)合消息(bind)。在這一環(huán)繞的末尾,在全局觀察中已經(jīng)把它看作是初級(jí)成員(p)。在傳輸環(huán)繞9中,計(jì)算機(jī)R3發(fā)送成員消息(mb),并在下一個(gè)環(huán)繞即環(huán)繞10中,在全局觀察中它被看作是成員(m)。
應(yīng)當(dāng)理解,根據(jù)本發(fā)明的方法的使用不限于所描述的三個(gè)計(jì)算機(jī)的計(jì)算機(jī)網(wǎng)絡(luò)。這方法特別的優(yōu)點(diǎn)在于,就計(jì)算機(jī)的數(shù)目和類型、支撐的通信協(xié)議、及計(jì)算機(jī)系統(tǒng)可能的應(yīng)用而言,非常的靈活。特別地,對(duì)計(jì)算機(jī)既不要求特定的硬件,也不要求特定的操作系統(tǒng)。
權(quán)利要求
1.一種確定包含至少三個(gè)計(jì)算機(jī)(R1,R2,R3)的分布式計(jì)算機(jī)網(wǎng)絡(luò)(VRNW)的系統(tǒng)狀態(tài)的一致全局觀察(GS)的方法,其特征在于,(a)計(jì)算機(jī)通過(guò)通信鏈路(KV12,KV13,KV32)按順序傳輸環(huán)繞交換消息,每一計(jì)算機(jī)在每一傳輸環(huán)繞中在沒有差錯(cuò)時(shí)從每一其它計(jì)算機(jī)接收消息,(b)在每一傳輸環(huán)繞中,每一計(jì)算機(jī)評(píng)估從其它計(jì)算機(jī)收到的消息,并基于評(píng)估的結(jié)果,向每一其它計(jì)算機(jī)指定至少三個(gè)不同定義的計(jì)算機(jī)狀態(tài)之一,并從其確定系統(tǒng)狀態(tài)的局部觀察(LSi,j),以及(c)計(jì)算機(jī)交換由它們確定的系統(tǒng)狀態(tài)的局部觀察,且每一計(jì)算機(jī)從交換的局部觀察確定系統(tǒng)狀態(tài)的一致的全局觀察。
2.如權(quán)利要求1中所述的方法,其中消息至少包含以下的信息(a)消息類別(NK);(b)消息被發(fā)送的傳輸環(huán)繞的數(shù)目(i);(c)由發(fā)送計(jì)算機(jī)確定的系統(tǒng)狀態(tài)的局部觀察(LSi,j)。
3.如以上權(quán)利要求任何之一所述的方法,其中系統(tǒng)狀態(tài)的全局觀察的確定還考慮先前的傳輸環(huán)繞的全局觀察。
4.如以上權(quán)利要求任何之一所述的方法,其中系統(tǒng)狀態(tài)的全局觀察的確定涉及關(guān)于各局部觀察的多數(shù)判定。
5.如以上權(quán)利要求任何之一所述的方法,其中由任何計(jì)算機(jī)發(fā)送到其它計(jì)算機(jī)的消息由所述其它計(jì)算機(jī)轉(zhuǎn)發(fā),其轉(zhuǎn)發(fā)方式為,在沒有差錯(cuò)的情形下,每一其它計(jì)算機(jī)將接收所述消息至少兩次。
6.如以上權(quán)利要求任何之一所述的方法,其中每一傳輸環(huán)繞包括以下步驟(a)任何一計(jì)算機(jī)(圖2中的R1)在其初始向分布式計(jì)算機(jī)網(wǎng)絡(luò)中每一其它計(jì)算機(jī)(R2,R3)發(fā)送數(shù)據(jù)包(A,A’);以及(b)每一其它計(jì)算機(jī)(R2,R3)在可預(yù)定的時(shí)間周期內(nèi),以向計(jì)算機(jī)網(wǎng)絡(luò)中所有其它計(jì)算機(jī)傳輸其自身的數(shù)據(jù)包(B,B’;C,C’),響應(yīng)數(shù)據(jù)包(A,A’)的接收。
7.一種包含至少三個(gè)計(jì)算機(jī)(R1,R2,R3)的分布式計(jì)算機(jī)網(wǎng)絡(luò)(VRNW)和用于確定計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)狀態(tài)的一致全局觀察(GS)的裝置,其特征在于(a)提供通信鏈路(KV12,KV13,KV32),計(jì)算機(jī)通過(guò)該鏈路按順序傳輸環(huán)繞交換消息,每一計(jì)算機(jī)在每一傳輸環(huán)繞中在沒有差錯(cuò)時(shí)從每一其它計(jì)算機(jī)接收消息,(b)每一計(jì)算機(jī)具有一處理器,該處理器評(píng)估從其它計(jì)算機(jī)在一傳輸環(huán)繞中收到的消息,并基于評(píng)估的結(jié)果,向每一其它計(jì)算機(jī)指定至少三個(gè)不同定義的計(jì)算機(jī)狀態(tài)之一,并從其確定系統(tǒng)狀態(tài)的局部觀察(LSi,j),以及(c)各處理器引起計(jì)算機(jī)交換由它們確定的系統(tǒng)狀態(tài)的局部觀察,并從交換的局部觀察確定系統(tǒng)狀態(tài)的一致的全局觀察。
8.如權(quán)利要求7中所述的分布式計(jì)算機(jī)網(wǎng)絡(luò),其中消息至少包括以下信息(a)消息類別(NK);(b)消息被發(fā)送的傳輸環(huán)繞的數(shù)目(i);(c)由發(fā)送計(jì)算機(jī)確定的系統(tǒng)狀態(tài)的局部觀察(LSi,j)。
9.如權(quán)利要求7或8中所述的分布式計(jì)算機(jī)網(wǎng)絡(luò),其中在確定系統(tǒng)狀態(tài)的全局觀察中處理器考慮先前的傳輸環(huán)繞的全局觀察。
10.權(quán)利要求7到9任何之一中所述的分布式計(jì)算機(jī)網(wǎng)絡(luò),其中處理器通過(guò)多數(shù)性表決確定系統(tǒng)狀態(tài)的全局觀察。
11.如以上權(quán)利要求7到10任何之一所述的分布式計(jì)算機(jī)網(wǎng)絡(luò),其中由任何計(jì)算機(jī)發(fā)送到其它計(jì)算機(jī)的數(shù)據(jù)包由所述其它計(jì)算機(jī)轉(zhuǎn)發(fā),其轉(zhuǎn)發(fā)方式為,在沒有差錯(cuò)的情形下,每一其它計(jì)算機(jī)將接收所述數(shù)據(jù)包至少兩次。
12.如以上權(quán)利要求7到11任何之一中所述的分布式計(jì)算機(jī)網(wǎng)絡(luò),其中每一傳輸環(huán)繞包括以下步驟(a)任何一計(jì)算機(jī)(圖2中的R1)在其初始向分布式計(jì)算機(jī)網(wǎng)絡(luò)中每一其它計(jì)算機(jī)(R2,R3)發(fā)送數(shù)據(jù)包(A,A’);以及(b)每一其它計(jì)算機(jī)(R2,R3)在可預(yù)定的時(shí)間周期內(nèi),以向計(jì)算機(jī)網(wǎng)絡(luò)中所有其它計(jì)算機(jī)傳輸其自身的數(shù)據(jù)包(B,B’;C,C’),響應(yīng)數(shù)據(jù)包(A,A’)的接收。
全文摘要
提供了確定至少包含三個(gè)計(jì)算機(jī)的分布式計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)狀態(tài)的一致全局查看的方法,其特征在于,(a)計(jì)算機(jī)通過(guò)通信鏈路按順序傳輸環(huán)繞交換消息,每一計(jì)算機(jī)在每一傳輸環(huán)繞中在沒有差錯(cuò)時(shí)從每一其它計(jì)算機(jī)接收消息,(b)在每一個(gè)傳輸環(huán)繞中,每一計(jì)算機(jī)評(píng)估從其它計(jì)算機(jī)收到的消息,并基于評(píng)估的結(jié)果,向每一其它計(jì)算機(jī)指定至少三個(gè)不同定義的計(jì)算機(jī)狀態(tài)之一,并從而確定系統(tǒng)狀態(tài)的局部觀察,以及(c)計(jì)算機(jī)交換由它們確定的系統(tǒng)狀態(tài)的局部觀察,且每一計(jì)算機(jī)從交換的局部觀察確定系統(tǒng)狀態(tài)的一致的全局觀察。
文檔編號(hào)G06F13/00GK1245314SQ99110368
公開日2000年2月23日 申請(qǐng)日期1999年7月15日 優(yōu)先權(quán)日1998年7月15日
發(fā)明者海因茨·康茨, 奧利弗·舍克, 彼得·邁茨納 申請(qǐng)人:阿爾卡塔爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1