專利名稱:數(shù)據(jù)傳送方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及數(shù)據(jù)被共享的多系統(tǒng)環(huán)境中的數(shù)據(jù)傳送。
背景技術:
在共享盤數(shù)據(jù)庫管理系統(tǒng)(DBMS)中,多個DBMS(被稱作DBMS構件)構成一群集并共享存儲器。該群集內的每個DBMS構件都具有一個其中數(shù)據(jù)庫頁被緩存以用于快速存取的本地緩沖池(BP)。可以把頁緩存在多個DBMS構件的緩沖池內。當一個DBMS構件的本地緩沖池內的頁被改變(即,被更新)時,“緩沖器相干性”問題就會導致,由此具有那些頁被緩存的其它DBMS構件必須檢測它們的本地拷貝現(xiàn)已過期(即,“標準以下”)并且它們必須獲得該頁的最新版本。
在現(xiàn)有技術中已經開發(fā)了各種用于從一個系統(tǒng)向另一個系統(tǒng)傳送已改變頁的技術。在z/OS環(huán)境中,“耦合設施”(CF)提供了共享電子存儲器以及很高速度的連通性并可以從國際商業(yè)機器公司買到。在1997年第2期第36卷IBM系統(tǒng)雜志上由Jeffrey W.Josten所著的“DB2’s use of the Coupling Facility for Data Sharing”中進一步描述了耦合設施,該文在此并入作為參考。
在z/OS環(huán)境中,當改變一DBMS構件內的緩沖池中的多個頁時,通過每次寫一頁而把每個被改變的頁傳送到共享電子存儲器。即,該DBMS構件對每個改變頁發(fā)出一“寫數(shù)據(jù)”命令。然而,由于改變大量頁的工作量,每次一頁寫能夠增加大量的中央處理單元(CPU)開銷。
另外,該耦合設施提供一組控制結構及命令,該組控制結構及命令允許該DBMS構件把它們的興趣注冊在一給定頁內,以便當該頁隨后被改變并寫到該共享電子存儲器內時,該耦合設施能夠向那些已經把其興趣注冊到該頁內的DBMS構件發(fā)送交叉無效(XI)信號的。該交叉無效信號被發(fā)送每頁到。當已經收到該交叉無效信號的一DBMS構件之后引用其本地緩沖池內的那一頁時,該DBMS構件能夠快速檢測到該頁現(xiàn)在無效并且能夠從該耦合設施快速刷新該頁。
高速緩存結構內的被改變的數(shù)據(jù)與拋棄(castout)類相關聯(lián)。通常,當把數(shù)據(jù)從一高速緩存結構傳送到各個DBMS構件110A…N上的存儲器時,由時間間隔或結構全閾值來觸發(fā)該傳送。然后,作出哪個拋棄類具有大量要被拋棄的被改變的數(shù)據(jù)的確定。對于所確定的類中的每一個,讀取出現(xiàn)在該拋棄類中的所有被改變的條目的一個清單。對于該清單內的每一條目,讀取條目數(shù)據(jù)并且給該條目加鎖以用于拋棄。然后,在用于所有要被拋棄的條目的拋棄鎖串行化下,把所有的條目寫入與該DBMS構件相連的直接存取存儲設備(DASD)。
在除z/OS之外的環(huán)境(例如,Unix,Windows,或Linux環(huán)境)中,典型地把被改變的頁經由盤輸入/輸出(I/O)或是經由點到點系統(tǒng)間通信鏈路從處理器群集中的一個構件傳送到另一個構件。某些新式的盤控制器開始配備大的電子存儲高速緩存以及大量的中央處理單元(CPU)功率,并能夠每次傳送一個或多個頁。
InfiniBand是一種用于處理器與I/O設備之間的數(shù)據(jù)流的體系結構及規(guī)范,該體系結構和規(guī)范提供每秒達2.5千兆字節(jié)的吞吐量以及對高達64,000個的可尋址設備的支持。期望Infiniband提供在群集處理器之間的更好的數(shù)據(jù)共享。然而,Infiniband沒有解決緩沖器相干性問題。
因此,該技術中存在對改進的數(shù)據(jù)傳送以及對共享數(shù)據(jù)的系統(tǒng)間的有效緩沖器相干性的需要。
發(fā)明內容
所提供的是用于傳送數(shù)據(jù)的系統(tǒng),方法及程序。標識已由一個或多個事務改變的多個數(shù)據(jù)對象。使用一條批量寫命令來把該多個數(shù)據(jù)對象從本地存儲器傳送到一共享高速緩存結構。
在某些實現(xiàn)中,提供了一種方法,系統(tǒng),以及程序,其中,當把第一系統(tǒng)上的未被緩存在共享高速緩存內的被改變的數(shù)據(jù)對象傳送到盤上時,發(fā)送一條標識被傳送到盤上的該被改變的數(shù)據(jù)對象的批量交叉無效命令。
在某些實現(xiàn)中,提供了一種方法,系統(tǒng),以及程序,其中使用一條單獨的批量拋棄命令來把多個數(shù)據(jù)對象從高速緩存結構傳送到處理器存儲器上。然后,把該多個數(shù)據(jù)對象從該處理器存儲器傳送到盤上。
本發(fā)明的所述實現(xiàn)提供了用于傳送數(shù)據(jù)的方法,系統(tǒng),以及程序。通過把高頻高速緩存結構一起進行批處理,本發(fā)明的實現(xiàn)減少了被發(fā)送到共享外部存儲器的命令數(shù)量,并因此改進了與在執(zhí)行高的更新活動工作量時向共享外部存儲器寫數(shù)據(jù),從該共享外部存儲器拋棄數(shù)據(jù),以及使數(shù)據(jù)交叉無相關聯(lián)的性能(例如,主CPU開銷及流過的時間)。
現(xiàn)在參見附圖,其中相同的參考數(shù)字自始至終代表對應的部件圖1A說明在一方框圖中的根據(jù)本發(fā)明的某些實現(xiàn)的計算機體系結構。
圖1B說明在一方框圖中的根據(jù)本發(fā)明的某些實現(xiàn)的狀態(tài)欄的進一步細節(jié)。
圖1C說明在一方框圖中的根據(jù)本發(fā)明的某些實現(xiàn)的用戶寄存器陣列的進一步細節(jié)。
圖2A說明根據(jù)本發(fā)明的某些實現(xiàn)的被實現(xiàn)以使用批量寫命令的邏輯。
圖2B說明根據(jù)本發(fā)明的某些實現(xiàn)的批量寫命令的輸入及輸出。
圖3A說明根據(jù)本發(fā)明的某些實現(xiàn)的被實現(xiàn)以使用批量交叉無效命令的邏輯。
圖3B說明根據(jù)本發(fā)明的某些實現(xiàn)的批量交叉無效命令的輸入及輸出。
圖4A說明根據(jù)本發(fā)明的某些實現(xiàn)的被實現(xiàn)以使用批量拋棄命令的邏輯。
圖4B說明根據(jù)本發(fā)明的某些實現(xiàn)的批量拋棄命令的輸入及輸出。
圖5說明DBMS構件和/或共享外部存儲器的體系結構的一種實現(xiàn)。
具體實施例方式
在以下描述中,參考構成該描述的一部分并說明了本發(fā)明的幾種實現(xiàn)的附圖。應當理解也可以采用其它的實現(xiàn)并可以作出結構以及操作上的變化而不脫離本發(fā)明的范圍。
圖1A說明在一方框圖中的根據(jù)本發(fā)明的某些實現(xiàn)的計算機體系結構。在這些圖中,為了便于引用,一個例子內的元件的多個拷貝將被用相同的參考數(shù)字及字符來表示(例如,110A-110N,其中N表示該元件的第n個拷貝)。例如,將把多個DBMS構件稱作為DBMS構件110A…110N。另外,諸如N的某些變量被用來表示表明元件的某一數(shù)目的整數(shù)值。當用在具有相同或不同的元件的不同例子中時,這些變量可以表示任何數(shù)目。
DBMS構件110A…N連到共享外部存儲器120。在某些實現(xiàn)中,該共享外部存儲器120是從國際商業(yè)機器公司可買到的一耦合設施。每個DBMS構件110A…110N都具有DBMS軟件112A…N,中央處理單元114A…N,操作系統(tǒng)115A…N,本地存儲器(例如,本地緩沖池116A…N),本地緩沖池向量117A…N,事務數(shù)據(jù)對象清單118A…N,以及處理器存儲器119A…N。在某些實現(xiàn)中,出于拋棄的目的而保留“專用緩沖器”,并且該“專用緩沖器”不被用于數(shù)據(jù)庫緩存,以及這樣做以確保拋棄不妨礙本地緩沖池116A…N內的正常數(shù)據(jù)庫緩存操作。
DBMS軟件112A…N擁有和控制一組在該計算機系統(tǒng)內的資源。作為一個例子,該DBMS軟件可以是由國際商業(yè)機器公司所提供的DB2。
每個中央處理單元114A…N執(zhí)行操作系統(tǒng)115A…N,諸如由國際商業(yè)機器公司所提供的z/OS操作系統(tǒng),該操作系統(tǒng)被用來控制程序的執(zhí)行以及數(shù)據(jù)的處理。
本地緩沖池116A…N存儲各個DBMS構件110A…110N的數(shù)據(jù)(例如,諸如頁這樣的數(shù)據(jù)對象)。本地緩沖池116A…N包括在本地系統(tǒng)上的用戶分配和管理的存儲區(qū)。DBMS構件110A…110N通過該共享外部存儲器120注冊興趣,以表明對獲得用于在其它DBMS構件110A…110N上被改變的數(shù)據(jù)的交叉無效信號的興趣。興趣的注冊使指定數(shù)據(jù)對象與本地緩沖池向量117A…117N內的一索引發(fā)生聯(lián)系,以使得該索引反映本地緩沖池向量116A…N內的該指定數(shù)據(jù)對象的有效性。每個本地緩沖池向量116A…N可以包括,例如,用于引用數(shù)據(jù)的名稱欄;用于存儲該數(shù)據(jù)的數(shù)據(jù)欄;以及用于附加數(shù)據(jù)的任意附加的數(shù)據(jù)欄。
DBMS構件110A…110N可以經由一個或多個盤控制器106訪問一個或多個盤104(例如,直接存取存儲設備(DASD))。
經由例如共享外部存儲器120通道以及高速光纖鏈路可以把DBMS構件110A…110N連到共享外部存儲器120。
共享外部存儲器120包括可由DBMS構件110A…N訪問的諸如高速緩存結構122這樣的存儲器,并包括用于執(zhí)行由DBMS構件110A…N內的應用程序(例如,DBMS軟件112A…112N)所請求的操作的一個或多個處理器140。該高速緩存結構122和/或共享外部存儲器120可以包括其它的或附加的組件或信息。圖1A中,高速緩存結構122包括目錄124,數(shù)據(jù)區(qū)132,拋棄類控制塊134,用戶注冊172,結構控制160,本地高速緩存控制塊162,存儲類控制164,以及被改變的數(shù)據(jù)管理設施,它們在2001年11月13日頒發(fā)給David A.Elko等的美國專利No.6,317,744B1中進一步詳細描述,并且該專利在此全部并入作為參考。
把高速緩存結構122劃分成目錄124內的一組目錄條目以及數(shù)據(jù)區(qū)132內的一組數(shù)據(jù)條目。在某些實現(xiàn)中,當經由例如表示該高速緩存結構122的期望的劃分的編程接口參數(shù)來分配高速緩存結構122時,目錄124和數(shù)據(jù)區(qū)132內的每種類型條目的數(shù)目被確定。
高速緩存結構122支持依照存儲器類的指定數(shù)據(jù)條目的劃分。針對高速緩存結構122所標識的每個指定數(shù)據(jù)對象駐留在連接指定的存儲器類中。目錄124中的目錄條目被劃分成存儲類,并被安排為全相聯(lián)陣列。把被改變的目錄條目的子集另外劃分成拋棄類。
目錄124內的每個目錄條目包括例如名稱欄125,狀態(tài)欄126,拋棄類欄127,存儲器類構造128,并可以包括用省略號129所代表的附加信息。
每當把一指定數(shù)據(jù)對象放到共享外部存儲器120高速緩存結構122或是本地緩沖池116A…N內時,該指定數(shù)據(jù)對象的名稱就被注冊到名稱欄125內,并且它的狀態(tài)被注冊到目錄124內的狀態(tài)欄列126內。該狀態(tài)信息表示例如數(shù)據(jù)是否被改變,未被改變,為拋棄而被加鎖或駐留在共享外部存儲器120內。
圖1B說明在方框圖內根據(jù)本發(fā)明某些實現(xiàn)的狀態(tài)欄126的進一步細節(jié)。具體地,該狀態(tài)欄126包括數(shù)據(jù)狀態(tài)欄170,用戶注冊陣列172,用戶數(shù)據(jù)欄174,并且可以包括用省略號176所代表的其它欄。
圖1C說明在方框圖內根據(jù)本發(fā)明某些實現(xiàn)的用戶注冊陣列172的進一步細節(jié)。用戶注冊172是包含用于該高速緩存結構的每個DBMS用戶的一個條目的陣列。在該用戶注冊中的各個用戶的條目內,該共享外部存儲器120記錄該用戶是否具有在它們的本地緩沖池116A…N內的該指定條目的有效本地拷貝,并且如果具有,那么共享外部存儲器120把該向量索引記錄到已經與該用戶的本地拷貝相聯(lián)系的本地緩沖池117A…N中。這就是當需要時,對于該用戶注冊內的每個有效用戶被交叉無效掉的本地緩沖池向量索引。例如,用戶注冊172包括本地高速緩存標識符(LCID)182,本地-高速緩存-條目數(shù)目(LCEN)184,以及用于該本地-高速緩存-條目數(shù)目的有效位(LVI)186。當為該指定名稱及本地高速緩存執(zhí)行注冊過程時,把有效的本地-高速緩存-條目的數(shù)目注冊在該本地-高速緩存注冊內。當本地高速緩存被分離時,或是當為該指定的名稱執(zhí)行批量交叉無效過程并且該本地高速緩存是正被無效掉的本地高速緩存組的一構件時,使本地-高速緩存-條目的數(shù)目無效。當LVI欄186為零時,使LCEN欄184無效。
該狀態(tài)還包括用戶數(shù)據(jù)欄(UDF)174(圖1B),它含有與最初在共享外部存儲器120緩存中被改變且被保持到數(shù)據(jù)區(qū)被重新使用時的數(shù)據(jù)相關聯(lián)的值。當該數(shù)據(jù)由于被改變而被緩存時,使該用戶數(shù)據(jù)欄174有效。用戶數(shù)據(jù)欄174含有時間值或時標,該時間值或時標代表該數(shù)據(jù)元素已被改變并且該改變尚未被轉移到盤104時的最老的時間點。
數(shù)據(jù)區(qū)132內的數(shù)據(jù)條目含有被緩存的子系統(tǒng)數(shù)據(jù)。在某些實現(xiàn)中,數(shù)據(jù)條目包括零或多個的元素。每個數(shù)據(jù)條目都具有含有控制信息的一對應的目錄條目。目錄條目可以在沒有關聯(lián)的數(shù)據(jù)條目的情況下存在。
目錄條目含有標識該結構的指定子系統(tǒng)數(shù)據(jù)對象,描述子系統(tǒng)數(shù)據(jù)對象的屬性,允許在數(shù)據(jù)內的連接興趣的注冊,方便數(shù)據(jù)的舍拋棄以及影響結構資源管理操作的控制信息。目錄條目總是被分配給含有被緩存的子系統(tǒng)數(shù)據(jù)的一數(shù)據(jù)條目并與該數(shù)據(jù)條目相關聯(lián)。在沒有相關聯(lián)的數(shù)據(jù)條目的情況下,通過之前允許指定子系統(tǒng)數(shù)據(jù)對象的定義和在這些項內的連接興趣的注冊以及也許甚至在沒有實際將該數(shù)據(jù)緩存到該結構中的情況下,目錄條目也是可以被分配的并且也可以使用。
使得數(shù)據(jù)條目的內容或狀態(tài)改變的高速緩存結構122的操作導致經由本地緩沖池向量117A…117N使得本地拷貝無效。所緩存的數(shù)據(jù)可以處于被改變的狀態(tài)或者未被改變的狀態(tài)。在某些實現(xiàn)中,如果所緩存的數(shù)據(jù)被改變,那么該高速緩存結構122內的數(shù)據(jù)版本就取代其它介質上的任何版本。可以為被改變的數(shù)據(jù)執(zhí)行來自該高速緩結構122的拋棄操作。在某些實現(xiàn)中,串行化機制確保了多個DBMS構件110A…N不執(zhí)行給定數(shù)據(jù)對象的并發(fā)拋棄。把該高速緩存結構122內的所有被改變的數(shù)據(jù)對象指定給一拋棄類。
數(shù)據(jù)區(qū)132是在高速緩存內的存儲了用戶數(shù)據(jù)的區(qū)域。由軟件指定的名稱來標識緩存在該共享高速緩存內的數(shù)據(jù)對象。因此,對于該共享高速緩存內數(shù)據(jù)的讀或寫的任何請求都指定了作為該請求的對象的數(shù)據(jù)對象的名稱。按慣例用作為讀或寫命令的對象的該數(shù)據(jù)對象的名稱來給該目錄編制索引。
拋棄類控制塊134包括用于與該高速緩存結構相關聯(lián)的各個拋棄類的拋棄類控制塊。根據(jù)本發(fā)明的原理,每個拋棄類控制塊都具有指向對應于那一拋棄類的被改變的數(shù)據(jù)元素的目錄條目的數(shù)據(jù)結構的指針。
當訪問一數(shù)據(jù)對象(例如,為了改變該數(shù)據(jù)對象)時,DBMS構件110A…110N試圖從本地緩沖池116A…116N中讀取該數(shù)據(jù)對象。DBMS構件110A…110N使用本地緩沖池向量117A…117N來確定該數(shù)據(jù)是否在本地緩沖池116A…N內以及是否有效。如果該數(shù)據(jù)在本地緩沖池116A…116N內,并且尚未被無效掉,那么該數(shù)據(jù)對象就是可用的,并且不要求讀取。如果該數(shù)據(jù)對象已被無效掉,那么DBMS構件110A…110N試圖從共享外部存儲器120的高速緩存結構122中讀取該數(shù)據(jù)對象。該共享外部存儲器120確定該數(shù)據(jù)對象在高速緩存結構122是否可得到。如果該數(shù)據(jù)對象在該高速緩存結構122內,則共享外部存儲器120把該數(shù)據(jù)對象返回給DBMS構件110A…110N。如果該數(shù)據(jù)對象不在該高速緩存結構122內,則DBMS構件從盤104讀取該數(shù)據(jù)對象。
本發(fā)明的實現(xiàn)使得更加有效的數(shù)據(jù)傳送成為可能。具體地,DBMS構件110A…N用一條單獨的命令,為了便于引用這里將把該命令稱為“批量寫命令”,把多個數(shù)據(jù)對象從本地緩沖池116A…N寫到高速緩存結構122。另外,DBMS構件110A…N用一組包含用于把數(shù)據(jù)從高速緩存結構122帶到處理器存儲器119A…N內的一條單獨的命令,為了便于引用這里將把該命令稱為“批量拋棄命令”的命令來把多個數(shù)據(jù)對象從高速緩存結構122拋棄到盤104。對于該拋棄過程,發(fā)布另一命令以把該數(shù)據(jù)對象從處理器存儲119A…N寫到盤104上,并且這是一個相互獨立的I/O過程。此外,每個DBMS構件110A…N發(fā)布一條單獨的交叉無效命令以便使其它DBMS構件110A…N的本地緩沖池116A…N內的多個數(shù)據(jù)對象無效,為了便于引用這里將把該交叉無效命令稱為“批量交叉無效命令”。
圖2A說明了根據(jù)本發(fā)明某些實現(xiàn)的被實現(xiàn)來使用批量寫命令的邏輯??刂茝囊粋€或多個事務改變DBMS構件110A…N之一的本地緩沖池116A…N內的數(shù)據(jù)對象在方框200開始。在提交一個或多個事務時或之前,在方框210內,DBMS構件110A…110N向具有被改變的數(shù)據(jù)對象清單的共享外部存儲器120發(fā)布一個批量寫命令。將把該被改變的數(shù)據(jù)對象寫入該共享外部存儲器120,以便被其它DBMS構件110A…110N訪問。該批量寫命令指定了標識被改變的數(shù)據(jù)對象的事務數(shù)據(jù)對象清單。在某些實現(xiàn)中,一旦發(fā)送了該批量寫命令,在中央處理單元114A…114N上執(zhí)行的操作系統(tǒng)115A…N就把該事務數(shù)據(jù)對象清單上所標識的數(shù)據(jù)對象發(fā)送到共享外部存儲器120。
在某些實現(xiàn)中,DBMS構件110A…110N通過使用一事務數(shù)據(jù)對象清單(例如,事務頁清單或TPL)118A…118N來完成該多個數(shù)據(jù)對象的寫入。該事務數(shù)據(jù)對象清單記錄所有的對于一給定事務的被改變的數(shù)據(jù)對象。在事務提交時或之前,取代每次處理一個事務數(shù)據(jù)對象清單條目來寫該被改變的數(shù)據(jù)對象,用批量寫命令提交多個事務數(shù)據(jù)對象清單條目(此處,每個事務數(shù)據(jù)對象清單條目都對應于一被改變的數(shù)據(jù)對象),以把所有這些數(shù)據(jù)對象寫入一條單獨的命令,從而實現(xiàn)比每次一頁的寫更好的性能。
在某些實現(xiàn)中,數(shù)據(jù)對象清單條目的第一個“M”數(shù)字被用來標識要被寫的多個數(shù)據(jù)對象(其中M可以是1至任何更大的數(shù)字)。在某些實現(xiàn)中,256個數(shù)據(jù)對象清單條目可以被寫入,假如沒有數(shù)據(jù)對象與它們相關聯(lián),,或是較少數(shù)的數(shù)據(jù)對象清單條目可被寫入,假如一個或多個條目具有與它們相關聯(lián)的數(shù)據(jù)對象。在某些實現(xiàn)中,M=15頁,并且每一頁的大小為4096字節(jié),以及一條命令上的數(shù)據(jù)傳送的總數(shù)被限制為64K字節(jié),包括指定要寫入的條目以及還與那些條目相關聯(lián)的數(shù)據(jù)對象的控制。
處理器140接收和處理批量寫命令以把多個數(shù)據(jù)對象存入高速緩存結構122(方框220)。具體地,處理器140接收已存入本地緩沖池116A…N內的多個數(shù)據(jù)對象并為高速緩存結構122內的該數(shù)據(jù)對象尋找空間。對于每個被改變的數(shù)據(jù)對象,處理器140向在該數(shù)據(jù)對象內注冊興趣的每個DBMS構件110A…N發(fā)出交叉無效命令(方框230)。在某些實現(xiàn)中,響應于該交叉無效信號,在DBMS構件110A…110N上的硬件起到設置本地緩沖池向量117A…N內的位的作用。由此,通過用該批量寫命令來把多個數(shù)據(jù)對象從本地緩沖池116A…N寫到高速緩存結構122內而實現(xiàn)改進的性能。
圖2B說明根據(jù)本發(fā)明某些實現(xiàn)的批量寫命令的輸入240及輸出270。在某些實現(xiàn)中,批量寫命令把輸入240把輸入240視為被劃分成兩部分的輸入數(shù)據(jù)緩沖器250。第一部分為寫操作框的清單252(WOB)(例如,高達256個)并且它描述要被寫的每一條目。每條目的說明包括例如條目的名稱,存儲器及拋棄類信息,被改變/未被改變的指示器,本地緩沖器注冊信息,以及附加區(qū)域。第二部分為要被寫到指定條目的條目數(shù)據(jù)內容的清單254。該輸入也將包含清單索引的起點256以及清單索引的終點258,它們將含有處理應該開始處的輸入數(shù)據(jù)塊內的WOB的索引以及處理應該結束處的輸入數(shù)據(jù)塊內的WOB的索引。此外,輸入240包含數(shù)據(jù)偏移260,它包含在輸入數(shù)據(jù)塊內第一數(shù)據(jù)區(qū)的偏移量。輸出270包含寫操作響應塊區(qū)域(WORBAREA)280,該區(qū)域含有用于每個被返回的并表示各個寫的結果的WOB的寫操作響應塊(WORB)的清單。
在某些實現(xiàn)中,如果WOB內的所有條目都不能被處理,則批量寫命令可以超時并由DBMS重新驅動。當該命令以“超時”響應碼完成時,把當前的索引以及當前的數(shù)據(jù)偏移輸出設置成表示WOB清單以及數(shù)據(jù)條目內容清單內的“下一個”(第一未被處理的)條目的值。用于超時響應的輸出可以包括響應碼,當前索引,以及當前數(shù)據(jù)偏移。DBMS能夠把這些輸出值傳回作為下條批量寫命令上的輸入(清單索引的起點,數(shù)據(jù)偏移),以從其停止處繼續(xù)清單的處理。此外,批量寫命令在處理清單內的特定條目時會遇到錯誤。在此情形下,該批量寫命令可以被設計成隨表明特定錯誤的錯誤響應碼(如果需要)而過早地停止處理,以及使用當前索引以及當前數(shù)據(jù)偏移輸出值來告訴DBMS該錯誤發(fā)生地方的該清單內的條目及數(shù)據(jù)區(qū)。照這樣,DBMS可以通過以從錯誤發(fā)生處的條目之后的條目開始繼續(xù)處理清單來處理在處理該清單內的特定條目時所遇到的錯誤。與批量寫命令相關聯(lián)的響應碼可以包括處理完成(成功);與模型相關的超時(超時)已發(fā)生;不相容狀態(tài)(錯誤);目標存儲器類滿(錯誤);版本號失配(錯誤);分配被抑制(錯誤);數(shù)據(jù)區(qū)大小失配(錯誤);無效的本地高速緩存標識符(錯誤);無效的數(shù)據(jù)區(qū)大小(錯誤);無效的存儲器類(錯誤);無效的拋棄類(錯誤);以及無效的拋棄奇偶位(錯誤)。
在本發(fā)明的某些實現(xiàn)中,在其中使用批量寫命令來把數(shù)據(jù)對象寫入共享外部存儲器120的情形中,用于繁重的批量插入工作量的多系統(tǒng)數(shù)據(jù)共享開銷被減少了57%。
例如,銀行申請的事務正在改變DBMS構件110A的本地緩沖池116A內的每個帳戶持有人的記錄是有可能的。也許存在要加以改變的跨越500,000頁的一百萬條記錄。一旦該事務提交,就使用批量寫命令來把被改變的頁從本地緩沖池116A寫到共享外部存儲器120的高速緩存結構122。
對于“提交時強制”緩沖器寫協(xié)議(它被用于z/OS的DB2所使用),在該事務釋放它的鎖之前,在提交時或提交之前寫入該被改變的數(shù)據(jù)對象。就是說,DBMS構件110A…N能夠異步地把被改變的數(shù)據(jù)對象寫到事務的執(zhí)行。而且,當寫數(shù)據(jù)對象時,該數(shù)據(jù)對象可以包含來自多個事務的改變。能夠用諸如本地緩沖池閾值或系統(tǒng)檢驗點這樣的事件來觸發(fā)該異步寫。實際上,當事務改變一單獨的提交范圍內的許多數(shù)據(jù)對象時,很可能大多數(shù)數(shù)據(jù)對象將被異步地寫,并且僅有幾個數(shù)據(jù)對象將需要在提交的時候被寫。該批量寫命令可在異步(即,由于閾值或系統(tǒng)檢驗點的背景下被寫入的數(shù)據(jù)對象)及同步(即,在提交時被寫的數(shù)據(jù)對象)這兩種情形中由DBMS所使用。這樣就由于主系統(tǒng)上所減少的CPU開銷而導致了改進的性能。
存在被稱作“非強制”的另一種緩沖器寫協(xié)議。用該“非強制”協(xié)議,被改變的數(shù)據(jù)對象不需按提交時間寫,但是被改變的數(shù)據(jù)對象卻能夠在提交后以“臟”(即,被改變)狀態(tài)保持在本地緩沖池116A…N內,并且該數(shù)據(jù)對象受到該數(shù)據(jù)對象上的“懶惰鎖”的保護(即,保持在一被改變的緩沖器過去提交上的鎖,這樣該鎖不被該事務所占有而是由DBMS構件110A…N所占有)。對于“非強制”,幾乎與該事務的執(zhí)行完全異步地進行緩沖器的寫。但是就像使用“提交時強制”協(xié)議一樣,該“非強制”協(xié)議最終寫入該數(shù)據(jù)對象(例如,當另一個DBMS構件110A…N想改變該數(shù)據(jù)對象時),并因此該批量寫命令也適用于該“非強制”協(xié)議。該批量寫命令是傳送被改變的數(shù)據(jù)對象同時維護對于共享盤DBMS環(huán)境的緩沖器相干性,而不考慮“提交時強制”或“非強制”協(xié)議的更為有效的技術。
在某些實現(xiàn)中,使用試探法(例如,CPU成本)來確定何時更有效地使用批量寫命令與每次一頁寫命令(即,幾個單獨的寫命令)。本發(fā)明的技術適用于單工及雙工共享外部存儲器120結構這兩者。用單工結構,不提供數(shù)據(jù)的冗余雙工拷貝。用雙工結構,提供數(shù)據(jù)的冗余雙工拷貝。
圖3A說明了根據(jù)本發(fā)明某些實現(xiàn)的使用批量交叉無效命令的邏輯。DBMS構件110A…N使用批量交叉無效命令來有效地交叉無效未被緩存在共享外部存儲器120內,并且由此,未被使用該批量寫命令在事務提交時寫出到該共享外部存儲器120的被改變的數(shù)據(jù)對象。當共享外部存儲器120處理一個批量寫命令或批量交叉無效命令時,使用一條單獨的共享外部存儲器120命令來把許多交叉無效請求從DBMS構件110A…N發(fā)送到該共享外部存儲器120。不過,該共享外部存儲器120將準確地執(zhí)行每次由該處理產生的所有必要的DBMS構件的110A…N本地高速緩存向量條目的本地緩沖池向量117A…N交叉無效。共享外部存儲器120已經具有對于發(fā)送這些交叉無效信號時的并行性的支持,不過,在某些實現(xiàn)中,它們不被批處理。
當被改變的數(shù)據(jù)被直接寫到盤上時,由DBMS構件110A…N使用批量交叉無效命令,并且共享外部存儲器120僅用于緩沖器無效。用于z/OS的DB2具有被稱作‘GBPCACHE’的選項以允許用戶控制它。目前,當GBPCACHE選項與NO一起使用作為一個輸入參數(shù)(即,“GBPCACHENO”)時,數(shù)據(jù)不被緩存并且DBMS構件110A…N在提交時或提交前把被改變的數(shù)據(jù)寫到盤104上(方框300)。在寫該數(shù)據(jù)對象后,DBMS構件110A…N向具有數(shù)據(jù)對象清單的共享外部存儲器120發(fā)布交叉無效請求,以發(fā)送用于每個數(shù)據(jù)對象的交叉無效信號(方框310)。用該批量交叉無效命令,DBMS構件110A…N現(xiàn)在能夠發(fā)布一條共享外部存儲器120命令,以發(fā)送用于多個數(shù)據(jù)對象的交叉無效信號。共享外部存儲器120從該批量交叉無效命令中接收數(shù)據(jù)對象的清單,并且然后每次給一個數(shù)據(jù)對象發(fā)送該交叉無效信號(方框320)。
該批量交叉無效命令,像該批量寫和批量拋棄命令一樣,通過節(jié)省主CPU周期而允許更好的性能,這是由于它對于主機發(fā)送一條用于多個數(shù)據(jù)對象的共享外部存儲器120命令而不是用于每個數(shù)據(jù)對象的一條命令更為有效。在本發(fā)明的某些實現(xiàn)中,在其中數(shù)據(jù)庫數(shù)據(jù)對象不被緩存在共享外部存儲器120內的情形中,開銷被減少了37%。
圖3B說明了根據(jù)本發(fā)明某些實現(xiàn)的批量交叉無效命令的輸入340。在某些實現(xiàn)中,該批量交叉無效命令把輸入340看作包含要被處理的名稱清單352(例如,高達4096)的數(shù)據(jù)緩沖器350。該輸入還將包含清單索引的起點356及清單索引的終點358,它們含有處理應該開始處的輸入數(shù)據(jù)塊內條目名的索引以及處理應該結束處的輸入數(shù)據(jù)塊內條目名的索引。該輸入還可以包含在未發(fā)現(xiàn)條目的情況下將指定處理是否將繼續(xù)到該輸入數(shù)據(jù)塊內的下個名稱的錯誤動作關鍵字360。在某些實現(xiàn)中,對于該批量交叉無效命令不存在輸出。
在某些情形中,“批量交叉無效”命令也許不能處理在一單獨的請求內的全部名稱清單。為了處理這種情況,“批量交叉無效”命令可被設計成(如果需要)超時并由DBMS重新驅動,從先前的循環(huán)上它停止處開始。為了實現(xiàn)該超時處理,該批量交叉無效命令可以產生以下輸出,響應碼以及當前索引。當該批量交叉無效命令以“超時”響應碼完成時,把當前的索引輸出設置成表明該名稱清單內的“下一個”(未被處理的第一個)條目的值。該DBMS能夠把該輸出值傳回作為下條命令上的輸入(清單索引的起點),以從它停止處繼續(xù)該清單的處理。
此外,該批量交叉無效命令在處理該清單內的特定條目時會遇到錯誤。為了處理這種錯誤,該批量交叉無效命令可以被設計成(如果需要的話)隨表明該特定錯誤的錯誤響應碼而過早地停止處理,以及使用當前索引來告訴DBMS該錯誤發(fā)生地方的該清單內的條目,以便允許該DBMS來處理在處理該清單內的特定條目時所遇到的錯誤,并且然后以發(fā)生該錯誤的地方的條目后的條目開始繼續(xù)處理該清單。與該批量交叉無效命令相關聯(lián)的響應碼可以包括處理完成(成功);與模型有關的超時發(fā)生(超時);以及名稱未發(fā)現(xiàn)(錯誤)。
圖4A說明了根據(jù)本發(fā)明某些實現(xiàn)的被實現(xiàn)來使用批量拋棄命令的邏輯。在方框400,內控制從DBMS構件110A…110N向具有對將被從高速緩存結構122中讀出的數(shù)據(jù)對象的拋棄請求清單的共享外部存儲器120發(fā)布批量拋棄命令開始。在某些實現(xiàn)中,在該共享外部存儲器120內為將被拋棄的每個數(shù)據(jù)對象設置拋棄(CO)指示器(也把它稱作為拋棄鎖),以阻止一個以上的DBMS構件110A…110N試圖拋棄同一數(shù)據(jù)對象。對于讀或寫,該拋棄數(shù)據(jù)對象可以仍然可被訪問。處理器140處理該批量拋棄命令(方框410)。具體地,該批量拋棄命令的處理導致了來自該清單的各個單獨的拋棄請求,適當?shù)貫樵搾仐壎o條目加鎖,積累在組合響應內該條目的要被的數(shù)據(jù),以及返回在該組合響應內的總和讀取信息。從而,多個數(shù)據(jù)對象被從高速緩存結構122返回到處理器存儲器119A…119N。在方框420內,該DBMS構件110A…110N把該數(shù)據(jù)對象從處理器存儲器119A…119N寫到盤104上。當設置拋棄鎖時,DBMS構件110A…110N釋放該拋棄鎖。在某些實現(xiàn)中,用批處理的一條解鎖拋棄鎖命令(可從國際商業(yè)機器公司得到)來釋放該拋棄鎖。
圖4B說明了根據(jù)本發(fā)明某些實現(xiàn)的批量拋棄命令的輸入440及輸出470。在某些實現(xiàn)中,該批量拋棄命令把輸入440看作含有由CASTOUTLIST指定的要為拋棄而讀取的條目名稱452(例如,多達8個)的清單的輸入數(shù)據(jù)緩沖器450。該輸入還將包含清單索引的起點456及清單索引的終點458,它們將含有處理應該開始處的輸入數(shù)據(jù)塊內條目名的索引以及處理應該結束處的輸入數(shù)據(jù)塊內條目名的索引??蛇x地,PROCESSID460能夠被指定以便與在該請求上獲得的用于拋棄鎖的連接標識符一起放到該拋棄鎖內。而且,輸出470包括含有為該清單內的每一條目所讀取的信息的一輸出數(shù)據(jù)緩沖器480。具體地,輸出數(shù)據(jù)緩沖器480包括具有條目控制的目錄條目信息塊482(DEIB)的一個或多個實例(僅示出一個),附加區(qū)域484(如果給出),以及將包含為輸入清單452內的每一條目所讀取的數(shù)據(jù)的條目數(shù)據(jù)內容486。
在某些情形中,該批量拋棄命令也許不能處理在一單獨的CF批量拋棄請求內的全部名稱清單。為了處理這些錯誤,該批量拋棄命令可以被設計成(如果需要)超時并由DBMS重新驅動,從先前的循環(huán)上該命令停止處開始。為了實現(xiàn)這一點,該命令輸出可以包括一響應碼以及當前索引。當該批量拋棄命令以“超時”響應碼完成時,把當前的索引輸出設置成表明該名稱清單內的“下一個”(未被處理的第一個)條目的值。該DBMS能夠把該輸出值傳回作為下條批量拋棄命令上的輸入(清單索引的起點),以從該命令結束處繼續(xù)該清單的處理。此外,該批量拋棄命令在處理該清單內的特定條目時會遇到錯誤。為了處理這些錯誤,該批量拋棄命令可被設計成(如果需要)隨表明該特定錯誤的錯誤響應碼而過早地停止處理,以及使用當前索引來告訴DBMS該錯誤發(fā)生的地方的該清單內的條目,以便允許該DBMS處理在處理該清單內的特定條目時所遇到的錯誤,并且然后從碰見該錯誤的條目后的條目開始繼續(xù)處理該清單。該批量拋棄命令可與以下響應碼相關聯(lián)有關處理完成(成功);與模型相關的超時已發(fā)生(超時);數(shù)據(jù)未被改變(錯誤);名稱未被列在目錄內(錯誤);已為拋棄而對數(shù)據(jù)加鎖(錯誤);數(shù)據(jù)塊滿(錯誤);不足的數(shù)據(jù)塊(錯誤);以及不足的消息緩沖器空間(錯誤)。
在某些實現(xiàn)中,根據(jù)被改變數(shù)據(jù)的對象閾值,諸如拋棄類的閾值或高速緩存結構的閾值來安排拋棄。拋棄安排在IBM系統(tǒng)雜志1997年第2期第36卷上由Jeffrey W.Josten所著的“DB2’s use of theCoupling Facility for Data Sharing”作了進一步描述,該文在此引入以供參考。
因而,在本發(fā)明的某些實現(xiàn)中,使用了允許在一條單獨的命令內寫多個數(shù)據(jù)庫數(shù)據(jù)對象的共享外部存儲器120命令。當事務改變了屬于同一對象的多個數(shù)據(jù)對象時,通過使用一條單獨的批量寫命令來把多個數(shù)據(jù)對象寫到共享外部存儲器120(取代對于每一數(shù)據(jù)對象使用一條單獨的寫命令)來減少多系統(tǒng)數(shù)據(jù)共享開銷。在某些實現(xiàn)中,該批量寫命令是在國際商業(yè)機器公司的耦合設施內可獲得的Write AndRegister Multiple(WARM)命令。
而且,由于數(shù)據(jù)對象被從共享外部存儲器120拋棄到處理器存儲器119A…N,因此通過使用該批量拋棄命令來把多個數(shù)據(jù)對象從共享外部存儲器120讀入具有一條單獨的命令的處理器存儲器119A…N(取代對于每個數(shù)據(jù)對象使用一條單獨的讀命令)而可以用較少的CPU消耗來執(zhí)行DBMS構件110A…N的拋棄處理。在某些實現(xiàn)中,該批量寫命令是在國際商業(yè)機器公司的耦合設施內可獲得的Read For CastoutMultiple(RFCOM)。
在某些實現(xiàn)中,對于未被緩存在該共享外部存儲器內的數(shù)據(jù)庫對象,本發(fā)明的某些實現(xiàn)并入了批量交叉無效命令的使用,以交叉無效具有一單獨的共享外部存儲器命令的數(shù)據(jù)對象的清單(取代對于每個數(shù)據(jù)對象使用一條單獨的交叉無效命令)。在某些實現(xiàn)中,該批量交叉無效命令是在國際商業(yè)機器公司的耦合設施內可獲得的InvalidateComplement Copies List(ICCL)命令。
因而,在存在相對很大型數(shù)據(jù)庫的激活的繁重的改變和/或插入活動的應用情況中共享的多系統(tǒng)DBMS數(shù)據(jù)的CPU開銷得以減少。這例如對于銀行業(yè)及電信顧客裝置特別有用。
本發(fā)明的某些實現(xiàn)管理本地緩沖池以及共享存儲器高速緩存結構122,以模仿盤的I/O是如何工作的,而不是模仿當執(zhí)行批量寫以及批量拋棄命令時本地緩沖池是如何工作的。為了保持性能,高速緩存相干性問題已經被使用很高速度的,低等待時間的系統(tǒng)間通信協(xié)議解決了。
DB2以及z/OS是國際商業(yè)機器公司的商標。Unix是The Open Group的商標。Windows是微軟公司的商標。Linux是Linus Torvalds的商標。
附加的實現(xiàn)細節(jié)所描述的用于保持網絡組件上的信息的技術可以作為方法、裝置或使用生產軟件、固件、硬件、或它們的任何組合的標準編程和/或工程技術而制造的物品來實現(xiàn)。這里所使用的術語“制造的物品”涉及以硬件邏輯(例如,集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等等)或計算機可讀介質諸如磁存儲介質(例如,硬盤驅動器、軟盤、磁帶等等)、光存儲器(CD-ROM、光盤等等)、易失性及非易失性存儲器設備(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等)所實現(xiàn)的代碼或邏輯。計算機可讀介質內的代碼由處理器存取和執(zhí)行。其中實現(xiàn)優(yōu)選實施例的代碼還可以通過傳輸媒體或從網絡上的文件服務器存取。在這種情形中,其中實現(xiàn)該代碼的制造的物品可以包含諸如網絡常數(shù)線的傳輸媒體、無線傳輸媒體、通過空間、無線電波而傳播的信號、紅外信號等等。因而,“制造的物品”可以含有其中包含代碼的介質。另外,“制造的物品”可以含有其中代碼被包含、處理及執(zhí)行的硬件與軟件組件的組合。當然,本領域的那些技術人員將意識到可以對該結構做出許多修改而不脫離本發(fā)明的范圍,而且制造的物品可以含有本領域所公知的任何信息承載媒介。
圖2A、3A、以及4A的邏輯描述了以特定次序發(fā)生的特定操作。在另外的實現(xiàn)中,可以以不同的次序,修改的或去除的,執(zhí)行某些邏輯操作。而且,可以將步驟加到上述邏輯上并仍然符合上述實現(xiàn)。此外,這里所描述的操作可以順序地發(fā)生或者某些操作可以被并行處理,或者描述為由一單獨的過程所執(zhí)行的操作可以由分布式過程來執(zhí)行。
圖2A,3A,以及4A的邏輯被描述為以軟件來實現(xiàn)。該邏輯可以是主系統(tǒng)的操作系統(tǒng)的一部分或應用程序。在還進一步的實現(xiàn)中,該邏輯可以保持在由控制單元所管理的存儲區(qū)內或是保持在只讀存儲器或其他硬連線型設備內。優(yōu)選邏輯可以以硬件或以可編程及不可編程門陣列邏輯實現(xiàn)。
圖5說明了DBMS構件110A…110N和/或共享外部存儲器120的體系結構的一種實現(xiàn)。DBMS構件110A…110N和/或共享外部存儲器120計算機結構500具有處理器502(例如,一微處理器),存儲器504(例如,一易失性存儲設備),以及存儲器506(例如,一非易失存儲器,諸如磁盤驅動器,光盤驅動器,磁帶驅動器,等等)。存儲器506可包含一內部存儲設備或是一被附連的或網絡可訪問的存儲器。把存儲器506內的程序裝載到存儲器504內,并由處理器502按本領域內所公知的一種方式來執(zhí)行。該體系結構進一步包括啟用與網絡通信的一網卡508。輸入設備510被用來向處理器502提供用戶輸入,并可以包括鍵盤,鼠標,筆型指示筆,麥克風,觸敏式顯示屏,或本領域內所公知的其它任何激活或輸入機制。輸出設備512能夠再現(xiàn)從處理器502,或其它組件,諸如顯示監(jiān)視器,打印機,存儲器,等等所傳送的信息。
出于說明及描述目的而給出了上面的本發(fā)明優(yōu)選實現(xiàn)的描述。這并不試圖窮盡地或是把本發(fā)明限制到該公開的精確形式上。依據(jù)上述教導,許多修改和變化都是可能的。旨在本發(fā)明的范圍應該不受該詳細描述的限制,而是由所附帶的權利要求書所限制。上述說明,舉例以及數(shù)據(jù)提供了本發(fā)明組成的制造及使用的完整描述。由于能夠做出本發(fā)明的許多實現(xiàn)而不脫離本發(fā)明的精神和范圍,因此本發(fā)明在于此后附帶的權利要求書。
權利要求
1.一種傳送數(shù)據(jù)的方法,包括標識已由一個或多個事務改變的多個數(shù)據(jù)對象;以及使用批量寫命令來把該多個數(shù)據(jù)對象從本地存儲器傳送到共享高速緩存結構。
2.權利要求1的方法,其中該多個數(shù)據(jù)對象被使用事務數(shù)據(jù)對象清單來加以標識。
3.權利要求1的方法,其中該批量寫命令被與“提交時強制”協(xié)議一起使用。
4.權利要求1的方法,其中該批量寫命令被與“非強制”協(xié)議一起使用。
5.權利要求1的方法,進一步包括使用試探法來確定是使用該批量寫命令還是使用幾個單獨的寫命令。
6.權利要求1的方法,其中該批量寫命令把輸入看作含有描述要被寫的條目的寫操作塊清單、要被寫的條目數(shù)據(jù)內容清單、清單索引的起點、清單索引的終點、以及數(shù)據(jù)偏移的輸入數(shù)據(jù)緩沖器,并返回作為輸出的用于每個寫操作塊的寫操作響應塊的清單,該清單表明每個寫操作塊的結果,其中每一條目都被與該數(shù)據(jù)對象中的一個相關聯(lián)。
7.一種傳送數(shù)據(jù)的方法,包括當把第一系統(tǒng)上的未被緩存在共享高速緩存內的被改變的數(shù)據(jù)對象傳送到盤上時,發(fā)送標識該被傳送到盤上的被改變的數(shù)據(jù)對象的一條批量交叉無效命令。
8.權利要求7的方法,其中該批量交叉無效命令使第二系統(tǒng)上的被改變的數(shù)據(jù)對象無效。
9.權利要求7的方法,進一步包括接收共享外部存儲器上的該批量交叉無效;以及每次給一個數(shù)據(jù)對象發(fā)送該交叉無效信號。
10.權利要求7的方法,其中該批量交叉無效命令把輸入看作包含條目清單、清單索引的起點、以及清單索引的終點的數(shù)據(jù)緩沖器,其中每一條目都被與該數(shù)據(jù)對象中的一個相關聯(lián)。
11.一種傳送數(shù)據(jù)方法,包括使用一條單獨的批量拋棄命令來把多個數(shù)據(jù)對象從高速緩存結構傳送到處理器存儲器;以及把多個數(shù)據(jù)對象從該處理器存儲器傳送到盤上。
12.權利要求11的方法,其中該批量拋棄命令把輸入看作要為拋棄而讀取的條目的清單、清單索引的起點、清單索引的終點、以及含有為該清單內的每個條目所讀取的信息的輸出緩沖器,其中這些條目中的每一個都被與該數(shù)據(jù)對象中的一個相關聯(lián)。
13.一種傳送數(shù)據(jù)的系統(tǒng),包括用于標識已由一個或多個事務改變的多個數(shù)據(jù)對象的裝置;以及用于使用批量寫命令來把該多個數(shù)據(jù)對象從本地存儲器傳送到共享高速緩存結構的裝置。
14.權利要求13的系統(tǒng),其中該多個數(shù)據(jù)對象被使用事務數(shù)據(jù)對象清單來加以標識。
15.權利要求13的系統(tǒng),其中該批量寫命令被與“提交時強制”協(xié)議一起使用。
16.權利要求13的系統(tǒng),其中該批量寫命令被與“非強制”協(xié)議一起使用。
17.權利要求13的系統(tǒng),進一步包括用于使用試探法來確定是使用該批量寫命令還是使用幾個單獨的寫命令的裝置。
18.權利要求13的系統(tǒng),其中該批量寫命令把輸入看作含有描述要被寫的條目的寫操作塊清單、要被寫的條目數(shù)據(jù)內容清單、清單索引的起點、清單索引的終點、以及數(shù)據(jù)偏移的輸入數(shù)據(jù)緩沖器,并返回作為輸出的用于每個寫操作塊的寫操作響應塊的清單,該清單表明每個寫操作塊的結果,其中每一條目都被與該數(shù)據(jù)對象中的一個相關聯(lián)。
19.一種傳送數(shù)據(jù)的系統(tǒng),包括用于當把第一系統(tǒng)上的未被緩存在共享高速緩存內的被改變的數(shù)據(jù)對象傳送到盤上時,發(fā)送標識該被傳送到盤上的被改變的數(shù)據(jù)對象的一條批量交叉無效命令的裝置。
20.權利要求19的系統(tǒng),其中該批量交叉無效命令使第二系統(tǒng)上的被改變的數(shù)據(jù)對象無效。
21.權利要求19的系統(tǒng),進一步包括用于接收共享外部存儲器上的該批量交叉無效的裝置;以及用于每次給一個數(shù)據(jù)對象發(fā)送該交叉無效信號的裝置。
22.權利要求19的系統(tǒng),其中該批量交叉無效命令把輸入看作包含條目清單、清單索引的起點、以及清單索引的終點的數(shù)據(jù)緩沖器,其中每一條目都被與該數(shù)據(jù)對象中的一個相關聯(lián)。
23.一種傳送數(shù)據(jù)的系統(tǒng),包括用于使用一條單獨的批量拋棄命令來把多個數(shù)據(jù)對象從高速緩存結構傳送到處理器存儲器的裝置;以及用于把多個數(shù)據(jù)對象從該處理器存儲器傳送到盤上的裝置。
24.權利要求23的系統(tǒng),其中該批量拋棄命令把輸入看作要為拋棄而讀取的條目的清單、清單索引的起點、清單索引的終點、以及含有為該清單內的每個條目所讀取的信息的輸出緩沖器,其中這些條目中的每一個都被與該數(shù)據(jù)對象中的一個相關聯(lián)。
25.一種包括用于傳送數(shù)據(jù)的代碼的產品,其中該代碼能夠引起操作,該操作包括標識已由一個或多個事務改變的多個數(shù)據(jù)對象;以及使用批量寫命令來把該多個數(shù)據(jù)對象從本地存儲器傳送到共享高速緩存結構。
26.權利要求25的產品,其中該多個數(shù)據(jù)對象被使用事務數(shù)據(jù)對象清單來加以標識。
27.權利要求25的產品,其中該批量寫命令被與“提交時強制”協(xié)議一起使用。
28.權利要求25的產品,其中該批量寫命令被與“非強制”協(xié)議一起使用。
29.權利要求25的產品,該操作進一步包括使用試探法來確定是使用該批量寫命令還是使用幾個單獨的寫命令。
30.權利要求25的產品,其中該批量寫命令把輸入看作含有描述要被寫的條目的寫操作塊清單、要被寫的條目數(shù)據(jù)內容清單、清單索引的起點、清單索引的終點、以及數(shù)據(jù)偏移的輸入數(shù)據(jù)緩沖器,并返回作為輸出的用于每個寫操作塊的寫操作響應塊的清單,該清單表明每個寫操作塊的結果,其中每一條目都被與該數(shù)據(jù)對象中的一個相關聯(lián)。
31.一種包括用于傳送數(shù)據(jù)的代碼的產品,其中該代碼能夠引起操作,該操作包括當把第一系統(tǒng)上的未被緩存在共享高速緩存內的被改變的數(shù)據(jù)對象傳送到盤上時,發(fā)送標識該被傳送到盤上的被改變的數(shù)據(jù)對象的一條批量交叉無效命令。
32.權利要求31的產品,其中該批量交叉無效命令使第二系統(tǒng)上的被改變的數(shù)據(jù)對象無效。
33.權利要求31的產品,進一步包括接收共享外部存儲器上的該批量交叉無效;以及每次給一個數(shù)據(jù)對象發(fā)送該交叉無效信號。
34.權利要求31的產品,其中該批量交叉無效命令把輸入看作包含條目清單、清單索引的起點、以及清單索引的終點的數(shù)據(jù)緩沖器,其中每一條目都被與該數(shù)據(jù)對象中的一個有關。
35.一種包括用于傳送數(shù)據(jù)的代碼的產品,其中該代碼能夠引起操作,該操作包括使用一條單獨的批量拋棄命令來把多個數(shù)據(jù)對象從高速緩存結構傳送到處理器存儲器;以及把多個數(shù)據(jù)對象從該處理器存儲器傳送到盤上。
36.權利要求35的產品,其中該批量拋棄命令把輸入看作要為拋棄而讀取的條目的清單、清單索引的起點、清單索引的終點、以及含有為該清單內的每個條目所讀取的信息的輸出緩沖器,其中這些條目中的每一個都被與該數(shù)據(jù)對象中的一個相關聯(lián)。
全文摘要
所公開的是用于傳送數(shù)據(jù)的系統(tǒng),方法及程序。當提交一事務時,標識已由該事務改變的多個數(shù)據(jù)對象。使用一條批量寫命令來把該多個數(shù)據(jù)對象從本地存儲器寫到高速緩存結構。當把第一系統(tǒng)上的未被緩存在該共享外部存儲器內的被改變的數(shù)據(jù)對象寫到盤上時,使用一條批量交叉無效命令來使第二系統(tǒng)上的數(shù)據(jù)對象無效。另外,使用一條批量拋棄命令來把多個數(shù)據(jù)對象從該高速緩存結構讀到處理器存儲器內。
文檔編號G06F12/00GK1489067SQ03156738
公開日2004年4月14日 申請日期2003年9月8日 優(yōu)先權日2002年9月9日
發(fā)明者J·J·坎普貝爾, D·A·??? J·W·喬斯坦, H·P·羅伯特斯, D·H·蘇爾曼, J J 坎普貝爾, 喬斯坦, 埃科, 羅伯特斯, 蘇爾曼 申請人:國際商業(yè)機器公司