新四季網

用直接存儲器存取在兩臺或更多機器之間執行資料庫操作的製作方法

2023-08-13 02:13:11 1

專利名稱:用直接存儲器存取在兩臺或更多機器之間執行資料庫操作的製作方法
技術領域:
本發明涉及資料庫系統環境中的通信。具體而言,本發明涉及使用直接存儲器進行存取,以在兩臺或更多臺機器之間執行資料庫操作。
背景技術:
直接存儲器存取(DMA)是一項無需使數據通過中央處理單元就可將數據從一個存儲器片段傳送到另一存儲器片段的技術。與使用更加傳統的網際網路協議通道的計算機相比,具有DMA啟用通道的計算機能快速與裝置進行數據交換。
DMA技術已經日益整合到不同的高速傳送協議和架構中。以DMA作為特徵的架構實例包括VIRTUAL INTERFACE和INFINIBAND。這樣的系統中的DMA特徵使得一個裝置上的存儲器中的數據特定指向另一外部位置上的存儲器,例如另一節點或計算機系統上的存儲器等。為了獲得DMA的全部優點,整合DMA特徵的系統用快速網絡連接裝置這樣做。
DMA數據傳送消除了作為傳輸控制協議/網際網路協議(TCP/IP)數據傳送的特徵的數據位額外開銷(overhead)。TCP/IP協議傳送使用分段的字節流,其中每個片段都包括標題信息和使得特定數據片段能抵達其計劃目標的其它特徵。相反,DMA無需將數據分段成各個可傳送字節就可以傳送存儲器片段中的數據。儘管DMA與TCP/IP相比具有優勢,但是也存在著TCP/IP和DMA同時使用的技術。一種這樣的技術稱之基於TCP/IP的遠程DMA(RDMA)。


本發明通過附圖中的實例進行說明,但並非受限於此,在本發明中,相同參考標號指示相同元件,在附圖中圖1示出根據本發明的實施例的用於在兩臺機器之間傳送數據的基本系統。
圖2示出根據本發明的實施例的用於使用DMA數據傳送在兩臺機器之間執行寫操作的方法。
圖3示出根據本發明的實施例的用於使用DMA數據傳送在兩臺機器之間執行讀操作的方法。
圖4示出用於驗證兩臺機器使用DMA數據傳送來為資料庫操作交換數據的能力的方法。
圖5示出根據本發明的實施例的用於使用多個緩存區(buffer,緩衝區)在兩臺機器之間傳送數據的基本系統。
圖6示出可實現本發明的實施例的計算機系統的方框圖。
具體實施例方式
下面描述一種方法和設備,用於使用直接存儲器存取在兩臺或更多機器之間執行資料庫操作。在以下描述中,出於說明目的,為了提供對本發明的透徹理解,此處描述了多個具體細節。然而,顯而易見地是,沒有這些具體細節也可實施本發明。在其它情形下,為了避免不必要地模糊本發明,將公知結構和裝置在方框圖中示出。
概述本發明的實施例使得直接存儲器存取(DMA)技術在資料庫系統環境中有效地實現。具體而言,資料庫伺服器執行的資料庫操作可使用DMA通信介質執行。DMA通信介質包括使得兩臺計算機能以在各臺計算機上以透明方式彼此共享存儲器的通道。這樣,如果一臺計算機將數據寫入從屬於DMA通道的存儲器,則該數據在處理器的最小介入下傳送給另一計算機。與使用例如TCP/IP等更傳統的通信介質相比,使用DMA通信介質執行資料庫操作(特別是那些涉及大量數據傳送的資料庫操作),能明顯更快地執行資料庫操作。
根據一個實施例,資料庫操作可在與第二機器通信以執行資料庫操作的第一機器上執行。這些機器中的至少一個是資料庫伺服器。在第一機器上,為第二機器分配第一存儲器片段。在數據從第二機器傳送給第一機器的資料庫操作的執行期間,數據在第一存儲器片段中緩存。響應於第二機器將該數據寫入到第二機器上為第一機器分配的第二存儲器片段,緩存該數據。
例如,資料庫伺服器為客戶端分配緩存區的一部分。該資料庫伺服器可將從客戶端接收的數據緩存到所分配的存儲器中。響應於客戶端將相同數據寫入客戶端上所分配的存儲器,緩存該數據。該數據的傳送通過DMA啟用通道完成。響應於客戶端110發送的結構化查詢語言命令,可執行與該數據的傳送關聯執行的操作。
在一個實施例中,如果在第一和第二機器之間不可用DMA傳送,則自動使用TCP/IP傳送協議傳送數據。執行確認步驟,以確定是否應將TCP/IP通道的DMA通道用於在兩臺機器之間傳送數據。
在一個實施例中,兩臺機器之間的所述通信可複製,以實現另外的機器之間的數據傳送。例如,客戶端可通過DMA通道將數據寫入資料庫伺服器,且資料庫伺服器可通過獨立的通道分配數據給其它客戶端。
一般功能性描述圖1示出根據本發明的實施例的用於在兩臺機器之間傳送數據的基本系統。所描述的系統使得兩臺機器能使用DMA傳送技術彼此傳送數據和執行資料庫操作。這兩臺機器中的至少一個包括資料庫伺服器。在一個實施例中,這兩臺機器中的一個是客戶端110,兩臺機器中的另一個是用於管理資料庫132的資料庫伺服器120。在其它實施例中,客戶端110可對應於另一資料庫伺服器。例如,資料庫伺服器組件可執行客戶端程序以與資料庫伺服器120通信。
客戶端110包括中央處理器(CPU)112、存儲器114、和I/O埠118。資料庫伺服器120包括CPU 122、存儲器124、和I/O埠128。資料庫伺服器120上的資料庫132可通過由CPU 122執行的伺服器組件管理。
在一個實施例中,客戶端110和資料庫伺服器120可通過使用兩個或更多個通道中的一個進行通信。TCP/IP通道132和DMA通道134可使客戶端110的I/O埠118與資料庫伺服器120的I/O埠128互連。I/O埠118和128均可包括(具有)配置為通過DMA通道134與其它計算機通信的組件或特徵。I/O埠118和128以及客戶端110和資料庫伺服器120之間的快速網絡連接的組合可形成DMA通道134。I/O埠118、128被配置為無需使用CPU 112、122,就可與它們各自的機器上所分配的存儲器片段進行數據交換。I/O埠118、128也被配置為通過使用TCP/IP通道132或DMA信號134與其它計算機通信。如將描述的,本發明的實施例允許在DMA通道134不可用或中斷時使用TCP/IP通道132。
為了使用DMA通道134,客戶端為資料庫伺服器120分配存儲器114的第一存儲器片段116。資料庫伺服器120為客戶端110分配第二存儲器片段126。
DMA通道134可設置在與TCP/IP通道132不同的物理組件上。例如,在將TCP/IP通道132設置在例如ETHERNET連接等傳統網絡連接上時,DMA通道134可包括客戶端110和資料庫伺服器120之間的INFINBAND連接。在另一實施例中,DMA通道設置在與TCP/IP通道132相同的物理組件上。這樣,一個介質既可被用作DMA通道,也可被用作TCP/IP通道。
在一實施例中,客戶端110和資料庫伺服器120必須確定是否可使用DMA通道134。如果不能使用DMA通道134,則使用TCP/IP通道132。建立並確定是否可使用DMA通道134的初始通信在TCP/IP通道上進行。
在一個實施例中,客戶端110將遠程過程調用(RPC)發信號通知資料庫伺服器120。資料庫伺服器120的CPU 122確認DMA通道134可用於隨後由RPC識別的通信。資料庫伺服器120通過TCP/IP通道132將一返回發信號通知,指示應使用DMA通道134。客戶端110的CPU 112接著為資料庫伺服器120分配存儲器114的第一片段116。資料庫伺服器120的CPU 122為客戶端110分配存儲器124的第二片段126。客戶端110發送包含第一存儲器片段116的標識符的請求(bid)給資料庫伺服器120。類似地,資料庫伺服器120發送包含第二存儲器片段126的標識符的請求給客戶端110。
一旦在客戶端110和資料庫伺服器120上分配存儲器,則實施例提供了一個或兩個客戶端110和資料庫伺服器120執行檢驗。該檢驗用於確定DMA通道是否可用於兩臺機器之間的數據傳送。在一個或兩臺機器上執行的檢驗可通過例如參看圖4所描述的技術執行。
DMA通道134可用於在客戶端110和資料庫伺服器120之間執行資料庫操作。一旦在客戶端110和資料庫伺服器120之間建立了DMA通道134,則通過數據傳送器對其為另一機器分配的存儲器片段執行寫操作,來執行用於將數據從一臺機器寫入和讀入另一機器的操作。通過兩臺機器中的一個寫數據到其被分配的本地存儲器,和使用DMA通道134將數據從本地存儲器傳送至另一機器,可執行讀寫操作。
對於進行讀或寫類型的操作,如果確定機器不能在DMA通道134上通信,則將使用TCP/IP通道132。儘管TCP/IP通道132較慢,但將此通道用作備份,確保能夠執行資料庫操作。
傳送數據以執行寫和讀操作圖2和圖3示出為執行資料庫操作在兩臺機器之間傳送數據的方法。出於提供用於執行本文中描述的方法的步驟的示範性部件的目的,參看圖1示出的部件。
圖2示出根據本發明的實施例,用於使用DMA數據傳送在機器之間執行寫操作的方法。出於說明目的,描述了客戶端110寫數據到資料庫伺服器120的實施例。例如,客戶端110可啟動INSERT操作來傳送大量格式化為行的數據給資料庫伺服器120上的資料庫。
在步驟210中,客戶端110發送RPC給資料庫伺服器120,指示客戶端110試圖寫數據給資料庫伺服器120。RPC可指示執行INSERT或其它寫操作,以將數據從客戶端110傳送給資料庫伺服器120。該數據可指定資料庫132,或轉送給其它客戶端和/或資料庫伺服器。在任一情形下,對遠程過程調用進行響應,資料庫伺服器120將一返回發送給客戶端110。遠程過程調用及其返回都通過TCP/IP通道132發送。
在發送RPC後,在步驟220,每臺機器都為另一機器分配存儲器片段。這樣,客戶端110為資料庫伺服器120分配第一存儲器片段116。資料庫伺服器120為客戶端110分配第二存儲器片段126。
在步驟230,每臺機器發送其所分配存儲器的標識符給另一機器。這些標識符可被稱為請求(bid)。該請求包含到每臺機器上所分配的存儲器的地址。這樣,客戶端110發送包含到第一存儲器片段116的地址的請求給資料庫伺服器120。同樣,資料庫伺服器120發送包含到第二存儲器片段126的地址的請求給客戶端110。在一個實施例中,還可通過TCP/IP通道132在客戶端110和資料庫伺服器120之間交換請求。
為了將數據從客戶端110寫入資料庫伺服器120,在步驟240,客戶端110將待傳送的數據寫入第一存儲器片段116。客戶端110的I/O埠118將該數據從第一存儲器片段116移出,並傳送給資料庫伺服器120,此處,該數據通過I/O埠128接收。使用DMA通道134將該數據從客戶端110傳送給資料庫伺服器120。
在步驟250,將由資料庫伺服器120從客戶端110接收的數據緩存於第二存儲器片段126中。這可通過資料庫伺服器120的I/O埠128將從I/O埠118接收的數據移動到第二存儲器片段126中來實現。接著,資料庫伺服器120的CPU 122將該數據讀入該資料庫。
在步驟260,一旦數據被移出第二存儲器片段126,資料庫伺服器120就發送確認應答(acknowledgement)給客戶端110。例如,CPU 122可從第二存儲器片段126中讀取數據,並將該數據移入資料庫132,或使該數據可被其它資料庫伺服器和客戶端得到。一旦第二存儲器片段126為空,則對客戶端110做出確認應答,使得可將另外的數據從客戶端110寫入資料庫伺服器120。在一實施例中,在第一存儲器片段116和第二存儲器片段126均為空時,客戶端110和資料庫伺服器120做出確認應答。
該確認應答可以是較短的消息,例如幾個字節長的消息等。這樣,該確認應答可在TCP/IP通道132或DMA通道134上發送。然而,一旦DMA通道134開放,則使用DMA通道134發送該確認應答會變得更容易。假設該確認應答較小,且通過DMA通道134傳輸的數據幾乎不含額外開銷(例如呈標題形式),則相對較容易將從資料庫伺服器120發送給客戶端110的一些其它消息與該確認應答封裝在一起。
圖3示出根據本發明的實施例,用於使用DMA數據傳送在兩臺機器之間執行讀操作的方法。出於說明目的,圖3描述了從客戶端110對包含在資料庫伺服器120中的數據執行讀操作。例如,UPDATE或SELECT操作可由客戶端110執行,以查看資料庫132中的數據。可通過使用DMA通道134來提升執行這種操作的速度。
在步驟310,客戶端110發送遠程過程調用,以從資料庫伺服器120讀數據。遠程過程調用可包含或指示UPDATE、SELECT、或其它讀操作。遠程過程調用的返回可由資料庫伺服器120做出。遠程過程調用及其返回均通過TCP/IP通道132發送。
在步驟320,每臺機器為另一機器分配存儲器片段。對於圖2中描述的實施例,客戶端110可為資料庫伺服器120分配第一存儲器片段116。資料庫伺服器120可為客戶端110分配第二存儲器片段126。
在步驟330,客戶端110發送請求給包含了到第一存儲器116的地址的資料庫伺服器120。在一實施例中,資料庫伺服器120也可給客戶端110發送請求至給存儲器126的第二片段,以返回來自客戶端110的通信。也可使用TCP/IP通道132交換該請求。
為了執行讀操作,在步驟340,資料庫伺服器120將數據寫入第二存儲器片段126,從而使數據被寫入客戶端110上的第一存儲器片段116。一旦資料庫伺服器120將該數據寫入第二存儲器片段126,資料庫伺服器120的I/O埠128就將緩存於第二存儲器片段126中的數據移動到客戶端110。該數據可通過DMA通道134從客戶端110移動到資料庫伺服器120。
在步驟350,將數據接收並緩存於客戶端110的第一存儲器片段116中。客戶端110的I/O埠118將該數據移動到第一存儲器片段116中。接著客戶端110上的CPU 112從第一存儲器片段116讀取該讀操作所請求的數據。
驗證DMA通信如果圖2和圖3描述的無論寫操作還是讀操作在客戶端110和資料庫伺服器120之間都不可用,則本發明的實施例允許客戶端110和資料庫伺服器120使用TCP/IP通道132傳送用於執行資料庫操作的數據。如果客戶端110和資料庫伺服器120的DMA配置是不兼容的,或因為某一原因是不可能使用的,則使用TCP/IP通道代替DMA通道134,提供了可靠的備份。
圖4示出根據本發明的一個實施例的驗證兩臺機器使用DMA數據傳送交換數據的能力的方法,其中,數據用於資料庫操作。為了執行讀操作或寫操作,可將例如圖4描述的方法等方法結合在機器之間傳送數據來使用。這樣,例如圖4描述的方法等方法可作為圖2和3的方法的附加步驟來實現。
在步驟410,第一機器發送RPC給另一機器,以執行某一資料庫操作。如所述的,遠程過程調用可確定將執行的寫操作或讀操作。另一機器可將一返回發送給RPC。RPC及其返回都通過TCP/IP通道發送。
在步驟420,每臺機器均為另一機器分配存儲器片段。如其它實施例所描述的,在每臺機器上分配的存儲器提供了用於將在這些機器之間傳送的數據的臨時緩存區。
在步驟430,每臺機器均給另一機器發送標識符或請求,至其所分配存儲器。該標識符為一臺機器提供地址,以將數據寫入其他機器。該標識符可通過TCP/IP連接交換。
在步驟440中,做出驗證可在兩臺機器之間執行DMA數據傳送的決定。例如,可能的是,兩臺機器都是DMA啟用的,但是一臺機器使用不同設備、軟體、和/或協議,使得對於執行DMA數據傳送來說,這兩臺機器彼此不兼容。
有多種技術可用於做出驗證決定。其中的一種技術提供了每臺機器嘗試使用分配的存儲器將測試消息形式的數據寫入另一機器。例如,一臺機器可將測試消息通過其分配的存儲器寫入另一機器,且等待另一機器的確認應答,即數據通過該另一機器的分配的存儲器被第二機器接收、緩存、和/或使用。在一個實施例中,僅將數據寫入另一機器的機器需要發送測試消息。在另一實施例中,兩臺機器互相發送測試消息,且等待來自另一機器的確認應答。測試消息和確認應答都可通過DMA通道134傳達。
另一種技術提供了通過比較每臺機器的軟體執行驗證應答,以確定這些機器是否對於DMA傳送是兼容的。例如,一臺機器可發送包含其軟體系統的消息給另一機器,且另一機器可執行比較來確定兼容性。在一實施例中,用於執行驗證的兼容信息可通過TCP/IP通道發送。兼容信息可包含遠程過程調用及其返回。除了或代替通過分配的存儲器發送測試消息以外,可執行這樣的比較步驟。
如果DMA兼容性在步驟440被驗證,則在步驟450,可通過DMA連接在第一機器和第二機器之間執行資料庫操作。如果DMA兼容性在步驟440沒有被驗證,則在步驟460,可通過TCP/IP連接在第一機器和第二機器之間執行資料庫操作。例如,在圖1中,如果驗證在步驟440中被確定,則使用DMA通道134,否則使用TCP/IP通道132。
使用多個緩存區來傳送數據圖5示出根據本發明的實施例的用於使用多個緩存區在兩臺機器之間傳送數據的基本系統。在圖5中,客戶端510與資料庫伺服器520通信,以執行包括利用讀和/或寫操作傳送數據的操作的資料庫操作。假定客戶端510和資料庫伺服器520通過DMA連接534兼容。為了建立通過DMA通道534進行的通信,TCP/IP連接532也可使這兩臺機器互連。資料庫伺服器520用於管理圖5中未示出的資料庫。
客戶端510具有存儲器516,可將該存儲器的一部分分配給資料庫伺服器520。同樣,資料庫伺服器520具有存儲器524,可將該存儲器的一部分分配給客戶端510。資料庫伺服器520還管理資料庫532。可通過I/O埠518與客戶端510通信。可通過I/O埠528與資料庫伺服器520通信。
一旦多臺機器之一通過TCP/IP連接532將RPC發信號通知給另一機器,每臺機器就為另一機器分配其存儲器的一部分。客戶端510從其存儲器514分配第一存儲器片段516。資料庫伺服器520從其存儲器524分配第二存儲器片段526。
根據實施例,每臺機器上分配的存儲器可分成多個緩存區。在客戶端510上,將第一存儲器片段516分成第一多個緩存區515。在資料庫伺服器520上,將第二存儲器片段526分成第二多個緩存區525。緩存區之間的關係是,第一多個緩存區515中的每一個均對應於第二多個緩存區525中之一。這樣,如果將數據寫入客戶端510或資料庫伺服器520上的緩存區之一,則該數據一旦確定的命令被執行,就自動寫入兩臺機器中的另一機器上的相應緩存區。可選地,確定的命令可由來自用戶的提示(prompt)啟動,使得數據通過DMA通道435傳送。
在圖5中,緩存區515、525之間的對應通過標號示出,其中BUFF11對應於BUFF21,BUFF14對應於BUFF24。可使用TCP/IP通道532建立緩存區之間的對應。例如,可通過RPC1建立對應,以在客戶端510和資料庫伺服器520之間啟動資料庫操作。
將所分配的存儲器分成緩存區提高了數據從客戶端510移動到資料庫伺服器520的速度。如果在所分配的存儲器上沒有進行劃分,則必須在可在客戶端510和資料庫伺服器520之間交換另外的數據之前,將保持在第一存儲器片段516中的所有數據傳送到第二存儲器片段526。因此,如果第一存儲器片段516的大小僅為4k,且客戶端510的用戶希望將8k的數據寫入資料庫伺服器520,則必須將該數據本地寫入第一存儲器片段516至少兩次。首先,必須將4k的數據寫入第一存儲器片段516,且一旦I/O埠518移動該數據到資料庫伺服器520,則可將下一個4k的數據寫入第一存儲器片段516。即使第一存儲器片段516大得足以容納8k的數據,8k的數據仍必須作為一個整塊移動,從而一些數據將比其它數據較晚抵達。
相反,採用例如圖5示出的實施例,使得兩個4k片段的數據同時從第一存儲器片段516傳送,從而改善了將數據從客戶端510傳送到資料庫伺服器520的總傳送時間。緩存區的使用減少了被發送的數據的大小,從而與不使用緩存區而將相同大小的數據從第一存儲器片段516傳送給第二存儲器片段526相比,可以較少時間將儲存在每個緩存區515中的數據傳送給相應的緩存區525。
下面將描述客戶端510和資料庫伺服器520在執行資料庫操作期間交換數據的方式。一臺機器(即傳送器)將數據寫入其被分配的存儲器,且該數據在多個緩存區之間分配。接著將該數據傳輸到接收機器上的相應緩存區。一旦儲存在接收機器上的每個緩存區中的數據被使用,則接收機器發送確認應答給傳送器機器。在一實施例中,該確認應答指示接收機器上的緩存區為空。這樣,可為接收機器上的每個緩存區發送確認應答。一旦收到確認應答,傳送器機器就知道,由於接收到了確認應答,可將更多數據寫入對應於接收機器的緩存區的緩存區。在可能進行異步數據傳送的實施例中,數據可在執行寫操作的機器的所分配存儲器中排隊,直到緩存區可用。
如圖5中所示,如果客戶端510正在將數據寫入資料庫伺服器520,則客戶端510將該數據本地寫入第一存儲器片段516。第一存儲器片段516中的數據將被分配給緩存區515。客戶端510的I/O埠518將數據從緩存區515移動到資料庫伺服器520。資料庫伺服器520的I/O埠528將數據移動到緩存區525中。以此方式,將客戶端510中的一個緩存區515中的數據移動到資料庫伺服器520上的相應緩存區525。當資料庫伺服器520使用保持在一個緩存區515中的所有數據時,資料庫伺服器520發送確認應答給客戶端510。客戶端510接著能放置更多數據到特定緩存區515中,其中特定緩存區515對應於提供確認應答的緩存區525。可從每個緩存區515接收確認應答。在異步數據傳送被啟用的實施例中,客戶終端510可使等待傳送給資料庫伺服器520的數據排隊,直到一個緩存區515在已經確認應答為空的資料庫伺服器520上具有相應的緩存區為止。
例如,如果客戶端510對由資料庫伺服器管理的資料庫中的數據執行讀操作,則將被識別為用於傳送到客戶端510的數據移動到第二存儲器片段526中。該數據可在緩存區515之間分配,且通過I/O埠528傳送到客戶端510。接著可將該數據保持在客戶端510上的緩存區515中。客戶端510接著從緩存區515讀取數據。一旦其中的一個緩存區515變得可用,則客戶端510發送確認應答給資料庫伺服器520,表明緩存區為空。
同步和異步數據傳送在例如圖5所示的系統中,數據可同步或異步傳送。在異步數據傳送中,如果正被本地寫入至為另一機器分配的存儲器的數據超過所分配存儲器的大小,則正在寫該數據的機器的處理器保持活動(active),以監控分配的存儲器,並在其可用時將另外的數據寫入該分配的存儲器。在將該數據異步寫入分配的存儲器時,將該數據從傳送器機器傳送。
在異步傳送中,在傳送器機器上將數據本地寫入隊列。該隊列使該數據在緩存區變為可用時寫入緩存區。不需要正在本地寫數據的機器上的處理器活動參與,就能監控和寫數據到該隊列。相反,需要通過所分配的存儲器傳送的所有數據被一次發送到該隊列,且該隊列保存用於所分配的存儲器(或其單獨的緩存區)的數據,直到另外的數據可在所分配的存儲器之間分配。
硬體概述圖6示出可實現本發明的實施例的計算機系統600的方框圖。計算機系統600包括總線602或用於傳送信息的其它通信機構、和與總線602連接以處理信息的處理器604。計算機系統600還包括例如隨機存取存儲器(RAM)或者其它動態存儲裝置等主存儲器606,該主存儲器與總線602連接,用於儲存信息及要由處理器604執行的指令。主存儲器606還可用於在執行將被處理器604執行的指令期間儲存臨時變量或其他中間信息。計算機系統600還包括與總線602連接的只讀存儲器(ROM)608或者其他靜態存儲裝置,用於儲存靜態信息和關於處理器604的指令。例如磁碟或光碟等存儲裝置610與總線602連接,用於儲存信息和指令。
計算機系統600可以經由總線602連接到諸如陰極射線管(CRT)等用於向計算機用戶顯示信息的顯示器612。包括字母數字鍵和其它鍵的輸入裝置614與總線602相連接,用於傳送信息和命令選擇到處理器604。另一種用戶輸入裝置是光標控制器616,如滑鼠、軌跡球、或光標方向鍵等,用於傳送方向信息和命令選擇到處理器604及用於控制顯示器612上的光標移動。該輸入裝置通常具有沿兩個軸(第一軸(例如x軸)和第二軸(例如y軸))的兩個自由度,使裝置可在平面中確定位置。
本發明涉及用於實現在此描述的技術的計算機系統600的使用。根據本發明的實施例,響應於處理器604執行包含在主存儲器606中的一個或多個指令的一個或多個序列,通過計算機系統600執行這些技術。可將這些指令從諸如存儲設備610等另一計算機可讀介質讀入主存儲器606。通過執行包含在主存儲器606中的指令序列,使處理器604執行此處所述的處理步驟。在可選實施例中,可用硬連線電路取代軟體指令,或者與軟體指令結合來實施該發明。因此,本發明中的實施例不限於硬體電路和軟體的任何特定組合。
這裡使用的術語「計算機可讀介質」是指參與提供指令給處理器604來執行的任何介質。這種介質可以採取很多形式,包括但不限於非易失性介質、易失性介質、和傳輸介質。非易失性介質舉例來說包括例如存儲裝置610等光碟或磁碟。易失性介質包括例如主存儲器606等動態存儲器。傳輸介質包括同軸電纜、銅線、和光纖,包括包含總線602的導線。傳輸介質還可採取聲波或光波的形式,例如那些在無線電波和紅外線數據通信過程中產生的聲波和光波。
通常的計算機可讀介質舉例來說包括軟盤、軟磁碟(flexibledisk)、硬碟、磁帶、或者任何其它磁性介質;CD-ROM、任何其它光學介質;打孔紙、紙帶、或者任何帶有孔圖案的物理介質;RAM、PROM、EPROM、FLASH-EPROM、或者其他任何存儲晶片或者卡;下面描述的載波、或者計算機可讀的任何其他介質。
各種形式的計算機可讀介質可參與傳送一個或者多個指令的一個或多個序列給處理器604來執行。例如,該指令初始地可承載在遠程計算機的磁碟中。該遠程計算機能將該指令加載到其動態存儲器中,然後使用數據機通過電話線發送指令。計算機系統600本地的數據機可接收電話線上的數據,且使用紅外轉換器將數據轉換成紅外信號。紅外探測器可以接收紅外信號攜帶的數據,且合適的電路可以把信息放到總線602上。總線602把數據傳送到主存儲器606中,處理器604從主存儲器606取回並執行這些指令。由主存儲器606接收的指令可隨意地在處理器604執行這些指令之前或之後儲存於存儲裝置610中。
計算機系統600還包括連接到總線602的通信接口618。通信接口618提供連接到網絡鏈路620的雙向數據通信,該網絡鏈路與區域網622相連。例如,通信接口618可以是綜合業務數字網(Integrated Services Digital Network,ISDN)卡或者數據機,用於提供到相應類型電話線的數據通信連接。又如,通信接口618可以是區域網(Local Area Network,LAN)卡,用於提供至兼容LAN的數據通信連接。也可以使用無線鏈路。在任何這樣的實施方式中,通信接口618均發送和接收承載表示各種信息的數字數據流的電信號、電磁信號和光學信號。
網絡鏈路620通常可通過一個或者多個網絡提供數據通信給其它數據裝置。例如,網絡鏈路620可通過區域網622提供與主機624連接,或者提供與網際網路服務提供商(Internet Service Provider,ISP)626操作的數據設備的連接。ISP 626進而通過目前通稱為「網際網路」628的全球分組數據通信網絡提供數據通信服務。區域網622和網際網路628都使用承載數字數據流的電信號、電磁信號或光學信號。通過各種網絡的信號、和網絡鏈路620上的信號、和通過通信接口618的信號,是傳輸信息的載波的典型形式,這些信號都傳送數字數據給計算機系統600或者傳送來自計算機系統600的數字數據。
計算機系統600能通過網絡、網絡鏈路620、和通信接口618發送消息和接收數據(包括程序代碼)。在網際網路實例中,伺服器630可通過網際網路628、ISP 626、區域網622、和通信接口618傳送關於應用程式的所請求代碼。
當代碼被接收和/或儲存在存儲裝置610上或者其它非易失性存儲器上用於隨後執行時,處理器604可執行所接收到的代碼。以此方式,計算機系統600可以獲得載波形式的應用程式代碼。
以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種用於執行資料庫操作的方法,所述方法包括在第一機器上執行下述步驟分配用於與第二機器交換數據的第一存儲器片段,其中,所述第一機器和所述第二機器中至少之一是資料庫伺服器;在從所述第二機器傳送數據給所述第一機器的資料庫操作的執行過程中,響應於所述第二機器將所述數據寫入所述第二機器上的第二存儲器片段,將數據緩存在所述第一存儲器片段中。
2.根據權利要求1所述的方法,進一步包括將到所述第一存儲器片段的第一地址提供給所述第二機器;以及其中,將數據緩存在所述第一存儲器片段中的步驟包括通過直接存儲器存取啟用通道將所述第二機器發送的數據接收進所述第一存儲器片段。
3.根據權利要求2所述的方法,進一步包括,在所述資料庫操作的執行過程中,所述第一機器上的程序讀取所述第一存儲器片段中的所述數據。
4.根據權利要求1所述的方法,進一步包括,在緩存所述數據時在所述第一機器上執行一個或多個資料庫操作,包括執行一個或多個結構化查詢語言命令,所述結構化查詢語言命令涉及在所述第一存儲器片段中從所述第二機器接收的數據。
5.根據權利要求1所述的方法,進一步包括,從所述第二機器接收所述第二存儲器片段的第二地址,其中,在所述第二機器上分配所述第二存儲器片段,用於與所述第一機器交換數據。
6.根據權利要求5所述的方法,進一步包括,為了使所述第二機器將所述數據寫入所述第二存儲器片段,發送將所述數據讀入所述第二機器的請求。
7.根據權利要求6所述的方法,進一步包括,在緩存所述數據後,從所述第一存儲器片段讀取所述數據。
8.根據權利要求6所述的方法,其中發送讀取所述數據的請求通過傳輸控制協議/網際網路協議通道完成。
9.根據權利要求7所述的方法,進一步包括,在所述第一機器上提供本地通知,表明作為所述數據正在從所述第一存儲器片段被讀取的結果,所述第一存儲器片段為空。
10.根據權利要求1所述的方法,其中分配第一存儲器片段包括確定用於與所述第二機器交換數據的多個緩存區;以及緩存在所述第一存儲器片段中接收的數據包括將從所述第二機器接收的數據的一部分緩存於所述多個緩存區的每個中。
11.根據權利要求10所述的方法,其中緩存從所述第二機器接收的數據的一部分包括從所述第二機器同時接收數據到多個被確定的緩存區中。
12.根據權利要求2所述的方法,進一步包括,在所述第一存儲器片段變得可用於從所述第二機器接收更多數據時,發送確認應答給所述第二機器。
13.根據權利要求10所述的方法,進一步包括,在每個緩存區變得可用於從所述第一機器接收另外的數據時,發送確認應答給所述第二機器。
14.根據權利要求2所述的方法,進一步包括,確認所述第二機器能通過所述直接存儲器存取啟用通道發送所述數據給所述第一存儲器片段。
15.根據權利要求14所述的方法,其中確認所述第二機器能通過所述直接存儲器存取啟用通道發送所述數據給所述第一存儲器片段包括通過所述直接存儲器存取啟用通道發送測試消息給所述第二機器。
16.根據權利要求14所述的方法,其中確認所述第二機器能通過所述直接存儲器存取啟用通道發送所述數據給所述第一存儲器片段包括使所述第二機器通過所述直接存儲器存取啟用通道發送測試消息給所述第一機器。
17.根據權利要求14所述的方法,其中確認所述第二機器能通過所述直接存儲器存取啟用通道發送所述數據給所述第一存儲器片段包括將關於在所述第二機器上使用所述直接存儲器存取啟用通道的資源的信息與在所述第一機器上使用所述直接存儲器存取啟用通道的資源進行比較。
18.根據權利要求2所述的方法,進一步包括使所述第二機器能異步發送所述數據給所述第一存儲器片段。
19.根據權利要求2所述的方法,進一步包括使所述第二機器能同步發送所述數據給所述第一存儲器片段。
20.根據權利要求12所述的方法,進一步包括如果所述第一機器或所述第二機器不能使用所述直接存儲器存取啟用通道,則使用網際網路協議啟用通道代替所述直接存儲器存取啟用通道在所述第一機器和所述第二機器之間發送數據。
21.根據權利要求1所述的方法,進一步包括為了使所述第二機器將所述數據寫入所述第二存儲器片段,發送遠程過程調用給所述第二機器。
22.根據權利要求1所述的方法,其中,發送遠程過程調用包括通過傳輸控制協議/網際網路協議通道發送所述遠程過程調用。
23.根據權利要求1所述的方法,其中,響應於遠程過程調用包括通過傳輸控制協議/網際網路協議通道接收所述遠程過程調用,和通過傳輸控制協議/網際網路協議通道響應所述遠程過程調用。
24.一種用於執行資料庫操作的方法,所述方法包括在第一機器上執行下述步驟分配用於與第二機器交換數據的第一存儲器片段,其中,所述第一機器和所述第二機器中至少之一是資料庫伺服器;以及其中,為了將數據緩存在第二存儲器片段中,將所述數據寫入所述第一存儲器片段,其中,所述第二存儲器片段分配在所述第二機器上,用於與所述第一機器交換數據。
25.根據權利要求24所述的方法,進一步包括,為了使用直接存儲器存取啟用通道將所述數據發送給所述第二機器,將所述數據寫入所述第一存儲器片段。
26.根據權利要求24所述的方法,進一步包括,將所述數據寫入所述第一存儲器片段包括為了從所述第二存儲器片段讀取數據,將所述數據寫入所述第一存儲器片段。
27.根據權利要求24所述的方法,其中分配用於第二機器的第一存儲器片段包括確定用於所述第二機器的第一多個緩存區,其中所述第一多個緩存區中的每個緩存區都對應於所述第二機器上的第二多個緩存區中的緩存區。
28.根據權利要求27所述的方法,其中為了將數據緩存在第二存儲器片段中而將所述數據寫入所述第一存儲器片段包括使用所述第一多個緩存區發送所述數據的一部分給所述第二多個緩存區中的每個緩存區。
29.根據權利要求28所述的方法,其中使用所述第一多個緩存區發送所述數據的一部分給所述第二多個緩存區中的每個緩存區包括使用所述第一多個緩存區中的第一緩存區發送所述數據的第一部分給所述第二多個緩存區中的相應的第一緩存區;以及從所述第二機器接收確認應答,所述確認應答表示所述第二多個緩存區中的所述相應的第一緩存區準備接收更多的數據。
30.根據權利要求29所述的方法,其中響應於接收所述確認應答,所述方法進一步包括使用所述第一多個緩存區中的所述第一緩存區發送所述數據的另一部分給所述第二多個緩存區中的所述相應的第一緩存區。
31.根據權利要求30所述的方法,其中從所述第二機器接收確認應答包括響應於由於所述第二機器使用所述數據的所述第一部分而導致所述第二多個緩存區中的所述相應的第一緩存區變空,接收所述確認應答。
32.根據權利要求25所述的方法,進一步包括確認所述第一機器和所述第二機器可使用所述直接存儲器存取啟用通道。
33.根據權利要求32所述的方法,其中確認所述第一機器和所述第二機器能使用所述直接存儲器存取啟用通道包括通過所述直接存儲器存取啟用通道發送測試消息給所述第二機器。
34.根據權利要求33所述的方法,其中確認所述第一機器和所述第二機器能使用所述直接存儲器存取啟用通道包括將關於在所述第二機器上使用所述直接存儲器存取啟用通道的資源的信息與在所述第一機器上使用所述直接存儲器存取啟用通道的資源進行比較。
35.根據權利要求25所述的方法,進一步包括檢驗所述第一機器和所述第二機器可使用所述直接存儲器存取啟用通道;以及如果所述第一機器或所述第二機器不能使用所述直接存儲器存取啟用通道,則自動使用網際網路協議啟用通道代替所述直接存儲器存取啟用通道從所述第一機器發送所述數據給所述第二機器。
36.根據權利要求24所述的方法,進一步包括,接收來自所述第二機器的遠程過程調用,並響應於所述遠程過程調用,將所述數據寫入所述第一存儲器片段。
37.根據權利要求36所述的方法,其中接收來自所述第二機器的遠程過程調用包括通過傳輸控制協議/網際網路協議通道接收所述遠程過程調用。
38.根據權利要求25所述的方法,其中為了將所述數據發送給所述第二機器而將所述數據寫入所述第一存儲器片段包括在將所述數據發送給所述第二機器時將所述數據異步寫入所述第一存儲器片段。
39.根據權利要求25所述的方法,其中為了將所述數據被發送給所述第二機器而將所述數據寫入所述第一存儲器片段包括在將所述數據發送給所述第二機器時將所述數據同步寫入所述第一存儲器片段。
40.一種用於執行資料庫操作的方法,所述方法包括在第一機器上執行下述步驟分配用於接收來自第二機器的數據的第一存儲器片段;在將數據從所述第二機器傳送給所述第一機器的資料庫操作的執行過程中,通過直接存儲器存取啟用通道在所述第一存儲器片段中接收來自所述第二機器的所述數據。
41.根據權利要求40所述的方法,進一步包括通過提供所述第一存儲器片段的地址給所述第二機器,使所述第二機器能發送所述數據。
42.根據權利要求40所述的方法,進一步包括以下步驟緩存來自所述第二機器的所述數據;以及在緩存所述數據時,在所述第一機器上執行一個或多個資料庫操作。
43.根據權利要求42所述的方法,其中,使所述第二機器能夠發送所述數據包括使所述第二機器能夠從所述第二機器上為所述第一機器分配的第二存儲器發送所述數據,其中所述方法進一步包括以下步驟在執行所述一個或多個資料庫操作時,為了將數據從所述第一機器傳送給所述第二機器,從所述第二機器接收用於所述第二存儲器片段的第二地址。
44.根據權利要求40所述的方法,進一步包括在所述第一機器上提供本地通知,所述本地通知表示由於所述數據被從所述第一存儲器片段讀取而導致所述第一存儲器片段為空。
45.根據權利要求40所述的方法,其中,使所述第二機器能發送所述數據的步驟進一步包括以下步驟在所述第一存儲器片段變得可用於從所述第二計算機接收更多的數據時,發送確認應答給所述第一機器。
46.根據權利要求40所述的方法,其中,使所述第二機器能發送所述數據的步驟包括使所述第二機器能夠異步發送所述數據給所述第一存儲器片段。
47.根據權利要求40所述的方法,其中,使所述第二機器能發送所述數據的步驟包括使所述第二機器能夠同步發送所述數據給所述第一存儲器片段。
48.一種承載一個或多個指令序列的計算機可讀介質,其中當所述指令序列由一個或多個處理器執行時,使所述一個或多個處理器執行根據權利要求1至47中任一項所述的方法。
全文摘要
直接存儲器存取用於在兩臺或更多機器之間執行資料庫操作。為第二機器分配第一存儲器片段。第一機器和第二機器中至少之一是資料庫伺服器。在將數據從第二機器傳送給第一機器的資料庫操作的執行過程中,響應於第二機器將數據寫入第二機器上的第二存儲器片段,將數據緩存在第一存儲器片段中。
文檔編號G06F12/00GK1751297SQ200380106101
公開日2006年3月22日 申請日期2003年12月10日 優先權日2002年12月17日
發明者德巴希斯·薩哈, 約翰·奇米斯基, 德巴希什·查特吉, 拉克希米納拉亞南·奇丹巴拉恩 申請人:甲骨文國際公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀