最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

在簡單拓撲的分布式系統(tǒng)中提供快速標頭選擇的系統(tǒng)和方法

文檔序號:7975514閱讀:273來源:國知局
專利名稱:在簡單拓撲的分布式系統(tǒng)中提供快速標頭選擇的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明總體涉及分布計算的系統(tǒng)和方法。更具體而言,本發(fā)明針對其上存儲有計算機可執(zhí)行指令的計算機可讀介質(zhì),該計算機可執(zhí)行指令用于執(zhí)行從在單個計算機系統(tǒng)內(nèi)或在計算機系統(tǒng)的網(wǎng)絡(luò)內(nèi)的多個過程中的多個節(jié)點選擇標頭(leader)節(jié)點,以解決簡單拓撲中的標頭選擇問題,該簡單拓撲也被稱為“全連接網(wǎng)絡(luò)”。
背景技術(shù)
在分布式系統(tǒng)中,標頭選擇問題源于一致性問題。一致性是在一群參與者之間商定一個結(jié)果的過程。因為參與者(或他們的通信介質(zhì))可能經(jīng)歷故障,所以標頭選擇問題難以解決。隨著節(jié)點的數(shù)量(η)的增長,網(wǎng)絡(luò)背景通信(chatter)按照η2增加。所以,如果節(jié)點數(shù)量增長10個,則背景通信增長100個。因此,所需要的是最小化網(wǎng)絡(luò)背景通信的針對標頭選擇問題的解決方案?,F(xiàn)有技術(shù)中已知的某些解決方案涉及所有節(jié)點的時鐘的同步以使得所有時鐘反映同步的絕對時間。這個和其他解決方案涉及選擇標頭的若干過程、子過程和回合 (round),這是麻煩且低效的。先前的解決方案顯示出“壞”選擇沖突的高概率,所述沖突是兩個或更多個選擇在時間上彼此非常接近地開始以致于不能達到法定數(shù)量(quorum)以便完成選擇。而且,先前的解決方案也不保證只有單個標頭被選擇。因此所需要的是一種最小化壞選擇沖突并保證單個標頭被選擇的系統(tǒng)。因此,所需要的是用于保證在簡單拓撲中選擇單個標頭同時最小化網(wǎng)絡(luò)背景通信以使得當故障發(fā)生時基本無縫地恢復的快速、高效且簡單的系統(tǒng)和方法。

發(fā)明內(nèi)容
本發(fā)明提供在簡單拓撲的分布式系統(tǒng)中選擇新標頭節(jié)點的快速、高效且簡單的系統(tǒng)和方法。提供一種計算機實現(xiàn)的、在檢測到現(xiàn)有標頭的故障后將節(jié)點配置為標頭的方法。 一種示范性計算機實現(xiàn)的方法使得簡單拓撲的分布式系統(tǒng)成為容錯的。本文還提供一種計算機可讀介質(zhì),其上存儲有用于執(zhí)行所述方法的計算機可執(zhí)行指令。所述方法包括若干步驟,這些步驟包括開始第一回合和第二回合。第一回合包括步驟從一個節(jié)點(下文被稱為“選擇發(fā)起者”)向網(wǎng)絡(luò)上所有其他節(jié)點發(fā)送第一開始選擇請求,該選擇發(fā)起者節(jié)點在預定的響應周期內(nèi)從網(wǎng)絡(luò)上所有其他活動(live)節(jié)點接收第一開始選擇請求的結(jié)果,并且該選擇發(fā)起者節(jié)點確定網(wǎng)絡(luò)上所有其他法定數(shù)量的節(jié)點是否對第一開始選擇請求作出響應。在不同的時間處接收到或者根本未接收到響應。若干第一回合可以同時進行,但是每個選擇都從單個節(jié)點開始并且只有一個第一回合(如果有的話)將進行到第二回合。如果選擇發(fā)起者節(jié)點確定存在法定數(shù)量,則該選擇發(fā)起者節(jié)點變成開始第二回合的獲批準選擇發(fā)起者節(jié)點。要清楚的是,術(shù)語“選擇發(fā)起者節(jié)點”的使用僅僅是示范性的,因為在示范性方法的情況下若干節(jié)點可以在相同或大約相同的時間處開始第一回合,其仍然保證只有一個標頭將被選擇。每個選擇發(fā)起者節(jié)點是已經(jīng)檢測到標頭故障的節(jié)
點ο第二回合包括若干步驟,包括由網(wǎng)絡(luò)上法定數(shù)量的所有節(jié)點批準選擇發(fā)起者節(jié)點作為獲批準選擇發(fā)起者節(jié)點;由獲批準選擇發(fā)起者節(jié)點選擇標頭;以及由獲批準選擇發(fā)起者節(jié)點將設(shè)置標頭(Set Leader)請求發(fā)送到網(wǎng)絡(luò)上的所有其他節(jié)點。包括第一和第二回合的所述計算機實現(xiàn)的方法發(fā)生在每當任何節(jié)點檢測到標頭故障時。檢查標頭 (CheckLeader)請求由活動節(jié)點周期性地發(fā)布以監(jiān)測標頭故障。而且,在示范性實施例中,所述方法包括步驟選擇優(yōu)選節(jié)點作為標頭,其中該優(yōu)選節(jié)點選自獲批準選擇發(fā)起者節(jié)點、運行最新版本的應用的節(jié)點、具有最多剩余正常工作時間的節(jié)點、具有作為標頭的先前經(jīng)歷的節(jié)點和節(jié)點的任何等價的和補充的優(yōu)選處理。如果法定數(shù)量不存在,則所述計算機實現(xiàn)的方法生成從選擇發(fā)起者節(jié)點到網(wǎng)絡(luò)上所有其他節(jié)點的中止選擇(AbortElection)請求。在示范性實施例中,第一回合進一步包括步驟在從選擇發(fā)起者節(jié)點輸送第一開始選擇(StartElection)請求之前,不持有(hold)有效選擇令牌(token)的多個節(jié)點接受第一有效開始選擇令牌。而且,作為第一回合的一部分,當在網(wǎng)絡(luò)上不存在法定數(shù)量的所有節(jié)點時,選擇發(fā)起者節(jié)點向網(wǎng)絡(luò)上所有活動節(jié)點輸送中止選擇請求。當中止選擇請求被持有匹配的開始選擇令牌的活動節(jié)點接收時,它們清除開始選擇令牌。若干不同的節(jié)點(每個節(jié)點檢測分布式系統(tǒng)中標頭的不存在)開始第一回合;然而,只有一個節(jié)點會獲取法定數(shù)量,或?qū)]有節(jié)點獲取法定數(shù)量。只有獲取法定數(shù)量的節(jié)點進行到第二回合,在第二回合中該節(jié)點指定標頭并告知其余節(jié)點標頭已被設(shè)置。


在下面結(jié)合附圖的詳細說明中描述本發(fā)明的各種示范性實施例,這些實施例將隨著描述的進行而變得更加清楚明白,在附圖中
圖1圖示了用于全連接網(wǎng)絡(luò)的分布式系統(tǒng)的標頭選擇的示范性方法的流程圖。圖2圖示了可以用于實現(xiàn)一個或多個實施例的示范性計算設(shè)備。
具體實施例方式圖1圖示了用于在計算機系統(tǒng)的網(wǎng)絡(luò)內(nèi)或單個計算機系統(tǒng)中多個過程內(nèi)操作節(jié)點以允許在全連接網(wǎng)絡(luò)的分布式系統(tǒng)中的快速標頭選擇的系統(tǒng)和方法的示范性實施例的流程圖。基本上每個節(jié)點在步驟100處在某個時間點處被初始化。在狀態(tài)100中所示的示范性選擇發(fā)起者節(jié)點的初始化之后,選擇發(fā)起者節(jié)點不知道如狀態(tài)110中所示的網(wǎng)絡(luò)的標頭關(guān)系的狀態(tài),其中節(jié)點的局部狀態(tài)為標頭=空(Mill),選擇=空,其意味著它不知道當前標頭,也不知道正在進行的選擇。所有節(jié)點在狀態(tài)110中開始或在一些狀態(tài)轉(zhuǎn)換之后到達該狀態(tài)。例如,在示范性實施例中,作為選擇過程的失敗的第一回合的結(jié)果(本文下面進一步討論),選擇發(fā)起者節(jié)點將到達狀態(tài)110中所示的局部狀態(tài)“標頭=空,選擇=空”。從狀態(tài)110,所述方法繼續(xù)到步驟115。在步驟115期間,如果已經(jīng)從另一個節(jié)點接收到開始選擇請求,則選擇發(fā)起者節(jié)點從狀態(tài)110轉(zhuǎn)換成狀態(tài)190。如果未接收到開始選擇請求,則選擇發(fā)起者節(jié)點發(fā)送發(fā)現(xiàn)標頭(FindLeader)消息并繼續(xù)到步驟130。由于只有活動節(jié)點知道新選擇的標頭的身份,而沒有現(xiàn)場過程(process in place),所以在故障節(jié)點恢復的情況下,故障節(jié)點可以記住以前標頭的身份并且所述系統(tǒng)將利用兩個或更多個標頭操作。然而,圖1中所示的方法防止恢復的節(jié)點假定標頭是其所跟隨(follow)的最后一個標頭。在故障節(jié)點(甚至為最近的先前標頭的故障節(jié)點)恢復成為活動節(jié)點(當在步驟100中它再次加入分布式網(wǎng)絡(luò)中時)的情況下,不能假設(shè)標頭是當它上次活動時跟隨的最后一個標頭,因為它被配置成不保留最近一個標頭的存儲。取而代之, 步驟100中所示的示范性的最近恢復的選擇發(fā)起者節(jié)點進入如狀態(tài)110中所示的狀態(tài)“標頭=空,選擇=空”。如果它沒有從如步驟115中所確定的輔助節(jié)點接收到開始選擇請求, 則它向所有節(jié)點廣播如步驟130中所示的本質(zhì)上問“標頭是誰?,,的消息。如果存在標頭,則標頭用本質(zhì)上說“我是標頭,且這是我的唯一識別碼”的消息對咨詢節(jié)點作出響應。一旦知道標頭,則選擇發(fā)起者節(jié)點從步驟130進行到狀態(tài)220,其中標頭是已知的且不需要選擇(選擇=空)。如果選擇發(fā)起者節(jié)點沒有從標頭接收到這樣的答案, 則所述方法繼續(xù)以在下文描述的狀態(tài)140處開始回合一。為了最小化等待時間和網(wǎng)絡(luò)通信量,示范性實施例包括在標頭不能在“檢查標頭” 間隔期間在系統(tǒng)中被檢測到之后的兩個壓縮的選擇回合。對這兩個回合的所述算法函數(shù)的優(yōu)化提供了針對標頭選擇問題的簡單解決方案,如下文詳細描述?;睾弦挥蓹z測到不存在網(wǎng)絡(luò)的標頭的一個或多個節(jié)點開始?;睾弦?br> 選擇的回合一的目標是批準選擇發(fā)起者節(jié)點作為“獲批準選擇發(fā)起者節(jié)點”以實施選擇的回合二,其中選擇網(wǎng)絡(luò)標頭。為了發(fā)起回合一,當節(jié)點在步驟130中檢測到標頭故障時,選擇發(fā)起者節(jié)點進入狀態(tài)140,“標頭=空,開始選擇”。系統(tǒng)中已經(jīng)檢測到標頭故障并且不具有有效的局部選擇令牌的任何節(jié)點將進入狀態(tài)140。在示范性實施例中,多個節(jié)點可以進入狀態(tài)140并且基本同時發(fā)起回合一。然而,為了解釋回合一的步驟,這里跟隨指定“選擇發(fā)起者節(jié)點”的單個節(jié)點的路徑。選擇發(fā)起者通過向狀態(tài)140與狀態(tài)150之間的所有已知節(jié)點發(fā)送“開始選擇”請求來開始選擇。一旦選擇發(fā)起者節(jié)點已經(jīng)向所有已知節(jié)點發(fā)送“開始選擇”請求,如果選擇發(fā)起者節(jié)點尚未接收到作為某個其他節(jié)點由于在步驟130中的確定的結(jié)果的標頭已被選擇的指示,則該節(jié)點進入狀態(tài)150,“標頭=空,選擇=自己開始”,其指示選擇發(fā)起者節(jié)點發(fā)起回合一。如上述討論,在示范性實施例中,多個節(jié)點開始回合一,但至多一個節(jié)點將完成成功的回合一以進入回合二。每個節(jié)點如果尚未持有有效的(例如,未期滿的)選擇令牌并且拒絕隨后的開始選擇請求,則接受它接收的第一“開始選擇”請求。每個開始選擇請求具有使得對接收它的節(jié)點而言已知的期滿時間。超過它們的期滿日期的開始選擇請求不被持有,使得持有期滿的開始選擇請求的節(jié)點能夠自由接受新的開始選擇請求。直到它的前一個開始選擇請求期滿為止,節(jié)點才接受新的開始選擇請求。每個節(jié)點維持它自己的相對于它接收到最后一個開始選擇請求的時間。該算法有益地使用了相對時間(即,針對每個節(jié)點的局部時間跨度),使得不同節(jié)點上的絕對時間值不必同步。一旦所有開始選擇消息被發(fā)送,則選擇發(fā)起者從狀態(tài)140轉(zhuǎn)換成狀態(tài)150。在狀態(tài)150處,選擇發(fā)起者節(jié)點等待,直到所有響應
5被接收或超時(其中最先到來的一個)為止。如在步驟160處所示,回合一存在兩個可能的結(jié)果,在回合一期間所公開的算法實質(zhì)上問問題“我被法定數(shù)量批準了嗎?”。兩個可能的結(jié)果依次被描述。法定數(shù)量被定義為全連接網(wǎng)絡(luò)中所有已知節(jié)點中超過一半的節(jié)點。法定數(shù)量需求保證了至多一個節(jié)點將被批準為獲批準選擇發(fā)起者節(jié)點。包括發(fā)出開始選擇請求的選擇發(fā)起者的所有節(jié)點知道分布式系統(tǒng)中節(jié)點的總數(shù)。如果節(jié)點的數(shù)量改變,則新數(shù)量被傳播到所有節(jié)點。如果在步驟160 (回合一中的最后一個步驟)之后,包括故障節(jié)點的法定數(shù)量的所有節(jié)點已經(jīng)接受開始選擇請求,則所述過程繼續(xù)到在狀態(tài)170處的回合二。可替代地,如果在步驟160之后,法定數(shù)量的所有節(jié)點未接受開始選擇請求,則所述方法進行到狀態(tài)180, “標頭=空,選擇=空”。此時,回合一在選擇發(fā)起者處被局部中止并且“中止選擇”消息被發(fā)送到所有其他節(jié)點。選擇發(fā)起者節(jié)點和接收中止選擇消息的所有其他節(jié)點重新進入如前所述的狀態(tài)110 (“標頭=空,選擇=空”)。在返回到步驟110時,選擇發(fā)起者節(jié)點回到不認識已知的標頭或進行中的任意選擇的狀態(tài)?;睾弦挥梢粋€或多個節(jié)點大約同時或順序地發(fā)起,直到回合一的單個實例成功地識別獲批準選擇發(fā)起者節(jié)點(即步驟160確定已經(jīng)到達法定數(shù)量)。如上所述,回合一不由已經(jīng)接收到開始選擇請求的、在狀態(tài)110中的節(jié)點開始。這解釋了為什么在選擇已被另一個節(jié)點開始的情況下所述方法從狀態(tài)110進行到進入狀態(tài)190,其中不存在標頭且所述選擇已由另一個節(jié)點開始。從狀態(tài)190,所述方法進行到步驟192。在步驟192處,所述節(jié)點實質(zhì)上問“我已經(jīng)接收到選擇期滿消息了嗎? ”和“我已經(jīng)接收到中止選擇消息了嗎? ”。 如果這些問題之一的答案為是,則節(jié)點進入狀態(tài)110。發(fā)送消息的節(jié)點的唯一識別碼被包括在被發(fā)送的消息中,使得接收者知道是哪個節(jié)點發(fā)送該消息。所有活動節(jié)點對于請求作出響應,并且所述請求節(jié)點知道系統(tǒng)中有多少個其他節(jié)點。因此,請求節(jié)點通過確定法定數(shù)量的節(jié)點是否已經(jīng)接受開始選擇請求而確實知道它是否已經(jīng)被批準為獲批準選擇發(fā)起者節(jié)點。通過設(shè)計,如果系統(tǒng)中的活動節(jié)點的數(shù)量小于法定數(shù)量,或者如果系統(tǒng)被劃分(partition)以使得沒有分區(qū)包含法定數(shù)量的活動節(jié)點,則選擇將失敗。在所有中止選擇消息(如果有的話)在步驟192期間被接收之后,節(jié)點從狀態(tài)190 轉(zhuǎn)換到狀態(tài)110。中止選擇消息被發(fā)出,以使得所有其他節(jié)點能夠清除它們當前持有的選擇令牌并且此后能夠接受新的開始選擇請求?;睾隙?br> 返回步驟160,當選擇發(fā)起者經(jīng)法定數(shù)量批準時,發(fā)起第二回合。已經(jīng)被法定數(shù)量批準為獲批準選擇發(fā)起者節(jié)點的節(jié)點從已經(jīng)對開始選擇請求作出響應的任何節(jié)點中選擇標頭。 在一些實施例中,所述獲批準選擇發(fā)起者節(jié)點選擇它自己作為標頭,如狀態(tài)170所示。在選擇標頭之后,包括唯一識別碼的標頭數(shù)據(jù)被輸送到所有節(jié)點。盡管狀態(tài)170示出,所述標頭=自己意味著獲批準選擇發(fā)起者節(jié)點是標頭,但這僅是示范性的。獲批準選擇發(fā)起者節(jié)點可以選擇自己作為標頭,但是不要求這樣做。而且,獲批準選擇發(fā)起者節(jié)點不限于從接受開始選擇請求的那些節(jié)點中選擇標頭。在示范性實施例中,獲批準選擇發(fā)起者節(jié)點從由自己和對開始選擇請求作出響應的節(jié)點構(gòu)成的節(jié)點群集中選擇標頭。一種簡單的方法是獲批準選擇發(fā)起者節(jié)點指定自己作為標頭,該方法也最小化了網(wǎng)絡(luò)背景通信。然而,在所選的實施例中,所述系統(tǒng)在除獲批準選擇發(fā)起者節(jié)點之外的另一個節(jié)點被選擇為標頭的情況下被優(yōu)化。當然,用于通過批準選擇發(fā)起者節(jié)點選擇標頭的算法可以根據(jù)優(yōu)化目標而改變并且可以在沒有不適當?shù)膶嶒灥那闆r下由本領(lǐng)域普通技術(shù)人員確定。例如,在新版本應用的分段延伸(staged rollout)期間,可能有益的是,與運行先前版本的節(jié)點相比,優(yōu)先選擇運行稍后版本的節(jié)點。在其他情況下,可能有益的是, 優(yōu)先選擇具有最多剩余正常工作時間的節(jié)點,這使得為這些計算機系統(tǒng)選擇了更穩(wěn)定的標頭。在其他示范性實施例中,用于標頭關(guān)系的優(yōu)選節(jié)點是已經(jīng)具有作為標頭的先前經(jīng)歷的節(jié)點。本領(lǐng)域普通技術(shù)人員認識到,存在在所述算法中可以捕獲的許多等價的和補充的優(yōu)選選擇。獲批準選擇發(fā)起者節(jié)點通過發(fā)送包括所選標頭的唯一身份的“設(shè)置標頭”請求到所有已知節(jié)點來通知所有節(jié)點其對新標頭的選擇。因此,在所述設(shè)置標頭請求已被發(fā)送到所有節(jié)點之后,所有活動節(jié)點知道新選擇的標頭的身份?;睾隙跔顟B(tài)220處結(jié)束。處于狀態(tài)220中的節(jié)點知道標頭的身份并且認識到選擇結(jié)束。從狀態(tài)220,節(jié)點繼續(xù)操作與本文所描述的快速標頭選擇系統(tǒng)和方法不相關(guān)的附加過程和應用,并且可選地進入步驟205所示和下文所描述的檢查標頭過程。最后,在狀態(tài)220處節(jié)點變得不起作用,如狀態(tài)230中所示。從狀態(tài)230,所述節(jié)點可以在步驟100處再次開始。通信信道的類型(http、tcp、udp)是不重要的。因為本文所提供的系統(tǒng)和方法被設(shè)計成通過不可靠信道工作,所以信道的質(zhì)量不是操作所公開的系統(tǒng)和方法所必需的。如步驟205所示,檢查標頭沒有包括在選擇過程中(回合一和回合二),因為標頭選擇發(fā)生在標頭故障被檢測到之后。而且,檢查標頭是可選的過程,其中通過要求最后已知的標頭作出響應來檢測標頭故障。如果最后已知的標頭對步驟205中提出的問題作出響應, 則所述節(jié)點停留在狀態(tài)220處,其中標頭是已知的且無需選擇。如果最后已知的標頭不對檢查標頭請求作出響應,則該節(jié)點進入先前描述的狀態(tài)110。壞選擇沖突的概率(其為當兩個或多個選擇在時間上彼此非常接近地開始以致于它們均不可能獲取法定數(shù)量時)通過隨機化所示的檢查標頭間隔來最小化。所述檢查標頭間隔是檢查標頭嘗試檢測故障之間的時間段。一般地,沒有選擇標頭的概率(Pf)與回合行程時間(這里稱為“RTT”)除以檢查標頭間隔(這里稱為“CLI”)成比例。在示范性實施例中,開始選擇的RTT為大約一毫秒,且 CLI為大約100毫秒。因此,在這些示范性實施例中,一次嘗試沒有選擇標頭的概率為大約百分之一(1. 00%),并且二次嘗試中沒有選擇標頭的概率為大約萬分之一(0. 01%)且隨著嘗試次數(shù)的增加而成指數(shù)形式減少。所設(shè)想的簡單算法和通過如應用到簡單拓撲的簡化代碼的實現(xiàn)方式是針對傳統(tǒng)方法的改進的解決方案。具有針對用于兩回合中的簡單拓撲的標頭選擇問題的解決方案的簡單性是對已知標頭選擇解決方案的巨大改進,因為本文所描述的方法提供當針對簡單拓撲實現(xiàn)時明顯更快的可靠選擇。圖2示出具有可以用于實現(xiàn)上文所述的一個或多個實施例的組件的示范性計算機系統(tǒng)22。示范性實施例中的快速標頭選擇系統(tǒng)和方法的示范性選擇發(fā)起者節(jié)點被具體化為計算機系統(tǒng)22,而在其他示范性實施例中,示范性選擇發(fā)起者節(jié)點為下文所述的計算機系統(tǒng)22的若干組件之一。計算機系統(tǒng)22包括一個或多個處理單元對、主存儲器沈和將包括主存儲器沈的各種系統(tǒng)組件耦合到處理器M的總線觀。該總線觀表示若干類型的總線結(jié)構(gòu)中的任意一種的一個或多個,其包括存儲器總線和存儲器控制器、外圍總線、加速圖形端口和使用多種總線結(jié)構(gòu)中任意一種的處理器或局部總線。主存儲器沈可以是隨機存取存儲器(RAM)或耦合到總線觀以用于存儲將由處理器M執(zhí)行的信息和指令的另一個動態(tài)存儲設(shè)備。主存儲器26還可以用于在由處理器M執(zhí)行指令期間存儲臨時變量或其他中間信息。計算機22還包括只讀存儲器(ROM) 30。計算機22進一步包括一個或多個存儲設(shè)備32。存儲設(shè)備32可以包括用于從硬盤讀取并向其寫入的硬盤驅(qū)動器、用于從可移動磁盤讀取并向其寫入的磁盤驅(qū)動器以及用于向可移動光盤(比如CD或其他光學介質(zhì))讀取或向其寫入的光盤驅(qū)動器。所述存儲設(shè)備,無論是硬盤驅(qū)動器、磁盤驅(qū)動器、光盤驅(qū)動器或是其組合,都通過適當?shù)慕涌谶B接到總線28。所述驅(qū)動器及其相關(guān)聯(lián)的計算機可讀介質(zhì)提供對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或用于計算機22的其他數(shù)據(jù)的非易失性存儲。盡管本文所描述的示范性實施例參考硬盤、可移動磁盤和可移動光盤,但是本領(lǐng)域技術(shù)人員應當意識到可以存儲可由計算機訪問的數(shù)據(jù)的其他類型的計算機可讀介質(zhì)(比如盒式磁帶、閃存卡、數(shù)字視頻盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)等等)也可以用在所述示范性操作環(huán)境中。多個程序模塊可以存儲在存儲設(shè)備32、RAM和ROM上,這些程序模塊包括操作系統(tǒng)、一個或多個應用程序、其他程序模塊以及程序數(shù)據(jù)。用戶可以通過輸入設(shè)備34(比如鍵盤和指向設(shè)備)將命令和信息輸入到計算機22中。其他輸入設(shè)備34可以包括麥克風、操縱桿、游戲板、衛(wèi)星天線、掃描儀等等。這些和其他輸入設(shè)備34通過耦合到總線觀的接口連接到處理器對。監(jiān)視器或其他類型的顯示設(shè)備36還經(jīng)由接口連接到總線觀。除了監(jiān)視器之外,個人計算機典型地包括其他外圍輸出設(shè)備,比如揚聲器和打印機。計算機22還包括耦合到總線觀的通信接口 38。通信接口 38提供耦合到連接到本地網(wǎng)40的網(wǎng)絡(luò)鏈路的雙向數(shù)據(jù)通信。通信接口 38可以是集成的服務數(shù)字網(wǎng)絡(luò)(ISDN) 卡、或者用于提供到對應類型的電話線的數(shù)據(jù)通信連接的調(diào)制解調(diào)器、或者用于提供到兼容的LAN的數(shù)據(jù)通信連接的局域網(wǎng)(LAN)卡。無線鏈路還可以根據(jù)所設(shè)想的特定應用來使用。在任何這樣的實現(xiàn)方式中,通信接口 38發(fā)送并接收攜帶表示各種類型信息的數(shù)字數(shù)據(jù)流的電、電磁或光信號。計算機22 —般地使用到一個或多個遠程計算機(比如主機42或遠程計算機44) 的本地連接在聯(lián)網(wǎng)環(huán)境中操作。遠程計算機38可以是另一臺個人計算機、服務器、路由器、 網(wǎng)絡(luò)PC、對等設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點,并且典型地包括上文相對于計算機22描述的許多或所有元件。在圖2所示的實施例中,網(wǎng)絡(luò)鏈路提供通過本地網(wǎng)40到主機42或經(jīng)由互聯(lián)網(wǎng)46到遠程計算機44的連接。一般地,計算機22的數(shù)據(jù)處理器借助在不同時間存儲在計算機的各種計算機可讀存儲介質(zhì)中的指令來編程。在執(zhí)行時,程序被至少部分地從存儲這些程序的計算機的次存儲器加載到計算機的主電子存儲器中。本文所描述的本發(fā)明包括這些和其他各種類型的計算機可讀存儲介質(zhì),其中這樣的介質(zhì)包含用于結(jié)合微處理器或其他數(shù)據(jù)處理器實現(xiàn)所述步驟的指令或程序。盡管已經(jīng)結(jié)合上文略述的特定實施例描述了本發(fā)明,但是顯然許多替代、修改和變型對本領(lǐng)域技術(shù)人員而言將是清楚明白的。因此,如上文所闡述的本發(fā)明的優(yōu)選實施例旨在說明性的而非限制性的。在不脫離本發(fā)明的精神和范圍的情況下,可以進行各種變化。
權(quán)利要求
1. 一種計算機實現(xiàn)的方法,用于在選擇發(fā)起者節(jié)點在連接至少一個計算機系統(tǒng)上的多個節(jié)點的節(jié)點網(wǎng)絡(luò)上檢測到現(xiàn)有標頭的故障(110)之后將節(jié)點配置(100)為新標頭,該方法包括以下步驟a.開始第一回合,所述第一回合包括以下步驟i.從選擇發(fā)起者節(jié)點向網(wǎng)絡(luò)上所有其他節(jié)點發(fā)送至少一個開始選擇請求(115); .從網(wǎng)絡(luò)上所有活動節(jié)點接收所述至少一個開始選擇請求的結(jié)果(130),該接收步驟由選擇發(fā)起者節(jié)點來實施;iii.確定法定數(shù)量的所述選擇發(fā)起者節(jié)點和網(wǎng)絡(luò)上所述所有其他節(jié)點是否接受所述至少一個開始選擇請求(160),該確定步驟由選擇發(fā)起者節(jié)點來實施;b.在檢測到法定數(shù)量時開始第二回合(170),所述第二回合包括以下步驟1.批準選擇發(fā)起者節(jié)點作為獲批準選擇發(fā)起者(140); .選擇新標頭,該選擇步驟由獲批準選擇發(fā)起者來實施(150);以及 iii.發(fā)送設(shè)置標頭請求到網(wǎng)絡(luò)上的所述所有其他節(jié)點(220)。
2.權(quán)利要求1的方法,進一步包括步驟 a.選擇優(yōu)選的節(jié)點作為新標頭。
3.權(quán)利要求2的方法,其中該優(yōu)選節(jié)點選自包括以下的群集選擇發(fā)起者節(jié)點、運行最新版本的應用的節(jié)點、具有最多剩余正常工作時間的節(jié)點、先前標頭和節(jié)點任何等價的和補充的優(yōu)選處理。
4.權(quán)利要求1的方法,進一步包括步驟a.在不存在法定數(shù)量時將中止選擇請求輸送到網(wǎng)絡(luò)上所有其他節(jié)點。
5.權(quán)利要求1的方法,進一步包括周期性重復所述方法。
6.權(quán)利要求1的方法,進一步包括步驟 a.其中第一回合進一步包括步驟i.接受第一有效開始選擇令牌,所述接受步驟由不持有有效選擇令牌的多個節(jié)點在從選擇發(fā)起者節(jié)點輸送第一開始選擇請求之前來實施; .如果法定數(shù)量不存在,則將中止選擇請求輸送到網(wǎng)絡(luò)上所有其他節(jié)點,所述輸送步驟由選擇發(fā)起者節(jié)點來實施。
7.權(quán)利要求6的方法,進一步包括在法定數(shù)量存在的情況下開始第二回合的步驟,所述第二回合包括以下步驟a.將選擇發(fā)起者節(jié)點批準為獲批準選擇發(fā)起者;b.選擇標頭,該選擇步驟由獲批準選擇發(fā)起者來實施;c.將設(shè)置標頭請求發(fā)送到網(wǎng)絡(luò)上所有其他節(jié)點。
8.權(quán)利要求6的方法,其中每個所述有效的開始選擇令牌具有期滿日期。
9.權(quán)利要求8的方法,其中開始選擇令牌在確定法定數(shù)量是否存在的步驟完成之前期滿并且第一回合由可替代節(jié)點發(fā)起。
10.一種計算機可讀介質(zhì),其上存儲有用于執(zhí)行權(quán)利要求1到9中的任一項的方法的計算機可執(zhí)行指令。
全文摘要
在連接至少一個計算機系統(tǒng)上的多個節(jié)點的簡單拓撲的分布式系統(tǒng)中選擇新標頭節(jié)點的系統(tǒng)和計算機實現(xiàn)的方法。該計算機實現(xiàn)方法包括若干步驟,包括至少一個檢測到標頭不存在的節(jié)點,開始第一回合以用于批準其為獲批準選擇發(fā)起者。如果在第一回合期間法定數(shù)量接受開始選擇請求,則選擇發(fā)起者開始第二回合以設(shè)置標頭。如果在第一回合期間所有節(jié)點的法定數(shù)量尚未達到,則第一回合失敗。該方法重復進行,直到標頭被設(shè)置并且每當節(jié)點發(fā)現(xiàn)網(wǎng)絡(luò)沒有活動標頭時被重復。本文還提供一種計算機可讀介質(zhì),其上存儲有計算機可執(zhí)行指令以用于執(zhí)行所述計算機實現(xiàn)的方法。
文檔編號H04L29/08GK102523243SQ20111036289
公開日2012年6月27日 申請日期2011年11月15日 優(yōu)先權(quán)日2010年11月15日
發(fā)明者K.蘇爾科夫 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1