專利名稱:數(shù)據(jù)共享方法和計算機體系結(jié)構(gòu)的制作方法
本申請要求由本發(fā)明的共同發(fā)明人中的至少一個發(fā)明人所提出的未決臨時申請No.60/010001(1996年1月11日)“資源共享設(shè)施”的權(quán)利并與其相關(guān),并包含對此臨時申請中所揭示的和應(yīng)歸于這里所列發(fā)明者中至少一個的主題的至少一個權(quán)利要求。
本發(fā)明涉及在代表能夠和確實獨立地運行但可共享公用資源的松散耦合的數(shù)據(jù)處理系統(tǒng)的多個計算機之間共享數(shù)據(jù)項和鎖定及支持遠(yuǎn)程過程調(diào)用和協(xié)調(diào)進(jìn)程群的方法。本發(fā)明還涉及可為這樣的計算機共同利用的資源共享設(shè)施并涉及體現(xiàn)其的計算機體系結(jié)構(gòu)。
這里所用的詞語“計算機”是指具有一個或多個中央處理單元的機器。一計算機的中央處理單元可以是與另一計算機的中央處理單元相同類型或不同類型的。因此本發(fā)明也涉及共享數(shù)據(jù)的異構(gòu)型計算機系統(tǒng),這些數(shù)據(jù)被保存在資源共享設(shè)施中或者保存在常常被稱為輔助存儲裝置的輔助存儲器中,所述輔助存儲器附著到資源共享設(shè)施或者在由資源共享設(shè)施管理的別處的存儲器中。
以往,松散耦合的數(shù)據(jù)處理系統(tǒng)常常具有多于一個的操作系統(tǒng),各自附著到一可能含有共享數(shù)據(jù)并使得能利用靈活控制器在處理系統(tǒng)間共享數(shù)據(jù)的直接存取存儲器。
共用輔助存儲器裝置,常常為DASD,可通過被連接到數(shù)個計算機的所謂的靈活控制器加以訪問,可維持超高速緩沖存儲器達(dá)到增強的性能,以及能支持資源鎖定使得能協(xié)調(diào)多個計算機對數(shù)據(jù)的訪問。
當(dāng)前,IBM引入一SYSPLEXTM體系結(jié)構(gòu),采用一耦合設(shè)施將共享數(shù)據(jù)保留在一有效存儲器中。在這一體系結(jié)構(gòu)中,所有共享保留在耦合設(shè)施中的數(shù)據(jù)的計算機系統(tǒng)均通過非常快速的耦合鏈路連接到耦合設(shè)施,并利用一組特定命令來存儲、改變、刪除、檢索、鎖定和釋放共享的數(shù)據(jù)項。這些計算機系統(tǒng)還通過相當(dāng)慢的通道鏈接到共享的直接存取存儲器。在計算機系統(tǒng)不必共享數(shù)據(jù)或者以極為有限的理由這樣做(例如在僅有一個計算機訪問任一特定數(shù)據(jù)庫或數(shù)據(jù)組)時的環(huán)境中應(yīng)用一耦合設(shè)施將只能使性能惡化。
那些要求較快訪問的資源,如DBMS超高速緩沖存儲器,鎖定和共享的結(jié)構(gòu)化表,可由前述的耦合設(shè)施處理。
利用前述類型的耦合設(shè)施的一個缺點是可能利用控制器中、耦合設(shè)施中和計算機主存儲器中的存儲器空間及可能利用計算機中、耦合設(shè)施中和控制器中的處理器周期的超高速緩沖存儲器管理冗余。數(shù)據(jù)訪問可能涉及多個單元而使得象“READ FOR UPDATE(為更新讀)”這樣的動作必須被分成從耦合設(shè)施請求并被其執(zhí)行的“LOCK(鎖定)”和從通道和控制器請求并由其執(zhí)行的“REAL READ(實讀)”。而且,集合輸入/輸出總處理能力可能為通道的輸入/輸出極限所限制,它可能大大低于到耦合設(shè)施的鏈路。
下面詳述的本發(fā)明的重要點在于,用輔助存儲裝置的擴展控制器的功能代替耦合設(shè)施的功能常常能克服這些缺點。
因此本發(fā)明的基本目的是提供一種至少能克服這些缺點中的某些缺點的同構(gòu)型和/或異構(gòu)型計算機系統(tǒng)間共享數(shù)據(jù)的改進(jìn)方法。
本發(fā)明的另一目的是通過在由直接存取存儲裝置保持超高速緩存時將計算機系統(tǒng)間共享的超高速緩存一致化來優(yōu)化對共享數(shù)據(jù)的訪問。
因此,總的說,本發(fā)明的目的是提供一種有效地促進(jìn)在多個同構(gòu)型和/或異構(gòu)型計算機系統(tǒng)間共享輔助存儲器的計算機體系結(jié)構(gòu),這將使得能在計算機系統(tǒng)之間和這些計算機系統(tǒng)與輔助存儲裝置的控制器之間能共享相關(guān)的數(shù)據(jù)項。
本發(fā)明還有一目的是實現(xiàn)計算機獨立負(fù)荷均衡,這也可被用于單個的計算機而不致使運行性能惡化。
本發(fā)明一附加的目的是改善多計算機系統(tǒng)中進(jìn)程群的協(xié)調(diào)。
再一目的是對在這樣的計算機上運行的進(jìn)程之間的遠(yuǎn)程過程調(diào)用提供有效支持。
后面將成為很明顯的這些目的和其他目的按照本發(fā)明將這樣來達(dá)到,即設(shè)置作為可選擇地包括輔助存儲裝置或如下面更一般地描述為輔助存儲器的輔助存儲器控制器作用的資源共享設(shè)施,向?qū)?yīng)用程序敏感的超高速緩沖存儲器管理、將與數(shù)據(jù)相關(guān)的鎖定請求與對應(yīng)的輸入/輸出或I/O請求一致化、鎖定管理、負(fù)載均衡隊列和數(shù)據(jù)庫日志文件提供支持,此資源共享設(shè)施借助高速系統(tǒng)間鏈路或通道被連接到計算機或計算機系統(tǒng)。
更具體說,本發(fā)明是在多個計算機之間共享數(shù)據(jù)項和鎖定以及支持遠(yuǎn)程過程調(diào)用和協(xié)調(diào)進(jìn)程群的方法,所述計算機具有各自的中央處理單元、與各計算機的中央處理單元相關(guān)的各主存儲器和保持在各計算機的主存儲器中的可能為高級的超高速緩沖存儲器。
這一方法包括步驟(a)設(shè)置帶有一中級超高速緩存和一資源共享設(shè)施數(shù)據(jù)庫并能在此中級超高速緩存和資源共享設(shè)施數(shù)據(jù)庫中有選擇地存儲一組數(shù)據(jù)項的資源共享設(shè)施;(b)由系統(tǒng)間鏈路將資源共享設(shè)施連接到所有計算機以便此資源共享設(shè)施能被所有的計算機訪問;(c)運行資源共享設(shè)施作為對至少一個輔助存儲器的控制器;
(d)在資源共享設(shè)施中保留對中級超高速緩存中的每一數(shù)據(jù)項的為將中級超高速緩存數(shù)據(jù)映射到輔助存儲器和將輔助存儲器數(shù)據(jù)映射到中級超高速緩存所需的控制信息和邏輯;和(e)從計算機授權(quán)資源共享設(shè)施作輸入/輸出操作來將保留在資源共享設(shè)施中的超高速緩存數(shù)據(jù)與駐留在輔助存儲器中的持久數(shù)據(jù)加以同步。
按照本發(fā)明一特點,此方法還可包括步驟響應(yīng)來自至少一個高級超高速緩存的管理器的至少一個請求在資源共享設(shè)施中激活一組進(jìn)程;和支持來自任何計算機的此請求組的各進(jìn)程中的在中級超高速緩存中存儲數(shù)據(jù)項;登記數(shù)據(jù)項中的要點;將數(shù)據(jù)項寫到輔助存儲器;和從中級超高速緩存讀取數(shù)據(jù)項到每一高級超高速緩存。
例如可以給每一計算機設(shè)置位于主存中的具有超高速緩沖存儲器控制向量的資源共享設(shè)施支持設(shè)施(RSF-SF),此向量帶有說明各高級超高速緩存的緩存器中的數(shù)據(jù)項的狀態(tài)的項目(entry),每一個為登記數(shù)據(jù)項中的要點的請求將各超高速緩沖存儲器控制向量的一個項目與中級超高速緩存中的對應(yīng)數(shù)據(jù)項相關(guān)連。
而且在每次以寫請求從計算機之一將任何數(shù)據(jù)項寫進(jìn)中級超高速緩存后,即可無效化或刷新除已發(fā)出寫請求的計算機外的所有已登記該數(shù)據(jù)項中的要點的所有計算機的全部高級超高速緩存中的相同數(shù)據(jù)項的相應(yīng)復(fù)制。
共享數(shù)據(jù)項可從下列選擇數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)集或數(shù)據(jù)庫的結(jié)構(gòu)化數(shù)據(jù);
非數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)集的結(jié)構(gòu)化數(shù)據(jù);和非結(jié)構(gòu)化數(shù)據(jù)項。
資源共享設(shè)施數(shù)據(jù)庫管理系統(tǒng)可直接在資源共享設(shè)施中實現(xiàn)和特別是被運行用于保持和應(yīng)用聯(lián)機事務(wù)處理和批量作業(yè)執(zhí)行中所需的隊列。
如先前指出的,共享數(shù)據(jù)庫日志文件能在資源共享設(shè)施中得到支持而后者可完成共享計算機單獨對話數(shù)據(jù)和作業(yè)上下文數(shù)據(jù)的事務(wù)和作業(yè)負(fù)荷均衡操作。
資源共享設(shè)施數(shù)據(jù)庫管理系統(tǒng)也可代之以或者部分地在至少一個計算機中實現(xiàn)。
由資源共享設(shè)施數(shù)據(jù)庫管理系統(tǒng)(RSF-DBMS)所保持的數(shù)據(jù)然后即可被存儲在后面這一計算機的高級存儲器中而無需作計算機間的共享。
本發(fā)明的重要特點是周期地從每一資源共享設(shè)施支持設(shè)施發(fā)送一脈動消息到資源共享設(shè)施以通告一各別的計算機保持活動狀態(tài)并被相應(yīng)的系統(tǒng)間鏈路連接到資源共享設(shè)施。
本發(fā)明的方法還包括步驟在中級超高速緩存中任何數(shù)據(jù)項改變后由資源共享設(shè)施產(chǎn)生一有選擇地使一各別的高級超高速緩存無效、刷新一各別的高級超高速緩存和通知與此各別的高級超高速緩存相關(guān)的數(shù)據(jù)項的狀態(tài)中的變化的交叉通告消息;和發(fā)送此交叉通告消息到至少某些登記此各別數(shù)據(jù)項中的要點的計算機。
而且還可用此交叉通告消息揭示先前已由接收此消息的計算機中的要點登記所生成的事件控制塊。
此結(jié)構(gòu)數(shù)據(jù)本身可以是
MVS DB2數(shù)據(jù)庫的數(shù)據(jù),IMS數(shù)據(jù)庫的數(shù)據(jù),ADABAS數(shù)據(jù)庫的數(shù)據(jù),VSAM文件的數(shù)據(jù),IAM文件的數(shù)據(jù),DB2/6000數(shù)據(jù)庫的數(shù)據(jù),Oracle數(shù)據(jù)庫的數(shù)據(jù),Sybase數(shù)據(jù)庫的數(shù)據(jù),Informix數(shù)據(jù)庫的數(shù)據(jù),Ingres數(shù)據(jù)庫的數(shù)據(jù),MicrosoftSQL服務(wù)器數(shù)據(jù)庫的數(shù)據(jù),SQL/DS數(shù)據(jù)庫的數(shù)據(jù),CA-IDMS數(shù)據(jù)庫的數(shù)據(jù),Data Com/DB數(shù)據(jù)庫的數(shù)據(jù),和/或任何其他DBMS的數(shù)據(jù)。
可被應(yīng)用的計算機可以是IBM主機及兼容機,UNIX機,NT機,PC和兼容機或任何其他類型的計算機和/或它們的組合。
按照本發(fā)明特點此方法還包括以讀請求從中級超高速緩存讀取數(shù)據(jù)項;和以同一請求針對同時更新和可選擇地針對從中級超高速緩存同時讀取鎖定從中級超高速緩存讀取的數(shù)據(jù)項。
本發(fā)明還是一降低加在一有選擇地由至少一個通用計算機和至少一個數(shù)據(jù)服務(wù)器組成的計算機系統(tǒng)上的負(fù)荷及加速其對數(shù)據(jù)的存取速度的方法,此方法包括步驟(a)向保留為將高級輸入/輸出請求翻譯成被為數(shù)據(jù)服務(wù)器所設(shè)置的輔助存儲器所理解的低級請求所需的數(shù)據(jù)和邏輯的數(shù)據(jù)服務(wù)器授權(quán)作計算機系統(tǒng)的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的輸入/輸出操作,由此完成高級請求的翻譯;和(b)至少部分地以低級請求運行計算機系統(tǒng)。
計算機體系結(jié)構(gòu)本身包括多個計算機,具有各自的中央處理單元、與各計算機中央處理單元相關(guān)的各主存儲器和保持在各計算機的主存儲器中的各高級超高速緩存;資源共享設(shè)施,帶有中級超高速緩存和資源共享設(shè)施數(shù)據(jù)庫并能在中級超高速緩存和資源共享設(shè)施數(shù)據(jù)庫中有選擇地存儲一組數(shù)據(jù)項;高速系統(tǒng)間鏈路,將資源共享設(shè)施連接到所有計算機以使其能為所有計算機訪問,此資源共享設(shè)施被設(shè)置作為對至少一個輔助存儲器的控制器,此資源共享設(shè)施被提供有為對中級超高速緩存中各數(shù)據(jù)項將中級超高速緩存數(shù)據(jù)映射到輔助存儲器和將輔助存儲器數(shù)據(jù)映射到中級超高速緩存所需的控制信息和邏輯,從計算機授權(quán)資源共享設(shè)施作輸入/輸出操作來將保存在資源共享設(shè)施中的超高速緩存數(shù)據(jù)與駐留在輔助存儲器中的持久數(shù)據(jù)同步。
這樣本發(fā)明就能通過采用耦合鏈路或任何其他CPU至CPU的快速鏈路來代替普通通道或總線連接作為計算機與輸入/輸出控制器亦即RSF之間的連接,以及通過降低對共享數(shù)據(jù)的訪問中所涉及的單元數(shù)來緩解對輔助存儲裝置的總處理能力的約束并改善和/或減少響應(yīng)時間。采用本發(fā)明的系統(tǒng),一組過程被在各種計算機或計算機系統(tǒng)上運行的程序用來對RSF作有關(guān)共用數(shù)據(jù)項的生成和維護的指示。在計算機中運行的數(shù)據(jù)庫管理系統(tǒng)(DBMS)可將對中級超高速緩存未命中(miss)的反應(yīng)傳遞到RSF,由此降低輸入/輸出操作中涉及的硬件單元和為作計算機系統(tǒng)與這些單元間的連接所需資源的數(shù)量,并從計算機系統(tǒng)卸載某些復(fù)雜負(fù)荷到RSF。RSF將用來進(jìn)行超高速緩存數(shù)據(jù)結(jié)構(gòu)與輸入/輸出數(shù)據(jù)結(jié)構(gòu)間的轉(zhuǎn)換的出口例行程序可由相關(guān)超高速緩存數(shù)據(jù)項的排出類別的說明來指定。能被與RSF封裝進(jìn)同一框架的輔助存儲裝置可將RSF作為常規(guī)控制器對待。
由以下參照附圖所作說明將會更容易理解上述及其他目的、特征和優(yōu)點,所列附圖中
圖1為表明現(xiàn)有技術(shù)環(huán)境的方框圖,其中按照本發(fā)明的資源共享設(shè)施至少部分地取代耦合設(shè)施;圖2為說明本發(fā)明資源共享設(shè)施的應(yīng)用的類似于圖1的圖形;圖3a為其中控制器可由本發(fā)明的資源共享設(shè)施代替的現(xiàn)有技術(shù)系統(tǒng)的方框圖;圖3b為說明資源共享設(shè)施的應(yīng)用的類似于圖3a的圖形;圖4a為能利用資源共享設(shè)施的又一現(xiàn)有技術(shù)系統(tǒng)的圖形;圖4b為由資源共享設(shè)施替代圖4a控制器的方框圖;圖5為按照本發(fā)明的資源共享設(shè)施的圖形;圖6為資源共享設(shè)施的另一實施例的方框圖;圖7為處理資源共享設(shè)施中的超高速緩存讀過程的算法圖,亦即由從超高速緩存請求數(shù)據(jù)所觸發(fā)的流程的說明;圖8為說明按照本發(fā)明的系統(tǒng)中數(shù)據(jù)流的原理的圖形;圖9為處理資源共享設(shè)施中的超高速緩存寫請求的算法;圖10為說明要點登記如何分組和它們?nèi)绾闻c數(shù)據(jù)項相關(guān)的圖形;圖11為說明遠(yuǎn)程過程調(diào)用和聯(lián)動進(jìn)程群的可能實施的圖形;圖12a為表明怎樣通過用適當(dāng)?shù)挠布蛙浖鰪娙鐖D1、3a和4a的情況中的耦合設(shè)施來達(dá)到資源共享設(shè)施的功能的方框圖12b為另一這樣的增強系統(tǒng)的方框圖;圖13為利用我們的未決專利申請08/579721(Dec 28,1995)中所說明類型的控制器的另一系統(tǒng)的方框圖;和圖14為這一后面配置的修正圖形。
圖1中,表明一現(xiàn)有技術(shù)系統(tǒng)中的多個總的以3指明的計算機系統(tǒng)或計算機能共享數(shù)據(jù)的計算機環(huán)境。在這一情況下,此系統(tǒng)利用構(gòu)成例如US專利5317739,5331637,5339405,或5339427中所定義的IBMRSYSPLEXTM體系結(jié)構(gòu)的部分的耦合設(shè)施(CF)。這一系統(tǒng)中,耦合設(shè)施1被用來保持多個在各種計算機或計算機系統(tǒng)3之間共享的中級超高速緩沖存儲器2。每一計算機3均具有一由在該計算機上運行的程序所保持并且僅能由這些程序訪問的本地或高級超高速緩沖存儲器4。另一組低級超高速緩沖存儲器5由控制器6保持,后者設(shè)法利用普通的統(tǒng)計規(guī)則預(yù)測哪些數(shù)據(jù)最可能被重復(fù)需要以便確定要保留什么和廢除什么。
在這種環(huán)境中,當(dāng)一程序需要一數(shù)據(jù)項時,計算機3首先在各自的高級超高速緩存中對之搜索。如果那里沒有即努力通過系統(tǒng)間的(I/S)鏈路7從耦合設(shè)施1檢索它。如果耦合設(shè)施1報告失敗,亦即發(fā)出通知在中級超高速緩存2中沒有發(fā)現(xiàn)此數(shù)據(jù)的失敗指示,即利用I/O鏈路8直接訪問輔助存儲器9中的數(shù)據(jù)。在此階段,另一超高速緩存5,即控制器6的低級超高速緩存,可在幕后被加以檢測以便節(jié)省實際對DASD的訪問。
當(dāng)控制器6在其低級超高速緩存5中未發(fā)現(xiàn)此數(shù)據(jù)時它即尋址輔助存儲器并從輔助存儲器9提取此數(shù)據(jù)。在接收到此數(shù)據(jù)后,程序可確定此數(shù)據(jù)應(yīng)被存放在中級超高速緩存2中。結(jié)果,在運行此程序的計算機3與耦合設(shè)施1間發(fā)生另一通信,并通過系統(tǒng)間鏈路7將數(shù)據(jù)傳送到中級超高速緩存2。
每當(dāng)一程序需要寫數(shù)據(jù)到輔助存儲器9和中級超高速緩存2這二者時,它進(jìn)行二個分開的寫操作,一個通過計算機的I/O鏈路8和I/O通道3a寫入輔助存儲器,而另一個通過其中央處理單元表示為3c的計算機3的I/S鏈路7和I/S通道3b寫入中級超高速緩存2。此第二寫操作還導(dǎo)致CF發(fā)送一交叉無效化消息到除發(fā)出此寫操作的處理器外的所有在其本地超高速緩存中保存該數(shù)據(jù)的復(fù)制的處理器。
在讀操作中利用超高速緩存的程序必須知道中級超高速緩存的未命中。程序在一讀操作中對數(shù)據(jù)發(fā)出的第二請求被尋址到輔助存儲器控制器,并與采用通常非??斓腎/S鏈路的尋址到耦合設(shè)施的請求相反采用相對較慢的I/O鏈路。有可能設(shè)置在輔助存儲裝置中的任選低級超高速緩存未加以展示因為它們對本發(fā)明是非本質(zhì)的。
由前述將顯見這里所用術(shù)語可源于定義主存(Main Storage)駐留在運行應(yīng)用程序的計算機系統(tǒng)中的易失性存儲器。
超高速緩存(Cache)可能駐留在執(zhí)行操作的計算機系統(tǒng)中、資源共享設(shè)施中或一控制單元中并且通常比較快而且大小遠(yuǎn)小于輔助存儲器的易失性存儲器。訪問超高速緩存可能需至少如訪問主存那樣長的時間但不如訪問輔助存儲器那樣長。
輔助存儲器(Secondary Storage)駐留在一外部裝置如磁盤上的直接存取存儲器。它是非易失性的而訪問它一般需要長于訪問超高速緩存或主存的時間。
本地或高級超高速緩存(Local or High Level Cache)最接近于利用數(shù)據(jù)的程序并通常被保持在運行利用超高速緩存的程序的計算機的主或高級存儲器中的超高速緩存型式。一計算機的主存可被用于數(shù)個超高速緩存。
中級超高速緩存(Medium Level Cache)駐留在一中央計算機、一耦合設(shè)施或資源共享設(shè)施中供運行在其他計算機中的程序作共享利用的超高速緩存。
低級超高速緩存(Low Level Cache)保持在控制器或輔助存儲裝置中的超高速緩存。應(yīng)指出,本發(fā)明使中級超高速緩存與控制器的超高速緩存相一致。
數(shù)據(jù)項(Data Item)被在本地超高速緩沖存儲器、中級超高速緩存和永久存儲器中以單一名稱引用的單一信息單位。它可以是數(shù)據(jù)庫中的一行或一數(shù)據(jù)集(如VSAM)記錄。
代表性數(shù)據(jù)項(Representative Data Item);由資源共享設(shè)施數(shù)據(jù)庫中的觸發(fā)器保持的導(dǎo)出數(shù)據(jù)項,它代表該數(shù)據(jù)庫中的整個數(shù)據(jù)項集。由代表性數(shù)據(jù)項所表示的數(shù)據(jù)項集可通過一選擇標(biāo)準(zhǔn)以結(jié)構(gòu)化查詢語言(SQL)定義。
虛擬表述(Virtual Representatives)RSF數(shù)據(jù)庫中實際不存在的代表性數(shù)據(jù)項,其定義僅提供用于觸發(fā)交叉通告消息的掛鉤(hook)。
排出(Cast Out)將駐留在超高速緩存中的被改變數(shù)據(jù)寫到永久存儲器的進(jìn)程。
排出出口(Cast-Out Exit)用于將數(shù)據(jù)項從盤數(shù)據(jù)結(jié)構(gòu)映射到超高速緩存結(jié)構(gòu)或反之的RSF例行程序。
排出類別(Cast-Out Class)分配給排出進(jìn)程所用數(shù)據(jù)項的類別。類別分配通過將具有類似特性的數(shù)據(jù)項分組到一起來簡化排出進(jìn)程。在資源共享設(shè)施中此分配也是預(yù)期作I/O授權(quán)(delegation)的所有情況中所需要的。
排出類別說明(Cast Out Class Description)用于指定排出出口。
排出范例(Cast Out Instance)排出類別的子類,其中除那些有關(guān)數(shù)據(jù)項本身的目標(biāo)例如數(shù)據(jù)集的邊界之外的所有目標(biāo)均共享為排出出口所需的信息以便正確定位輔助存儲器中的數(shù)據(jù)。
排出說明符(Cast-Out Descriptor)關(guān)于屬于輔助存儲器中的排出范例的數(shù)據(jù)項的持續(xù)性復(fù)制的物理位置的細(xì)節(jié),由排出類別和對于排出出口的特定參數(shù)值所擴大。(例如,在要保持DB2數(shù)據(jù)庫的記錄的超高速緩存結(jié)構(gòu)的說明中,排出類別可以是用于RSF的DB2表,排出范例指明“個人數(shù)據(jù)庫中的雇員表”和數(shù)據(jù)項可以是“說明JOHN SMITH的行”。
I/S通道(I/S Channels)系統(tǒng)間的通道,在本發(fā)明前僅被用于作CPU至CPU的連接而不用于CPU至I/O裝置和控制器的連接。
存進(jìn)超高速緩存(Store-in Cache)中級超高速緩存,這里數(shù)據(jù)項被存入數(shù)據(jù)項目而它到輔助存儲器的輸出(如果最終要進(jìn)行的話)并未在它們插入此超高速緩存或它們在此超高速緩存中的替換的同時被加以編排。
存儲通過超高速緩存(Store-Through Cache)中級超高速緩存,這里數(shù)據(jù)項被存入數(shù)據(jù)項目并被以相同的連續(xù)代碼編排輸出到輔助存儲器。
僅控制用超高速緩存(Control-Only Cache)中級超高速緩存,僅保持用來協(xié)助控制本地超高速緩沖存儲器的控制項目。
本地超高速緩存狀態(tài)(Local Cache State)本地超高速緩沖存儲器的狀態(tài)。例如,一含有數(shù)據(jù)項的本地超高速緩沖存儲器可能為無效或有效的。如果中級超高速緩存或輔助存儲器中不存在有同樣數(shù)據(jù)項的更新近的版本即認(rèn)為有效,否則為無效。
資源共享設(shè)施支持設(shè)施(Resource Sharing Facility SupportFacility)一可利用計算機中自身的處理器的進(jìn)程,它對從資源共享設(shè)施到達(dá)的通知因中級超高速緩存中的變化所造成的本地超高速緩沖存儲器的狀態(tài)發(fā)生變化的消息作出反應(yīng)并將相關(guān)的進(jìn)程狀態(tài)變化傳送到資源共享設(shè)施。
脈動(Heartbeat)計算機的RSF支持設(shè)施發(fā)送到RSF的指明計算機仍在工作的消息。RSF支持設(shè)施周期地發(fā)送脈動消息。此周期長度可加以組構(gòu)。
數(shù)據(jù)項狀態(tài)(State of a Data Item)數(shù)據(jù)項的狀態(tài)具有二個值,它們可被解釋為有效或無效,但根據(jù)數(shù)據(jù)項被應(yīng)用的方式也可以任何另外的方法解釋。
超高速緩沖存儲器控制向量(Cache Buffer Control Vector)由每一被連接計算機的主存中的資源共享設(shè)施支持設(shè)施所保持的向量,其中每一項目均說明本地超高速緩沖存儲器中一個數(shù)據(jù)項的狀態(tài)并可任選地指向本地超高速緩存中的數(shù)據(jù)項的一緩存器;無效化(Invalidation)本地超高速緩沖存儲器的無效化是設(shè)置代表該超高速緩沖存儲器控制向量(CBCV)中這一緩存器的項目來表示一無效狀態(tài)。
揭示一CBCV項目(Posting a CBCV Entry)揭示一CBCV項目意味著改變其狀態(tài)。
登記數(shù)據(jù)項中的要點(Registering Interest in a Data Item)登記數(shù)據(jù)項中的要點是生成CBCV中一項目、本地超高速緩沖存儲器中所含一數(shù)據(jù)項、及該數(shù)據(jù)項在中級超高速緩沖存儲器中的復(fù)制之間的結(jié)合。這樣的登記也可能包括將這一本地超高速緩沖存儲器的地址插入CBCV中的項目和/或利用CBCV項目號由中級超高速緩存指到CBCV中的項目的操作。
資源共享設(shè)施為中級超高速緩存中的每一超高速緩存的數(shù)據(jù)項保持一組被登記了要點的進(jìn)程。這一組被任選地保持在RSF數(shù)據(jù)庫(RSFDB)中。登記也可通過參數(shù)在登記請求中分組。帶有群屬性的登記請求也可被給予優(yōu)先級。本地超高速緩沖存儲器的間接用戶通常將不登記特定數(shù)據(jù)項中的要點。只有管理本地超高速緩存例如一DBMS服務(wù)器的進(jìn)程將登記數(shù)據(jù)項中的要點。
要點群(Interest Group)帶有相同群屬性的一組要點登記。一群中的要點登記按優(yōu)先級和到達(dá)時間排序。未被給予群標(biāo)識符屬性的要點登記各自被看作為形成其自己的可以是一單元素集合(singleton)的要點群。要點群提供生成服務(wù)供應(yīng)者隊列的簡單方法。資源共享設(shè)施通過交叉無效化/通告機構(gòu)支持要點群。
交叉無效化消息(Cross Invalidation message)由RSF發(fā)送給RSF支持設(shè)施的消息,通知它關(guān)于含有已成為無效的它的被登記數(shù)據(jù)項之一的本地超高速緩沖存儲器。
交叉通告消息(Cross Notification Message);由資源共享設(shè)施送給RSF支持設(shè)施的消息,通知它關(guān)于代表性數(shù)據(jù)項的狀態(tài)的變化,和任選地含有要被存儲在被相關(guān)的CBCV項目指向的緩存器中的數(shù)據(jù)。
交叉刷新消息(Cross Refresh Message)含有要被存儲在被CBCV指向的區(qū)域中的數(shù)據(jù)的交叉通告消息。
上下文信息(Context Information)計算機為恢復(fù)處理一對話、事務(wù)或作業(yè)所需要的信息。
資源共享設(shè)施數(shù)據(jù)庫(Rosource Sharing Facility Database,RSFDB)數(shù)據(jù)庫的簡單形式,最好被RSF作內(nèi)部支持和/或在一實現(xiàn)接口如SQL或其子集的被連接的計算機上,支持觸發(fā)器,能借助從其觸發(fā)器發(fā)送交叉通告消息的能力被加以擴大。RSF數(shù)據(jù)庫可被用來保持一TP監(jiān)視器的輸入隊列。這一情況下,所有TP監(jiān)視器的事務(wù)處理進(jìn)程(TPP)可登記數(shù)據(jù)項中的要點(由觸發(fā)器保持),作信息通知對此隊列的最近更新是否使得其從空閑狀態(tài)變?yōu)椴豢臻e狀態(tài)。作業(yè)隊列和對話上下文為RSF數(shù)據(jù)庫的另一種可能的應(yīng)用。通過RSF支持RSF數(shù)據(jù)庫改善RSF數(shù)據(jù)庫為數(shù)個計算機共享的情況中的運行性能。支持計算機上的RSF數(shù)據(jù)庫使得利用它的程序在當(dāng)它們在單個計算機上運行時能實現(xiàn)較佳的運行性能。因而RSF和計算機兩者均提供對RSF數(shù)據(jù)庫的支持。
數(shù)據(jù)庫日志(Database Journal)被DBMS用來記錄作事務(wù)檢查和數(shù)據(jù)庫恢復(fù)所需的信息的數(shù)據(jù)集。當(dāng)一數(shù)據(jù)庫被在數(shù)個計算機間共享時這一數(shù)據(jù)集也必定被共享。數(shù)據(jù)庫日志可被實現(xiàn)為RSF數(shù)據(jù)庫中的表或者可在資源共享設(shè)施中提供對共享數(shù)據(jù)庫日志的專用支持。
事件控制塊(Event Control Block,ECB)由發(fā)出同步請求的進(jìn)程用來監(jiān)視這些請求的終結(jié)的塊;等待輸入(Wait for Input)對一利用WAIT命令等待要被揭示的CBCV項目的進(jìn)程的指令。這也可能等待任何給定的CBCV項目集或者甚至任何CBCV項目與ECB的組合。
負(fù)荷均衡(Load Balancing)負(fù)荷均衡說明數(shù)個計算機和/或處理器和/或進(jìn)程間的共享處理負(fù)荷同時優(yōu)化總的處理能力和響應(yīng)時間。在要發(fā)生負(fù)荷均衡時可應(yīng)用生成此負(fù)荷(對話、事務(wù)或作業(yè))的成分的隊列(客戶機隊列)和服務(wù)供應(yīng)者(計算機、處理器、進(jìn)程或任務(wù))的隊列(服務(wù)器隊列)。資源共享設(shè)施數(shù)據(jù)庫實現(xiàn)這樣的隊列以及要點群的工況針對服務(wù)器隊列被特定地加以定義。在TP監(jiān)視器的情況下,服務(wù)器隊列為TP監(jiān)視器的TPP的隊列和客戶機隊列為對TP監(jiān)視器的輸入隊列。對每一輸入確定將處理它的TP監(jiān)視器的TPP的范例輸出。
遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC)從運行在一計算機上的過程調(diào)用一駐留在另一計算機上的過程。
協(xié)調(diào)進(jìn)程群(Coordinated Process Group,CPG)共享狀態(tài)信息的帶有給定名稱的進(jìn)程群。一單個的進(jìn)程可能屬于數(shù)個協(xié)調(diào)進(jìn)程群。協(xié)調(diào)進(jìn)程群在生成當(dāng)某些進(jìn)程失敗時預(yù)先指定的進(jìn)程必須接管的允許出錯的應(yīng)用中特別有用。
本地鎖定(Local lock)其范圍被限制在單個計算機內(nèi)的鎖定。
全局鎖定(Global Lock)其范圍為整組異構(gòu)型的和/或同構(gòu)型計算機的鎖定。
圖2為基本上與圖1同樣環(huán)境但實現(xiàn)本發(fā)明的圖,亦即帶有通過具有其中級超高速緩存11的資源共享設(shè)施10共享數(shù)據(jù)的計算機或計算機系統(tǒng)3和I/O裝置??刂破骺赡苋匀桓街絀/O通道以使得能訪問未附著到資源共享設(shè)施的裝置,但圖2中未表明這些控制器和這類的其他裝置。這里重要之處是,用于輔助存儲裝置13的耦合設(shè)施和控制器已被資源共享設(shè)施10所替代而輔助存儲裝置13被直接附著到RSF10因而后者能訪問輔助存儲器13。實際上輔助存儲器13可被結(jié)合在RSF10中,亦即可被容納在與RSF10相同的外殼中。
中級超高速緩存11為RSF10所保持,而輔助存儲裝置13可如已說明的仍包含低級超高速緩存(這里未表示出)。
這些由圖1的體系結(jié)構(gòu)對本發(fā)明的體系結(jié)構(gòu)所作改變反映在運行于計算機3上的程序管理它們自己的數(shù)據(jù)請求和主要由資源共享設(shè)施給予這些請求的支持的方法上。當(dāng)本發(fā)明被用到它的整個潛力時,為支持對數(shù)據(jù)的單個操作將不再需要請求此環(huán)境的二個成分,因為對中級超高速緩存11的每次訪問(讀或?qū)懻埱?將生成對輔助存儲裝置13的恰當(dāng)?shù)腎/O請求。在寫請求中,這樣的I/O操作總會發(fā)生,或者緊接在對中級超高速緩存的寫之后或者被延遲。對于讀請求僅在中級超高速緩存中沒有以此數(shù)據(jù)時才需要I/O操作。程序不必為生成I/O請求給出控制流,因為其已被授權(quán)給RSF10,程序也無需一分開的階段用來更新RSF10的中級超高速緩存11(作為從輔助存儲器讀或?qū)o助存儲器寫的部分)因為當(dāng)需要時這種更新即由RSF10作為其對請求的響應(yīng)的部分進(jìn)行。被保持在計算機的本地超高速緩存中而非啟動當(dāng)前的寫請求的計算機中的已被寫入中級超高速緩存并可能已寫入輔助存儲器的數(shù)據(jù)項的復(fù)制,只要這些數(shù)據(jù)項中的要點已被這些計算機作無群識別登記,即作為寫操作的部分被無效化或刷新。
交叉通告消息也被發(fā)送到各要點群的一個代表(帶有最高優(yōu)先級的最早的登記),作為將該要點群中的要點主題的數(shù)據(jù)項寫到中級超高速緩存的操作(可選地導(dǎo)出的)部分。
請求的不同闡述和數(shù)據(jù)項的不同定義會影響資源共享設(shè)施處理各不同寫請求的方式。某些數(shù)據(jù)項被立即編排以便排出。其他數(shù)據(jù)項不直接復(fù)制到輔助存儲器而是保留在超高速緩存11中直至某些處理請求排出。其他的保留在超高速緩存11中直至一明確消除請求被執(zhí)行為止。
所述的負(fù)荷均衡通過將屬于TP監(jiān)視器的對話上下文塊和輸入隊列記錄存儲進(jìn)RSF數(shù)據(jù)庫中實現(xiàn)。DBMS日志文件的新記錄可利用RSF為共享的日志管理提供的支持從所有連接到RSF的計算機中附加到其端部。這樣I/O凈速率即不受相對慢的I/O通道和鏈路的速度約束,因為數(shù)據(jù)的大部分通過I/S鏈路7和I/S通道3b傳送。
象“為更新讀”之類的操作被表達(dá)為單一的請求因為鎖定和I/O兩者均通過同一IS通道由同一機器進(jìn)行。在這種情況下圖2的RSF10代替處理鎖定請求的圖1的CF1。
在此層次結(jié)構(gòu)中,常常被I/O通道處理的某些負(fù)荷被轉(zhuǎn)移到IS通道,而且為加以充分利用,IS通道數(shù)可能需要增加而I/O通道數(shù)則可能減少。
圖3a說明一在計算機或計算機系統(tǒng)3與輔助存儲裝置9之間設(shè)置控制器6的系統(tǒng)。按照這一系統(tǒng),計算機3通過其I/O通道3a被附著到控制器6,此計算機3具有前面說明的高級超高速緩存4和CPU 3c。這里連接是通過相對緩慢的I/O鏈路8??刂破?在其相對側(cè)被連接到輔助存儲裝置9。
在這一環(huán)境中,顯然不必要在不同計算機之間進(jìn)行數(shù)據(jù)共享,而且本地超高速緩沖存儲器4可被用于加速輸入/輸出操作及在運行于單個計算機上的程序之間作數(shù)據(jù)共享。
依靠以圖3b中所示的資源共享設(shè)施10代替控制器6,高速IS鏈路7可將RSF連接到計算機3的I/S通道3b。資源共享設(shè)施10具有前面說明的中級超高速緩存5。這里所用的主RSF的特點是連接到計算機與實際上為一控制器的RSF之間的快速鏈路的能力。這里RSF并不替代一CF因為在這一情況下CF不起任何作用。
圖4a表明二計算機3共用一控制器6并類似于圖1系統(tǒng)但不采用耦合設(shè)施的體系結(jié)構(gòu)或環(huán)境。在此,各計算機3通過帶有低級超高速緩存5的共享控制器6訪問駐留在共享的輔助存儲裝置中的其自身的數(shù)據(jù)庫組。
共享控制器6經(jīng)由I/O鏈路8連接到計算機3的I/O通道3a。如果存在有其中計算機3之一過載、而另一具有未應(yīng)用的資源的周期,這另一計算機即能并將被用來管理某些負(fù)荷。但在這一配置中,這樣的負(fù)荷共享是不可能的。
引入如圖1所示的耦合設(shè)施使得能進(jìn)行數(shù)據(jù)共享并因而能進(jìn)行負(fù)荷共享和均衡,但需要與包含鎖定和中級超高速緩沖存儲器的附加單元(耦合措施)進(jìn)行通信。為使能在必要時作負(fù)荷共享就必須甚至在無需作負(fù)荷共享時付出這種代價。
但在應(yīng)用帶有其中級超高速緩存11并通過IS通道3b和IS鏈路7與計算機3通信的情況下,RSF代替控制器,利用中級超高速緩存支持?jǐn)?shù)據(jù)共享和負(fù)荷共享及均衡并降低I/O響應(yīng)時間而不再會生成額外負(fù)荷。在該情況下,系統(tǒng)完全相當(dāng)于圖2中所示系統(tǒng)。比較圖4a和4b。
圖5表示資源共享設(shè)施的可能的實施例,它能具有被專用于I/S鏈路7和進(jìn)而專用于特定計算機的多個耦合鏈路適配器12。各耦合鏈路適配器(CLA)12執(zhí)行圖8中RSF側(cè)所說明的所有資源共享設(shè)施的功能。由于如已結(jié)合圖2所說明和由圖8將會更顯見的,每一CLA均必須能與每一計算機通信,在資源共享設(shè)施中為CLA間的通信設(shè)置數(shù)據(jù)區(qū)。對圖5的資源共享設(shè)施,盤適配器被表示為14而中級超高速緩存表示為11。
圖6表明資源共享設(shè)施10的可能的結(jié)構(gòu),這里此結(jié)構(gòu)總體上與圖5的相類似,除了到I/S鏈路的通道15及因而I/S鏈路自己被在RSFP之間共享,后者非常類似于圖5的CLA但不遵守與I/S鏈路一對一的關(guān)系。I/S通道管理與計算機的通信范圍而其邏輯則為RSFP響應(yīng)性。在圖6中RSFP被標(biāo)為16。
圖7表示用于處理對資源共享設(shè)施10中一數(shù)據(jù)塊的請求的算法。如果在中級超高速緩存11中找到數(shù)據(jù),則返回到提出請求的程序而無需進(jìn)一步處理。但如果在中級超高速緩存11中未找到數(shù)據(jù),RSF10即不中止。如果在排出類別的定義中已提供所有必須的細(xì)節(jié),即試著從輔助存儲器提取數(shù)據(jù)。
圖7未表明如何對一新的超高速緩沖存儲器作相對于中級超高速緩存的分配因為在存在著許多方法。在進(jìn)程中合適時刻,編序以防止任一單個緩存器被分配到二不同目的。
中級超高速緩存11中的超高速緩存器并不一定具有與被供給到將它們的等同體寫到輔助存儲器的例行程序的數(shù)據(jù)或從輔助存儲器讀取它們的等同體的例行程序接收的數(shù)據(jù)相同的形式。至少,必須將通常包括在DCB/ACB(主機計算機環(huán)境中代表數(shù)據(jù)集控制塊/訪問控制塊的術(shù)語)和它們相關(guān)的控制塊中或由它們指向的關(guān)于數(shù)據(jù)的物理位置和對其構(gòu)造所用方法的細(xì)節(jié)提供給RSF10以便RSF10能正確地寫和讀數(shù)據(jù)。一般,這些細(xì)節(jié)能以依賴于RSF為以預(yù)定方法利用這些細(xì)節(jié)的固定的內(nèi)部例行程序的參數(shù)形式提供。但在某些情況中,超高速緩沖存儲器與輔助存儲器中數(shù)據(jù)間的映射不符合任何預(yù)定的規(guī)范。在這些情況中,可提供一專門的映射例程來使得能將I/O授權(quán)給資源共享設(shè)施。在某些情況中,認(rèn)為合理的是生成現(xiàn)有訪問方法例程的局部版本,可包括有變換數(shù)據(jù)和邏輯象VSAM索引和索引搜索和維護例行程序。
但最好不必在每次對詳盡的寫入程序的訪問中均供給參數(shù)和出口例程。這些細(xì)節(jié)被包括在這一數(shù)據(jù)項所屬的排出范例中的排出范例說明中。
再參看圖7,為了從輔助存儲器取數(shù)據(jù),首先RSF驗證是否需要一映射例程。當(dāng)映射為標(biāo)準(zhǔn)的時,即無需這樣的例程因為RSF利用其內(nèi)部例程之一并依賴于排出類別和排出范例的說明中所給出的控制信息執(zhí)行此映射。RSF讀取數(shù)據(jù),更新中級超高速緩沖存儲器11并將結(jié)果返回給調(diào)用程序。
當(dāng)需要映射例程時RSF10檢查它是否被供給。如果沒有,不可能發(fā)生I/O授權(quán)而返回超高速緩存未命中的信號。如果已提供一映射例程,即為進(jìn)行所需的映射調(diào)用這一例程首先將超高速緩存請求映射成相當(dāng)?shù)腎/O請求,然后執(zhí)行I/O,然后I/O操作的結(jié)果被映射成適當(dāng)?shù)慕Y(jié)構(gòu)并如果被請求的話移動進(jìn)超高速緩存。在該階段,結(jié)果被返回到調(diào)用程序。
由此調(diào)用程序看,當(dāng)數(shù)據(jù)不在超高速緩存中時從RSF讀數(shù)可能需要較長時間來完成。因此RSF請求可能是異步的,使得調(diào)用者能處理其任務(wù)的其他方面,同時等待完成讀請求(處理不立即完成的讀請求對于在同一請求中讀和鎖定的程序是必要的,因為鎖定不可能總是立即被給予的)。
這樣,RSF即可對利用它的程序不加改變地代替IBM的耦合設(shè)施。但是為受益于RSF的實際潛力,可能仍必須對程序作某些改變。為了使這些改變最小,提供一專用鎖定請求闡述。這一專用闡述使得程序告知RSF當(dāng)前的鎖定請求將后隨對一給定數(shù)據(jù)項的讀取。當(dāng)RSF遇到這樣一請求時它嘗試改善讀請求將在中級超高速緩存中找到記錄的機會。為這樣作,RSF如正常鎖定請求中那樣對用戶作出響應(yīng),但在幕后當(dāng)鎖定已被給予時繼續(xù)從輔助存儲器讀數(shù)據(jù)。
同時,在記錄處于中級超高速緩存之前將延遲進(jìn)行讀的嘗試。為RSF編寫的程序一般將無需這一特性因為它們可發(fā)出帶有鎖定的組合(同步的或異步的)讀。
圖8給出包含一計算機和一RSF的環(huán)境的邏輯組成部分的概貌。
程序100,消息設(shè)施300,RSF支持設(shè)施400,I/O處理器500和主存儲器200均為計算機的部分。RSF處理器800和RSF存儲器900為RSF的部分。輔助存儲器1000可以是RSF的部分但它也可以是一分開的單元(連接到RSF)。消息設(shè)施300,I/O處理器500和RSF支持設(shè)施400均可各自具有一專用處理器,但它們也可實現(xiàn)作為共享較小數(shù)量的處理器的進(jìn)程或者甚至它們?nèi)烤晒蚕磉\行計算機中的程序100或任何其他程序的同一處理器。
所有在一計算機中運行的進(jìn)程共享主存儲器200。從這些進(jìn)程之一對另一個尋址的消息一般均含有對駐留在主存儲器中的數(shù)據(jù)的指針。
RSF數(shù)據(jù)庫雖然正常情況由RSF實現(xiàn),但也可按以下的附加方式實現(xiàn)(a)數(shù)據(jù)被保持在RSF中但DBMS駐留在所有共享計算機上;(b)數(shù)據(jù)和DBMS在一特定計算機的主存中;(c)數(shù)據(jù)被保持在RSF和共享計算機的主存這兩者之中而DBMS在所有共享計算機上進(jìn)行;和(d)數(shù)據(jù)駐留在共享計算機的主存儲器和RSF兩者中而DBMS在RSF和共享計算機中實現(xiàn)。
程序100可在常規(guī)的CPU和I/O命令之外發(fā)出下列應(yīng)用或管理RSF的命令集錯讀(從RSF)清楚讀(以共享的鎖定從RSF讀)為更新讀(以獨占的鎖定從RSF讀)寫(到RSF)鎖定解鎖測試CBCV等待RSF數(shù)據(jù)庫控制命令日志I/O附加(增加一記錄到其末端)和讀取加入一聯(lián)動進(jìn)程群離開一聯(lián)動進(jìn)程群RPC程序發(fā)出的常規(guī)I/O命令可被尋址到一常規(guī)控制器或RSF,取決于相關(guān)的輔助存儲器被連接到計算機的方式。
這些常規(guī)I/O指令不用于訪問被在數(shù)個計算機之間通過RSF中級超高速緩存與I/O能力的組合共享的數(shù)據(jù)庫和數(shù)據(jù)集。
RSF支持設(shè)施400的責(zé)職之一是檢查進(jìn)程的結(jié)束以便通知RSF其所有鎖定和其所有的要點登記均必須取消。
進(jìn)行這一點的一種方法如下對任何鎖定或登記請求,程序進(jìn)程獲取(隱含地)、如果尚未擁有的話、一特定的(如進(jìn)程id)本地鎖定的獨占控制(由將為RSF支持設(shè)施用來檢查其結(jié)束的操作系統(tǒng)支持)。RSF支持設(shè)施在它那部分連續(xù)不斷地力圖得到這一鎖定的共享控制(有可能,通過隨著在釋放鎖定時揭示的一ECB之后發(fā)生的子任務(wù))。
當(dāng)RSF支持設(shè)施已獲得共享的控制時,它知道此進(jìn)程已結(jié)束而采取適宜的動作(清除內(nèi)部表并通知RSF)。
RSF支持設(shè)施400的命令集包括有無效化/改變狀態(tài)/揭示刷新通知RSF一進(jìn)程的結(jié)束發(fā)送脈動消息當(dāng)在一給定(可配置的)時間內(nèi)RSF支持設(shè)施未能發(fā)送脈動消息時,RSF即認(rèn)為相關(guān)的計算機和所有它的進(jìn)程均已結(jié)束。
進(jìn)程結(jié)束時,RSF800啟動這一進(jìn)程的所有打開事務(wù)的重新運行,在完成重新運行時釋放保持的鎖定,擦除其要點登記,和可能發(fā)送通知到包含它的所有協(xié)調(diào)進(jìn)程群的成員。
值變換是RSF中它們的表述與各不同計算機中它們的表述之間值表述的變換進(jìn)程。在此圖中它顯現(xiàn)為消息設(shè)施的一任務(wù)但它也可由程序自身或者不是太理想地由RSF實現(xiàn)。
程序100可作為讀或?qū)懻埱蟮牟糠职l(fā)送要點登記請求到RSF800。當(dāng)從RSF數(shù)據(jù)庫讀數(shù)據(jù)項時,也可為另一數(shù)據(jù)項登記要點;這里的觀點是要使得RSF數(shù)據(jù)庫中一組數(shù)據(jù)項中重要的進(jìn)程能通過在該組中每一要點變化時被改變(通過數(shù)據(jù)庫觸發(fā)機構(gòu))的單個數(shù)據(jù)項中的要點的登記來監(jiān)視整個組。在作合適的闡述時,對RSF的組合請求可具有如下的語義“設(shè)法讀取滿足選項標(biāo)準(zhǔn)<s>的元素如果不存在,為數(shù)據(jù)項<r>登記要點”。每當(dāng)一新數(shù)據(jù)項滿足<s>時期待觸發(fā)器來更新數(shù)據(jù)項<r>。
<r>為被定義為<s>的(可能是虛擬的)代表性數(shù)據(jù)項。
當(dāng)一數(shù)據(jù)項被改變時,RSF自動生成交叉無效化/通告消息。無效化或刷新消息被送到所有已不帶群參數(shù)地登記該數(shù)據(jù)項中的要點的計算機,而通告消息則被送到對該數(shù)據(jù)項的每一要點群中的一個進(jìn)程。此在各要點群中被選擇的進(jìn)程是一具有最高優(yōu)先級以最早的時間被登記的進(jìn)程。
刷新消息一般將包含其變化造成它們的生成的數(shù)據(jù)項。如果引起刷新消息的數(shù)據(jù)項為虛擬表述,此消息的內(nèi)容即由觸發(fā)器確定。
應(yīng)指出,只有管理本地高速緩存器(象DBMS)的進(jìn)程一般會登記數(shù)據(jù)項中的要點。間接用戶(象DBMS的那些)將依賴于DBMS的要點登記。
當(dāng)由RSF發(fā)送一交叉無效化/通告消息時,刪除對應(yīng)的要點登記。
圖9中以流程圖描述由RSF處理超高速緩存寫請求的方式。
由于RSF也用作為一常規(guī)控制器,并非每一個對其尋址的寫均對中級超高速緩存起作用。這就是為什么在1001最先要驗證當(dāng)前的寫命令是否是尋址超高速緩存;如果不是,在1005生成I/O請求并在1006編排用于執(zhí)行。在該階段保證寫操作但其實際操作可被推遲以便改善運行性能(RSF在電源故障情況下利用備用電池來完成被編排的I/O請求的執(zhí)行);RSF還保證任何讀數(shù)據(jù)企圖、甚至是在實際對輔助存儲器的寫之前編排的企圖,將能找到它。
如果中級超高速緩存中需要數(shù)據(jù)項,所有它的駐留在程序的本地超高速緩存中的已經(jīng)無群標(biāo)識符地登記了其中要點的復(fù)制均必須被加以無效化。這在1002中進(jìn)行。在這一階段,還發(fā)送一通告消息到各要點群中具有最高優(yōu)先級和最早時間的代表(參看為說明支持這種活動的表結(jié)構(gòu)的圖10)。取消所有已發(fā)送無效化/消息的計算機的要點登記。
并非每一個駐留在RSF中的數(shù)據(jù)項均必須與輔助存儲器相關(guān)。測試1003驗證數(shù)據(jù)項是否與一文件無關(guān),當(dāng)前請求的執(zhí)行即已完成。
駐留在中級超高速緩存中的數(shù)據(jù)項可以是存進(jìn)數(shù)據(jù)項。如果這樣的數(shù)據(jù)項與一文件相關(guān),則不將將其復(fù)制到輔助存儲器的I/O操作編排作為將其寫到中級超高速緩存的請求的部分。當(dāng)在1004中辨識到這樣的情況時不編排I/O。
當(dāng)辨識到與一文件相關(guān)的存儲通過數(shù)據(jù)項時,1005準(zhǔn)備一I/O請求和1006編排執(zhí)行,保證它輸出到輔助存儲器。
圖10表明在RSF數(shù)據(jù)庫中生成的為表示要點登記的表結(jié)構(gòu)。這一表結(jié)構(gòu)包含為選擇接收交叉通告消息的計算機和為確定有關(guān)這一交叉通告消息的內(nèi)容(將生成一簡單的通告還是一刷新消息)所需的信息。
進(jìn)程id列50包含計算機id和計算機中進(jìn)程的內(nèi)部標(biāo)識,為一使整個環(huán)境中的這一值為特有的組合。數(shù)據(jù)ptr列60指向RSF中此數(shù)據(jù)項的數(shù)據(jù)。在這里進(jìn)程要點登記表改善為未加以分類的要點登記的無效化進(jìn)程的運行性能。
圖11說明遠(yuǎn)程過程調(diào)用和聯(lián)動進(jìn)程群(CPG)的可能實現(xiàn)。這一圖中的所有進(jìn)程均參與CPG。CPG中的每一進(jìn)程均可在RSF中保持一數(shù)據(jù)項。這一數(shù)據(jù)項反映應(yīng)用專有狀態(tài)細(xì)節(jié)。另外,每一進(jìn)程均獲得一全局鎖定的獨占控制,即,只要它被排他地占有,即告知此群的其他成員此進(jìn)程為有效。
當(dāng)這一全局鎖定成為釋放的,則作為此對應(yīng)進(jìn)程中的要點的進(jìn)程可推知其結(jié)束并作出相應(yīng)的反應(yīng)。
(其他的RSF實現(xiàn)可能發(fā)送專門的進(jìn)程結(jié)束通知到所有的CPG成員,避免必須鎖定。)進(jìn)程6通過更新一公共數(shù)據(jù)項(進(jìn)程7在其中登記有要點的參數(shù)67)來調(diào)用進(jìn)程7的過程。響應(yīng)76以同樣方式應(yīng)用但是為反方向地從被調(diào)用過程返回結(jié)果。
如前面已指出的,資源共享設(shè)施本身可以是一早先引用的類型的被增強的耦合設(shè)施,此增強涉及到硬件和軟件雙方。這一點的實現(xiàn)是依靠以能與輔助存儲器控制器超高速緩存通信的總線來代替耦合設(shè)施的內(nèi)部總線并同時以前面結(jié)合通過內(nèi)部總線進(jìn)行的各I/O操作描述的RSF算法的實現(xiàn)來代替耦合設(shè)施的軟件。圖12a中,例如,耦合設(shè)施70包括通常的CPU71和存儲器72以及可連接到輔助存儲器控制器74的內(nèi)部總線73。在這種情況下,內(nèi)部總線被直接連接到盤控制器存儲器75,此盤控制器存儲器接著被連接到盤適配器76和盤驅(qū)動器77。但在圖12b的實施例中,耦合設(shè)施70的內(nèi)部總線被連接到輔助存儲器控制器84的CPU88而盤控制器存儲器85則連接到盤控制器CPU、盤適配器86和盤驅(qū)動器87。
在此二種情況中,當(dāng)要進(jìn)行I/O操作時這一請求被通過內(nèi)部總線傳送到輔助存儲器作異步執(zhí)行。此內(nèi)部總線也被輔助存儲器控制器用來響應(yīng)I/O請求和將所請求的數(shù)據(jù)帶入已以所述方式修正的耦合設(shè)施的存儲器。
圖13是圖1的等同物,除這樣的事實之外,即此實施例中異構(gòu)型計算機被連接到輔助存儲器控制器6和耦合設(shè)施1這兩者。這一圖形依賴于我們的未決專利申請No.08/579721(Dec 28,1995)中所述的支持異構(gòu)型計算機系統(tǒng)間共享數(shù)據(jù)的類型的控制器。這一圖形中的耦合設(shè)施1已被增強來支撐來自異構(gòu)型計算機系統(tǒng)的連接,但如果CF的延伸(或者甚至在其當(dāng)前版本中的CF)演變到支持LAN或某些其他網(wǎng)絡(luò)連接時,這些連接可被用來代替I/S鏈路11。
這種配置中的異構(gòu)型計算機可利用此耦合設(shè)施特別是為針對同時的讀或?qū)戞i定永久駐存在輔助存儲器中的共享數(shù)據(jù),實現(xiàn)可充分操作的同時數(shù)據(jù)操縱。
在圖14中圖13的CF已為應(yīng)用所述原理的RSF替代。
在所得的配置中共享數(shù)據(jù)可駐留在RSF上或我們的共同未決專利申請No.08/579721(Dec 28,1995)的控制器上而RSF特別支持為在這二種情況中的同時操縱的鎖定但不將對駐留在我們的共同未決專利申請No.08/579721(Dec 28,1995)的控制器上的數(shù)據(jù)的I/O操作授權(quán)給RSF。
為了作這一說明,對異構(gòu)型計算機系統(tǒng)控制器的引用將是指如在這里結(jié)合作為其全文參考的共同未決專利申請No.08/579721中所說明的輔助控制器。
權(quán)利要求
1.在多個計算機之間共享數(shù)據(jù)項和鎖定并支持遠(yuǎn)程過程調(diào)用和聯(lián)動進(jìn)程群的方法,各計算機具有一或多個中央處理單元、與各計算機的中央處理單元相關(guān)聯(lián)的各主存儲器和保持在各計算機的主存儲器中的各高級超高速緩存,其特征是所述方法包括步驟(a)提供一帶有中級超高速緩存和資源共享設(shè)施數(shù)據(jù)庫并能有選擇地存儲一組數(shù)據(jù)項在所述中級超高速緩存和所述資源共享設(shè)施數(shù)據(jù)庫中的資源共享設(shè)施;(b)通過系統(tǒng)間鏈路將所述資源共享設(shè)施連接到全部的所述計算機以便所述資源共享設(shè)施能為所有的所述計算機訪問;(c)操作所述資源共享設(shè)施作為用于至少一個輔助存儲器的控制器;(d)在所述資源共享設(shè)施中為所述中級超高速緩存中的各數(shù)據(jù)項保持為映射中級超高速緩存數(shù)據(jù)到所述輔助存儲器和映射所述輔助存儲器數(shù)據(jù)到所述中級超高速緩存所需的控制信息和邏輯,在此所述資源共享設(shè)施可選地使對所述計算機的冗余控制信息加以一致化;和(e)在需要時通過從所述計算機對所述資源共享設(shè)施授權(quán)進(jìn)行輸入/輸出操作來使保持在資源共享設(shè)施中的超高速緩存數(shù)據(jù)與駐留在所述輔助存儲器中的持久數(shù)據(jù)同步。
2.權(quán)利要求1中所述方法,其特征是還包括步驟響應(yīng)至少一個來自于各別計算機上運行的各別程序的請求在所述資源共享設(shè)施中激活一組進(jìn)程;和支持來自任何所述計算機的所述請求組的各進(jìn)程中的在所述中級超高速緩存中寫數(shù)據(jù)項,登記數(shù)據(jù)項中的要點,寫數(shù)據(jù)項到輔助存儲器,從所述中級超高速緩存讀數(shù)據(jù)項到作請求的計算機的主存中一給定位置,鎖定數(shù)據(jù)項以防止更新或被其他程序讀,解鎖一鎖定,進(jìn)行常規(guī)I/O操作,和作為單一操作執(zhí)行上述請求的任何組合。
3.權(quán)利要求2中所述方法,其特征是還包括給每一所述計算機提供位于各主存中的具有超高速緩沖存儲器控制向量的資源共享設(shè)施支持設(shè)施的步驟,所述超高速緩沖存儲器控制向量的項目描述各高級超高速緩存的緩存器中的數(shù)據(jù)項的狀態(tài),每一登記數(shù)據(jù)項中的要點的所述請求將一超高速緩沖存儲器控制向量的相應(yīng)的一個所述項目與所述中級超高速緩存中的對應(yīng)數(shù)據(jù)項相關(guān)聯(lián)。
4.權(quán)利要求2中的所述方法,其特征是還包括步驟,在每次由一寫請求從所述計算機之一寫任何數(shù)據(jù)項到所述中級超高速緩存后,無效化或刷新除已發(fā)出寫請求的計算機外的所有已登記該數(shù)據(jù)項中的要點的全部計算機的全部所述高級超高速緩存中的同一數(shù)據(jù)項的對應(yīng)復(fù)制。
5.權(quán)利要求2中所述方法,其特征是還包括步驟,在每次由發(fā)出寫請求從所述計算機之一寫任何數(shù)據(jù)到所述輔助存儲器后,可選擇地在所述中級超高速緩存中寫此數(shù)據(jù)項的復(fù)制并無效化刷新除已發(fā)出此寫請求的計算機外的所有所述計算機的全部所述高級超高速緩存中的所述數(shù)據(jù)項的復(fù)制。
6.權(quán)利要求1中所述方法,其特征是共享的數(shù)據(jù)從以下選擇數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)集的結(jié)構(gòu)化數(shù)據(jù);非數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)集的結(jié)構(gòu)化數(shù)據(jù);和非結(jié)構(gòu)化數(shù)據(jù)項。
7.權(quán)利要求1中所述方法,其特征是所述資源共享設(shè)施數(shù)據(jù)庫管理系統(tǒng)直接在資源共享設(shè)施中實現(xiàn)并被操作來維護和利用為聯(lián)機事務(wù)處理和批量作業(yè)執(zhí)行所需的隊列。
8.權(quán)利要求1中所述方法,其特征是還包括支持資源共享設(shè)施中的共享數(shù)據(jù)庫日志文件的步驟。
9.權(quán)利要求1中所述方法,其特征是還包括為共享計算機獨立對話上下文數(shù)據(jù)和作業(yè)上下文數(shù)據(jù)利用資源共享設(shè)施執(zhí)行事務(wù)和作業(yè)負(fù)荷均衡操作的步驟。
10.權(quán)利要求1中所述方法,其特征是還包括在至少一個所述計算機中實現(xiàn)所述資源共享設(shè)施數(shù)據(jù)庫管理系統(tǒng)的步驟。
11.權(quán)利要求10中所述方法,其特征是所述資源共享設(shè)施數(shù)據(jù)庫管理系統(tǒng)所保持的數(shù)據(jù)被存儲在所述計算機中的一個計算機的所述主存中并且不在所述計算機之間共享。
12.權(quán)利要求3中所述方法,其特征是還包括步驟,周期地從每一所述資源共享設(shè)施支持設(shè)施傳送一脈動消息到所述資源共享設(shè)施以通知一計算機保持活動并被相應(yīng)的系統(tǒng)間鏈路連接到資源共享設(shè)施。
13.權(quán)利要求2中所述方法,其特征是還包括步驟由所述資源共享設(shè)施根據(jù)所述中級超高速緩存中的任何數(shù)據(jù)項的改變生成有選擇地?zé)o效化一各別的高級超高速緩存、刷新一各別的超高速緩存和通報與此各別的高級超高速緩存相關(guān)的數(shù)據(jù)項的狀態(tài)中的變化的交叉通告消息;和發(fā)送所述交叉通告消息給至少某些已登記各別數(shù)據(jù)項中的要點的所述計算機。
14.權(quán)利要求13中所述方法,其特征是還包括步驟,以交叉通告消息在接收此消息的計算機中揭示先前已被要點登記生成的事件控制塊。
15.權(quán)利要求6中所述方法,其特征是所述結(jié)構(gòu)化數(shù)據(jù)從由下列構(gòu)成的群中選擇MVS DB2數(shù)據(jù)庫數(shù)據(jù),IMS數(shù)據(jù)庫數(shù)據(jù),ADABAS數(shù)據(jù)庫數(shù)據(jù),VSAM文件數(shù)據(jù),DB2/6000數(shù)據(jù)庫數(shù)據(jù),Oracle數(shù)據(jù)庫數(shù)據(jù),Sybase數(shù)據(jù)庫數(shù)據(jù),Informix數(shù)據(jù)庫數(shù)據(jù),Ingres數(shù)據(jù)庫數(shù)據(jù),MicrosoftSQL服務(wù)器數(shù)據(jù)庫數(shù)據(jù),SQL/DS數(shù)據(jù)庫數(shù)據(jù),CA-DMS數(shù)據(jù)庫數(shù)據(jù),DataCom/DB數(shù)據(jù)庫數(shù)據(jù),IAM文件數(shù)據(jù),和由任何其他DBMS管理的數(shù)據(jù)。
16.權(quán)利要求1中所述方法,其特征是所述計算機從由下列構(gòu)成的群中選擇;IBM主機及兼容機,UNIX機器,NT機器,PC及其兼容機或任何其他類型的計算機及它們的組合。
17.權(quán)利要求1中所述方法,其特征是還包括步驟以讀請求從所述中級超高速緩存讀取數(shù)據(jù)項;和以同一讀請求針對中級超高速緩存中的同時更新或讀取鎖定從所述中級超高速緩存讀取的數(shù)據(jù)項。
18.權(quán)利要求1中所述方法,其特征是計算機為異構(gòu)型的并被異構(gòu)型計算機系統(tǒng)輔助控制器加以耦合而其中某些共享數(shù)據(jù)駐留在被用來讀和寫但不鎖定所述某些數(shù)據(jù)的所述異構(gòu)型計算機系統(tǒng)輔助控制器中,其中也被保持在中級超高速緩存中的所述某些共享數(shù)據(jù)的部分與其在異構(gòu)型計算機系統(tǒng)輔助控制器的輔助存儲器中的永久性復(fù)制之間的映射不被授權(quán)給所述資源共享設(shè)施。
19.降低有選擇地由至少一通用計算機和至少一數(shù)據(jù)服務(wù)器組成的計算機系統(tǒng)的負(fù)荷并加速其對數(shù)據(jù)的訪問的方法,其特征是包括步驟(a)對保持有為將高級輸入/輸出請求翻譯成被對數(shù)據(jù)服務(wù)器所設(shè)置的輔助存儲器理解的低級請求所需的數(shù)據(jù)和邏輯的數(shù)據(jù)服務(wù)器授權(quán)所述計算機系統(tǒng)的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的輸入/輸出操作,由此實現(xiàn)所述高級請求的翻譯;和(b)至少部分地以所述低級請求操作所述計算機系統(tǒng)。
20.能共享數(shù)據(jù)項和鎖定并支持遠(yuǎn)程過程調(diào)用和協(xié)調(diào)進(jìn)程群的計算機系統(tǒng),其特征是包括多個計算機,各自具有一或多個中央處理單元、與各計算機的中央處理單元相關(guān)聯(lián)的各主存儲器和保持在各計算機的主存中的各高級超高速緩存;帶有中級超高速緩存和資源共享設(shè)施數(shù)據(jù)庫并能在所述中級超高速緩存和所述資源共享設(shè)施數(shù)據(jù)庫中有選擇地存儲一組數(shù)據(jù)項的資源共享設(shè)施;和將所述資源共享設(shè)施連接到所有的所述計算機從而使所述資源共享設(shè)施能為所有所述計算機訪問的高速系統(tǒng)間鏈路,所述資源共享設(shè)施被設(shè)置作為至少一個輔助存儲器的控制器,所述資源共享設(shè)施被設(shè)置有為對所述中級超高速緩存中各數(shù)據(jù)項將中級超高速緩存數(shù)據(jù)映射到所述輔助存儲器和將輔助存儲器數(shù)據(jù)映射到所述中級超高速緩存所需的控制信息和邏輯,借助從計算機對資源共享設(shè)施授權(quán)輸入/輸出操作來將保持在資源共享設(shè)施中的超高速緩存數(shù)據(jù)與駐留在所述輔助存貯器中的持久數(shù)據(jù)同步。
21.權(quán)利要求20中所述計算機系統(tǒng),其特征是還包括零或多個帶有與除一或多個所述資源共享設(shè)施外還連接到至少二個所述計算機的中級超高速緩存的耦合設(shè)施。
22.權(quán)利要求20中所述計算機機系統(tǒng),其特征是計算機為異構(gòu)型的并被異構(gòu)型計算機系統(tǒng)輔助控制器耦合,其中某些共享數(shù)據(jù)駐留在被用來讀和寫但不鎖定所述某些共享數(shù)據(jù)的所述異構(gòu)型計算機系統(tǒng)輔助控制器中,其中也被保存在中級超高速緩存中的所述某些共享數(shù)據(jù)的部分與其在異構(gòu)型計算機系統(tǒng)輔助控制器的輔助存儲器中的永久復(fù)制間的映射不被授權(quán)給所述資源共享設(shè)施。
全文摘要
利用帶有中級超高速緩存(11)的資源共享設(shè)施(10)的共享數(shù)據(jù)項的方法和體系結(jié)構(gòu),所述中級超高速緩存(11)可為要共享的所有計算機(3)訪問并由系統(tǒng)間鏈路(7)連接到計算機。此資源共享設(shè)施還作為一普通的輔助存儲器控制器作用和在此資源共享設(shè)施中提供為將超高速緩存數(shù)據(jù)映射到輔助存儲器(13)或相反所需的控制信息和邏輯。
文檔編號G06F13/14GK1250532SQ98803232
公開日2000年4月12日 申請日期1998年1月4日 優(yōu)先權(quán)日1997年1月9日
發(fā)明者茨維·米西納伊, 邁克爾·羅特希爾德, 什穆埃爾·阿拉斯拉基, 阿里·克雷默 申請人:奧潘弗雷姆有限公司