專利名稱:用于更新系統(tǒng)之間共享的數(shù)據(jù)的方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及更新系統(tǒng)之間共享的數(shù)據(jù)。
背景技術:
在某些計算環(huán)境中,多個主機系統(tǒng)可以與諸如IBM Enterprise StorageServer(ESS)之類的控制單元通信以訪問由ESS管理的存儲設備中的數(shù)據(jù),所述ESS接收請求,通過一個或多個邏輯路徑來提供對諸如互連的硬盤驅(qū)動器之類的存儲設備的訪問。(IBM和ESS是IBM的注冊商標)。所述互連的驅(qū)動器可以被配置為直接訪問存儲設備(DASD)、獨立磁盤冗余陣列(RAID)、完全磁盤束(JBOD)等。所述控制單元可以包括重復和冗余的處理復合體(也稱為群集)以允許在某一群集發(fā)生故障的情況下故障轉(zhuǎn)移到完好的群集上。所述群集可以訪問具有與包括所述群集的服務器的狀況、狀態(tài)和配置有關的信息的元數(shù)據(jù),所述元數(shù)據(jù)是群集操作所必不可少的。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于更新系統(tǒng)之間共享的數(shù)據(jù)的方法、系統(tǒng)和程序。第一和第二系統(tǒng)分別維護存儲在存儲設備中的共享數(shù)據(jù)的第一和第二副本。所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的第一鎖,其中所述第一鎖應用于訪問所述共享數(shù)據(jù)的所述第一系統(tǒng)。所述第一系統(tǒng)向所述第二系統(tǒng)發(fā)送請求所述共享數(shù)據(jù)的第二鎖的第一消息,其中所述第二鎖應用于訪問所述共享數(shù)據(jù)的所述第二系統(tǒng)。所述第二系統(tǒng)為所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的所述第二鎖以響應所述第一消息并向所述第一系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)的所述第二鎖被授予的第二消息。
圖1示出了其中實現(xiàn)諸實施例的計算環(huán)境;圖2示出了為鎖表中的共享數(shù)據(jù)維護的鎖信息;圖3和圖4示出了管理對系統(tǒng)之間共享的數(shù)據(jù)的訪問的操作。
具體實施例方式
圖1示出了其中實現(xiàn)本發(fā)明的各方面的計算環(huán)境。一個或多個主機2將指向存儲系統(tǒng)4的輸入/輸出(I/O)請求傳遞給控制單元6,其中控制單元6管理對存儲系統(tǒng)4的訪問。在一個實施例中,控制單元6包括兩個系統(tǒng)8a、8b,每個系統(tǒng)包括處理器10a、10b以及高速緩存12a、12b。每個系統(tǒng)8a、8b可以位于獨立的功率邊界(power boundary)上。系統(tǒng)8a、8b可以被指派成處理指向存儲系統(tǒng)4中配置的特定卷的I/O請求。系統(tǒng)8a、8b通過設備網(wǎng)絡(未示出)與存儲系統(tǒng)4通信,該設備網(wǎng)絡可以包括局域網(wǎng)(LAN)、存儲區(qū)域網(wǎng)絡(SAN)、總線接口、串行接口等。
存儲系統(tǒng)4包括共享數(shù)據(jù)14,包括系統(tǒng)8a、8b都可訪問的磁道。在一個實施例中,共享數(shù)據(jù)14可以包括元數(shù)據(jù),例如與控制單元6的狀況,狀態(tài)或配置有關的全局元數(shù)據(jù)。系統(tǒng)8a、8b可以在它們各自的高速緩存12a、12b中維護各自的共享數(shù)據(jù)副本16a、16b以便在系統(tǒng)8a、8b中使用。每個系統(tǒng)8a、8b還維護用于通過授予和拒絕共享數(shù)據(jù)的鎖來單獨管理每個系統(tǒng)8a、8b對共享數(shù)據(jù)14的獨占訪問的鎖信息18a、18b。處理器10a、10b執(zhí)行I/O代碼20a、20b以管理來自主機2的I/O請求和元數(shù)據(jù),以及管理訪問共享數(shù)據(jù)14的鎖。處理器10a、10b可以通過連接22來通信,連接22使得處理器能夠相互通信以管理共享元數(shù)據(jù)14的鎖。
控制單元6可以包括任何類型的服務器(例如企業(yè)存儲服務器、存儲控制器等)或用于管理指向連接的一個或多個存儲系統(tǒng)4的I/O請求的其他設備,其中所述存儲系統(tǒng)可以包括一個或多個本領域中公知的存儲設備,例如互連的硬盤驅(qū)動器(例如,配置為DASD、RAID、JBOD等)、磁帶、電子存儲器等。主機2可以通過諸如局域網(wǎng)(LAN)、存儲區(qū)域網(wǎng)絡(SAN)、廣域網(wǎng)(WAN)、無線網(wǎng)絡等的網(wǎng)絡(未示出)與控制單元6通信??商娲?,主機2可以通過諸如外圍組件互連(PCI)總線或串行接口之類的總線接口與控制單元6通信。
圖2示出了在由每個系統(tǒng)8a、8b維護的鎖信息18a、18b中為每個共享數(shù)據(jù)單元(例如共享數(shù)據(jù)磁道或共享元數(shù)據(jù)磁道)維護的鎖表項50。鎖表項50包括共享數(shù)據(jù)單元標識符(ID)52(例如磁道或元數(shù)據(jù)磁道標識符),以及在系統(tǒng)8a、8b(維護用于管理對已標識的共享數(shù)據(jù)的訪問的鎖信息)中的已標識的共享數(shù)據(jù)單元的鎖54。因此,每個系統(tǒng)8a、8b可以單獨維護各自的鎖信息18a、18b以便根據(jù)存儲系統(tǒng)4中相同共享數(shù)據(jù)14的副本16a、16b來單獨管理鎖。
圖3示出了在由處理器10a、10b執(zhí)行的I/O代碼20a、20b中實現(xiàn)的管理元數(shù)據(jù)和進行協(xié)作的操作的實施例。圖3示出了由啟動對共享數(shù)據(jù)14的訪問以及與第二系統(tǒng)8b協(xié)作的第一系統(tǒng)8a執(zhí)行的操作,其中系統(tǒng)8a或8b都可以用作訪問共享數(shù)據(jù)14的第一或第二系統(tǒng)。第一系統(tǒng)8a包括嘗試訪問共享元數(shù)據(jù)并作為訪問共享元數(shù)據(jù)16a的副本的一部分與第二系統(tǒng)8b協(xié)作訪問的系統(tǒng)。系統(tǒng)8a、8b都可以維護(在方塊100和104)所請求的共享數(shù)據(jù)16a、16b的本地副本。副本16a、16b被登臺(staged)到高速緩存12a、12b中以響應對未在高速緩存12a、12b中找到的共享數(shù)據(jù)14的先前請求或預登臺操作。第一系統(tǒng)8a接收(在方塊106)對共享數(shù)據(jù)14(例如共享數(shù)據(jù)磁道,其在系統(tǒng)高速緩存12a中作為共享數(shù)據(jù)16a的副本被維護)的獨占訪問的請求。如果所請求的共享數(shù)據(jù)14尚未在發(fā)出請求的第一系統(tǒng)8a的高速緩存12a中,則其將被登臺到高速緩存12a中。如果(在方塊108)系統(tǒng)8a是所請求的共享數(shù)據(jù)14的所有者或擁有者,則第一系統(tǒng)8a等待(在方塊110)所請求的共享數(shù)據(jù)14的第一鎖,所述共享數(shù)據(jù)的副本16a在高速緩存12a中被維護。第一鎖控制第一系統(tǒng)8a對共享數(shù)據(jù)14的副本16a的訪問。一旦所請求的共享數(shù)據(jù)的第一鎖變得可用,第一系統(tǒng)8a就獲得(在方塊112)共享數(shù)據(jù)14的第一鎖。第一系統(tǒng)8a發(fā)送(在方塊114)請求共享數(shù)據(jù)14的第二鎖的第一消息。當?shù)谝幌到y(tǒng)8a通過第一鎖具有獨占訪問時,此第二鎖將阻止第二系統(tǒng)8b更新同一共享數(shù)據(jù)14,從而串行化了對共享數(shù)據(jù)的寫訪問。響應于此第一消息,第二系統(tǒng)8b等待(在方塊115)共享數(shù)據(jù)14的第二鎖變得可用,然后,當該鎖可用時,為第一系統(tǒng)8a獲得(在方塊116)共享數(shù)據(jù)14的第二鎖并向第一系統(tǒng)8a發(fā)送(在方塊118)指示共享數(shù)據(jù)的第二鎖已被授予的第二消息。響應于指示第二鎖被授予的第二消息,第一系統(tǒng)8a將更新寫入(在方塊120)共享數(shù)據(jù)16a的第一副本。
如果(在方塊108)系統(tǒng)8a不是所請求的共享數(shù)據(jù)14的所有者或擁有者,則第一系統(tǒng)8a向第二系統(tǒng)8b發(fā)送(在方塊122)請求共享數(shù)據(jù)的第二鎖的第一消息。第二鎖應用于訪問共享數(shù)據(jù)14的第二系統(tǒng)8b。第一系統(tǒng)8a請求第二系統(tǒng)8b代表第一系統(tǒng)8a獲得第二鎖。響應于此第一消息,第二系統(tǒng)8b等待(在方塊123)共享數(shù)據(jù)14的第二鎖變得可用,然后當?shù)诙i可用時代表第一系統(tǒng)8a獲得(在方塊124)共享數(shù)據(jù)14的第二鎖(其控制第二系統(tǒng)8b對共享數(shù)據(jù)的副本16b的訪問)并向第一系統(tǒng)8a發(fā)送(在方塊126)指示共享數(shù)據(jù)的第二鎖被授予的第二消息。響應于此指示第二系統(tǒng)8b授予第二鎖的第二消息,第一系統(tǒng)8a執(zhí)行(在方塊128)110和112處的操作以獲得共享數(shù)據(jù)14的第一鎖,然后繼續(xù)到方塊120以將更新寫入共享數(shù)據(jù)14。
參考圖4,第一系統(tǒng)8a將更新的第一副本16a寫入(在方塊130)存儲系統(tǒng)4中的共享數(shù)據(jù)14。如果(在方塊132)將更新的第一副本16a寫入存儲系統(tǒng)4中的共享數(shù)據(jù)14失敗,則第一系統(tǒng)8a中止(在方塊134)對共享數(shù)據(jù)14的更新并放棄更新。第一鎖被釋放(在方塊135)以允許更多對更新的共享數(shù)據(jù)的訪問。第一系統(tǒng)8a還向第二系統(tǒng)8b發(fā)送(在方塊136)第三消息以釋放共享數(shù)據(jù)14的第二鎖。響應于此第三消息,第二系統(tǒng)8b釋放(在方塊137)第二鎖并向第一系統(tǒng)8a發(fā)送(在方塊138)第二鎖被釋放并且第二系統(tǒng)8b的操作完成的消息。
如果(在方塊130)更新的第一副本16a的寫入成功,則第一系統(tǒng)8a釋放(在方塊139)第一鎖以允許更多對更新的共享數(shù)據(jù)的訪問并向第二系統(tǒng)8b發(fā)送(在方塊140)指示共享數(shù)據(jù)14被更新的第三消息。響應于此消息,第二系統(tǒng)8b放棄(在方塊142)共享數(shù)據(jù)16b的第二副本以避免訪問本地高速緩存12b中的共享數(shù)據(jù)16b的舊副本。如果第二系統(tǒng)8b不包括共享數(shù)據(jù)18b的副本,則將不會存在放棄操作。作為放棄副本16b的結(jié)果,第二系統(tǒng)8b必須將更新的共享數(shù)據(jù)14登臺到高速緩存12b中以便第二系統(tǒng)8b對共享數(shù)據(jù)14進行后續(xù)訪問。第二系統(tǒng)8b還釋放(在方塊143)第二系統(tǒng)8b的第二鎖以允許更多對更新的共享數(shù)據(jù)的訪問。第二系統(tǒng)8b向第一系統(tǒng)8a發(fā)送(在方塊144)指示共享數(shù)據(jù)16b的第二副本被放棄并且第二操作完成的第四消息。
使用生產(chǎn)軟件、固件、硬件或它們的任意組合的標準編程和/或工程技術,上述操作可以被實現(xiàn)為方法、裝置或制品。此處使用的術語“制品”指在硬件邏輯(例如,集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等)或諸如磁存儲介質(zhì)(例如,硬盤驅(qū)動器、軟盤、磁帶等)、光學存儲裝置(CD-ROM、光盤等)、易失性及非易失性存儲設備(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等)之類的計算機可讀介質(zhì)中實現(xiàn)的代碼或邏輯。計算機可讀介質(zhì)中的代碼由處理器來存取和執(zhí)行。其中實現(xiàn)優(yōu)選實施例的代碼可以進一步通過傳輸介質(zhì)或從網(wǎng)絡上的文件服務器來訪問。在此情況下,其中實現(xiàn)代碼的制品可以包括諸如網(wǎng)絡傳輸線、無線傳輸介質(zhì)、通過空間傳播的信號、無線電波、紅外信號等之類的傳輸介質(zhì)。因此,“制品”可以包括其中包含代碼的介質(zhì)。此外,“制品”可以包括其中包含、處理以及執(zhí)行代碼的硬件和軟件組件的組合。當然,本領域的技術人員將認識到,可以對此配置做出許多修改而不偏離本發(fā)明的范圍,并且所述制品可以包括本領域中公知的任何信息承載介質(zhì)。
某些實施例可能涉及用于通過將計算機可讀代碼集成到計算系統(tǒng)中的人員或自動處理來部署計算指令的方法,其中與所述計算系統(tǒng)結(jié)合的所述代碼被使能執(zhí)行所述實施例的操作。
在所述實施例中,兩個系統(tǒng)8a、8b能夠訪問共享數(shù)據(jù)。在其他實施例中,可以有兩個以上的系統(tǒng)訪問共享數(shù)據(jù)。在此類實施例中,就共享數(shù)據(jù)而言,一個系統(tǒng)將被指定為主系統(tǒng)(所有者),而其他系統(tǒng)被指定為從系統(tǒng),這樣,就共享數(shù)據(jù)而言的從系統(tǒng)必須首先從主系統(tǒng)獲得鎖,然后才能獲得從系統(tǒng)持有的共享數(shù)據(jù)的鎖。以這種方式,三個或更多個系統(tǒng)中的每個系統(tǒng)都維護各自的共享數(shù)據(jù)的副本和鎖信息,并且必須與其他系統(tǒng)協(xié)調(diào)它們的訪問以避免沖突。例如,更新共享數(shù)據(jù)的系統(tǒng)將必須從每一個其他系統(tǒng)獲得共享數(shù)據(jù)的鎖,然后在更新數(shù)據(jù)時通知每一個其他系統(tǒng),使其他系統(tǒng)放棄它們所具有的舊共享數(shù)據(jù)的任何本地副本。
圖2示出了用于管理共享元數(shù)據(jù)的鎖的特定鎖定信息。在替代實施例中,可以以具有不同于所示格式和信息的其他數(shù)據(jù)結(jié)構來存儲此信息。
圖3-4的示出的操作顯示某些事件以特定的順序發(fā)生。在替代實施例中,某些操作可以以不同的順序被執(zhí)行、修改或刪除。此外,可以向上述邏輯添加步驟并仍然符合所述實施例。進而,此處所述的操作可以順序地發(fā)生或者某些操作可以被并行地處理。更進一步,操作可以由單個處理復合體或由分布式處理復合體來執(zhí)行。
出于示例和說明目的提供了本發(fā)明的各個實施例的上述說明。其并非旨在是窮舉的或?qū)⒈景l(fā)明限于所公開的精確形式。根據(jù)上述教導,許多修改和變化都是可能的。其旨在本發(fā)明的范圍并非由此詳細說明來限制,而是由此后所附的權利要求來限制。以上說明、實例和數(shù)據(jù)提供了對本發(fā)明的組成部分的制造和使用的完整說明。由于可以在不偏離本發(fā)明的精神和范圍的情況下做出本發(fā)明的許多實施例,所以本發(fā)明存在于此后所附的權利要求之內(nèi)。
權利要求
1.一種方法,所述方法包括由第一系統(tǒng)維護存儲在存儲設備中的共享數(shù)據(jù)的第一副本;由第二系統(tǒng)維護所述共享數(shù)據(jù)的第二副本;由所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的第一鎖,其中所述第一鎖應用于訪問所述共享數(shù)據(jù)的所述第一系統(tǒng);由所述第一系統(tǒng)向所述第二系統(tǒng)發(fā)送請求所述共享數(shù)據(jù)的第二鎖的第一消息,其中所述第二鎖應用于訪問所述共享數(shù)據(jù)的所述第二系統(tǒng);由所述第二系統(tǒng)為所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的所述第二鎖以響應所述第一消息;以及由所述第二系統(tǒng)向所述第一系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)的所述第二鎖被授予的第二消息。
2根據(jù)權利要求1的方法,其中所述共享數(shù)據(jù)包括與包含所述第一和第二系統(tǒng)的存儲控制器有關的全局狀況元數(shù)據(jù)。
3.根據(jù)權利要求1的方法,還包括由所述第一系統(tǒng)將更新寫入所述共享數(shù)據(jù)的所述第一副本以響應接收到所述第二消息;以及將所述更新的第一副本寫入所述存儲中的所述共享數(shù)據(jù)。
4.根據(jù)權利要求3的方法,還包括由所述第一系統(tǒng)中止所述共享數(shù)據(jù)的所述更新;由所述第一系統(tǒng)放棄所述更新;由所述第一系統(tǒng)釋放所述第一鎖;以及由所述第一系統(tǒng)向所述第二系統(tǒng)發(fā)送第三消息以釋放所述第二鎖。
5.根據(jù)權利要求4的方法,其中所述共享數(shù)據(jù)的所述更新被中止以響應將所述更新的第一副本寫入所述存儲失敗。
6.根據(jù)權利要求3的方法,還包括由所述第一系統(tǒng)釋放所述第一鎖;由所述第一系統(tǒng)向所述第二系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)被更新的第三消息;以及由所述第二系統(tǒng)放棄所述共享數(shù)據(jù)的所述第二副本以響應所述第三消息,其中所述第二系統(tǒng)對所述共享數(shù)據(jù)的后續(xù)訪問包括將所述共享數(shù)據(jù)從所述存儲復制到由所述第二系統(tǒng)維護的所述共享數(shù)據(jù)的副本。
7.根據(jù)權利要求6的方法,還包括由所述第二系統(tǒng)向所述第一系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)的所述第二副本被放棄的第四消息。
8.根據(jù)權利要求1的方法,其中所述第一系統(tǒng)擁有所述共享數(shù)據(jù)并且還包括由所述第一系統(tǒng)接收對所述共享數(shù)據(jù)的獨占訪問的請求;以及判定所述第一鎖是否可用,其中所述第一系統(tǒng)獲得所述第一鎖以響應判定所述第一鎖可用。
9.根據(jù)權利要求1的方法,其中所述第二系統(tǒng)擁有所述共享數(shù)據(jù),并且其中所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的所述第一鎖以響應接收到所述第二消息。
10.根據(jù)權利要求9的方法,還包括由所述第一系統(tǒng)接收對所述共享數(shù)據(jù)的獨占訪問的請求;以及判定所述第一鎖是否可用,其中所述第一系統(tǒng)發(fā)送請求所述第二鎖的所述第一消息以響應判定所述第一鎖可用。
11.一種系統(tǒng),所述系統(tǒng)包括第一系統(tǒng);所述第一系統(tǒng)可訪問的第一計算機可讀介質(zhì);第二系統(tǒng);所述第二系統(tǒng)可訪問的第二計算機可讀介質(zhì);具有共享數(shù)據(jù)的所述第一和第二系統(tǒng)都可訪問的存儲設備;所述第一計算機可讀介質(zhì)中由所述第一系統(tǒng)執(zhí)行以導致操作被執(zhí)行的第一代碼,所述操作包括(i)維護所述共享數(shù)據(jù)的第一副本;(ii)獲得所述共享數(shù)據(jù)的第一鎖,其中所述第一鎖應用于訪問所述共享數(shù)據(jù)的所述第一系統(tǒng);以及(iii)向所述第二系統(tǒng)發(fā)送請求所述共享數(shù)據(jù)的第二鎖的第一消息,其中所述第二鎖應用于訪問所述共享數(shù)據(jù)的所述第二系統(tǒng);以及所述第二計算機可讀介質(zhì)中由所述第二系統(tǒng)執(zhí)行以導致操作被執(zhí)行的第二代碼,所述操作包括(i)維護所述共享數(shù)據(jù)的第二副本;(ii)為所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的所述第二鎖以響應所述第一消息;以及(iii)向所述第一系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)的所述第二鎖被授予的第二消息。
12.根據(jù)權利要求11的系統(tǒng),其中所述共享數(shù)據(jù)包括與包含所述第一和第二系統(tǒng)的存儲控制器有關的全局狀況元數(shù)據(jù)。
13.根據(jù)權利要求11的系統(tǒng),其中由執(zhí)行所述第一代碼導致的所述操作還包括將更新寫入所述共享數(shù)據(jù)的所述第一副本以響應接收到所述第二消息;以及將所述更新的第一副本寫入所述存儲中的所述共享數(shù)據(jù)。
14.根據(jù)權利要求13的系統(tǒng),其中由執(zhí)行所述第一代碼導致的所述操作還包括中止所述共享數(shù)據(jù)的所述更新;放棄所述更新;釋放所述第一鎖;以及向所述第二系統(tǒng)發(fā)送第三消息以釋放所述第二鎖。
15.根據(jù)權利要求14的系統(tǒng),其中所述共享數(shù)據(jù)的所述更新被中止以響應將所述更新的第一副本寫入所述存儲失敗。
16.根據(jù)權利要求13的系統(tǒng),其中由執(zhí)行所述第一代碼導致的所述操作還包括釋放所述第一鎖;由所述第一系統(tǒng)向所述第二系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)被更新的第三消息;以及其中由執(zhí)行所述第二代碼導致的所述操作還包括放棄所述共享數(shù)據(jù)的所述第二副本以響應所述第三消息,其中所述第二系統(tǒng)對所述共享數(shù)據(jù)的后續(xù)訪問包括將所述共享數(shù)據(jù)從所述存儲復制到由所述第二系統(tǒng)維護的所述共享數(shù)據(jù)的副本。
17.根據(jù)權利要求16的系統(tǒng),其中由執(zhí)行所述第二代碼導致的所述操作還包括向所述第一系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)的所述第二副本被放棄的第四消息。
18.根據(jù)權利要求11的系統(tǒng),其中所述第一系統(tǒng)擁有所述共享數(shù)據(jù)并且其中由執(zhí)行所述第一代碼導致的所述操作還包括接收對所述共享數(shù)據(jù)的獨占訪問的請求;以及判定所述第一鎖是否可用,其中所述第一系統(tǒng)獲得所述第一鎖以響應判定所述第一鎖可用。
19.根據(jù)權利要求11的系統(tǒng),其中所述第二系統(tǒng)擁有所述共享數(shù)據(jù),并且其中所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的所述第一鎖以響應接收到所述第二消息。
20.根據(jù)權利要求19的系統(tǒng),其中由執(zhí)行所述第一代碼導致的所述操作還包括接收對所述共享數(shù)據(jù)的獨占訪問的請求;以及判定所述第一鎖是否可用,其中所述第一系統(tǒng)發(fā)送請求所述第二鎖的所述第一消息以響應判定所述第一鎖可用。
21.一件包括允許由第一系統(tǒng)和第二系統(tǒng)執(zhí)行以執(zhí)行操作的代碼的制品,其中所述第一和第二系統(tǒng)與具有共享數(shù)據(jù)的存儲設備通信,并且其中所述操作包括由所述第一系統(tǒng)維護存儲在所述存儲設備中的共享數(shù)據(jù)的第一副本;由所述第二系統(tǒng)維護所述共享數(shù)據(jù)的第二副本;由所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的第一鎖,其中所述第一鎖應用于訪問所述共享數(shù)據(jù)的所述第一系統(tǒng);由所述第一系統(tǒng)向所述第二系統(tǒng)發(fā)送請求所述共享數(shù)據(jù)的第二鎖的第一消息,其中所述第二鎖應用于訪問所述共享數(shù)據(jù)的所述第二系統(tǒng);由所述第二系統(tǒng)為所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的所述第二鎖以響應所述第一消息;以及由所述第二系統(tǒng)向所述第一系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)的所述第二鎖被授予的第二消息。
22.根據(jù)權利要求21的制品,其中所述共享數(shù)據(jù)包括與包含所述第一和第二系統(tǒng)的存儲控制器有關的全局狀況元數(shù)據(jù)。
23.根據(jù)權利要求21的制品,其中所述操作還包括由所述第一系統(tǒng)將更新寫入所述共享數(shù)據(jù)的所述第一副本以響應接收到所述第二消息;以及將所述更新的第一副本寫入所述存儲中的所述共享數(shù)據(jù)。
24.根據(jù)權利要求23的制品,其中所述操作還包括由所述第一系統(tǒng)中止所述共享數(shù)據(jù)的所述更新;由所述第一系統(tǒng)放棄所述更新;由所述第一系統(tǒng)釋放所述第一鎖;以及由所述第一系統(tǒng)向所述第二系統(tǒng)發(fā)送第三消息以釋放所述第二鎖。
25.根據(jù)權利要求24的制品,其中所述共享數(shù)據(jù)的所述更新被中止以響應將所述更新的第一副本寫入所述存儲失敗。
26.根據(jù)權利要求23的制品,其中所述操作還包括由所述第一系統(tǒng)釋放所述第一鎖;由所述第一系統(tǒng)向所述第二系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)被更新的第三消息;以及由所述第二系統(tǒng)放棄所述共享數(shù)據(jù)的所述第二副本以響應所述第三消息,其中所述第二系統(tǒng)對所述共享數(shù)據(jù)的后續(xù)訪問包括將所述共享數(shù)據(jù)從所述存儲復制到由所述第二系統(tǒng)維護的所述共享數(shù)據(jù)的副本。
27.根據(jù)權利要求21的制品,其中所述操作還包括由所述第二系統(tǒng)向所述第一系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)的所述第二副本被放棄的第四消息。
28.根據(jù)權利要求21的制品,其中所述第一系統(tǒng)擁有所述共享數(shù)據(jù)并且其中所述操作還包括由所述第一系統(tǒng)接收對所述共享數(shù)據(jù)的獨占訪問的請求;以及判定所述第一鎖是否可用,其中所述第一系統(tǒng)獲得所述第一鎖以響應判定所述第一鎖可用。
29.根據(jù)權利要求21的制品,其中所述第二系統(tǒng)擁有所述共享數(shù)據(jù),并且其中所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的所述第一鎖以響應接收到所述第二消息。
30.根據(jù)權利要求29的制品,其中所述操作還包括由所述第一系統(tǒng)接收對所述共享數(shù)據(jù)的獨占訪問的請求;以及判定所述第一鎖是否可用,其中所述第一系統(tǒng)發(fā)送請求所述第二鎖的所述第一消息以響應判定所述第一鎖可用。
31.一種用于部署計算指令的方法,包括將計算機可讀代碼集成到第一和第二系統(tǒng)中,其中與所述第一和第二系統(tǒng)結(jié)合的所述代碼被允許使得所述第一和第二系統(tǒng)執(zhí)行以下操作由所述第一系統(tǒng)維護存儲在存儲設備中的共享數(shù)據(jù)的第一副本;由所述第二系統(tǒng)維護所述共享數(shù)據(jù)的第二副本;由所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的第一鎖,其中所述第一鎖應用于訪問所述共享數(shù)據(jù)的所述第一系統(tǒng);由所述第一系統(tǒng)向所述第二系統(tǒng)發(fā)送請求所述共享數(shù)據(jù)的第二鎖的第一消息,其中所述第二鎖應用于訪問所述共享數(shù)據(jù)的所述第二系統(tǒng);由所述第二系統(tǒng)為所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的所述第二鎖以響應所述第一消息;以及由所述第二系統(tǒng)向所述第一系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)的所述第二鎖被授予的第二消息。
32.根據(jù)權利要求31的方法,其中所述代碼被進一步允許使得所述第一系統(tǒng)執(zhí)行以下操作由所述第一系統(tǒng)將更新寫入所述共享數(shù)據(jù)的所述第一副本以響應接收到所述第二消息;以及將所述更新的第一副本寫入所述存儲中的所述共享數(shù)據(jù)。
33.根據(jù)權利要求32的方法,其中所述代碼被進一步允許使得所述第一系統(tǒng)執(zhí)行以下操作由所述第一系統(tǒng)中止所述共享數(shù)據(jù)的所述更新;由所述第一系統(tǒng)放棄所述更新;由所述第一系統(tǒng)釋放所述第一鎖;以及由所述第一系統(tǒng)向所述第二系統(tǒng)發(fā)送第三消息以釋放所述第二鎖。
全文摘要
本發(fā)明提供了一種用于更新系統(tǒng)之間共享的數(shù)據(jù)的方法、系統(tǒng)和程序。第一和第二系統(tǒng)分別維護存儲在存儲設備中的共享數(shù)據(jù)的第一和第二副本。所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的第一鎖,其中所述第一鎖應用于訪問所述共享數(shù)據(jù)的所述第一系統(tǒng)。所述第一系統(tǒng)向所述第二系統(tǒng)發(fā)送請求所述共享數(shù)據(jù)的第二鎖的第一消息,其中所述第二鎖應用于訪問所述共享數(shù)據(jù)的所述第二系統(tǒng)。所述第二系統(tǒng)為所述第一系統(tǒng)獲得所述共享數(shù)據(jù)的所述第二鎖以響應所述第一消息并向所述第一系統(tǒng)發(fā)送指示所述共享數(shù)據(jù)的所述第二鎖被授予的第二消息。
文檔編號G06F9/46GK1776658SQ20051011583
公開日2006年5月24日 申請日期2005年11月9日 優(yōu)先權日2004年11月15日
發(fā)明者S·A·艾哈邁德, T·C·賈維斯, K·W·托德 申請人:國際商業(yè)機器公司