两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于主用-備用復制方案中的同步的方法和裝置制造方法

文檔序號:6497834閱讀:177來源:國知局
用于主用-備用復制方案中的同步的方法和裝置制造方法
【專利摘要】公開了主用-備用復制能力。主用進程和備用進程參與同步進程,同步進程被配置為使主用進程的狀態(tài)信息與備用進程的狀態(tài)信息同步。同步進程操作在被稱為時期的時間中的時段。在當前時期期間,主用進程計算表示自從先前時期主用進程的狀態(tài)信息的改變的狀態(tài)更新信息。在當前時期期間,主用進程還在專用于當前時期的相關(guān)聯(lián)的輸出緩沖器中緩沖在當前時期期間生成的輸出消息。主用進程發(fā)起新的時期,該新時期獨立于從備用進程接收的針對先前時期的狀態(tài)更新確認。在主用進程接收到針對當前時期的狀態(tài)更新確認,并且所有先前時期的所有輸出緩沖器都被清空后,從相關(guān)聯(lián)的輸出緩沖器釋放針對當前時期所緩沖的輸出消息。
【專利說明】用于主用-備用復制方案中的同步的方法和裝置

【技術(shù)領(lǐng)域】
[0001]本案一般涉及提供主用-備用復制方案中的同步。

【背景技術(shù)】
[0002]云計算正在改變提供計算服務(wù)的方式。為了充分利用數(shù)據(jù)中心的能力,許多服務(wù)被設(shè)計成隨著負載進行擴展以及容忍故障。許多服務(wù)(例如,交互式服務(wù),諸如電信,游戲以及諸如此類)對諸如時延和抖動的網(wǎng)絡(luò)性能參數(shù)具有相對嚴格的限制。在許多不同的方面,這些標準-彈性、容錯和網(wǎng)絡(luò)性能-可能沖突。雖然有將容錯添加到進程的各種容錯機制,但是以造成網(wǎng)絡(luò)開銷的代價來添加此類容錯。一種此類容錯機制是主用-備用復制,其中使主用進程的狀態(tài)與備用進程的狀態(tài)同步,以便在主用進程故障后,備用進程能夠接管主用進程。然而,不利地,在許多現(xiàn)有的主用-備用復制方案中,包含允許存儲器和磁盤兩者的恢復的那些主用-備用復制方案,主用進程和備用進程之間的定期同步增加了至少等于主用進程和備用進程之間的往返時延的時延。這嚴重地降級了延時敏感服務(wù)的網(wǎng)絡(luò)性倉泛。


【發(fā)明內(nèi)容】

[0003]由用于提供主用-備用復制的實施例解決了現(xiàn)有技術(shù)中的各種缺陷。
[0004]在至少一些實施例中,主用進程和備用進程參與同步進程,所述同步進程被配置為使所述主用進程的狀態(tài)信息與所述備用進程的狀態(tài)信息同步。所述同步進程操作在被稱為時期(epoch)的時間中的時段。對于每個時期,將相關(guān)聯(lián)的輸出緩沖器分配用于緩沖在該時期期間生成的輸出消息。在當前時期,所述主用進程計算表示自從先前時期所述主用進程的所述狀態(tài)信息的改變的狀態(tài)更新信息。在所述當前時期期間,所述主用進程還在專用于所述當前時期的相關(guān)聯(lián)的輸出緩沖器中緩沖在所述當前時期期間生成的輸出消息。所述主用進程發(fā)起獨立于從所述備用進程接收的針對所述先前時期的狀態(tài)更新確認的新時期。在所述主用進程接收到針對所述當前時期的狀態(tài)更新確認以及所有先前時期的所有輸出緩沖器被清空后,從所述相關(guān)聯(lián)的輸出緩沖器釋放針對所述當前時期所緩沖的所述輸出消息。
[0005]在一個實施例中,一種裝置被配置為同步主用進程和備用進程之間的狀態(tài)。所述裝置包含處理器和至少一個存儲器。所述至少一個存儲器被配置為維護與同步進程的多個相應(yīng)時期相關(guān)聯(lián)的多個輸出緩沖器,所述同步進程被配置為使所述主用進程的狀態(tài)信息與所述備用進程的狀態(tài)信息同步。所述處理器被配置為在當前時期期間計算針對所述當前時期的狀態(tài)更新信息,這里所述狀態(tài)更新信息表示自從先前時期所述主用進程的所述狀態(tài)信息的改變,以及在與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器中緩沖在所述當前時期期間生成的輸出消息。所述處理器還被配置為:發(fā)起新時期,其獨立于從所述備用進程接收的針對所述先前時期的確認由所述備用進程收到的所述主用進程在所述先前時期期間確定的狀態(tài)更新信息的狀態(tài)更新確認。
[0006]在一個實施例中,提供了一種方法,所述方法用于同步主用進程和備用進程之間的狀態(tài)。所述方法使用處理器和至少一個存儲器。在同步進程被配置為使主用進程的狀態(tài)信息與備用進程的狀態(tài)信息同步的當前時期期間,針對所述當前時期來計算狀態(tài)更新信息,這里所述狀態(tài)更新信息表示自從先前時期所述主用進程的所述狀態(tài)信息的改變,以及在與所述當前時期相關(guān)聯(lián)的輸出緩沖器中緩沖在所述當前時期期間生成的輸出消息。發(fā)起新時期,其獨立于從所述備用進程接收的針對所述先前時期的確認由所述備用進程接收到的由所述主用進程在所述先前時期期間確定的狀態(tài)更新信息的狀態(tài)更新確認。
[0007]在一個實施例中,一種計算機可讀存儲介質(zhì)存儲指令,當由計算機執(zhí)行所述指令時,所述指令使得所述計算機執(zhí)行用于同步主用進程和備用進程之間的狀態(tài)的方法。在同步進程被配置為使主用進程的狀態(tài)信息與備用進程的狀態(tài)信息同步的當前時期期間,針對所述當前時期來計算狀態(tài)更新信息,這里所述狀態(tài)更新信息表示自從先前時期所述主用進程的所述狀態(tài)信息的改變,以及在與所述當前時期相關(guān)聯(lián)的輸出緩沖器中緩沖在所述當前時期期間生成的輸出消息。發(fā)起新時期,其獨立于從所述備用進程接收到的針對所述先前時期確認由所述備用進程接收到由所述主用進程在所述先前時期期間確定的狀態(tài)更新信息的狀態(tài)更新確認。

【專利附圖】

【附圖說明】
[0008]通過考慮以下結(jié)合附圖的詳細描述能夠更容易地理解本文中的教示,其中:
[0009]圖1描繪了被配置為支持異步流水線式檢查點設(shè)定的主用-備用復制方案的系統(tǒng)的聞級框圖;
[0010]圖2描繪了圖1的系統(tǒng)內(nèi)的異步流水線式檢查點設(shè)定的主用-備用復制方案的示例性操作圖;
[0011]圖3描繪了用于使用如相對于圖2描繪和描述的時期來提供主用-備用復制的方法的一個實施例;
[0012]圖4描繪了用于通過管理與如相對于圖2描繪和描述的時期相關(guān)聯(lián)的信息來提供主用-備用復制的方法的一個實施例;以及
[0013]圖5描繪了適用于在執(zhí)行本文所述功能中使用的計算機的高級框圖。
[0014]為了便于理解,在可能的地方已經(jīng)使用了相同的標記以指對于附圖而言是共同的相同元素。

【具體實施方式】
[0015]一般而言,本文描繪和描述了主用-備用復制能力,盡管本文還可以呈現(xiàn)各種其它能力。
[0016]雖然主要相對于使用主用-備用復制能力的實施例以提供基于檢測點的主用-備用復制(在本文中被表示為異步流水線式檢測點設(shè)定的主用-備用復制方案)進行描繪和描述,但是注意的是,主用-備用復制能力的各種實施例還可以用于提供針對基于事件的主用-備用復制的主用-備用復制(例如,基于諸如輸入、中斷和諸如此類的非確定性事件的主用-備用復制)。
[0017]圖1描繪了被配置為支持異步流水線式檢查點設(shè)定的主用-備用復制方案的系統(tǒng)的高級框圖。
[0018]如在圖1中描繪的,系統(tǒng)100包含主用進程IlOp和備用進程I1b(統(tǒng)稱為進程110),以及相關(guān)聯(lián)的環(huán)境120。如圖1中進一步描繪的,主用進程具有與其相關(guān)聯(lián)的輸出緩沖器模塊112。
[0019]主用進程IlOp被配置為與環(huán)境120交互。主用進程IlOp被配置為接收來自環(huán)境120的輸入消息,以及處理所接收的輸入消息。主用進程IlOp被配置為生成輸出消息(例如,基于獨立于由主用進程IlOp所接收的輸入消息的本地處理,和/或基于由主用進程IlOp所接收的輸入消息的處理),以及向環(huán)境120提供輸出消息。主用進程IlOp被配置為使用輸出緩沖模塊112來緩沖所生成的輸出消息??梢砸匀魏魏线m的方式(例如,使用用于相應(yīng)緩沖器的分開的隊列,使用包含隊列標記以區(qū)分相應(yīng)輸出緩沖器的單個隊列,以及諸如此類)來實現(xiàn)輸出緩沖模塊112 (和其相關(guān)聯(lián)的輸出緩沖器b1-bn)。主用進程IlOp還可以被配置為使用用于緩沖接收的輸入消息的一個或多個輸入緩沖器(出于清楚而省略)。注意的是,主用進程IlOp和環(huán)境120之間的通信是雙向的(盡管使用用于至主用進程IlOp的輸入和來自主用進程IlOp的輸出的兩個不同的通信路徑來表示,以便更好地說明輸出緩沖模塊112,但是可以以任何合適的方式來提供該通信)。
[0020]備用進程I1b被配置為備份主用進程110p。備用進程I1b被配置為當主用進程IlOp故障時承擔活動進程的功能。當活動時,備用進程I1b被配置為以類似于如上所述的主用進程IlOp的方式的方式來操作。注意的是,當備用進程I1b活動時,備用進程I1b和環(huán)境120之間的通信是雙向的(盡管使用既用于至備用進程I1b的輸入又用于來自備用進程I1b的輸出的一個通信路徑來表示,但是可以以任何合適的方式來提供該通信)。
[0021]為了在主用進程IlOp故障時使備用進程I1b承擔活動進程的作用,需要使主用進程I1p和備用進程I1b同步。因此,執(zhí)行基于檢查點的同步以周期地同步備用進程I1b的狀態(tài)以匹配主用進程IlOp的狀態(tài)。主用進程IlOp和備用進程I1b之間的狀態(tài)的同步包含磁盤狀態(tài)和存儲器狀態(tài)的同步。注意的是,為了確保主用進程IlOp和備用進程I1b之間的磁盤狀態(tài)和存儲器狀態(tài)兩者的一致性,在狀態(tài)信息所基于的網(wǎng)絡(luò)輸出能夠由主用進程IlOp釋放到環(huán)境120之前,需要同步主用進程IlOp和備用進程110B。在一個實施例中,使用異步流水線式檢查點設(shè)定的主用-備用復制方案來執(zhí)行同步,在本文中相對于圖2-4對異步流水線式檢查點設(shè)定的主用-備用復制方案進行描繪和描述。
[0022]進程110可以包含可以使用主用-備用復制的任何合適類型的進程,諸如應(yīng)用,云計算環(huán)境中的虛擬機(VM)以及諸如此類。注意的是,可以以任何合適的方式來提供出于交換狀態(tài)信息和相關(guān)聯(lián)的狀態(tài)信息確認的目的的進程110之間的通信。例如,進程110之間的通信可以經(jīng)由設(shè)備內(nèi)的內(nèi)部通信,這里兩個進程110被實現(xiàn)在單個物理設(shè)備內(nèi)(說明性地,使用主用進程IlOp和備用進程I1b之間的虛線)。例如,進程110之間的通信可以經(jīng)由通信網(wǎng)絡(luò),這里進程110運行在不同的物理設(shè)備上(說明性地,經(jīng)由環(huán)境120和/或任何其它合適的環(huán)境或網(wǎng)絡(luò))。雖然出于清楚的目的而省略,但是將了解的是,進程110可以運行在一個或多個物理機器上,該一個或多個物理機器具有與其相關(guān)聯(lián)的各種處理器和存儲器(以及可選地,各種其它硬件和軟件)。
[0023]環(huán)境120可以包含任何合適類型的環(huán)境,諸如通信網(wǎng)絡(luò)或其它類型的環(huán)境。雖然,出于清楚的目的而省略,但是將了解的是,環(huán)境120可以包含各種節(jié)點,主用進程110P(以及,當活動時,備用進程110B)可以與各種節(jié)點交換各種類型的消息。例如,主用進程110p(以及,當活動時,備用進程I1b)可以接收和處理來自環(huán)境120的各種類型的輸入消息,以及類似地,主用進程110P(以及,當活動時,備用進程I1b)可以生成各種類型的輸出消息并將其傳播到環(huán)境120。
[0024]圖2描繪了圖1的系統(tǒng)內(nèi)的異步流水線式檢查點設(shè)定的主用-備用復制方案的示例性操作圖。
[0025]如在圖2的示例性操作圖200中描繪的,主用進程IlOp(被表示為P)以及備用進程I1b (被表示為B)交互以用于同步主用進程IlOp和備用進程I1b之間的狀態(tài)。
[0026]主用進程IlOp在被表示為時期(說明性地,ei用于指示第i個時期)的時間的時段內(nèi)進行操作。
[0027]在先前時期eg (在本文中,其還被稱為上一個時期)結(jié)束后隨時發(fā)起當前時期ei;以及類似地在當前時期ei結(jié)束后隨時發(fā)起新的時期ei+1 (在本文中,其還被稱為下一個的時期)。
[0028]在當期時期ei內(nèi),主用進程IlOp執(zhí)行可能導致其狀態(tài)信息改變的操作(即,主用進程IlOp的操作)。主用進程IlOp確定用于備用進程的I1b的狀態(tài)更新信息(說明性地,Hii用于指示在當前時期ei期間由主用進程IlOp計算的用于備用進程I1b的當前狀態(tài)更新信息)。在當前時期ei期間由主用進程IlOp確定的當前狀態(tài)更新信息Hii表示自從在先前時期eg期間由主用進程IlOp確定的先前狀態(tài)更新信息!V1的主用進程IlOp的狀態(tài)的改變(以及因此主用進程IlOp的狀態(tài)和備用進程I1b的狀態(tài)的差異)。主用進程IlOp可以在當前時期ei期間隨著執(zhí)行它的操作同時地計算當前狀態(tài)信息IV或可以在當前時期^期間完成了它的操作后來計算當前狀態(tài)信息mi。
[0029]在當前時期ei內(nèi),主用進程IlOp還可以生成旨在被提供給主用進程IlOp在其內(nèi)進行操作的環(huán)境的輸出消息。主用進程IlOp可以以任何合適的方式來生成輸出消息。例如,主用進程IlOp可以基于在主用進程IlOp處的本地處理來生成輸出消息,獨立于在主用進程IlOp處接收的輸入消息來執(zhí)行該本地處理。例如,主用進程I1p可以接收輸入消息,處理輸入消息以及產(chǎn)生相關(guān)聯(lián)的輸出消息。注意的是,可以將輸入消息的處理和輸出消息的生成認為是由主用進程IlOp執(zhí)行的操作的一部分。在當前時期ei期間生成的輸出消息被存儲在專用于當前時期ei的相關(guān)聯(lián)的輸出緩沖器中(說明性地,bi用于指示用于第i個時期的第i個輸出緩沖器)。
[0030]在當前時期ei結(jié)束后,主用進程隨時發(fā)起新的時期ei+1。主用進程IlOp然后可以開始執(zhí)行其功能以用于新的時期ei+1 (現(xiàn)在對于主用進程IlOp而言,新的時期ei+1是當前時期)。即,主用進程IlOp可以執(zhí)行其操作,計算針對新的時期ei+1的新的狀態(tài)更新信息,生成并緩沖在新的時期ei+1期間的輸出消息,以及諸如此類。注意的是,主用進程IlOp獨立于以下情況來發(fā)起新的時期ei+1:(1)接收來自備用進程I1b的指示備用進程I1b已經(jīng)接收到并應(yīng)用了針對任何先前時期的相關(guān)聯(lián)的狀態(tài)更新信息的任何狀態(tài)更新確認,(2)向備用進程I1b發(fā)送針對當前時期^的狀態(tài)更新信息,以及(3)接收來自備用進程I1b的指示備用進程I1b已經(jīng)接收到并應(yīng)用了針對當前時期ei的狀態(tài)更新信息的狀態(tài)更新確定。還需注意的是,因為獨立于接收任何當前或過去的狀態(tài)更新確認來發(fā)起新的時期ei+1,因此主用進程在任何給定時間在可以是待定的時期的數(shù)量上沒有任何約束,可以繼續(xù)發(fā)起新的時期并且發(fā)送針對新的時期的狀態(tài)更新信息。對于連續(xù)的時期而言,主用進程IlOp以這種方式繼續(xù)。
[0031]主用進程IlOp向備用進程I1b發(fā)送在當前時期ei期間確定的當前狀態(tài)更新信息(說明性地,Hii用于指示從主用進程IlOp向備用進程I1b發(fā)送的當前狀態(tài)更新信息)。主用進程IlOp可以獨立于初始化下一個時期ei+1向備用進程I1b發(fā)送針對當前時期ei的當前狀態(tài)更新信息Α。在一個實施例中,例如,主用進程IlOp可以在當前時期ei期間向備用進程I1b發(fā)送針對當前時期ei的當前狀態(tài)更新信息Hii (例如,這里在當前時期ei期間由主用進程IlOp向備用進程I1b推送當前狀態(tài)更新信息IV但是未必由備用進程IlOp在當前時期ei期間來接收)。在一個實施例中,例如,主用進程IlOp在下一個時期ei+1期間可以向備用進程I1b發(fā)送針對當前時期ei的當前狀態(tài)更新信息Hii (例如,這里在當前時期ei已經(jīng)結(jié)束后由主用進程IlOp向備用進程I1b推送當前狀態(tài)更新信息Hii)。注意的是,還可以支持此類實施例的組合(例如,這里在當前時期^結(jié)束和下一個時期ei+1開始期間都可以進行由主用進程IlOp向備用進程I1b推送當前狀態(tài)更新信息Hii)。可以以任何合適的方式(例如,使用經(jīng)由任何合適的通信介質(zhì)傳送的一個或多個消息)從主用進程IlOp向備用進程I 1b發(fā)送狀態(tài)更新信息。
[0032]備用進程I1b獨立于主用進程IlOp的時期來接收由主用進程IlOp針對時期ei發(fā)送的狀態(tài)更新信息IV基于從主用進程IlOp接收的狀態(tài)更新信息Hii來更新它的狀態(tài)信息,以及向主用進程IlOp發(fā)送相關(guān)聯(lián)的狀態(tài)更新確認(說明性地,%用于指示從備用進程I1b向主用進程IlOp發(fā)送的對應(yīng)于時期ei的狀態(tài)更新信息的狀態(tài)更新確認)??梢砸匀魏魏线m的方式(例如,使用經(jīng)由任何合適的通信介質(zhì)傳送的任何合適類型的消息)從備用進程HOb向主用進程IlOp發(fā)送狀態(tài)更新確認。在以下情況后主用進程IlOp從時期ei的輸出緩沖器匕釋放輸出消息:(I)接收到來自備用進程I1b針對時期^的狀態(tài)更新確認以及(2)針對時期ei之前的所有時期的所有輸出消息已經(jīng)從它們相關(guān)聯(lián)的輸出緩沖器釋放到環(huán)境120。
[0033]注意的是,雖然在將輸出消息從時期ei的輸出緩沖器匕釋放到環(huán)境120時,主用進程IlOp不再在時期ei內(nèi)進行操作,但是在主用進程I1p處仍認為時期ei是待定的,直到將輸出消息從時期ei的輸出緩沖器bi釋放到環(huán)境120為止。因此,如上所述,主用進程IlOp被配置為監(jiān)測可以將時期ei的輸出消息從時期ei的輸出緩沖器匕釋放到環(huán)境120的條件(例如,監(jiān)測接收來自備用進程I1b的針對時期ei的狀態(tài)更新確認ai;以及監(jiān)測前面時期的輸出緩沖器的當前狀態(tài)以用于檢測何時針對時期ei之前的所有時期的所有輸出消息已經(jīng)從它們相關(guān)聯(lián)的輸出緩沖器釋放到環(huán)境120。
[0034]針對每個時期ei來實例化緩沖器bi;以用于存儲在時期ei期間生成的輸出消息,以及類似地,在輸出消息已經(jīng)從緩沖器匕釋放后終止時期&的緩沖器b”因此,每個緩沖器存在于特定長度的時間(即,從它相關(guān)聯(lián)的時期的開始直到已經(jīng)將輸出消息從相關(guān)聯(lián)的時期的輸出緩沖器釋放為止)以及在任何給定時間僅將存在若干數(shù)量的緩沖器。
[0035]如上所述,每個緩沖器存在于特定長度的時間,以及因此待定緩沖器的數(shù)量上的界限可以計算如下。首先,注意的是,如果在61是當前時期或當主用進程IlOp仍然等待來自備用進程I1b的狀態(tài)更新確認%時時期ei被認為是待定的,則每個待定時期e必須存在一個緩沖器b。第二,將時期ei的結(jié)束和主用進程IlOp接收到來自備用進程I1b的相關(guān)聯(lián)的狀態(tài)更新確認%的時間之間的時間表示為T (可以將T大致地看做是主用進程IlOp和備用進程I1b之間的往返時間)。第三,讓I印OChI表示時期的長度(時間為單位)。如果k使得(k-l)|印ochl≥T,則將有至多k個待定時期,以及因此k個緩沖器將是足夠的。因此,可以使用記號APCn來表示異步流水線式檢查點設(shè)定的主用-備用復制方案,這里η表示未確認的檢查點的數(shù)量(n = k-1)。
[0036]經(jīng)由更具體地考慮圖2的示例性操作圖200可以更好地理解異步流水線式檢查點設(shè)定的主用-備用復制方案的操作。
[0037]圖2的時期θι的描述如下。在時期ei生成的輸出消息被緩沖在與時期ei相關(guān)聯(lián)的緩沖器匕中。在時期ei完成時,主用進程I 1p向備用進程I 1b發(fā)送狀態(tài)更新信息ml (由于傳播時延,直到接近第三時期e3結(jié)束為止,在備用進程I1b處沒有接收到狀態(tài)更新信息Hi1)。備用進程I1b處理狀態(tài)更新信息,其從接近第三時期e3的結(jié)束到接近第四時期e4的開始時出現(xiàn)。備用進程I1b向主用進程I1p發(fā)送狀態(tài)更新確認ai(由于傳播時延,直到接近第六時期e6開始為止,在主用進程IlOp處沒有接收到狀態(tài)更新確認&1)。然后,當在第六時期e6期間接收到狀態(tài)更新確認時,在時期^期間被緩沖在緩存器Id1中的輸出消息被釋放到環(huán)境120(假設(shè)已經(jīng)清空了先前時期的緩沖器)。在這時,對于主用進程IlOp而言,第一時期61不再是待定的。
[0038]圖2的時期e2的描述如下。在時期e2生成的輸出消息被緩沖在與時期e2相關(guān)聯(lián)的緩沖器匕中。在時期e2完成時,主用進程IlOp向備用進程I 1b發(fā)送狀態(tài)更新信息m2 (由于傳播時延,直到接近第四時期e4結(jié)束為止,在備用進程I1b處沒有接收到狀態(tài)更新信息m2)。備用進程I1b處理狀態(tài)更新信息,其從接近第四時期e4的結(jié)束到接近第五時期e5的開始時出現(xiàn)。備用進程I1b向主用進程I1p發(fā)送狀態(tài)更新確認a2(由于傳播時延,直到接近第七時期e7開始為止,在主用進程I 1p處沒有接收到狀態(tài)更新確認a2)。然后,當在第七時期e7期間接收到狀態(tài)更新確認a2時,在時期%期間被緩沖在緩存器b2中的輸出消息被釋放到環(huán)境120(假設(shè)已經(jīng)清空了先前時期的緩沖器)。在這時,對于主用進程IlOp而言,第二時期%不再是待定的。從第二時期e2,可以看到的是,下一個時期(第三時期e3)的發(fā)起獨立于接收來自備用進程I1b的指示備用進程I1b已經(jīng)接收到并應(yīng)用了針對先前時期(即,時期%、θι和e2)的相關(guān)聯(lián)的狀態(tài)更新信息的任何狀態(tài)更新確認,因為在時期%的狀態(tài)更新信息確認%之前發(fā)起第三時期e3以及由主用進程IlOp接收時期%的更新確認a2。
[0039]圖3描繪了用于使用如相對于圖2描繪和描述的時期來提供主用-備用復制的方法的一個實施例。
[0040]在步驟310,方法300開始。
[0041]在步驟320,發(fā)起時期ei。時期ei具有分配用于ei的相關(guān)聯(lián)的緩沖器Iv
[0042]在步驟330,在時期ei期間,主用進程執(zhí)行功能。主用進程執(zhí)行操作(其中的至少一些操作可以導致主用進程的狀態(tài)信息的改變),計算針對時期ei的狀態(tài)更新信息,以及在與時期ei相關(guān)聯(lián)的緩沖器匕中緩沖生成的輸出消息。注意的是,可以在時期ei內(nèi)的任何合適的時間來執(zhí)行這些功能(例如,可以隨著執(zhí)行操作同時地計算狀態(tài)更新信息,和/或在執(zhí)行操作之后來計算狀態(tài)更新信息,可以在整個時期ei中的任何時間來生成并緩沖輸出消息,和諸如此類,以及其各種組合)。
[0043]在步驟340,方法300確定時期是否完成。在已經(jīng)確定了針對時期ei的狀態(tài)更新信息后,可以認為時期ei是完成的。如果時期ei沒有完成,則方法300返回到步驟330 (即,主用進程繼續(xù)執(zhí)行功能中的一些或全部功能(例如,確定針對時期^的狀態(tài)更新信息,在與時期ei相關(guān)聯(lián)的緩沖器匕中緩沖生成的輸出消息,和諸如此類。如果時期^完成了,則方法300: (I)返回到步驟320以發(fā)起下一個時期(i = i+1)以及(2)前進到步驟350。注意的是,雖然發(fā)起了下一個時期ei+1,但是出于緩沖在時期ei期間生成的輸出消息的目的直到這些輸出消息可以被釋放到環(huán)境中為止,時期ei仍然待定。
[0044]在步驟350,主用進程發(fā)起對與時期&相關(guān)聯(lián)的信息的管理。這可以包含:向備用進程發(fā)送狀態(tài)更新信息,以及執(zhí)行動作以控制緩沖在與時期^相關(guān)聯(lián)的緩沖器h中的輸出消息的釋放。本文相對于圖4描繪并描述了用于管理與時期ei相關(guān)聯(lián)的信息的示例性過程。
[0045]在圖3中,方法300被配置為使得從步驟340方法300返回到步驟320 (用于初始化下一個時期ei+1)以及還前進到步驟350(用于管理與時期&相關(guān)聯(lián)的信息)。這指示的是,對于步驟320-340的每個執(zhí)行,將有單獨執(zhí)行的步驟350。照此,在任何給定時間,將有針對時期ei的當前執(zhí)行的步驟320-340,以及針對在針對時期ei來執(zhí)行步驟320-340時仍然待定的一個或多個先前時期的一個或多個同時執(zhí)行的步驟350。
[0046]圖4描繪了用于通過管理與如相對于圖2描繪和描述的時期相關(guān)聯(lián)的信息來提供主用-備用復制的方法的一個實施例。
[0047]如上所述,圖4的方法400適用于用作由圖3的方法300發(fā)起的針對每個時期ei的圖3的方法300的步驟350。
[0048]在步驟410,方法400開始。假設(shè)的是,在這時,已經(jīng)由主用進程計算了針對&的狀態(tài)更新信息(例如,使用圖3的方法300的步驟320-340)。
[0049]在步驟420,主用進程向備用進程發(fā)送針對時期ei的狀態(tài)更新信息。
[0050]在步驟430,主用進程監(jiān)測接收來自備用進程的針對ei的狀態(tài)更新確認。
[0051]在步驟440,主用進程確定是否已經(jīng)接收到時期ei的狀態(tài)更新確認。如果還沒有接收到時期ei的狀態(tài)更新確認,則方法400返回到步驟430 (即,主用進程繼續(xù)監(jiān)測接收針對時期ei的狀態(tài)更新確認)。如果已經(jīng)接收到時期ei的狀態(tài)更新確認,則方法400前進到步驟450。
[0052]在步驟450,主用進程確定所有先前時期的所有輸出消息是否已經(jīng)被釋放到環(huán)境。如果所述先前時期的所有輸出消息還沒有被釋放到環(huán)境,則方法400仍然在步驟450 (即,在繼續(xù)進行相對于時期^的緩沖器匕的輸出消息之前,主用進程等待直到所有先前時期的所有輸出消息已經(jīng)被釋放到環(huán)境)。如果所有先前時期的所有輸出消息已經(jīng)被釋放到環(huán)境,則方法400前進到步驟460。
[0053]在步驟460,主用進程將時期ei的緩沖器匕的輸出消息釋放到環(huán)境。
[0054]在步驟470,方法400結(jié)束。如相對于圖3中所述的,針對由圖3的方法300發(fā)起的每個時期來重復圖4的方法400。因此,期望的是,在任何給定時間,方法400的多個執(zhí)行將與彼此以及與圖3的方法300的執(zhí)行同時是活動的。
[0055]如上文所述,注意的是,雖然相對于在時期ei完成并且已經(jīng)發(fā)起了新的時期ei+1之后從主用進程向備用進程發(fā)送針對時期ei的狀態(tài)更新信息的實施例來描繪和描述圖3的方法300和圖4的方法400,但是可以在任何其它合適的時間(例如,在作為步驟330的一部分的時期ei內(nèi)(未描繪),在作為步驟350的一部分的時期ei后(如圖4中描繪的),或其組合)從主用進程向備用進程發(fā)送針對ei的狀態(tài)更新信息。
[0056]雖然本文中主要相對于在主用-備用復制方案(這里主用和備用元素是進程)中提供同步進行描繪或描述,但是將了解的是本文所描繪和描述的各種實施例可以用于在用于其它類型的主用和備用元素的主用-備用復制方案中提供同步(例如,用于主用和備用設(shè)備(例如,網(wǎng)絡(luò)節(jié)點和其它合適類型的設(shè)備)之間的同步,用于主用和備用應(yīng)用之間的同步,和諸如此類。
[0057]圖5描繪了適用于在執(zhí)行本文所述功能中使用的計算機的高級框圖。
[0058]如圖5中描繪的,計算機500包含處理器元素502(例如,中央處理器(CPU)和/或其它合適的處理器(多個))以及存儲器504 (例如,隨機存取存儲器(RAM)、只讀存儲器(ROM)以及諸如此類)。計算機500還可以包含:合作模塊/進程505和/或各種輸入/輸出設(shè)備506 (例如,用戶輸入設(shè)備(諸如鍵盤、小鍵盤、鼠標以及諸如此類)、用戶輸出設(shè)備(諸如顯示器、揚聲器以及諸如此類)、輸入端口、輸出端口、接收器、傳送器以及存儲設(shè)備(例如磁帶驅(qū)動器、軟盤驅(qū)動器、硬盤驅(qū)動器、光盤驅(qū)動器以及諸如此類))。
[0059]將了解的是,本文所描繪和描述的功能可以實現(xiàn)成軟件(例如,經(jīng)由一個或多個處理器上的軟件的實現(xiàn)方式)和/或可以實現(xiàn)成硬件(例如,使用通用計算機、一個或多個專用集成電路(ASIC)和/或任何其它硬件等同物)。
[0060]將了解的是,本文所描繪和描述的功能可以實現(xiàn)成軟件(例如,用于在通用計算機上執(zhí)行(例如,經(jīng)由通過一個或多個處理器來執(zhí)行)以便實現(xiàn)專用計算機)和/或可以實現(xiàn)成硬件(例如,使用一個或多個專用集成電路(ASIC)和/或一個或多個其它硬件等同物)。
[0061]在一個實施例中,合作進程505可以被加載到存儲器404上并且由處理器502來執(zhí)行以實現(xiàn)如本文所述的功能。因此,可以將合作進程505(包含相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu))存儲在計算機可讀存儲介質(zhì)上,例如RAM存儲器、磁或光驅(qū)動器或磁盤以及諸如此類。
[0062]將了解的是,圖5中描繪的計算機500提供了適用于實現(xiàn)本文所述的功能元素和/或本文所述的功能元素中的部分功能元素的通用架構(gòu)和功能。例如,計算機500提供了適用于實現(xiàn)主用進程110p、被配置為托管主用進程IlOp的設(shè)備、備用進程110B、被配置為托管備用進程I1b的設(shè)備、環(huán)境120的設(shè)備以及諸如此類中的一個或多個的通用架構(gòu)和功能。
[0063]可以預(yù)期的是,本文中被論述為軟件方法的步驟中的一些步驟可以在硬件內(nèi)實現(xiàn),例如作為與處理器合作以執(zhí)行各種方法步驟的電路。本文所描述的功能/元素中的部分功能和元素可以實現(xiàn)成計算機程序產(chǎn)品,其中當由計算機處理計算機指令時,計算機指令適應(yīng)計算機的操作使得調(diào)用或以其它方式提供本文所述的方法和/或技術(shù)。用于調(diào)用本發(fā)明方法的指令可以被存儲在固定或可移動介質(zhì)中,經(jīng)由廣播或其它信號承載介質(zhì)中的數(shù)據(jù)流來傳送,和/或存儲在根據(jù)指令進行操作的計算機設(shè)備內(nèi)的存儲器內(nèi)。
[0064]在權(quán)利要求書中指定了各種實施例的方面。在下文的帶有編號的權(quán)利要求中限定了多個實施例的這些和其它方面。
[0065]1.一種用于同步主用進程和備用進程之間的狀態(tài)的裝置,包括:
[0066]至少一個存儲器,其被配置為維護與同步進程的多個相應(yīng)時期相關(guān)聯(lián)的多個輸出緩沖器,所述同步進程被配置為使所述主用進程的狀態(tài)信息與所述備用進程的狀態(tài)信息同步;以及
[0067]處理器,其被配置為:
[0068]在當前時期期間:
[0069]計算針對所述當前時期的狀態(tài)更新信息,所述狀態(tài)更新信息表示自從先前時期所述主用進程的所述狀態(tài)信息的改變;
[0070]在與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器中緩沖在所述當前時期期間生成的輸出消息;以及
[0071]發(fā)起新的時期,該新時期獨立于從所述備用進程接收針對所述先前時期的狀態(tài)更新確認,該狀態(tài)更新確認確定了由所述備用進程接收到所述主用進程在所述先前時期確定的狀態(tài)更新信息。
[0072]2.根據(jù)權(quán)利要求1所述的裝置,其中所述處理器被配置為:
[0073]在所述當前時期期間,接收輸入消息,并處理所述輸入消息以用于生成至少一部分所述輸出消息。
[0074]3.根據(jù)權(quán)利要求1所述的裝置,其中所述處理器被配置為:
[0075]在所述當前時期期間,執(zhí)行本地處理以用于生成至少一部分所述輸出消息。
[0076]4.根據(jù)權(quán)利要求1所述的裝置,其中所述處理器被配置為:
[0077]在從所述備用進程接收到針對所述當前時期的狀態(tài)更新確認,并且所有先前時期的輸出消息都已經(jīng)從其相應(yīng)的輸出緩沖器釋放的情況下,從與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器釋放所述輸出消息。
[0078]5.根據(jù)權(quán)利要求4所述的裝置,其中所述處理器被配置為:將來自所述輸出緩沖器的所述輸出消息釋放到與所述主用進程和所述備用進程相關(guān)聯(lián)的環(huán)境。
[0079]6.根據(jù)權(quán)利要求5所述的裝置,其中所述環(huán)境包括:通信網(wǎng)絡(luò)和被配置為與所述主用進程通信的至少一個其它進程。
[0080]7.根據(jù)權(quán)利要求1所述的裝置,其中所述處理器被配置為:
[0081]監(jiān)測來自所述備用進程的所述備用進程已經(jīng)接收并處理了與所述當前時期相關(guān)聯(lián)的所述狀態(tài)更新信息的確認。
[0082]8.根據(jù)權(quán)利要求7所述的裝置,其中所述處理器被配置為:
[0083]在接收到所述確認的情況下,確定所述所有先前時期的輸出消息是否已經(jīng)從其相應(yīng)的輸出緩沖器釋放了。
[0084]9.根據(jù)權(quán)利要求8所述的裝置,其中所述處理器被配置為:
[0085]在作出了所述所有先前時期的輸出消息還沒有從其相應(yīng)的輸出緩沖器釋放的確定的情況下,延時釋放來自與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器的所述輸出消息。
[0086]10.根據(jù)權(quán)利要求8所述的裝置,其中所述處理器被配置為:
[0087]在作出了所述所有先前時期的輸出消息已經(jīng)從其相應(yīng)的輸出緩沖器釋放的確定的情況下,釋放來自與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器的所述輸出消息。
[0088]11.一種用于同步主用進程和備用進程之間的狀態(tài)的方法,所述方法包括:
[0089]使用處理器和至少一個存儲器以用于:
[0090]計算針對同步進程的當前時期的狀態(tài)更新信息,所述同步進程被配置為使主用進程的狀態(tài)信息與備用進程的狀態(tài)信息同步,其中在所述當前時期期間計算所述狀態(tài)更新信息,其中所述狀態(tài)更新信息表示自從先前時期所述主用進程的所述狀態(tài)信息的改變;
[0091]在與所述當前時期相關(guān)聯(lián)的輸出緩沖器中緩沖在所述當前時期期間生成的輸出消息,其中在所述當前時期期間來緩沖所述輸出消息;以及
[0092]發(fā)起新的時期,該新時期獨立于從所述備用進程接收的針對所述先前時期的狀態(tài)更新確認,該狀態(tài)更新確認確認了由所述備用進程接收到所述主用進程在所述先前時期確定的狀態(tài)更新信息。
[0093]12.根據(jù)權(quán)利要求11所述的方法,還包括:
[0094]在所述當前時期期間,接收輸入消息,并處理所述輸入消息以用于生成至少一部分所述輸出消息。
[0095]13.根據(jù)權(quán)利要求11所述的方法,還包括:
[0096]在所述當前時期期間,執(zhí)行本地處理以用于生成至少一部分所述輸出消息。
[0097]14.根據(jù)權(quán)利要求11所述的方法,還包括:
[0098]在從所述備用進程接收到針對所述當前時期的狀態(tài)更新確認,并且所有先前時期的輸出消息都已經(jīng)從其相應(yīng)的輸出緩沖器釋放的情況下,從與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器釋放所述輸出消息。
[0099]15.根據(jù)權(quán)利要求14所述的方法,其中將來自所述輸出緩沖器的所述輸出消息釋放到與所述主用進程和所述備用進程相關(guān)聯(lián)的環(huán)境。
[0100]16.根據(jù)權(quán)利要求15所述的方法,其中所述環(huán)境包括:通信網(wǎng)絡(luò)和被配置為與所述主用進程通信的至少一個其它進程。
[0101]17.根據(jù)權(quán)利要求11所述的方法,還包括:
[0102]監(jiān)測來自所述備用進程的所述備用進程已經(jīng)接收并處理了與所述當前時期相關(guān)聯(lián)的所述狀態(tài)更新信息的確認。
[0103]18.根據(jù)權(quán)利要求17所述的方法,還包括:
[0104]在接收到所述確認的情況下,確定所述所有先前時期的輸出消息是否已經(jīng)從其相應(yīng)的輸出緩沖器釋放了。
[0105]19.根據(jù)權(quán)利要求18所述的方法,還包括:
[0106]在作出了所述所有先前時期的輸出消息還沒有從其相應(yīng)的輸出緩沖器釋放的確定的情況下,延時釋放來自與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器的所述輸出消息。
[0107]20.根據(jù)權(quán)利要求18所述的方法,還包括:
[0108]在作出了所述所有先前時期的輸出消息都已經(jīng)從其相應(yīng)的輸出緩沖器釋放的確定的情況下,釋放來自與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器的所述輸出消息。
[0109]21.一種存儲指令的計算機可讀存儲介質(zhì),當由計算機執(zhí)行所述指令時,所述指令使得所述計算機執(zhí)行用于在主用進程和備用進程之間進行同步的方法,所述方法包括:
[0110]計算針對同步進程的當前時期的狀態(tài)更新信息,所述同步進程被配置為使主用進程的狀態(tài)信息與備用進程的狀態(tài)信息同步,其中在所述當前時期期間計算所述狀態(tài)更新信息,其中所述狀態(tài)更新信息表示自從先前時期所述主用進程的所述狀態(tài)信息的改變;
[0111]在與所述當前時期相關(guān)聯(lián)的輸出緩沖器中緩沖在所述當前時期期間生成的輸出消息,其中在所述當前時期期間來緩沖所述輸出消息;以及
[0112]發(fā)起新的時期,該新時期獨立于從所述備用進程接收的針對所述先前時期的狀態(tài)更新確認,該狀態(tài)更新確認確認了由所述備用進程接收到所述主用進程在所述先前時期確定的狀態(tài)更新信息。
[0113]雖然本文中已經(jīng)示出并詳細描述了并入本發(fā)明的教示的各種實施例,但是本領(lǐng)域的技術(shù)人員能夠容易地設(shè)計出仍然并入這些教示的許多其它各種實施例。
【權(quán)利要求】
1.一種用于同步主用進程和備用進程之間的狀態(tài)的裝置,包括: 至少一個存儲器,其被配置為維護與同步進程的多個相應(yīng)時期相關(guān)聯(lián)的多個輸出緩沖器,所述同步進程被配置為使所述主用進程的狀態(tài)信息與所述備用進程的狀態(tài)信息同步;以及 處理器,其被配置為: 在當前時期期間: 計算針對所述當前時期的狀態(tài)更新信息,所述狀態(tài)更新信息表示自從先前時期所述主用進程的所述狀態(tài)信息的改變; 在與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器中緩沖在所述當前時期期間生成的輸出消息;以及 發(fā)起新的時期,該新時期獨立于從所述備用進程接收的針對所述先前時期的狀態(tài)更新確認,該狀態(tài)更新確認確認了由所述備用進程接收到所述主用進程在所述先前時期確定的狀態(tài)更新信息。
2.根據(jù)權(quán)利要求1所述的裝置,其中所述處理器被配置為: 在所述當前時期期間,接收輸入消息,并處理所述輸入消息以用于生成至少一部分所述輸出消息。
3.根據(jù)權(quán)利要 求1所述的裝置,其中所述處理器被配置為: 在所述當前時期期間,執(zhí)行本地處理以用于生成至少一部分所述輸出消息。
4.根據(jù)權(quán)利要求1所述的裝置,其中所述處理器被配置為: 在從所述備用進程接收到針對所述當前時期的狀態(tài)更新確認,并且所有先前時期的輸出消息都已經(jīng)從其相應(yīng)的輸出緩沖器釋放的情況下,從與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器釋放所述輸出消息。
5.根據(jù)權(quán)利要求4所述的裝置,其中所述處理器被配置為:將來自所述輸出緩沖器的所述輸出消息釋放到與所述主用進程和所述備用進程相關(guān)聯(lián)的環(huán)境。
6.根據(jù)權(quán)利要求1所述的裝置,其中所述處理器被配置為: 監(jiān)測來自所述備用進程的所述備用進程已經(jīng)接收并處理了與所述當前時期相關(guān)聯(lián)的所述狀態(tài)更新信息的確認。
7.根據(jù)權(quán)利要求6所述的裝置,其中所述處理器被配置為: 在接收到所述確認的情況下,確定所述所有先前時期的輸出消息是否已經(jīng)從其相應(yīng)的輸出緩沖器釋放了。
8.根據(jù)權(quán)利要求7所述的裝置,其中所述處理器被配置為: 在作出了所述所有先前時期的輸出消息還沒有從其相應(yīng)的輸出緩沖器釋放的確定的情況下,延時釋放來自與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器的所述輸出消息;以及 在作出了所述所有先前時期的輸出消息都已經(jīng)從其相應(yīng)的輸出緩沖器釋放的確定的情況下,釋放來自與所述當前時期相關(guān)聯(lián)的所述輸出緩沖器的所述輸出消息。
9.一種用于同步主用進程和備用進程之間的狀態(tài)的方法,所述方法包括: 使用處理器和至少一個存儲器以用于: 計算針對同步進程的當前時期的狀態(tài)更新信息,所述同步進程被配置為使主用進程的狀態(tài)信息與備用進程的狀態(tài)信息同步,其中在所述當前時期期間計算所述狀態(tài)更新信息,其中所述狀態(tài)更新信息表示自從先前時期所述主用進程的所述狀態(tài)信息的改變; 在與所述當前時期相關(guān)聯(lián)的輸出緩沖器中緩沖在所述當前時期期間生成的輸出消息,其中在所述當前時期期間來緩沖所述輸出消息;以及 發(fā)起新的時期,該新時期獨立于從所述備用進程接收的針對所述先前時期的狀態(tài)更新確認,該狀態(tài)更新確認確認了由所述備用進程接收到所述主用進程在所述先前時期確定的狀態(tài)更新信息。
10.一種存儲指令的計算機可讀存儲介質(zhì),當由計算機執(zhí)行所述指令時,所述指令使得所述計算機執(zhí)行用于在主用進程和備用進程之間進行同步的方法,所述方法包括: 計算針對同步進程的當前時期的狀態(tài)更新信息,所述同步進程被配置為使主用進程的狀態(tài)信息與備用進程的狀態(tài)信息同步,其中在所述當前時期期間計算所述狀態(tài)更新信息,其中所述狀態(tài)更新信息表示自從先前時期所述主用進程的所述狀態(tài)信息的改變; 在與所述當前時期相關(guān)聯(lián)的輸出緩沖器中緩沖在所述當前時期期間生成的輸出消息,其中在所述當前時期期間來緩沖所述輸出消息;以及 發(fā)起新的時期,該新時期獨立于從所述備用進程接收的針對所述先前時期的狀態(tài)更新確認,該狀態(tài)更新確認確認了由所述備用進程接收到所述主用進程在所述先前時期確定的狀態(tài)更新信息。
【文檔編號】G06F11/14GK104054058SQ201280065022
【公開日】2014年9月17日 申請日期:2012年11月19日 優(yōu)先權(quán)日:2011年12月29日
【發(fā)明者】K·納姆約什, P·科波爾, T·斯塔斯波羅斯, G·T·維爾馮 申請人:阿爾卡特朗訊公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
萝北县| 荣昌县| 泸州市| 庄河市| 乌拉特中旗| 德令哈市| 英德市| 永福县| 中西区| 北安市| 临沧市| 平谷区| 灌云县| 秦安县| 喀什市| 靖宇县| 瑞安市| 山东省| 新和县| 五莲县| 瓮安县| 甘德县| 博爱县| 连城县| 万全县| 鄂尔多斯市| 安宁市| 平凉市| 垫江县| 安乡县| 温泉县| 南开区| 镇江市| 鄯善县| 靖安县| 平罗县| 长泰县| 莒南县| 六枝特区| 凉城县| 米易县|