專利名稱:在耦合會話環(huán)境內(nèi)合并一簇會話的會話信息的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于在耦合會話環(huán)境內(nèi)合并針對一簇會話的會話信息的方法、系統(tǒng)和程序。
背景技術(shù):
災(zāi)難恢復(fù)系統(tǒng)一般解決兩類故障,在單個時間點上突然發(fā)生的災(zāi)難性故障或者在一段時間內(nèi)的數(shù)據(jù)遺失。在第二類逐漸發(fā)生的災(zāi)難中,對卷(volume)的更新可能被遺失。為了幫助恢復(fù)數(shù)據(jù)更新,可以在遠程位置提供數(shù)據(jù)的拷貝。當應(yīng)用系統(tǒng)正在往主存儲設(shè)備中寫新的數(shù)據(jù)的時候,典型地進行這樣的雙重或影射拷貝。不同的拷貝技術(shù)可被用于在次級地點維護數(shù)據(jù)的遠程拷貝,諸如國際商業(yè)機器公司(“IBM”)的Extended RemoteCopy(XRC)、Coupled XRC(CXRC)、Global Copy、以及Global MirrorCopy。在IBM的出版物“IBM TotalStorage DS6000 SeriesCopy Servicesin Open Environments”(IBM文件號為SG24-6783-00,2005年9月)、以及“IBM TotalStorage Enterprise Storage ServerImplementing ESSCopy Services with IBM eServer zSeries”(IBM文件號為SG24-5680-04,2004年7月)中描述了這些不同的拷貝技術(shù)。
在數(shù)據(jù)鏡像系統(tǒng)中,以卷對的方式維護數(shù)據(jù)。一個卷對包括主存儲設(shè)備中的卷和次級存儲設(shè)備中的相應(yīng)的卷,其包括與在主卷內(nèi)維護的數(shù)據(jù)相同的拷貝。可以使用主存儲控制器和次級存儲控制器來控制對主存儲設(shè)備和次級存儲設(shè)備的訪問。在某種備份系統(tǒng)中,使用系統(tǒng)復(fù)用定時器來提供跨系統(tǒng)的統(tǒng)一時間,這樣由不同的應(yīng)用往不同的主存儲設(shè)備寫入的更新使用一致的日歷(TOD)值作為時間戳。當往主存儲中的卷寫入數(shù)據(jù)集時,應(yīng)用系統(tǒng)為這些數(shù)據(jù)集加上時間戳。數(shù)據(jù)更新的完整性涉及確保在卷對中以與在主卷中所完成數(shù)據(jù)更新的相同次序而在次級卷處完成更新。由應(yīng)用程序所提供的時間戳確定數(shù)據(jù)更新的邏輯順序。
在諸如數(shù)據(jù)庫系統(tǒng)這樣的許多應(yīng)用程序中,如果前面的寫操作沒有進行則某些寫操作不能進行;否則,數(shù)據(jù)的完整性將被危及。完整性依賴于前面發(fā)生的數(shù)據(jù)寫操作的這種數(shù)據(jù)寫操作被公知為依賴寫操作。當所有的寫操作已經(jīng)以它們的邏輯次序被轉(zhuǎn)移時,也即,當所有的依賴寫操作在依賴于它們的寫操作進行之前首先被轉(zhuǎn)移時,主存儲和次級存儲中的卷是一致的。一致性組對于在一致性組內(nèi)具有等于或早于一致性時間戳的時間戳的所有數(shù)據(jù)寫操作具有一致性時間。一致性組是對主卷的更新的集合,以保證以一致的方式進行依賴寫操作。一致性時間是到系統(tǒng)確保對次級卷的更新是一致的之時的最近的時間。一致性組維護卷以及存儲設(shè)備之間的數(shù)據(jù)一致性。這樣,當從次級卷恢復(fù)數(shù)據(jù)時,所恢復(fù)的數(shù)據(jù)將是一致的。
一致性組是在會話中形成的。所有被分配給一個會話的卷對將在相同的一致性組內(nèi)維護它們的更新。這樣,該會話被用于確定在一致性組內(nèi)將被分組在一起的卷。一致性組在日志設(shè)備或卷內(nèi)形成。從日志中,從一致性組中收集的更新被應(yīng)用到次級卷。如果當來自日志的更新正被應(yīng)用到次級卷的時候系統(tǒng)發(fā)生故障,則在恢復(fù)操作期間,該未完成對次級卷的寫操作的更新可以從日志中被恢復(fù)并且被應(yīng)用到該次級卷。
在諸如Coupled XRC環(huán)境(CXRC)這樣的耦合會話環(huán)境中,遍布不同處理器的多個會話通過主數(shù)據(jù)集來協(xié)調(diào)它們的更新,該主數(shù)據(jù)集提供在該耦合會話環(huán)境中每個會話的最近更新的時間。為了在所有會話之間維護數(shù)據(jù)的一致性,會話必須將更新了的會話信息寫入該主數(shù)據(jù)集以供耦合環(huán)境中其它會話讀取。會話需要訪問該主數(shù)據(jù)集以確定在所有會話間的最近更新時間的最小值,使得沒有會話應(yīng)用比最近更新時間的最小值更大的更新。對主數(shù)據(jù)集執(zhí)行讀操作和寫操作的會話可以鎖定其它會話不讓其它會話執(zhí)行這種操作。當在這種耦合會話環(huán)境中會話的數(shù)量增加時,對所共享的主數(shù)據(jù)集的讀操作和寫操作的數(shù)量也增加,其可導(dǎo)致對其它試圖進行訪問的會話的延遲。
由于這些原因,在本領(lǐng)域存在提供用來改善對主數(shù)據(jù)集的使用和管理的技術(shù)的需求。
發(fā)明內(nèi)容
提供一種方法、系統(tǒng)和程序,用于在耦合會話環(huán)境中合并針對一簇會話的會話信息。針對包括簇的多個會話中的每個會話的信息被存儲在處理器會話的存儲器內(nèi)。每個會話與至少一個主系統(tǒng)和至少一個次級系統(tǒng)相關(guān)聯(lián),其中在每個會話中,更新被從該至少一個主系統(tǒng)拷貝到該至少一個次級系統(tǒng)。基于針對所述簇內(nèi)的會話的會話信息,對存儲器中針對多個會話的會話信息進行處理以生成針對所述簇的合并了的會話信息。將針對所述簇的合并了的會話信息寫入維護針對會話的信息的主數(shù)據(jù)集。
在另一實施例中,關(guān)于未包括在簇中的會話的信息被寫入主數(shù)據(jù)集。該未包括在簇中的會話與至少一個主系統(tǒng)和至少一個次級系統(tǒng)相關(guān)聯(lián),以使更新被從該至少一個主系統(tǒng)拷貝到該至少一個次級系統(tǒng)。
在另一實施例中,所述處理器包括第一處理器,其中未包括在簇中的會話由第二處理器來管理,以及其中該第一處理器管理對于針對該簇中會話的更新的拷貝。
在另一實施例中,所述簇包括第一簇,并且主數(shù)據(jù)集適于包括來自附加簇的信息,該附加簇包括由附加處理器所管理的會話。
在另一實施例中,對所述信息的處理包括確定針對在存儲器中所指示的每個會話的最近更新時間,其中合并了的信息包括所確定的最近更新時間的最小值。
在另一實施例中,主數(shù)據(jù)集適于包括來自由附加處理器來管理的耦合會話的信息,該耦合會話與至少一個主存儲和至少一個次級存儲相關(guān)聯(lián)。該附加處理器讀取主數(shù)據(jù)集內(nèi)的合并了的信息來確定在主數(shù)據(jù)集中所指示的所有耦合會話之間的最近更新時間的最小值,以在耦合會話之間維護數(shù)據(jù)的一致性。
在另一實施例中,對所述信息的處理包括確定針對在存儲器中所指示的每個會話的錯誤標記的值,其中生成合并了的信息包括對所確定的所有錯誤標記執(zhí)行或(OR)操作,其中管理附加會話的附加處理器響應(yīng)于確定出合并了的錯誤標記指示錯誤而使更新失效。
在另一實施例中,對所述信息的處理包括確定針對在存儲器中所指示的每個會話的狀態(tài)標記的值。通過對所確定的值執(zhí)行第一類操作以確定針對第一操作的合并了的信息,以及對所確定的值執(zhí)行第二類操作以確定針對第二操作的合并了的信息,合并了的信息被生成。
在另一實施例中,狀態(tài)標記指示會話是否與主數(shù)據(jù)集中所呈現(xiàn)的其它會話相一致,其中第一類操作包括或(OR)操作并且其中第二類操作包括與(AND)操作。
在另一實施例中,所述主數(shù)據(jù)集適于包括來自由附加處理器管理的會話的信息,所述會話與至少一個主存儲和至少一個次級存儲相關(guān)聯(lián)。管理至少一個會話的一個處理器處理針對在所述主數(shù)據(jù)集內(nèi)指示的每個簇或未包括在簇內(nèi)的會話的信息,以獲得提供關(guān)于在主數(shù)據(jù)集內(nèi)指示的所有會話的信息的值,并且對該值進行處理以確定是否執(zhí)行將更新從主系統(tǒng)寫入次級系統(tǒng)。
圖1示出網(wǎng)絡(luò)計算環(huán)境的實施例。
圖2示出單獨會話信息的實施例。
圖3示出合并了的會話信息的實施例。
圖4示出更新會話信息的操作的實施例。
圖5示出下述操作的實施例,該操作合并針對作為簇的一部分的會話的會話信息。
圖6示出下述操作的實施例,該操作將對主存儲的更新拷貝到次級存儲。
圖7示出下述操作的實施例,該操作用于合并并使用會話信息的功能。
具體實施例方式
圖1示出網(wǎng)絡(luò)計算環(huán)境的實施例。網(wǎng)絡(luò)2包括多個主控制單元4a、...、4m、4n;主存儲6a、...、6m、6n;管理將對主存儲6a、...、6m、6n的更新拷貝到次級控制單元10a、...、10m、10n和相應(yīng)的次級存儲12a、...、12m、12n的數(shù)據(jù)搬移器(mover)8a、...、8m、8n;將更新寫入主存儲6a、...、6m、6n的主機14;系統(tǒng)定時器18;以及主數(shù)據(jù)集20。在處理器22a和22b內(nèi)實現(xiàn)數(shù)據(jù)搬移器8a、...、8m、8n。組件4a、...、4m、4n,6a、...、6m、6n,8a、...、8m、8n,10a、...、10m、10n,12a、...、12m、12n,14,18,20,22a,22b都連接到網(wǎng)絡(luò)2,并且網(wǎng)絡(luò)2使能在這些組件之間進行通信。網(wǎng)絡(luò)2可包括一個或多個交換機以在網(wǎng)絡(luò)2的不同單元間提供一條或多條通信路徑。
在所描述的實施例中,單個處理器22a可包括多個系統(tǒng)數(shù)據(jù)搬移器(SDM)程序8a、...、8m,其中每個SDM 8a、...、8m對一個或多個會話的更新的轉(zhuǎn)移進行管理。每個會話與主卷和次級卷相關(guān)聯(lián),以使得應(yīng)用到主卷的更新被拷貝到相關(guān)聯(lián)的次級卷。在一個會話中所關(guān)聯(lián)的主卷和次級卷可以由一個或多個主控制單元4a、...、4m以及一個或多個次級控制單元4a、...、4m來管理。單個處理器22a所維護的多個會話包括簇24。這樣,簇24表示在單個處理器22a中所管理的會話。每個會話可以在處理器22a中被分配它自己的地址空間。
諸如單獨會話25這樣的單獨會話未被包括在多個會話的簇中。在這種情況下,維護用于單獨會話25的SDM 8n的處理器22b不包括用于其它任何會話的SDM。圖1只示出一個簇24和一個單獨會話25,其正維護數(shù)據(jù)的一致性。在附加實施例中,可以存在多個簇和多個不是簇的一部分的單獨會話。在另一實施例中,一個處理器可以實現(xiàn)未在簇內(nèi)耦合的多個會話,使得在單個處理器內(nèi)實現(xiàn)的每個會話包括未成簇的、單獨的會話。
系統(tǒng)數(shù)據(jù)搬移器(SDM)程序8a、...、8n從主存儲6a、...、6n中讀取更新,并形成來自主存儲6a、...、6n中的更新的一致性組,以寫入到相應(yīng)的次級存儲12a、...、12n。在主控制單元4a、...、4n處,更新可以被寫入到主控制單元4a、...、4n的高速緩存中的側(cè)文件(side file)。接著,更新可被轉(zhuǎn)移到由SDM 8a、...、8n所維護的日志26a、...、26n??梢栽诒P存儲設(shè)備中實現(xiàn)日志26a、...、26n。在日志26a、...、26n中的每個中,更新被安排進一致性組中。日志26a、...、26n可以存儲一個或多個一致性組。一致性組對于一致性組中具有等于或早于一致性時間戳的時間戳的所有數(shù)據(jù)寫操作具有一致性時間。一致性組是對主卷的更新的集合,以保證以一致的方式進行依賴寫操作。一致性時間是到系統(tǒng)確保對次級卷的更新是一致的之時的最近的時間。一致性組維護卷以及存儲設(shè)備之間的數(shù)據(jù)一致性。這樣,當從次級卷恢復(fù)數(shù)據(jù)時,所恢復(fù)的數(shù)據(jù)將是一致的。
一致性組是在會話中形成的。所有被分配給一個會話的主卷對和次級卷對將在相同的一致性組內(nèi)維護它們的更新。這樣,這些會話被用于確定將在一致性組內(nèi)被分組在一起的卷。如果當來自日志26a、...、26n的更新正被應(yīng)用到次級卷時系統(tǒng)發(fā)生故障,則在恢復(fù)操作期間,該未完成對次級卷的寫操作的更新可從日志26a、...、26n中被恢復(fù)并且被應(yīng)用到該次級卷。
在圖1中,SDM 8a、...、8n包括在處理器22a、22b中實現(xiàn)的程序。在可選擇的實施例中,可以在其它系統(tǒng)中實現(xiàn)SDM 8a、...、8n,諸如主控制單元4a、...、4n,次級控制單元10a、...、10n等等。
管理簇24的多個會話的處理器22a包括簇管理器28程序,其管理會話信息到主數(shù)據(jù)集20的讀取和寫入。SDM 8n將針對不在簇內(nèi)的會話的會話信息寫入主數(shù)據(jù)集20。管理一簇會話的處理器22a還包括公共存儲器30。簇24內(nèi)的會話信息被寫入該公共存儲器30。簇管理器28合并在公共存儲器30內(nèi)針對多個會話的會話信息,并且將針對簇24中的所有會話的合并了的會話信息寫入主數(shù)據(jù)集20。另外,該簇管理器28合并主數(shù)據(jù)集20中的信息,以將其提供給簇24中的會話,供它們在會話SDM 8a、...、8m將更新從主儲存拷貝到次級儲存時使用。
主數(shù)據(jù)集20包括會話列表,其一致性在各會話間被維護。主數(shù)據(jù)集20的列表包括針對不是簇24的一部分的單獨會話的信息和針對每個簇的單個合并了的項,該項提供針對簇24中所有會話的合并了的信息。主數(shù)據(jù)集20可以駐留在存儲6a、...、6n,12a、...、12n中的卷上,以及存儲在盤存儲設(shè)備中。針對主/次級控制對的日志數(shù)據(jù)集26a、...、26n可以駐留在任何設(shè)備上。在圖1中,每個SDM 8a、...、8m、8n是一個會話的一部分,其信息在主數(shù)據(jù)集20中被指示。簇管理器28和單獨SDM 8n被使能訪問主數(shù)據(jù)集20。
系統(tǒng)定時器18提供用于更新的時間戳,以確保在所有SDM 8a、...、8n之間使用公共的時間,以給將更新寫入卷的應(yīng)用程序提供公共的時間參考,以確保更新沒有被失序地鏡像。一旦在一致性組內(nèi)日志26a、...、26n中的更新被組織起來,那么一致性組內(nèi)的更新就被應(yīng)用到次級存儲12a、...、12n。一致性組的創(chuàng)建確保系統(tǒng)將實時地把數(shù)據(jù)影射到遠程場所,一同被影射的還有任何類型的數(shù)據(jù)的更新順序完整性。使用一致性組確保了會話內(nèi)應(yīng)用到次級存儲12a、...、12n的更新是像一致性組的一致性時間一樣地一致,并且在各會話間一致。如果當從日志26a、...、26n向次級存儲12a、...、12n中的次級卷寫入更新時發(fā)生故障,則在恢復(fù)期間,在系統(tǒng)故障期間被中斷的更新可以從日志中被恢復(fù)并且被重新應(yīng)用到該次級卷。這樣,確保了在作為時間點的恢復(fù)期間數(shù)據(jù)在會話內(nèi)和各會話間是一致的??截惒僮魇褂弥鲾?shù)據(jù)集20來維護會話間的一致性,諸如國際商業(yè)機器公司(“IBM”)的Extended Remote Copy(XRC)、Coupled XRC(CXRC)、Global Copy、Global Mirror Copy、以及諸如Peer-to-Peer Remote Copy(PPRC)這樣的同步鏡像。
網(wǎng)絡(luò)2可包括存儲區(qū)域網(wǎng)絡(luò)(SAN)、局域網(wǎng)(LAN)、內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)、廣域網(wǎng)(WAN)、點對點網(wǎng)絡(luò)、無線網(wǎng)、判優(yōu)環(huán)形網(wǎng)絡(luò)等等。存儲6a、...、6n,12a、...、12n可包括存儲設(shè)備陣列,諸如簡單磁盤捆束(JBOD)、直接存取存儲設(shè)備(DASD)、獨立磁盤冗余陣列(RAID)的陣列、虛擬化設(shè)備、磁帶存儲、閃存等等。處理器22a、22b可包括具有操作系統(tǒng)的分離的系統(tǒng),或包括在單個系統(tǒng)中實現(xiàn)的虛擬處理器或多個邏輯分區(qū)(LPAR)中之一。
主控制單元4a、...、4n和次級控制單元10a、...、10n分別包括操作系統(tǒng)32a、...、32n以及34a、...、34n,并且對程序進行鏡像以執(zhí)行拷貝操作。主機14包括操作系統(tǒng)36和一個或多個應(yīng)用38,其將I/O請求傳送給主控制單元4a、...、4n。
圖2示出單獨會話信息50的實施例。單獨會話信息50可包括簇24中的每個SDM 8a、...、8m寫入公共存儲器30的會話信息,或者包括SDM8n將其寫入主數(shù)據(jù)集20的針對單獨會話25的會話信息。單獨會話信息50包括會話標識符(ID)52;寫入日志26a、...、26n的在主控制單元4a、...、4n處的最近更新的最近更新時間54;指示會話是否發(fā)生錯誤的錯誤標記56;指示會話是否與信息被維護在主數(shù)據(jù)集20中的其它會話相一致的互鎖(interlock)標志58;以及指示包括在會話中的多個卷的多個卷字段60。
圖3示出合并了的會話信息70的實施例,該信息由簇管理器28從在用于簇24內(nèi)的會話的公共存儲器30中所維護的單獨會話信息50生成。針對一個簇24的合并了的會話信息包括簇標識符72;針對簇24內(nèi)所有會話的最近更新時間74;合并了的錯誤標記76,其可通過將針對簇24內(nèi)所有會話的單獨會話信息50的錯誤標記56執(zhí)行或操作(OR)來形成;兩個合并了的互鎖標志78和80,其通過對針對簇24內(nèi)所有會話的單獨會話信息50的互鎖標志58執(zhí)行不同操作來形成;以及全部數(shù)目的卷82,其包括在所有成簇會話內(nèi)的全部數(shù)目的卷。例如,第一互鎖標記78可通過將針對簇24內(nèi)會話的所有單獨互鎖標志58執(zhí)行或操作來形成,而第二互鎖標記80可通過將針對簇24內(nèi)會話的單獨互鎖標志58執(zhí)行與操作(AND)來形成。維護用于互鎖標志的不同的合并了的值的原因是不同的操作/功能可能需要以不同方式形成的合并了的信息,諸如對值執(zhí)行或操作以及對值執(zhí)行與操作。
圖2和圖3分別示出單獨會話信息和成簇的會話信息的一實施例。在附加實現(xiàn)中,不同或附加信息可被包括用于單獨和成簇的會話信息。
圖4示出由SDM 8a、...、8n執(zhí)行來更新針對由SDM 8a、...、8n管理的會話的單獨會話信息50的操作。一旦SDM 8a、...、8n啟動(方框100)該操作來更新會話信息時,如果(方框102)會話不是簇的一部分,例如是單獨會話25,則SDM 8n就將該單獨會話信息50(例如會話的最近更新時間54、錯誤56和互鎖58標志)寫入(方框104)主數(shù)據(jù)集20。如果(方框102)會話是簇24的一部分,則SDM 8a、...、8m將單獨會話信息50寫入(方框106)用于簇24的通用存儲器30中的一項。
圖5示出由簇管理器28來執(zhí)行的操作的實施例,該操作將針對簇24的合并了的會話信息寫入主數(shù)據(jù)集20以合并并減少對主數(shù)據(jù)集20的寫操作的次數(shù)。一旦被調(diào)用(方框150)來合并信息,則簇管理器28處理(方框152)在用于簇24中的多個會話的存儲器30內(nèi)的單獨會話信息50,以生成針對簇24的合并了的會話信息70。方框152處的會話信息合并操作可以由方框154至168處的操作執(zhí)行。為了確定合并了的最近更新時間74,簇管理器28從單獨會話信息50中確定(方框154)在公共存儲器30中所指示的簇24中的每個會話的最近更新時間54。簇管理器28接著確定(方框156)合并了的最近更新時間74,其包括確定了的針對簇24中所有會話的最近更新時間的最小值。為了確定合并了的錯誤標記76,簇管理器28確定(方框158)在存儲器中所指示的針對每個會話的錯誤標記的值。通過對從公共存儲器30中確定的錯誤標記56執(zhí)行或操作來確定(方框160)合并了的錯誤標記76。
為了確定兩個合并了的互鎖會話信息值78和80,簇管理器28確定(方框162)來自公共存儲器30的簇24中的每個會話的互鎖標記的值。簇管理器28接著通過對簇24中的會話的互鎖標記58執(zhí)行第一類操作,諸如對針對簇24中的會話的單獨會話信息50中的所有互鎖標記執(zhí)行或操作,而確定(方框164)第一操作/功能的合并了的互鎖標記。第二類操作可以對單獨會話的互鎖標記58執(zhí)行(方框166),諸如與操作。當生成合并了的會話信息以供需要對相同數(shù)據(jù)進行不同操作的不同功能所使用時,不同操作可對相同會話信息執(zhí)行。簇管理器28接著將針對該簇的合并了的會話信息70寫入(方框168)主數(shù)據(jù)集20。
圖6示出由SDM 8a、...、8n執(zhí)行的、將對主存儲6a、...、6n的更新拷貝到次級存儲12a、...、12n的操作的實施例。響應(yīng)于被調(diào)用(方框200)來拷貝更新,SDM 8a、...、8n確定(方框202)針對網(wǎng)絡(luò)2中的每個簇24的合并了的錯誤標記76。通過讀取主數(shù)據(jù)集20或者通過調(diào)用用于所有簇的簇管理器28以訪問用于所有簇的公共存儲器以讀取簇會話的錯誤標記,SDM 8a、...、8n可獲得合并了的錯誤標記76。在一實施例中,用于成簇會話24的簇管理器28可訪問主數(shù)據(jù)集20,并且可合并針對其它簇和單獨會話25的主數(shù)據(jù)集20中的項以提供給SDM 8a、...、8m來使用。
通過讀取主數(shù)據(jù)集20,SDM 8a、...、8n還確定(方框204)針對未包括在簇內(nèi)的所有單獨會話25的錯誤標記56。SDM 8a、...、8n接著對所確定的所有錯誤標記(用于不在簇內(nèi)的單獨會話25以及針對簇的合并了的錯誤標記76)執(zhí)行(方框206)或操作。如果(方框208)或操作值指示錯誤,例如具有值“一”,則更新操作失效(方框210),因為一個會話的失效導(dǎo)致整個耦合會話環(huán)境失效。如果(方框208)或操作值指示在任何會話中都不存在錯誤,則SDM 8a、...、8n確定(方框212)針對每個簇的合并了的最近更新時間74(從簇管理器28中或讀取主數(shù)據(jù)集20)。SDM8a、...、8n通過讀取主數(shù)據(jù)集20還確定(方框214)針對未包括在簇24內(nèi)的所有單獨會話25的最近更新時間54。SDM 8a、...、8n接著確定(方框216)針對耦合環(huán)境中的所有會話的所確定的所有最近更新時間的最小值。SDM 8a、...、8n接著形成(方框218)在日志26a、...、26n內(nèi)具有小于或等于所有最近更新時間的最小值的時間的所有更新的一致性組,并且接著將所形成的一致性組內(nèi)的更新寫入(方框220)次級存儲12a、...、12n。這樣,維持了在耦合會話環(huán)境中所有成簇的會話和單獨會話間的一致性。
圖7示出由使用會話信息的不同功能執(zhí)行的操作的實施例。這些功能可以是SDM 8a、...、8n,簇管理器28或某種其它組件的一部分。響應(yīng)于功能之一被調(diào)用(方框250),功能(或其它組件)確定(方框252)每個簇24的合并了的互鎖標記78(從簇管理器中或讀取主數(shù)據(jù)集20),并且通過讀取主數(shù)據(jù)集20確定(方框254)針對未包括在簇內(nèi)的所有單獨會話25的互鎖標記58。接著對耦合環(huán)境中的所有會話的所確定的所有互鎖標記執(zhí)行(方框256)功能依賴操作(例如或操作、與操作、或其它功能),以確定所有會話間的合并了的功能依賴互鎖值。該功能使用(方框258)所確定的合并了的互鎖標記。在可選擇的實施例中,圖6的操作可針對除了互鎖標記之外的會話信息來執(zhí)行。
通過上述實施例,通過讓簇管理器來合并針對由單個處理器管理的簇中的會話的會話信息,一簇會話對主數(shù)據(jù)集的寫操作的次數(shù)被減少。另外,讀操作的次數(shù)被減少,因為對于每個簇來說,執(zhí)行與更新相關(guān)的操作所必需的信息(諸如最近更新時間和錯誤標記)被合并到合并了的會話信息中,所述合并了的會話信息提供該簇內(nèi)的多個會話的會話信息。這樣,隨著耦合環(huán)境中會話數(shù)目的增加,對主數(shù)據(jù)集的讀操作和寫操作的次數(shù)并不必定同樣增加,特別是對于被添加到簇內(nèi)的會話來說。減少對主數(shù)據(jù)集的讀操作和寫操作的次數(shù)減少了會話在訪問主數(shù)據(jù)集時在其它會話對主數(shù)據(jù)集的訪問完成之前必須等待的延遲。
附加的實施例細節(jié)所描述的操作可被實現(xiàn)成一種方法、裝置或制品,其使用標準的編程和/或工程技術(shù)來生產(chǎn)軟件、固件、硬件或它們的任何組合。所描述的操作可被實現(xiàn)成在“計算機可讀媒體”中維護的代碼,其中處理器可以從該計算機可讀媒體讀取并執(zhí)行該代碼。計算機可讀媒體可包括諸如磁存儲媒體(例如,硬盤驅(qū)動器、軟盤、磁帶等等)、光存儲(CD-ROM、DVD、光盤等等)、易失性和非易失性存儲器設(shè)備(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、閃存、固件、可編程邏輯等等)等等這樣的媒體。實現(xiàn)所描述的操作的代碼還可用硬件邏輯(例如,集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等等)來實現(xiàn)。另外,實現(xiàn)所描述操作的代碼還可用“傳輸信號”實現(xiàn),其中傳輸信號可通過空間或者通過諸如光纖、銅線等等這樣的傳輸媒體來進行傳播。代碼或邏輯在其中被編碼的傳輸信號還可包括無線信號、衛(wèi)星傳輸、射頻波、紅外信號、藍牙等等。代碼或邏輯在其中被編碼的傳輸信號能被發(fā)射臺發(fā)射并且能被接收臺接收,其中傳輸信號中被編碼的代碼或邏輯可被解碼并被存儲在接收臺和發(fā)射臺或設(shè)備中的硬件或計算機可讀媒體中。“制品”包括在其中可以實現(xiàn)代碼的計算機可讀媒體、硬件邏輯和/或傳輸信號。在其中實現(xiàn)上述操作的實施例的代碼被編碼的媒體可包括計算機可讀媒體或硬件邏輯。當然,本領(lǐng)域技術(shù)人員將認識到,可以在不偏離本發(fā)明的范圍的情況下對這種配置做許多修改,以及該制品可包括本領(lǐng)域公知的合適的信息承載媒體。
除非另外明確指出,否則術(shù)語“一實施例”、“實施例”、“一些實施例”、“該實施例”、“這些實施例”、“一個或多個實施例”、“某些實施例”以及“一個實施例”意指“本發(fā)明的一個或多個(但不是所有的)實施例”。
除非另外明確指出,術(shù)語“包括”、“包含”、“具有”以及它們的變體意指“包括但是并不局限于”。
除非另外明確指出,所列舉的項目列表并不暗指這些項目中的任何一個或所有這些項目是互斥的。
除非另外明確指出,術(shù)語“一個”和“該”意指“一個或多個”。
除非另外明確指出,彼此間進行通信的設(shè)備不必是處于彼此間的持續(xù)通信中。此外,彼此間進行通信的設(shè)備可以直接進行通信或者可以通過一個或多個中間物來間接進行通信。
對帶有多個相互間進行通信的組件的實施例的描述并不暗指所有這些組件都是必需的。相反,各種各樣的可選組件被描述以說明本發(fā)明的各種大量的可能實施例。
另外,雖然可以按順序描述過程步驟、方法步驟、算法等,但是這種過程、方法和算法可被配置成以可變的次序工作。換言之,可被描述的步驟的任何順序或次序未必指示這些步驟必需以那種次序來執(zhí)行。這里所描述的過程步驟可用任何實際次序來執(zhí)行。另外,某些步驟可被同時執(zhí)行。
當這里描述單個設(shè)備或物品時,很明顯,可用超過一個設(shè)備/物品(無論它們是否協(xié)作)來替代單個設(shè)備/物品。類似地,當這里描述超過一個設(shè)備或物品時(無論它們是否協(xié)作),很明顯,可用單個設(shè)備/物品來替代超過一個設(shè)備或物品或者可以用不同數(shù)目的設(shè)備/物品來替代所示出數(shù)目的設(shè)備或程序。設(shè)備的功能和/或特征可選地可以通過未明確描述成具有這種功能/特征的一個或更多其它設(shè)備來實現(xiàn)。這樣,本發(fā)明的其它實施例不需包括設(shè)備自身。
所說明的圖4、5、6和7的操作示出某些以某個次序發(fā)生的某些事件。在可選擇的實施例中,某些操作可以以不同的次序來執(zhí)行、被修改或移除。此外,可以給上述邏輯添加步驟并且仍然與所描述的實施例一致。另外,這里所描述的操作可以順序地發(fā)生或者某些操作可以被并行地處理。另外,操作可由單個處理單元或者分布式處理單元來執(zhí)行。
出于說明和描述的目的給出了對本發(fā)明的各種實施例的前述描述。其并不是旨在為了窮舉或者將本發(fā)明限制在所公開的準確形式??梢愿鶕?jù)上述講授做出許多修改和改變。其旨在使本發(fā)明的范圍不受這里的具體描述所限制,而是受權(quán)利要求的限制。上面的說明書、例子和數(shù)據(jù)提供了對制造和使用本發(fā)明的組成的完整的描述。因為可以在不偏離本發(fā)明的本質(zhì)和范圍的情況下做出本發(fā)明的許多實施例,所以本發(fā)明落在權(quán)利要求中。
權(quán)利要求
1.一種方法,包括在處理器的存儲器內(nèi)存儲針對多個包括簇的會話中的每個會話的會話信息,其中每個會話與至少一個主系統(tǒng)和至少一個次級系統(tǒng)相關(guān)聯(lián),其中在每個會話中,更新被從所述至少一個主系統(tǒng)拷貝至所述至少一個次級系統(tǒng);基于針對所述簇內(nèi)的會話的會話信息,對存儲器中針對多個會話的會話信息進行處理以生成針對所述簇的合并了的會話信息;以及將針對所述簇的合并了的會話信息寫入維護針對會話的信息的主數(shù)據(jù)集。
2.根據(jù)權(quán)利要求1所述的方法,還包括將關(guān)于未包括在所述簇中的會話的信息寫入所述主數(shù)據(jù)集,其中未包括在所述簇中的會話與至少一個主系統(tǒng)和至少一個次級系統(tǒng)相關(guān)聯(lián),以使更新被從所述至少一個主系統(tǒng)拷貝到所述至少一個次級系統(tǒng)。
3.根據(jù)權(quán)利要求2所述的方法,其中所述處理器包括第一處理器,其中未包括在所述簇中的會話由第二處理器來管理,其中所述第一處理器管理對于針對所述簇中的會話的更新的拷貝。
4.根據(jù)權(quán)利要求1所述的方法,其中所述簇包括第一簇,并且其中所述主數(shù)據(jù)集適于包括來自附加簇的信息,所述附加簇包括由附加處理器管理的會話。
5.根據(jù)權(quán)利要求1所述的方法,其中對所述信息的處理包括確定針對在所述存儲器中指示的每個會話的最近更新時間,其中所述合并了的信息包括所確定的最近更新時間的最小值。
6.根據(jù)權(quán)利要求5所述的方法,其中所述主數(shù)據(jù)集適于包括來自由附加處理器管理的耦合會話的信息,所述耦合會話與至少一個主存儲和至少一個次級存儲相關(guān)聯(lián),所述方法還包括由所述附加處理器讀取所述主數(shù)據(jù)集內(nèi)的合并了的信息,以確定在所述主數(shù)據(jù)集中指示的所有耦合會話之間的最近更新時間的最小值,以在耦合會話之間維護數(shù)據(jù)的一致性。
7.根據(jù)權(quán)利要求1所述的方法,其中對所述信息的處理包括確定針對在所述存儲器中指示的每個會話的錯誤標記的值,其中生成所述合并了的信息包括對所確定的所有錯誤標記執(zhí)行或操作,其中管理附加會話的附加處理器響應(yīng)于確定出合并了的錯誤標記指示錯誤而使更新失效。
8.根據(jù)權(quán)利要求1所述的方法,其中對所述信息的處理包括確定針對在所述存儲器中指示的每個會話的狀態(tài)標記的值,其中生成所述合并了的信息包括對所確定的值執(zhí)行第一類操作以確定針對第一操作的合并了的信息;以及對所確定的值執(zhí)行第二類操作以確定針對第二操作的合并了的信息。
9.根據(jù)權(quán)利要求8所述的方法,其中所述狀態(tài)標記指示所述會話是否與所述主數(shù)據(jù)集中所呈現(xiàn)的所有其它會話相一致,其中所述第一類操作包括或操作并且其中所述第二類操作包括與操作。
10.根據(jù)權(quán)利要求1所述的方法,其中所述主數(shù)據(jù)集適于包括來自由附加處理器管理的會話的信息,所述會話與至少一個主存儲和至少一個次級存儲相關(guān)聯(lián),所述方法還包括由管理至少一個會話的一個處理器處理針對在所述主數(shù)據(jù)集內(nèi)指示的每個簇或未包括在簇內(nèi)的會話的信息,以獲得提供關(guān)于在所述主數(shù)據(jù)集內(nèi)指示的所有會話的信息的值;以及對所述值進行處理以確定是否執(zhí)行將更新從所述主系統(tǒng)寫入所述次級系統(tǒng)。
11.一種與主系統(tǒng)、次級系統(tǒng)和主數(shù)據(jù)集通信的系統(tǒng),包括處理器;與所述處理器耦合的存儲器;計算機可讀媒體,其包括由所述處理器運行以執(zhí)行操作的代碼,所述操作包括在所述存儲器內(nèi)存儲針對多個包括簇的會話中的每個會話的會話信息,其中每個會話與至少一個所述主系統(tǒng)和至少一個所述次級系統(tǒng)相關(guān)聯(lián),其中在每個會話中,更新被從所述至少一個主系統(tǒng)拷貝至所述至少一個次級系統(tǒng);基于針對所述簇內(nèi)的會話的會話信息,對存儲器中針對多個會話的會話信息進行處理以生成針對所述簇的合并了的會話信息;以及將針對所述簇的合并了的會話信息寫入維護針對會話的信息的主數(shù)據(jù)集。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述操作還包括將關(guān)于未包括在所述簇中的會話的信息寫入所述主數(shù)據(jù)集,其中未包括在所述簇中的會話與至少一個主系統(tǒng)和至少一個次級系統(tǒng)相關(guān)聯(lián),以使更新被從所述至少一個主系統(tǒng)拷貝到所述至少一個次級系統(tǒng)。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述處理器包括第一處理器,還包括第二處理器,其中未包括在所述簇中的會話由所述第二處理器來管理,并且其中所述第一處理器管理對于針對所述簇中的會話的更新的拷貝。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述簇包括第一簇,并且其中所述主數(shù)據(jù)集適于包括來自附加簇的信息,所述附加簇包括由附加處理器管理的會話。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),其中對所述信息的處理包括確定針對在所述存儲器中指示的每個會話的最近更新時間,其中所述合并了的信息包括所確定的最近更新時間的最小值。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),還包括附加處理器,其中所述主數(shù)據(jù)集適于包括來自由附加處理器管理的耦合會話的信息,所述耦合會話與至少一個主存儲和至少一個次級存儲相關(guān)聯(lián),其中所述附加處理器被使能執(zhí)行讀取所述主數(shù)據(jù)集內(nèi)的合并了的信息,以確定在所述主數(shù)據(jù)集中指示的所有耦合會話之間的最近更新時間的最小值,以在耦合會話之間維護數(shù)據(jù)的一致性。
17.根據(jù)權(quán)利要求11所述的系統(tǒng),其中對所述信息的處理包括確定針對在所述存儲器中指示的每個會話的錯誤標記的值,其中生成所述合并了的信息包括對所確定的所有錯誤標記執(zhí)行或操作,其中管理附加會話的附加處理器響應(yīng)于確定出合并了的錯誤標記指示錯誤而使更新失效。
18.根據(jù)權(quán)利要求11所述的系統(tǒng),其中對所述信息的處理包括確定針對在所述存儲器中指示的每個會話的狀態(tài)標記的值,其中生成所述合并了的信息包括對所確定的值執(zhí)行第一類操作以確定針對第一操作的合并了的信息;以及對所確定的值執(zhí)行第二類操作以確定針對第二操作的合并了的信息。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其中所述狀態(tài)標記指示所述會話是否與所述主數(shù)據(jù)集中所呈現(xiàn)的所有其它會話相一致,其中所述第一類操作包括或操作并且其中所述第二類操作包括與操作。
20.根據(jù)權(quán)利要求11所述的系統(tǒng),還包括附加處理器,其中所述主數(shù)據(jù)集適于包括來自由附加處理器管理的會話的信息,所述會話與至少一個主存儲和至少一個次級存儲相關(guān)聯(lián),其中管理至少一個會話的一個處理器被使能執(zhí)行處理針對在所述主數(shù)據(jù)集內(nèi)指示的每個簇或未包括在簇內(nèi)的會話的信息,以獲得提供關(guān)于在所述主數(shù)據(jù)集內(nèi)指示的所有會話的信息的值;以及對所述值進行處理以確定是否執(zhí)行將更新從所述主系統(tǒng)寫入所述次級系統(tǒng)。
21.一種制品,包括由具有存儲器的處理器來執(zhí)行的代碼,其中所述代碼被使能使得下述操作被執(zhí)行,所述操作包括根據(jù)權(quán)利要求1至10中的任何一個權(quán)利要求的方法中的步驟。
全文摘要
提供一種方法、系統(tǒng)和程序,用于在耦合會話環(huán)境中合并針對一簇會話的會話信息。針對包括簇的多個會話中的每個會話的信息被存儲在處理器會話的存儲器內(nèi)。每個會話與至少一個主系統(tǒng)和至少一個次級系統(tǒng)相關(guān)聯(lián),其中在每個會話中,更新被從該至少一個主系統(tǒng)拷貝到該至少一個次級系統(tǒng)?;卺槍λ龃貎?nèi)的會話的會話信息,對存儲器中針對多個會話的會話信息進行處理以生成針對所述簇的合并了的會話信息。將針對所述簇的合并了的會話信息寫入維護針對會話的信息的主數(shù)據(jù)集。
文檔編號G06F17/30GK101021806SQ20071000558
公開日2007年8月22日 申請日期2007年2月13日 優(yōu)先權(quán)日2006年2月16日
發(fā)明者A·G·麥克盧爾, D·R·布利, G·E·麥克布賴德, R·N·克羅基特, D·M·沙克爾福德 申請人:國際商業(yè)機器公司