CN100422958C - 用于执行数据库操作的方法 - Google Patents
用于执行数据库操作的方法 Download PDFInfo
- Publication number
- CN100422958C CN100422958C CNB2003801061017A CN200380106101A CN100422958C CN 100422958 C CN100422958 C CN 100422958C CN B2003801061017 A CNB2003801061017 A CN B2003801061017A CN 200380106101 A CN200380106101 A CN 200380106101A CN 100422958 C CN100422958 C CN 100422958C
- Authority
- CN
- China
- Prior art keywords
- machine
- data
- dma
- fragment
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000015654 memory Effects 0.000 title claims abstract description 170
- 230000004044 response Effects 0.000 claims abstract description 15
- 239000012634 fragment Substances 0.000 claims description 93
- 238000000034 method Methods 0.000 claims description 70
- 230000005540 biological transmission Effects 0.000 claims description 28
- 238000012360 testing method Methods 0.000 claims description 12
- 238000012790 confirmation Methods 0.000 claims description 3
- 230000005641 tunneling Effects 0.000 claims 6
- 230000003139 buffering effect Effects 0.000 claims 4
- 230000001360 synchronised effect Effects 0.000 claims 2
- 238000012546 transfer Methods 0.000 abstract description 7
- 230000006854 communication Effects 0.000 description 30
- 238000004891 communication Methods 0.000 description 29
- 238000005516 engineering process Methods 0.000 description 12
- 230000015572 biosynthetic process Effects 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229920002457 flexible plastic Polymers 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99948—Application of database or data structure, e.g. distributed, multimedia, or image
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种用于执行数据库操作的方法。其所要解决的技术问题在于,实现计算机与装置之间的快速数据交换。直接存储器存取用于在两台或更多机器之间执行数据库操作。第一存储器片段为第二机器而分配。第一机器和第二机器中至少之一是数据库服务器。在将数据从该第二机器传送给该第一机器的数据库操作的执行过程中,响应于第二机器将数据写入第二机器上的第二存储器片段,将数据缓存在第一存储器片段中。根据本发明的实施例使得直接存储器存取(DMA)技术在数据库系统环境中有效地实现。
Description
技术领域
本发明涉及数据库系统环境中的通信。具体而言,本发明涉及使用直接存储器进行存取,以在两台或更多台机器之间执行数据库操作。
背景技术
直接存储器存取(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)。
发明内容
本发明的实施例使得直接存储器存取(DMA)技术在数据库系统环境中有效地实现。具体而言,数据库服务器执行的数据库操作可使用DMA通信介质执行。DMA通信介质包括使得两台计算机能以在各台计算机上以透明方式彼此共享存储器的通道。这样,如果一台计算机将数据写入从属于DMA通道的存储器,则该数据在处理器的最小介入下传送给另一计算机。与使用例如TCP/IP等更传统的通信介质相比,使用DMA通信介质执行数据库操作(特别是那些涉及大量数据传送的数据库操作),能明显更快地执行数据库操作。
根据一个实施例,数据库操作可在与第二机器通信以执行数据库操作的第一机器上执行。这些机器中的至少一个是数据库服务器。在第一机器上,为第二机器分配第一存储器片段。在数据从第二机器传送给第一机器的数据库操作的执行期间,数据在第一存储器片段中缓存。响应于第二机器将该数据写入到第二机器上为第一机器分配的第二存储器片段,缓存该数据。
例如,数据库服务器为客户端分配缓存区的一部分。该数据库服务器可将从客户端接收的数据缓存到所分配的存储器中。响应于客户端将相同数据写入客户端上所分配的存储器,缓存该数据。该数据的传送通过DMA启用通道完成。响应于客户端110发送的结构化查询语言命令,可执行与该数据的传送关联执行的操作。
在一个实施例中,如果在第一和第二机器之间不可用DMA传送,则自动使用TCP/IP传送协议传送数据。执行确认步骤,以确定是否应将TCP/IP通道的DMA通道用于在两台机器之间传送数据。
在一个实施例中,两台机器之间的所述通信可复制,以实现另外的机器之间的数据传送。例如,客户端可通过DMA通道将数据写入数据库服务器,且数据库服务器可通过独立的通道分配数据给其它客户端。
附图说明
本发明通过附图中的实例进行说明,但并非受限于此,在本发明中,相同参考标号指示相同元件,在附图中:
图1示出根据本发明的实施例的用于在两台机器之间传送数据的基本系统。
图2示出根据本发明的实施例的用于使用DMA数据传送在两台机器之间执行写操作的方法。
图3示出根据本发明的实施例的用于使用DMA数据传送在两台机器之间执行读操作的方法。
图4示出用于验证两台机器使用DMA数据传送来为数据库操作交换数据的能力的方法。
图5示出根据本发明的实施例的用于使用多个缓存区(buffer,缓冲区)在两台机器之间传送数据的基本系统。
图6示出可实现本发明的实施例的计算机系统的方框图。
具体实施方式
下面描述一种方法和设备,用于使用直接存储器存取在两台或更多机器之间执行数据库操作。在以下描述中,出于说明目的,为了提供对本发明的透彻理解,此处描述了多个具体细节。然而,显而易见地是,没有这些具体细节也可实施本发明。在其它情形下,为了避免不必要地模糊本发明,将公知结构和装置在方框图中示出。
一般功能性描述
图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之间的对应通过标号示出,其中BUFF 11对应于BUFF 21,BUFF 14对应于BUFF 24。可使用TCP/IP通道532建立缓存区之间的对应。例如,可通过RPC 1建立对应,以在客户端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可以获得载波形式的应用程序代码。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (31)
1. 一种用于执行数据库操作的方法,所述方法包括在第一机器上执行下述步骤:
利用直接存储器存取启用通道分配用于与第二机器交换数据的第一存储器片段,其中,所述第一机器和所述第二机器中至少之一是数据库服务器,
其中,分配所述第一存储器片段包括识别将用于与所述第二机器交换数据的多个缓存区;
确认所述第一机器和所述第二机器可以利用所述直接存储器存取启用通道通信;
响应于确定所述第一机器和所述第二机器可以利用直接存储器存取启用通道通信,执行:
在涉及从所述第二机器传送数据给所述第一机器的数据库操作的执行过程中,响应于所述第二机器将数据一部分写入所述第二机器上的第二存储器片段,将所述数据的所述部分缓存在所述第一存储器片段中,以及
其中,将所述数据的所述部分缓存在所述第一存储器片段中包括(a)将从所述第二机器接收的所述数据的所述部分缓存在所述多个缓存区的一个或多个缓存区中,以及(b)在所述多个缓存区的每个缓存区变得可用于接收来自所述第二机器的另外的数据时,向所述第二机器发送确认应答;以及
响应于确定或者所述第一机器或者所述第二机器不使用所述直接存储器存取启用通道,利用互联网协议启用通道取代所述的直接存储器存取启用通道在所述第一机器上接收从所述第二机器传送到所述第一机器的所述数据,
其中,确认所述第一机器和所述第二机器可以利用所述直接存储器存取启用通道通信包括以下步骤中的至少之一:
通过所述直接存储器存取启用通道向所述第二机器发送测试消息,
使所述第二机器通过所述直接存储器存取启用通道向所述第一机器发送测试消息,以及
将关于在所述第二机器上使用所述直接存储器存取启用通道的资源的信息与在所述第一机器上使用所述直接存储器存取启用通道的资源进行比较。
2. 根据权利要求1所述的方法,进一步包括:
向所述第二机器提供所述第一存储器片段的第一地址;以及
其中,将数据缓存在所述第一存储器片段中的步骤包括通过所述直接存储器存取启用通道将所述第二机器发送的数据接收进所述第一存储器片段。
3. 根据权利要求1所述的方法,进一步包括在所述数据库操作的执行过程中,所述第一机器上的程序读取所述第一存储器片段中的所述数据。
4. 根据权利要求1所述的方法,进一步包括在缓存所述数据时在所述第一机器上执行一个或多个数据库操作,包括执行一个或多个结构化查询语言命令,所述结构化查询语言命令涉及在所述第一存储器片段中从所述第二机器接收的数据。
5. 根据权利要求1所述的方法,进一步包括从所述第二机器接收所述第二存储器片段的第二地址,其中,在所述第二机器上分配所述第二存储器片段,用于与所述第一机器交换数据。
6. 根据权利要求5所述的方法,进一步包括为了使所述第二机器将所述数据写入所述第二存储器片段,从所述第一机器发送将所述数据读入所述第二机器的请求。
7. 根据权利要求6所述的方法,进一步包括在缓存所述数据后,从所述第一存储器片段读取所述数据。
8. 根据权利要求6所述的方法,其中发送读取所述数据的请求通过传输控制协议/互联网协议通道完成。
9. 根据权利要求7所述的方法,进一步包括在所述第一机器上提供本地通知:作为所述数据正在从所述第一存储器片段被读取的结果,所述第一存储器片段为空。
10. 根据权利要求1所述的方法,其中缓存从所述第二机器接收的所述数据的所述部分包括:从所述第二机器同时接收数据到两个或多个缓存区中。
11. 根据权利要求2所述的方法,进一步包括使所述第二机器能异步发送所述数据给所述第一存储器片段。
12. 根据权利要求2所述的方法,进一步包括使所述第二机器能同步发送所述数据给所述第一存储器片段。
13. 根据权利要求1所述的方法,进一步包括为了使所述第二机器将所述数据写入所述第二存储器片段,在分配所述第一存储器片段前,发送远程过程调用给所述第二机器。
14. 根据权利要求13所述的方法,其中,发送远程过程调用包括:通过传输控制协议/互联网协议通道发送所述远程过程调用。
15. 根据权利要求13所述的方法,其中,发送远程过程调用包括:通过传输控制协议/互联网协议通道在所述第二机器上接收所述远程过程调用,和通过传输控制协议/互联网协议通道响应所述远程过程调用。
16. 一种用于执行数据库操作的方法,所述方法包括在第一机器上执行下述步骤:
利用直接存储器存取启用通道分配用于与第二机器交换数据的第一存储器片段,其中,所述第一机器和所述第二机器中至少之一是数据库服务器,
其中,分配所述第一存储器片段包括识别第一多个缓存区,其中,所述第一多个缓存区中的每个缓存区对应于在所述第二机器上的第二多个缓存区中的缓存区;
确认所述第一机器和所述第二机器可以利用直接存储器存取启用通道进行通信;
响应于确定所述第一机器和所述第二机器可以利用直接存储器存取启用通道进行通信:
在涉及从所述第一机器传送数据给所述第二机器的数据库操作的执行过程中,为了将所述数据的一部分缓存在第二存储器片段中,将所述数据的所述部分写入所述第一存储器片段,其中,所述第二存储器片段分配在所述第二机器上,用于与所述第一机器交换数据,
其中,为了将所述数据的所述部分缓存在第二存储器片段中,将所述数据的所述部分写入所述第一存储器片段包括:使用所述第一多个缓存区,以将所述数据的所述部分发送到所述第二多个缓存区的一个或多个缓存区;以及
响应于确定或者所述第一机器或者所述第二机器不使用直接存储器存取启用通道,所述第一机器利用互联网协议启用通道发送所述数据到所述第二机器,
其中,确认所述第一机器和所述第二机器可以利用直接存储器存取启用通道通信包括以下步骤中至少之一:
通过所述直接存储器存取启用通道向所述第二机器发送测试消息,
使所述第二机器通过所述直接存储器存取启用通道向所述第一机器发送测试消息,以及
将关于在所述第二机器上使用所述直接存储器存取启用通道的资源的信息与在所述第一机器上使用所述直接存储器存取启用通道的资源进行比较。
17. 根据权利要求16所述的方法,进一步包括使用直接存储器存取启用通道将数据的所述部分发送给所述第二机器。
18. 根据权利要求17所述的方法,其中使用所述第一多个缓存区发送所述数据的所述部分给所述第二多个缓存区的所述一个或多个缓存区包括:
使用所述第一多个缓存区中的第一缓存区发送所述数据的第一部分给所述第二多个缓存区中的相应的第一缓存区;以及
从所述第二机器接收确认应答,所述确认应答为:所述第二多个缓存区中的所述相应的第一缓存区准备接收更多的数据。
19. 根据权利要求18所述的方法,其中响应于接收所述确认应答,所述方法进一步包括:使用所述第一多个缓存区中的所述第一缓存区发送所述数据的另一部分给所述第二多个缓存区中的所述相应的第一缓存区。
20. 根据权利要求19所述的方法,其中从所述第二机器接收确认应答包括:响应于由于所述第二机器使用所述数据的所述第一部分而导致所述第二多个缓存区中的所述相应的第一缓存区变空,接收所述确认应答。
21. 根据权利要求16所述的方法,其中接收来自所述第二机器的远程过程调用包括:通过传输控制协议/互联网协议通道接收所述远程过程调用。
22. 根据权利要求17所述的方法,其中为了将所述数据发送给所述第二机器而将所述数据写入所述第一存储器片段包括:在将所述数据发送给所述第二机器时将所述数据异步写入所述第一存储器片段。
23. 根据权利要求17所述的方法,其中为了将所述数据被发送给所述第二机器而将所述数据写入所述第一存储器片段包括:在将所述数据发送给所述第二机器时将所述数据同步写入所述第一存储器片段。
24. 一种用于执行数据库操作的方法,所述方法包括在第一机器上执行下述步骤:
利用直接存储器存取启用通道分配用于接收来自第二机器的数据的第一存储器片段,
其中,分配所述第一存储器片段包括识别将用于与所述第二机器交换数据的多个缓存区;
确认所述第一机器和所述第二机器可以利用直接存储器存取启用通道通信;
响应于确定所述第一机器和所述第二机器可以利用所述直接存储器存取启用通道进行通信,执行:
在涉及将数据从所述第二机器传送给所述第一机器的数据库操作的执行过程中,通过直接存储器存取启用通道在所述第一存储器片段中接收来自所述第二机器的所述数据,以及
其中,在所述第一存储器片段中接收所述数据包括:在所述多个缓存区的一个或多个缓存区中缓存从所述第二机器接收的所述数据的一部分;以及
响应于确定或者所述第一机器或者所述第二机器不使用所述直接存储器存取启用通道,所述第一机器利用互联网协议启用通道接收来自所述第二机器的与随后数据库操作有关的第二数据,
其中,确认所述第一机器和所述第二机器可以利用所述直接存储器存取启用通道通信包括以下步骤中至少之一:
通过所述直接存储器存取启用通道给所述第二机器发送测试消息,
使所述第二机器通过所述直接存储器存取启用通道给所述第一机器发送测试消息,以及
将关于在所述第二机器上使用所述直接存储器存取启用通道的资源的信息与在所述第一机器上使用所述直接存储器存取启用通道的资源进行比较。
25. 根据权利要求24所述的方法,进一步包括:通过提供所述第一存储器片段的第一地址给所述第二机器,使所述第二机器能发送所述数据。
26. 根据权利要求24所述的方法,进一步包括以下步骤:
缓存来自所述第二机器的所述数据;以及
在缓存所述数据时,在所述第一机器上执行一个或多个数据库操作。
27. 根据权利要求25所述的方法,其中,使所述第二机器能够发送所述数据包括:使所述第二机器能够从所述第二机器上为所述第一机器分配的第二存储器发送所述数据,其中所述方法进一步包括以下步骤:在执行一个或多个数据库操作时,为了将数据从所述第一机器传送给所述第二机器,从所述第二机器接收用于所述第二存储器片段的第二地址。
28. 根据权利要求24所述的方法,进一步包括以下步骤:在所述第一机器上提供本地通知,所述本地通知为:由于所述数据被从所述第一存储器片段读取而导致所述第一存储器片段为空。
29. 根据权利要求25所述的方法,其中,使所述第二机器能发送所述数据的步骤进一步包括以下步骤:在所述第一存储器片段变得可用于从所述第二计算机接收更多的数据时,发送确认应答给所述第二机器。
30. 根据权利要求25所述的方法,其中,使所述第二机器能发送所述数据的步骤包括:使所述第二机器能够异步发送所述数据给所述第一存储器片段。
31. 根据权利要求25所述的方法,其中,使所述第二机器能发送所述数据的步骤包括:使所述第二机器能够同步发送所述数据给所述第一存储器片段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/323,561 | 2002-12-17 | ||
US10/323,561 US7406481B2 (en) | 2002-12-17 | 2002-12-17 | Using direct memory access for performing database operations between two or more machines |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1751297A CN1751297A (zh) | 2006-03-22 |
CN100422958C true CN100422958C (zh) | 2008-10-01 |
Family
ID=32507315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003801061017A Expired - Lifetime CN100422958C (zh) | 2002-12-17 | 2003-12-10 | 用于执行数据库操作的方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7406481B2 (zh) |
EP (1) | EP1581875B1 (zh) |
JP (1) | JP4624110B2 (zh) |
CN (1) | CN100422958C (zh) |
CA (1) | CA2509404C (zh) |
DE (1) | DE60324965D1 (zh) |
HK (1) | HK1077104A1 (zh) |
WO (1) | WO2004061684A2 (zh) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9239763B2 (en) | 2012-09-28 | 2016-01-19 | Oracle International Corporation | Container database |
US7447795B2 (en) * | 2001-04-11 | 2008-11-04 | Chelsio Communications, Inc. | Multi-purpose switching network interface controller |
US7717791B2 (en) * | 2002-06-05 | 2010-05-18 | Igt | Method for fault and/or disaster tolerant cashless gaming |
US7406481B2 (en) * | 2002-12-17 | 2008-07-29 | Oracle International Corporation | Using direct memory access for performing database operations between two or more machines |
US7664847B2 (en) * | 2003-08-14 | 2010-02-16 | Oracle International Corporation | Managing workload by service |
US7747717B2 (en) * | 2003-08-14 | 2010-06-29 | Oracle International Corporation | Fast application notification in a clustered computing system |
US7953860B2 (en) * | 2003-08-14 | 2011-05-31 | Oracle International Corporation | Fast reorganization of connections in response to an event in a clustered computing system |
US20060064400A1 (en) * | 2004-09-21 | 2006-03-23 | Oracle International Corporation, A California Corporation | Methods, systems and software for identifying and managing database work |
US8090801B1 (en) * | 2003-10-07 | 2012-01-03 | Oracle America, Inc. | Methods and apparatus for performing remote access commands between nodes |
US7945705B1 (en) | 2004-05-25 | 2011-05-17 | Chelsio Communications, Inc. | Method for using a protocol language to avoid separate channels for control messages involving encapsulated payload data messages |
US7827141B2 (en) * | 2005-03-10 | 2010-11-02 | Oracle International Corporation | Dynamically sizing buffers to optimal size in network layers when supporting data transfers related to database applications |
US7724658B1 (en) | 2005-08-31 | 2010-05-25 | Chelsio Communications, Inc. | Protocol offload transmit traffic management |
US7715436B1 (en) | 2005-11-18 | 2010-05-11 | Chelsio Communications, Inc. | Method for UDP transmit protocol offload processing with traffic management |
US7616563B1 (en) | 2005-08-31 | 2009-11-10 | Chelsio Communications, Inc. | Method to implement an L4-L7 switch using split connections and an offloading NIC |
US7660264B1 (en) | 2005-12-19 | 2010-02-09 | Chelsio Communications, Inc. | Method for traffic schedulign in intelligent network interface circuitry |
US7660306B1 (en) | 2006-01-12 | 2010-02-09 | Chelsio Communications, Inc. | Virtualizing the operation of intelligent network interface circuitry |
US7760733B1 (en) | 2005-10-13 | 2010-07-20 | Chelsio Communications, Inc. | Filtering ingress packets in network interface circuitry |
CN100454841C (zh) * | 2006-06-02 | 2009-01-21 | 华为技术有限公司 | 一种多域路由计算方法和系统 |
US7856424B2 (en) | 2006-08-04 | 2010-12-21 | Apple Inc. | User interface for backup management |
US9009115B2 (en) | 2006-08-04 | 2015-04-14 | Apple Inc. | Restoring electronic information |
US8166415B2 (en) | 2006-08-04 | 2012-04-24 | Apple Inc. | User interface for backup management |
US7860839B2 (en) | 2006-08-04 | 2010-12-28 | Apple Inc. | Application-based backup-restore of electronic information |
US8370853B2 (en) * | 2006-08-04 | 2013-02-05 | Apple Inc. | Event notification management |
US8311988B2 (en) | 2006-08-04 | 2012-11-13 | Apple Inc. | Consistent back up of electronic information |
US7853566B2 (en) | 2006-08-04 | 2010-12-14 | Apple Inc. | Navigation of electronic backups |
US8266238B2 (en) * | 2006-12-27 | 2012-09-11 | Intel Corporation | Memory mapped network access |
US8935406B1 (en) | 2007-04-16 | 2015-01-13 | Chelsio Communications, Inc. | Network adaptor configured for connection establishment offload |
US8060644B1 (en) | 2007-05-11 | 2011-11-15 | Chelsio Communications, Inc. | Intelligent network adaptor with end-to-end flow control |
US7826350B1 (en) | 2007-05-11 | 2010-11-02 | Chelsio Communications, Inc. | Intelligent network adaptor with adaptive direct data placement scheme |
US8589587B1 (en) | 2007-05-11 | 2013-11-19 | Chelsio Communications, Inc. | Protocol offload in intelligent network adaptor, including application level signalling |
US7831720B1 (en) | 2007-05-17 | 2010-11-09 | Chelsio Communications, Inc. | Full offload of stateful connections, with partial connection offload |
US8745523B2 (en) | 2007-06-08 | 2014-06-03 | Apple Inc. | Deletion in electronic backups |
US8429425B2 (en) | 2007-06-08 | 2013-04-23 | Apple Inc. | Electronic backup and restoration of encrypted data |
US20080307017A1 (en) | 2007-06-08 | 2008-12-11 | Apple Inc. | Searching and Restoring of Backups |
US8468136B2 (en) | 2007-06-08 | 2013-06-18 | Apple Inc. | Efficient data backup |
US8099392B2 (en) * | 2007-06-08 | 2012-01-17 | Apple Inc. | Electronic backup of applications |
US8010900B2 (en) | 2007-06-08 | 2011-08-30 | Apple Inc. | User interface for electronic backup |
US8725965B2 (en) | 2007-06-08 | 2014-05-13 | Apple Inc. | System setup for electronic backup |
US8307004B2 (en) | 2007-06-08 | 2012-11-06 | Apple Inc. | Manipulating electronic backups |
EP2399363B1 (en) * | 2009-02-19 | 2019-05-29 | Huawei Technologies Co., Ltd. | System and method for point to multipoint inter-domain multiprotocol label switching traffic engineering path calculation |
US8549038B2 (en) | 2009-06-15 | 2013-10-01 | Oracle International Corporation | Pluggable session context |
CA2783829C (en) * | 2009-12-11 | 2018-07-31 | Aerial Robotics, Inc. | Transparent network substrate system |
US8819412B2 (en) * | 2010-04-30 | 2014-08-26 | Shazzle Llc | System and method of delivering confidential electronic files |
US10200325B2 (en) | 2010-04-30 | 2019-02-05 | Shazzle Llc | System and method of delivering confidential electronic files |
US9864772B2 (en) * | 2010-09-30 | 2018-01-09 | International Business Machines Corporation | Log-shipping data replication with early log record fetching |
US8943026B2 (en) | 2011-01-14 | 2015-01-27 | Apple Inc. | Visual representation of a local backup |
US8984029B2 (en) | 2011-01-14 | 2015-03-17 | Apple Inc. | File system management |
WO2012117701A1 (ja) * | 2011-03-02 | 2012-09-07 | 日本電気株式会社 | データ制御システム、データ制御方法およびデータ制御用プログラム |
US8799592B2 (en) | 2011-04-20 | 2014-08-05 | International Business Machines Corporation | Direct memory access-like data transfer between guest operating systems |
US8692832B2 (en) * | 2012-01-23 | 2014-04-08 | Microsoft Corporation | Para-virtualized asymmetric GPU processors |
JP6175785B2 (ja) * | 2013-01-31 | 2017-08-09 | 日本電気株式会社 | ストレージシステム、ディスクアレイ装置及びストレージシステムの制御方法 |
US9288163B2 (en) * | 2013-03-15 | 2016-03-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Low-latency packet receive method for networking devices |
CN105518611B (zh) * | 2014-12-27 | 2019-10-25 | 华为技术有限公司 | 一种远程直接数据存取方法、设备和系统 |
CN106331036B (zh) * | 2015-06-30 | 2020-05-26 | 联想(北京)有限公司 | 一种服务器控制方法及装置 |
US10387387B2 (en) | 2015-12-17 | 2019-08-20 | Oracle International Corporation | Enabling multi-tenant access to respective isolated data sets organized using different application schemas |
US10289617B2 (en) | 2015-12-17 | 2019-05-14 | Oracle International Corporation | Accessing on-premise and off-premise datastores that are organized using different application schemas |
US10303894B2 (en) | 2016-08-31 | 2019-05-28 | Oracle International Corporation | Fine-grained access control for data manipulation language (DML) operations on relational data |
US10474653B2 (en) | 2016-09-30 | 2019-11-12 | Oracle International Corporation | Flexible in-memory column store placement |
US11157630B2 (en) * | 2018-05-07 | 2021-10-26 | Salesforce.Com, Inc. | Migrating data between databases |
CN112714181A (zh) * | 2020-12-25 | 2021-04-27 | 北京四维纵横数据技术有限公司 | 一种数据传输方法及装置 |
CN113395359B (zh) * | 2021-08-17 | 2021-10-29 | 苏州浪潮智能科技有限公司 | 基于远程直接内存访问的文件币集群数据传输方法、系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6161151A (en) * | 1998-01-30 | 2000-12-12 | Object Technology Licensing Corporation | Object-oriented global resource conflict resolver formatting resource requirements into a predetermined standard format and iteratively computing a resource assignment for each I/O function |
JP2002024160A (ja) * | 2000-07-03 | 2002-01-25 | Matsushita Electric Ind Co Ltd | Dma転送装置 |
US20020188839A1 (en) * | 2001-06-12 | 2002-12-12 | Noehring Lee P. | Method and system for high-speed processing IPSec security protocol packets |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4914653A (en) * | 1986-12-22 | 1990-04-03 | American Telephone And Telegraph Company | Inter-processor communication protocol |
JP2945757B2 (ja) * | 1989-09-08 | 1999-09-06 | オースペックス システムズ インコーポレイテッド | 多重装置オペレーティングシステムのアーキテクチャ |
US5261083A (en) * | 1991-04-26 | 1993-11-09 | Zenith Data Systems Corporation | Floppy disk controller interface for suppressing false verify cycle errors |
US5535345A (en) * | 1994-05-12 | 1996-07-09 | Intel Corporation | Method and apparatus for sequencing misaligned external bus transactions in which the order of completion of corresponding split transaction requests is guaranteed |
US5835733A (en) * | 1994-12-22 | 1998-11-10 | Texas Instruments Incorporated | Method and apparatus for implementing a single DMA controller to perform DMA operations for devices on multiple buses in docking stations, notebook and desktop computer system |
US6335927B1 (en) * | 1996-11-18 | 2002-01-01 | Mci Communications Corporation | System and method for providing requested quality of service in a hybrid network |
US6909708B1 (en) * | 1996-11-18 | 2005-06-21 | Mci Communications Corporation | System, method and article of manufacture for a communication system architecture including video conferencing |
US5968115A (en) * | 1997-02-03 | 1999-10-19 | Complementary Systems, Inc. | Complementary concurrent cooperative multi-processing multi-tasking processing system (C3M2) |
US7039600B1 (en) * | 1998-11-27 | 2006-05-02 | Diebold, Incorporated | ATM customer marketing system |
US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6178533B1 (en) * | 1997-06-30 | 2001-01-23 | Sun Microsystems, Inc. | Method and system for design verification |
US6112304A (en) * | 1997-08-27 | 2000-08-29 | Zipsoft, Inc. | Distributed computing architecture |
US6226680B1 (en) * | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US7076568B2 (en) * | 1997-10-14 | 2006-07-11 | Alacritech, Inc. | Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket |
JP2000002490A (ja) * | 1998-06-18 | 2000-01-07 | Kawasaki Refract Co Ltd | 不定形耐火物用支持アンカー |
JP2000020490A (ja) * | 1998-07-01 | 2000-01-21 | Fujitsu Ltd | 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体 |
US6317119B1 (en) * | 1998-11-13 | 2001-11-13 | Creative Technology Ltd | Speed-compensated joystick |
US7017188B1 (en) * | 1998-11-16 | 2006-03-21 | Softricity, Inc. | Method and apparatus for secure content delivery over broadband access networks |
US7031904B1 (en) * | 1999-01-26 | 2006-04-18 | Adaptec, Inc. | Methods for implementing an ethernet storage protocol in computer networks |
US6560641B1 (en) * | 2000-03-29 | 2003-05-06 | Unisys Corporation | System, method, and adapter card for remote console emulation including remote control of a peripheral device |
US6980518B1 (en) * | 2000-06-23 | 2005-12-27 | International Business Machines Corporation | Gossip-based reliable multicast message recovery system and method |
US7010614B2 (en) * | 2000-07-05 | 2006-03-07 | International Business Machines Corporation | System for computing cumulative amount of data received by all RDMA to determine when a complete data transfer has arrived at receiving device |
US7222150B1 (en) * | 2000-08-15 | 2007-05-22 | Ikadega, Inc. | Network server card and method for handling requests received via a network interface |
US7346702B2 (en) * | 2000-08-24 | 2008-03-18 | Voltaire Ltd. | System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics |
US8019901B2 (en) * | 2000-09-29 | 2011-09-13 | Alacritech, Inc. | Intelligent network storage interface system |
US6985956B2 (en) * | 2000-11-02 | 2006-01-10 | Sun Microsystems, Inc. | Switching system |
US6745310B2 (en) * | 2000-12-01 | 2004-06-01 | Yan Chiew Chow | Real time local and remote management of data files and directories and method of operating the same |
US7254641B2 (en) * | 2001-01-30 | 2007-08-07 | Intervoice, Inc. | Digital multimedia contact center with tier escalation and deescalation in response to changed criteria |
US20020199040A1 (en) * | 2001-06-26 | 2002-12-26 | Irwin David S. | High speed communications device/system |
US7213045B2 (en) * | 2002-08-16 | 2007-05-01 | Silverback Systems Inc. | Apparatus and method for transmit transport protocol termination |
US7330873B2 (en) * | 2002-08-23 | 2008-02-12 | International Buisness Machines Corporation | Method and apparatus for routing call agents to website customers based on customer activities |
US7406481B2 (en) | 2002-12-17 | 2008-07-29 | Oracle International Corporation | Using direct memory access for performing database operations between two or more machines |
-
2002
- 2002-12-17 US US10/323,561 patent/US7406481B2/en not_active Expired - Lifetime
-
2003
- 2003-08-14 US US10/641,513 patent/US7133902B2/en active Active
- 2003-12-10 CA CA002509404A patent/CA2509404C/en not_active Expired - Lifetime
- 2003-12-10 JP JP2004565407A patent/JP4624110B2/ja not_active Expired - Lifetime
- 2003-12-10 EP EP03814733A patent/EP1581875B1/en not_active Expired - Lifetime
- 2003-12-10 WO PCT/US2003/039555 patent/WO2004061684A2/en active Application Filing
- 2003-12-10 CN CNB2003801061017A patent/CN100422958C/zh not_active Expired - Lifetime
- 2003-12-10 DE DE60324965T patent/DE60324965D1/de not_active Expired - Lifetime
-
2005
- 2005-10-12 HK HK05108986A patent/HK1077104A1/xx not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6161151A (en) * | 1998-01-30 | 2000-12-12 | Object Technology Licensing Corporation | Object-oriented global resource conflict resolver formatting resource requirements into a predetermined standard format and iteratively computing a resource assignment for each I/O function |
JP2002024160A (ja) * | 2000-07-03 | 2002-01-25 | Matsushita Electric Ind Co Ltd | Dma転送装置 |
US20020188839A1 (en) * | 2001-06-12 | 2002-12-12 | Noehring Lee P. | Method and system for high-speed processing IPSec security protocol packets |
Also Published As
Publication number | Publication date |
---|---|
US20040117368A1 (en) | 2004-06-17 |
US7133902B2 (en) | 2006-11-07 |
HK1077104A1 (en) | 2006-02-03 |
WO2004061684A3 (en) | 2005-11-10 |
CN1751297A (zh) | 2006-03-22 |
WO2004061684A2 (en) | 2004-07-22 |
EP1581875B1 (en) | 2008-11-26 |
CA2509404A1 (en) | 2004-07-22 |
DE60324965D1 (de) | 2009-01-08 |
AU2003300885A1 (en) | 2004-07-29 |
JP4624110B2 (ja) | 2011-02-02 |
EP1581875A2 (en) | 2005-10-05 |
EP1581875A3 (en) | 2005-12-28 |
CA2509404C (en) | 2009-04-21 |
JP2006510996A (ja) | 2006-03-30 |
US7406481B2 (en) | 2008-07-29 |
US20040117375A1 (en) | 2004-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100422958C (zh) | 用于执行数据库操作的方法 | |
US5805827A (en) | Distributed signal processing for data channels maintaining channel bandwidth | |
US6915347B2 (en) | Associating multiple display units in a grouped server environment | |
CN113485823A (zh) | 数据传输方法、装置、网络设备、存储介质 | |
CN101006727B (zh) | 分布式多媒体服务器系统和多媒体信息发布方法 | |
JPH10301873A (ja) | 通信システムで比較的大きなデータ・オブジェクトの伝送を制御するシステムと方法 | |
CN112121413B (zh) | 功能服务的响应方法、系统、装置、终端及介质 | |
JP2002543491A (ja) | 分散コンピューティング環境のための通信アーキテクチャ | |
JP2002531027A (ja) | 情報通信システムにおける方法およびシステム、ならびに加入者識別モジュール | |
WO2006065101A1 (en) | Method for balancing load among subsystems in communication network system of bus network structure | |
CN113259268A (zh) | 一种支持冗余架构的网口与串口数据转发网关及方法 | |
CN107277188A (zh) | 一种确定ip地址归属信息的方法、客户端、服务器及业务系统 | |
JPS5992654A (ja) | 電子文書配送システム | |
US20070130154A1 (en) | Dynamic connection establishment using an object link | |
EP0317468A2 (en) | Bus flow control system | |
JP2009508211A (ja) | エンドポイントに透過な独立したメッセージ処理システム及び方法 | |
US20010018705A1 (en) | Communication process and apparatus | |
AU2003300885B2 (en) | Using direct memory access for performing database operations between two or more machines | |
JP3236158B2 (ja) | 複数ホストシステムのネットワーク処理方式 | |
JPH0351919A (ja) | プロセス間通信管理処理方式 | |
CN113505003A (zh) | 无人机地面站软件的服务交互方法和无人机地面站系统 | |
JPH11353197A (ja) | 共有プール資源制御方式 | |
JPS59161952A (ja) | 通信パス確立方式 | |
CN116662015A (zh) | 存储网关性能优化方法、装置、网络设备和存储介质 | |
CN117097801A (zh) | 访问方法及系统、cdn节点、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20081001 |