国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      控制簇系統(tǒng)中事件消息遞送的設(shè)備和方法

      文檔序號:6422396閱讀:302來源:國知局
      專利名稱:控制簇系統(tǒng)中事件消息遞送的設(shè)備和方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及簇系統(tǒng)的節(jié)點中的設(shè)備。本發(fā)明還涉及控制事件消息遞送的方法。
      在包括不同的節(jié)點的簇系統(tǒng)中,必須提供可靠的事件通知業(yè)務(wù),以便廣播在所述簇系統(tǒng)中發(fā)生的事件。這些事件消息發(fā)送到不同的接收者,后者主要由軟件程序?qū)崿F(xiàn),在接收到所述事件消息時完成附加的任務(wù)。
      這樣一種事件通知業(yè)務(wù)(ENS)的一個示例示于圖5。兩個節(jié)點N1和N2是簇系統(tǒng)的一部分。為了進(jìn)行通信它們通過網(wǎng)絡(luò)N連接。在每個節(jié)點上,執(zhí)行簇基礎(chǔ)軟件CF,在所述兩個節(jié)點之間提供通信功能。所述簇基礎(chǔ)軟件在整個簇中提供用于維護(hù)、控制和通信的設(shè)施和函數(shù)。由簇基礎(chǔ)軟件CF提供的所述函數(shù)還被運行在每個節(jié)點上的事件通知業(yè)務(wù)ENS使用。
      另外,程序GDS、GFS和OPS作為簇子系統(tǒng)在節(jié)點N1上運行。它們完成不同的任務(wù)。現(xiàn)在在節(jié)點N2上發(fā)生一個事件。所述事件由節(jié)點N2的事件通知業(yè)務(wù)ENS通過所述簇基礎(chǔ)軟件CS在整個簇中發(fā)送,使所述簇中其它節(jié)點上不同的應(yīng)用程序能夠根據(jù)所述事件完成各種任務(wù)。
      所述事件被節(jié)點N1的事件通知業(yè)務(wù)接收。在所述示例中,它是一個″NODE_LEFT″(節(jié)點離開)事件,宣告節(jié)點N2不久將離開所述簇。因此,所述子系統(tǒng)GDS,GFS和OPS必須接收到它將發(fā)生的通知,以便作出必要的安排。然而,在當(dāng)前的實現(xiàn)方案中,所述事件通知廣播對并行服務(wù)器OPS、全局文件系統(tǒng)GFS和全局硬盤系統(tǒng)GDS來說是異步的。若所述三個應(yīng)用程序OPS、GFS和GDS相互依存,則所述事件通知的遞送可能造成問題。例如,若GDS是全局文件系統(tǒng)GFS把數(shù)據(jù)寫入存儲裝置所必須的,但是所述全局硬盤系統(tǒng)GDS由于所述事件通知廣播而已經(jīng)關(guān)閉了所述存儲裝置,則將出現(xiàn)錯誤。在最壞的情況下,總的簇系統(tǒng)將包含不一致性或所述節(jié)點可能崩潰。
      由上述可以認(rèn)識到,出現(xiàn)了克服異步遞送的缺點的必要性。
      按照本發(fā)明,設(shè)置一種大大減少由于錯誤的事件通知造成錯誤的可能性的設(shè)備。還提供一種用于控制事件消息遞送的方法。
      本發(fā)明的設(shè)備設(shè)置在簇系統(tǒng)的至少一個節(jié)點上。所述簇系統(tǒng)包括至少兩個通過網(wǎng)絡(luò)連接的節(jié)點,而且這兩個節(jié)點中的至少一個包括為接收事件消息而登錄的至少兩個接收者。這些接收者連接到所述設(shè)備。所述設(shè)備包括用于接收關(guān)于在所述簇系統(tǒng)內(nèi)發(fā)生的事件的消息的裝置,而且還包括通過所述設(shè)備和所述接收者之間的連接、以特定的順序向所述至少兩個接收者提供所述事件消息的裝置。所述特定的順序是由連接到至少兩個接收者中的每一個的序列號確定的。
      在所述至少兩個節(jié)點中的至少一個上實現(xiàn)用于控制發(fā)生在簇系統(tǒng)中的事件的事件消息的遞送的方法。所述方法包括以下步驟A.接收要向至少一個節(jié)點的至少兩個接收者發(fā)出的事件消息;B.以特定順序向至少兩個為接收事件消息而登錄的接收者提供所述事件消息,其中所述特定順序是由與至少兩個接收者中的每一個有關(guān)的序列號確定的。
      因此本發(fā)明提供一種用于以特定順序向主要由軟件程序?qū)崿F(xiàn)的接收者遞送事件的設(shè)備和方法。所述接收者是為接收所述事件消息而登錄的。所述遞送順序由序列號確定。把序列號與每一個接收者相聯(lián)系,就可以以特定順序向這些接收者廣播所述事件通知,從而避免異步遞送造成的錯誤或崩潰。所述事件要遞送到的接收者不再彼此獨立,而是由所述序列號聯(lián)系和安排的。所述設(shè)備將協(xié)調(diào)每一個事件消息向為所述事件而登錄的接收者的遞送,并為其安排順序。遞送事件或遞送關(guān)于事件的事件消息,對本發(fā)明來說具有相同的意義。
      在本發(fā)明的推薦的實施例中,接收者可以為一個以上的事件消息登錄。另外,對于每一個事件,這些接收者都可以用不同的序列號登錄。這使靈活性更大,而且還允許隨后改變遞送順序或?qū)⑦@些接收者升級。
      在本發(fā)明的推薦的實施例中,所述設(shè)備包括用于向所述簇系統(tǒng)中至少一個第二節(jié)點發(fā)送這些特定遞送順序的裝置。向所述簇系統(tǒng)中的至少一個第二節(jié)點發(fā)送所述特定順序,就不僅可以實現(xiàn)向所述第一節(jié)點上的接收者的順序遞送,而且還可以實現(xiàn)向所述至少一個第二節(jié)點上的為所述事件而登錄的接收者的順序遞送。在本發(fā)明的另一個推薦的實施例中,所述設(shè)備包括用于接收由所述簇系統(tǒng)中至少一個第二節(jié)點發(fā)送的特定遞送順序的裝置。因此,所述設(shè)備在簇寬基礎(chǔ)上控制和維護(hù)向為所述事件而登錄的接收者的事件消息遞送。最好在所述簇系統(tǒng)的每一個節(jié)點上設(shè)置所述設(shè)備。
      因此,在步驟B中的所述遞送事件消息的操作包括以下步驟-向所述簇系統(tǒng)中至少一個第二節(jié)點遞送所述特定的順序,而且還接收所述簇系統(tǒng)的所述至少一個第二節(jié)點的特定順序;-以及最后根據(jù)所接收的所述至少一個第二節(jié)點的特定順序向所述至少兩個接收者提供所述事件消息。
      在所述簇系統(tǒng)的每一個節(jié)點上實現(xiàn)所述方法,便可以在全簇范圍內(nèi)以特定的順序遞送事件通知。如果所述事件通知遞送之后第一節(jié)點上的接收者依賴于第二節(jié)點的接收者執(zhí)行的操作,那么這是特別重要的。
      在所述設(shè)備和方法的推薦的實施例中,所發(fā)送或接收的特定順序包括節(jié)點識別標(biāo)志和OPS、GFS下一個要發(fā)出的事件消息的接收者的序列號。從第二節(jié)點的設(shè)備接收到這種特定的順序,使所述第一節(jié)點上的設(shè)備可以決定何時必須完成向其接收者的事件通知遞送。
      在推薦的實施例中,所述方法包括登錄事件的接收者的步驟。所述事件消息將發(fā)送給所述接收者。在本發(fā)明的另一個推薦的實施例中,所述方法包括在向所述至少兩個接收者的第二個提供所述事件消息之前,等待所述至少兩個接收者中的第一個的確認(rèn)的步驟。作為另一方案,在向所述第一節(jié)點上的接收者提供所述事件消息之前等待第二節(jié)點的確認(rèn)。
      在另一個推薦的實施例中,所述設(shè)備包括指示所述事件通知已經(jīng)發(fā)送到所有接收者的裝置。
      在本發(fā)明的一個推薦的實施例中,利用在所述至少一個節(jié)點上執(zhí)行和運行的軟件程序來實現(xiàn)所述設(shè)備。在另一個推薦的實施例中,所述兩個接收者中的至少一個是用軟件程序?qū)崿F(xiàn)的。
      下面將通過非限制性示例并參照附圖來描述本發(fā)明,附圖中

      圖1表示包括本發(fā)明的簇系統(tǒng);圖2表示事件清單和與接收者相聯(lián)系的序列號;圖3表示本發(fā)明方法的示例;圖4表示本發(fā)明的方法的序列的示例;圖5表示包括本發(fā)明的簇系統(tǒng)的另一個示例;圖6表示已知的簇系統(tǒng)。
      圖1中示出具有實現(xiàn)了的設(shè)備的簇系統(tǒng)。所述簇系統(tǒng)包括通過網(wǎng)絡(luò)連接的兩個節(jié)點N1和N2。在每一個節(jié)點上執(zhí)行和運行簇基礎(chǔ)軟件CF。簇基礎(chǔ)軟件CF提供兩個節(jié)點之間通信用的,尤其是在這些節(jié)點上運行的附加的簇軟件之間通信用的必要的功能。簇基礎(chǔ)軟件CF對所有簇軟件而言是基礎(chǔ)層。利用所述簇基礎(chǔ)功能的所有其它應(yīng)用程序都必須向基礎(chǔ)CF登錄。基礎(chǔ)軟件CF還能夠產(chǎn)生特定事件消息,并通過所述網(wǎng)絡(luò)將它們發(fā)送到在簇系統(tǒng)的其他節(jié)點。
      連接到所述簇基礎(chǔ)CF的特定模塊是事件通知業(yè)務(wù)ENS。所述事件通知業(yè)務(wù)ENS在整個簇系統(tǒng)的范圍內(nèi)提供可靠的事件通知廣播。通過所述基礎(chǔ)軟件CF,把由簇基礎(chǔ)軟件CF或節(jié)點的其他應(yīng)用程序建立的事件發(fā)送到所述簇的其它節(jié)點。根據(jù)所述事件,簇基礎(chǔ)軟件CF把所述事件發(fā)送到所有其它節(jié)點或分別發(fā)送到特定節(jié)點。所述事件或所述事件消息由在節(jié)點上執(zhí)行的所述簇基礎(chǔ)接收,并轉(zhuǎn)送到所述節(jié)點上的事件通知系統(tǒng)。
      在圖1的示例中,節(jié)點N2的事件通知業(yè)務(wù)把事件消息NODE_LEFT發(fā)送到節(jié)點N1。節(jié)點N2一開始停止運行或離開所述簇,就發(fā)送這樣的消息。這將告訴所述簇系統(tǒng)內(nèi)的其它節(jié)點上的所有簇軟件不要開始新的通信,并盡早結(jié)束現(xiàn)有的通信。簇基礎(chǔ)軟件CF接收到所述信號并將它轉(zhuǎn)送到節(jié)點N1的事件通知業(yè)務(wù)ENS。
      把由節(jié)點1的事件通知業(yè)務(wù)接收到的信號轉(zhuǎn)送到連接到ENS的順序事件通知業(yè)務(wù)SENS并轉(zhuǎn)送到節(jié)點N1的簇基礎(chǔ)軟件CF。順序事件通知業(yè)務(wù)SENS是用軟件模塊實現(xiàn)的,并負(fù)責(zé)事件消息NODE_LEFT向需要所述信號的所有執(zhí)行的簇軟件進(jìn)行依序遞送。在所述例子中,簇軟件GDS、GFS和OPS需要所述信號。因此,順序事件通知業(yè)務(wù)包括登錄項目,可以把特定事件的接收者登錄到其中。
      接收到所述事件消息NODE_LEFT時,簇軟件GDS停止把數(shù)據(jù)寫入節(jié)點N2上的存儲裝置。此外,它開始向一個鏡像存儲裝置讀和寫所述數(shù)據(jù)。所述簇軟件GDS一執(zhí)行由所述事件消息NODE_LEFT的接收觸發(fā)的任務(wù),就向順序事件通知業(yè)務(wù)SENS發(fā)送確認(rèn)1A。所述確認(rèn)告訴所述軟件模塊SENS要向為所述事件登錄的下一個簇軟件提交所述事件消息NODE_LEFT。
      SENS將向全局文件系統(tǒng)GFS提交所述事件。所述任務(wù)完成之后,全局文件系統(tǒng)軟件GFS也將向SENS返回確認(rèn)消息2A。最后所述事件通知現(xiàn)將被發(fā)送到并行數(shù)據(jù)庫服務(wù)器OPS。
      為了管理不同的事件消息的處理,也為了控制所述遞送的序列順序,每一個接收者必須用順序事件通知業(yè)務(wù)SENS進(jìn)行登錄。事件通知業(yè)務(wù)SENS將提供一個帶有所有事件和為這些事件而登錄的所有接收者的清單。一個示例示于圖2。
      所述清單L1包含名稱為Event1,Event2和Event3三不同的事件E。事件Event1有名為Mod1和Mod2的兩個接收者R登錄。對于事件Event2和事件Event3則分別只有一個接收者M(jìn)od2或Mod3登錄。另外,所述清單L1還包含序列號SN,代表事件必須按之遞送的順序或優(yōu)先級。
      接收者M(jìn)od1針對事件Event1具有序列號5。接收者M(jìn)od2針對同一事件只具有序列號15。在事件Event1的遞送上,接收者M(jìn)od1比接收者M(jìn)od2具有較高的優(yōu)先級。因此,接收到事件Event1時,順序事件通知業(yè)務(wù)SENS將首先把事件Event1轉(zhuǎn)送到接收者M(jìn)od1。接收者M(jìn)od1上的星號告訴通知業(yè)務(wù)SENS在把事件消息Event1提供給所述清單中的下一個接收者之前,要等待接收者M(jìn)od1的確認(rèn)信號。順序事件通知系統(tǒng)SENS在向接收者M(jìn)od2提供事件消息Event1之前,將等待Mod1的確認(rèn)。
      接收到事件event2時,SENS將只向接收者M(jìn)od2提交事件消息event2。由于所述星號的緣故,它也將等待確認(rèn)。
      在清單L2中,另一個接收者M(jìn)od3已經(jīng)針對事件Event1進(jìn)行登錄。正如可以看到的,由序列號給定的優(yōu)先級低于接收者M(jìn)od1優(yōu)先級,但是高于接收者M(jìn)od2的優(yōu)先級。接收到事件Event1之后,SENS將首先向接收者M(jìn)od1提交事件消息Event1,等待接收者M(jìn)od1的確認(rèn),然后把事件消息Event1提交給接收者M(jìn)od3。接收到接收者M(jìn)od3的確認(rèn)之后,它將最后向Mod2提交所述事件消息。
      在所述示例中,序列號是數(shù)字值。關(guān)于要向所述接收者遞送所述事件消息的優(yōu)先級越高,序列號就越低。可以兩個接收者共享相同的序列號,其結(jié)果是SENS同時向兩個接收者遞送所述事件消息。另外,存在最大序列號,它限制不同的接收者以不同的優(yōu)先級進(jìn)行登錄。在所述示例中,事件消息在向一個以較高序列號登錄的處理者遞送之前,先分別向以較低的遞送序列號登錄的接收者或處理者遞送。當(dāng)然,這樣的依序事件通知也是可能的在所述依序事件通知中,數(shù)字值較高意味著優(yōu)先級較高。登錄序列號時,用戶可以在從1直至最大序列號的范圍內(nèi)自由設(shè)置。
      在向所有登錄的接收者遞送特定事件的事件消息之后,順序事件通知業(yè)務(wù)SENS將發(fā)送指示遞送完成的信號。指示信號最好由高于最大序列號的數(shù)字值給定。它也可以是負(fù)的數(shù)字值。
      本發(fā)明的第二實施例示于圖5。這涉及有時簇軟件模塊或應(yīng)用程序在不同的節(jié)點上執(zhí)行這一方面。然而,軟件模塊或應(yīng)用程序仍然是彼此依存的。因此,不僅必須在一個特定的節(jié)點上提供順序事件通知,而且要在全簇范圍內(nèi)提供順序事件通知。
      圖5中的簇包括兩個通過網(wǎng)絡(luò)連接的節(jié)點N1和N2。在兩個節(jié)點上,都執(zhí)行簇基礎(chǔ)軟件CF,而且事件通知業(yè)務(wù)ENS以及順序事件通知業(yè)務(wù)SENS都連接到簇基礎(chǔ)軟件CF。另外,應(yīng)用程序AP1和AP3在節(jié)點N1上執(zhí)行和運行。兩個應(yīng)用程序彼此依存。正如可以從清單L1中看到的,應(yīng)用程序AP1和AP3是利用順序事件通知業(yè)務(wù)SENS針對事件NODE_LEFT或ND登錄的。按照這個由SENS維護(hù)和控制的清單,應(yīng)用程序AP1具有序列號5,而同時應(yīng)用程序AP3具有較低的優(yōu)先級,其序列號為15。在節(jié)點N2上,執(zhí)行應(yīng)用程序AP2,并且還將應(yīng)用程序AP2以一個由序列號10給定的特定優(yōu)先級登錄到事件ND。
      在本發(fā)明的這個實施例中,兩個節(jié)點都從所述簇內(nèi)接收信號NODE_LEFT。簇基礎(chǔ)軟件把所述事件轉(zhuǎn)送到ENS和SENS。正如可以從清單L1和L2看到的,事件NODE_LEFT應(yīng)該按照序列號5首先提交給節(jié)點N1上的應(yīng)用程序AP1,然后提交給節(jié)點N2上的應(yīng)用程序AP2,并且在此之后再一次提交給節(jié)點N1上的應(yīng)用程序AP3。
      為了避免虛假的遞送造成差錯,兩個順序事件通知業(yè)務(wù)必須能夠彼此通信,以便維持事件消息的正確遞送。
      為此目的,每個順序事件通知業(yè)務(wù)SENS都使用稱為節(jié)點映射的數(shù)據(jù)結(jié)構(gòu)。所述節(jié)點映射要更新和計算,以便控制整個簇內(nèi)事件的發(fā)送順序。節(jié)點映射包含所有登錄在所述簇內(nèi)的節(jié)點,還包含有關(guān)每個節(jié)點的信息。在所述示例中,所述信息包括節(jié)點的狀態(tài),還有所述節(jié)點上順序事件通知業(yè)務(wù)SENS的狀態(tài)。所述狀態(tài)將告訴SENS是否在所述節(jié)點上運行。另外,每個節(jié)點映射項目都由所述特定節(jié)點的遞送序列號構(gòu)成。所述映射項目中所述節(jié)點的序列號將永遠(yuǎn)是各自節(jié)點都已經(jīng)為了進(jìn)行遞送而請求的最后遞送的序列號。
      例如,當(dāng)節(jié)點上的SENS想要把所述事件提交給接收者時,它已經(jīng)以序列號2登錄來接收所述事件,它通知所述簇內(nèi)所有其它節(jié)點有關(guān)所述序列號。這是通過發(fā)送一個帶有所述節(jié)點名稱和所述序列號2的節(jié)點映射給其他節(jié)點來完成的。這將導(dǎo)致其它節(jié)點上的順序事件通知業(yè)務(wù)針對所述請求的節(jié)點用一個新的序列號2更新它們的節(jié)點映射。
      另外,在進(jìn)行所述遞送之前,請求的節(jié)點等待以下消息所有其它節(jié)點都已經(jīng)請求2或更高的序列號。若一個事件通知業(yè)務(wù)SENS具有一個帶有較低的序列號或較高優(yōu)先級的項目,則它將首先提交。所有事件通知業(yè)務(wù)通過共享和更新所述節(jié)點映射來共享相同信息。把事件提交給帶有最低序列號或帶有最高優(yōu)先級的接收者。
      在圖3中可以更詳細(xì)地看出所述方法。所述方法是在一個節(jié)點的順序事件通知業(yè)務(wù)SENS中實現(xiàn)的。在步驟1接收到事件之后,順序事件通知業(yè)務(wù)SENS為所述事件建立順序。它收集所有為所述事件登錄的接收者,并按照與這些接收者相聯(lián)系的序列號將它們排序。在下一個步驟,它挑揀出對這個要提交給接收者的事件消息而言最低的序列號,并將所述最低的序列號與它的節(jié)點識別標(biāo)志一起發(fā)送給所述簇內(nèi)的其它所有節(jié)點。
      然后它等待其他節(jié)點的映射。所述順序事件通知業(yè)務(wù)SENS在步驟4接收到的其他節(jié)點的映射消息包括所述節(jié)點識別標(biāo)志和關(guān)于所述節(jié)點的下一次遞送的序列號。順序事件通知業(yè)務(wù)SENS將用通過所述映射消息接收到的信息更新它自己的節(jié)點映射。然后它將估算它自己的序列號是不是所述節(jié)點映射項目中最低的序列號。
      若非如此,則它將等待一段特定的時間,以便接收新的節(jié)點映射,并再次更新它自己的節(jié)點映射。若它要遞送的序列號是最低的序列號,則所述順序事件通知業(yè)務(wù)SENS將在步驟7把所述事件提交給所登錄的接收者。
      此后,SENS檢查是否有另外的接收者針對具有較高序列號的事件通知遞送進(jìn)行登錄。若是如此,則它將用新的序列號更新它自己的節(jié)點映射,然后跳回步驟3并重復(fù)向簇內(nèi)的其他節(jié)點發(fā)送包括節(jié)點識別標(biāo)志和序列號的所述消息。若沒有更多發(fā)送要做,則所述順序事件通知業(yè)務(wù)將用完成指示信號更新它自己的映射,并且再在步驟3把所述指示信號發(fā)送給所述簇內(nèi)其它所有的節(jié)點。
      在圖5的所述例子中,節(jié)點1的順序事件通知業(yè)務(wù)SENS將把包含節(jié)點1的名為N1的名稱和序列號5的消息發(fā)送給節(jié)點N2的SENS,而同時節(jié)點N2的SENS將把包括序列號10的消息發(fā)送給節(jié)點N1。節(jié)點N1的SENS可以開始把所述事件消息提供給AP1,因為序列號5是所述簇系統(tǒng)內(nèi)最低的序列號。接收到應(yīng)用程序AP1的確認(rèn)之后,它創(chuàng)建一個新的消息,包含序列號15和它自己的節(jié)點名稱N1,并將所述消息發(fā)送給節(jié)點N2的SENS。
      在更新和計算所述節(jié)點映射之后,節(jié)點N2的順序事件通知業(yè)務(wù)SENS開始向應(yīng)用程序AP2遞送事件通知ND,并等待確認(rèn)。接收到應(yīng)用程序AP2的確認(rèn)之后,它建立完成信號并將所述信號發(fā)回N1的順序事件通知業(yè)務(wù)。然后,節(jié)點N1的SENS開始進(jìn)行剩余的發(fā)送。
      在圖4中可以看到在所述系統(tǒng)事件通知業(yè)務(wù)中實現(xiàn)的所述方法的一個更復(fù)雜的示例。在所述示例中,所述簇包括四個節(jié)點節(jié)點A、節(jié)點B、節(jié)點C和節(jié)點D,其中順序事件通知業(yè)務(wù)在節(jié)點A到節(jié)點C上執(zhí)行。正如在所述圖可以看到的,SENS提供包括有關(guān)每一個節(jié)點的信息的節(jié)點映射。
      節(jié)點A的節(jié)點映射包括節(jié)點映射的名稱A、B、C、D和由它們提供的信息。在第一步驟尚未接收到任何其它節(jié)點發(fā)出的消息,而節(jié)點B和C的序列號設(shè)置為初始的0。這稱為初始的節(jié)點映射并用作每一個新的事件的開始的節(jié)點映射。正如可以從所述圖看到的,節(jié)點D的狀態(tài)標(biāo)記為U,表示未知,因為在節(jié)點D上沒有運行順序事件通知業(yè)務(wù)。它被其他節(jié)點上的事件通知業(yè)務(wù)SENS忽略。
      在步驟2,每一個節(jié)點(節(jié)點A到節(jié)點C)向其他節(jié)點發(fā)送包含最低序列號以及所述節(jié)點名稱的消息。在利用接收到的優(yōu)先級更新所述節(jié)點映射之后,所述節(jié)點映射包含在步驟3看到的信息。因為所有節(jié)點的最低序列號都是10,所以所有節(jié)點的順序事件通知業(yè)務(wù)SENS都立即開始向登錄的接收者遞送。此后,它們在步驟4更新它們自己的節(jié)點映射。
      在步驟5可以看出每一個節(jié)點的節(jié)點映射。用于在節(jié)點A和B上進(jìn)行遞送的下一個序列號是15,而同時節(jié)點C上的下一個序列號是20。在步驟6,所述順序事件通知業(yè)務(wù)將把具有所述下一個序列號的消息發(fā)送給每一個其它節(jié)點。合并和更新所述節(jié)點映射之后,在每一個節(jié)點上的映射包含節(jié)點A和B的序列號15和節(jié)點C的序列號20。因此,節(jié)點A和B開始進(jìn)行它們向登錄的接收者的遞送,而同時節(jié)點C上的順序事件通知業(yè)務(wù)必須等待,直到所述節(jié)點映射被更新為止。
      在步驟8,所述順序事件通知業(yè)務(wù)SENS再一次更新它的節(jié)點映射。對于節(jié)點A,再沒有為所述事件登錄的接收者。因此,它用″完成″的信號D更新它自己的節(jié)點映射。節(jié)點B必須以序列號20進(jìn)行遞送,而同時節(jié)點C的節(jié)點映射沒有被更新,因為遞送尚未進(jìn)行。在交換消息和更新映射之后,步驟11表示每一個節(jié)點上節(jié)點映射。節(jié)點B和節(jié)點C上的SENS由于具有相同的序列號而開始立即遞送。它們不等待節(jié)點A上的順序事件通知業(yè)務(wù),因為節(jié)點A已經(jīng)完成它的發(fā)送。在更新它自己的節(jié)點映射、從剩余節(jié)點發(fā)送和接收消息之后,在步驟15中顯示每個節(jié)點上的節(jié)點映射。所有節(jié)點一發(fā)送″完成″信號D,就完成所述事件的遞送。
      在本發(fā)明中,”完成”信號是用大于最大序列號的數(shù)字值來實現(xiàn)所述”完成”信號。另外,SENS應(yīng)用程序提供一種業(yè)務(wù)功能,所述業(yè)務(wù)功能將用以檢測節(jié)點上順序事件通知業(yè)務(wù)SENS的存在。這將允許其它序列通知業(yè)務(wù)SENS用新的節(jié)點或新的SENS更新它們自己節(jié)點映射,以便提供接收的事件的正確遞送。為了舉例說明和描述起見,已經(jīng)進(jìn)行了本發(fā)明的上述推薦實施例的描述。這并非旨在把本發(fā)明限于所公開的精確的形式,按照本發(fā)明可以作出許多修改和變動。尤其是本發(fā)明的不同的方面和實施例在不限制所述范圍的情況下可以以任何方式結(jié)合。例如,有可能提供本地的事件處理器,負(fù)責(zé)向所述應(yīng)用程序提供本地事件。還可能必須為特定事件實現(xiàn)特殊順序,例如,若事件的序列順序在這種事件遞送的過程中改變。
      還可能必須為每一個事件提供唯一的識別標(biāo)志。這是必要的,因為按順序進(jìn)行事件通知,一個事件直至完成遞送的持續(xù)期間可以是很長時間。例如,一個節(jié)點廣播某些要求序列遞送的事件,離開所述簇,再一次結(jié)合所述簇,并再一次在遞送完成之前開始廣播相同事件。這可能引起混亂。因此節(jié)點產(chǎn)生的號碼要求唯一的事件識別標(biāo)志。
      另一個有用的實現(xiàn)方案是由順序事件通知業(yè)務(wù)的延伸部分實現(xiàn)的,以便提供一種由用戶進(jìn)程接收順序事件通知用的方法。利用操作系統(tǒng)內(nèi)的核心模塊、驅(qū)動程序或幽靈小程序允許容易地用用戶順序事件通知的功能擴(kuò)展。當(dāng)然,接收者應(yīng)該能夠處理它們?yōu)槠涠卿浀氖录ⅰ?br> 參考符號清單CF簇基礎(chǔ)軟件;ENS事件通知業(yè)務(wù);SENS順序事件通知業(yè)務(wù);N1,N2節(jié)點;A,B,C,D節(jié)點;GDS,GFS,OPS簇軟件;AP1,AP2,AP3簇軟件;E事件;SN序列號;R接收者;L1,L2事件清單;NODE_LEFT,N_D事件;1...10方法步驟。
      權(quán)利要求
      1.一種在簇系統(tǒng)的至少一個節(jié)點上的設(shè)備,所述簇系統(tǒng)包括至少兩個通過網(wǎng)絡(luò)連接的節(jié)點,所述至少一個節(jié)點包括至少兩個接收者,所述至少兩個接收者包括與所述設(shè)備的連接,所述設(shè)備包括用于接收在所述簇系統(tǒng)內(nèi)發(fā)生的事件的事件消息的裝置并且包括用于通過所述連接以一種特定的順序向所述至少兩個接收者提供所述事件消息的裝置,其中所述特定的順序由與所述至少兩個接收者中的每一個相聯(lián)系的序列號確定。
      2.如權(quán)利要求1所述的設(shè)備,其中所述設(shè)備包括用于向所述簇系統(tǒng)內(nèi)至少一個第二節(jié)點發(fā)送所述特定遞送順序的裝置。
      3.如權(quán)利要求1到2中的一個所述的設(shè)備,其中所述設(shè)備包括用于由所述簇系統(tǒng)內(nèi)所述至少一個第二節(jié)點接收所述特定遞送順序的裝置。
      4.如權(quán)利要求1到3中的一個所述的設(shè)備,其中所述發(fā)送或接收的特定順序包括下一個要遞送的事件消息的接收者的節(jié)點識別標(biāo)志和序列號。
      5.如權(quán)利要求1到4中的一個所述的設(shè)備,其中所述設(shè)備包括用于登錄所述事件的接收者的裝置。
      6.如權(quán)利要求1到5中的一個所述的設(shè)備,其中所述設(shè)備包括用于從至少兩個接收者中的至少一個接收確認(rèn)的裝置。
      7.如權(quán)利要求1到6中的一個所述的設(shè)備,其中所述設(shè)備包括用于指示已完成向所有接收者的遞送的裝置。
      8.如權(quán)利要求1到7中的一個所述的設(shè)備,其中利用在所述至少一個節(jié)點上執(zhí)行和運行的軟件程序來實現(xiàn)所述設(shè)備。
      9.如權(quán)利要求1到8中的一個所述的設(shè)備,其中利用在所述至少一個節(jié)點上執(zhí)行和運行的軟件程序來實現(xiàn)所述至少兩個接收者中的至少一個。
      10.一種用于控制在簇系統(tǒng)內(nèi)發(fā)生的事件的事件消息的遞送的方法,所述簇系統(tǒng)包括至少兩個節(jié)點,所述至少兩個節(jié)點中的至少一個包括至少兩個接收者,其中,所述方法是在所述至少兩個節(jié)點中的至少一個上實現(xiàn)的,并且所述方法包括以下步驟a)接收要遞送給所述至少兩個接收者的所述事件消息;b)以特定的順序向所述至少兩個接收者遞送所述事件消息,其中所述特定順序是由與所述至少兩個接收者中的每一個相聯(lián)系的序列號確定的。
      11.如權(quán)利要求10所述的方法,其中所述方法包括以下步驟為了把事件的事件消息遞送給另外的接收者而登錄所述另外的接收者。
      12.如權(quán)利要求10到11中的一個所述的方法,其中步驟b)包括以下步驟在把所述事件消息遞送給所述至少兩個接收者中的第二個之前,等待所述至少兩個接收者中第一個的確認(rèn)。
      13.如權(quán)利要求10到12中的一個所述的方法,其中步驟b)包括以下步驟向所述簇系統(tǒng)遞送所述特定的順序;接收所述簇系統(tǒng)的所述至少第二節(jié)點的特定順序;根據(jù)所述接收的至少第二節(jié)點的特定順序,向所述至少兩個接收者遞送所述事件消息。
      14.如權(quán)利要求13所述的方法,其中所述發(fā)送或接收的特定順序包括下一個要遞送的所述事件消息的接收者的節(jié)點識別標(biāo)志和序列號。
      15.如權(quán)利要求10到14中的一個所述的方法,其中所述事件消息提交給包括接收者的軟件模塊,所述軟件模塊在所述至少一個節(jié)點上執(zhí)行和運行。
      16.如權(quán)利要求10到15中的一個所述的方法,其中所述方法包括以下步驟在已經(jīng)把所述事件消息遞送給所述至少兩個節(jié)點中的每一個之后,向所述至少一個第二節(jié)點遞送指示信號。
      全文摘要
      提供一種用于控制簇系統(tǒng)中事件的事件消息遞送的裝置和新的方法。所述裝置包括用于以特定的順序向為所述事件消息而登錄的接收者遞送所接收的事件的裝置。所述特定順序是由與每一個接收者相聯(lián)系的序列號確定的。在所述簇的不同節(jié)點之間交換序列號,便可以在全簇范圍內(nèi)以特定的順序遞送事件。因此可以避免錯誤的事件遞送造成的錯誤。
      文檔編號G06F11/00GK1879084SQ200380102891
      公開日2006年12月13日 申請日期2003年11月7日 優(yōu)先權(quán)日2002年11月7日
      發(fā)明者D·E·克爾 申請人:富士通西門子電腦公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1