JP2006510996A - 2つまたはそれ以上の機械の間でデータベース動作を行なうための直接メモリアクセスの用法 - Google Patents

2つまたはそれ以上の機械の間でデータベース動作を行なうための直接メモリアクセスの用法 Download PDF

Info

Publication number
JP2006510996A
JP2006510996A JP2004565407A JP2004565407A JP2006510996A JP 2006510996 A JP2006510996 A JP 2006510996A JP 2004565407 A JP2004565407 A JP 2004565407A JP 2004565407 A JP2004565407 A JP 2004565407A JP 2006510996 A JP2006510996 A JP 2006510996A
Authority
JP
Japan
Prior art keywords
machine
data
memory
segment
channel
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.)
Granted
Application number
JP2004565407A
Other languages
English (en)
Other versions
JP4624110B2 (ja
JP2006510996A5 (ja
Inventor
サハ,デバシス
シミンスキ,ジョン
チャテルジー,デバシシュ
チダムバラン,ラクシュミナラヤナン
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2006510996A publication Critical patent/JP2006510996A/ja
Publication of JP2006510996A5 publication Critical patent/JP2006510996A5/ja
Application granted granted Critical
Publication of JP4624110B2 publication Critical patent/JP4624110B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application 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

直接メモリアクセスを用いて2つまたはそれ以上の機械の間でデータベース動作を行なう。メモリの第1のセグメントが第2の機械に対して割当てられ、第1の機械および第2の機械のうち少なくとも一方はデータベースサーバである。第2の機械から第1の機械へのデータの転送を含むデータベース動作を行なう際に、メモリの第1のセグメント中のデータは、第2の機械が第2の機械におけるメモリの第2のセグメントにそのデータを書込むことに応答してバッファリングされる。

Description

発明の分野
この発明は、データベースシステム環境における通信に関する。特に、この発明は、2つまたはそれ以上の機械の間でデータベース動作を行なうための直接メモリアクセスの用法に関する。
発明の背景
直接メモリアクセス(DMA)は、データを中央処理装置を通すことなく1つのメモリセグメントから別のメモリセグメントへ転送するための技術である。DMA使用可能チャネルを有するコンピュータは、より在来のインターネットプロトコルチャネルを用いるコンピュータよりもかなり速く装置から装置へデータを転送できる。
DMA技術は、異なる高速転送プロトコルおよびアーキテクチャに次第に組込まれてきている。DMAを機能として用いるアーキテクチャの例には、仮想インターフェイスおよびインフィニバンドがある。こうしたシステムにおけるDMA機能は、1つの装置におけるメモリ中のデータが、別のノードまたはコンピュータシステムなどの別の外部位置におけるメモリに対して特定的に目標にされ得るようにする。DMAのすべての利点を得るために、DMA機能を組入れるシステムはそれを高速ネットワーク接続装置によって行なう。
DMAデータ転送は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)データ転送の特徴であるデータビットオーバーヘッドを除去する。TCP/IPプロトコル転送はセグメント化されたバイトストリームを用い、各セグメントはヘッダ情報と、特定のデータセグメントが意図される目標に到達できるようにするための他の特徴とを含む。これに対し、DMAはデータを個別に送付可能なバイトにセグメント化することなくメモリセグメント中のデータを転送する。DMAはTCP/IPに対する有利な対比を与えるが、DMAをTCP/IPとともに用いる技術も存在する。こうした技術の1つは、TCP/IPによる遠隔DMA(RDMA)と呼ばれる。
この発明は、添付の図面において制限のためではなく例として例示され、図面において類似の参照番号は類似の要素を示す。
発明の詳細な説明
2つまたはそれ以上の機械の間でデータベース動作を行なうために直接メモリアクセスを用いるための方法および装置が記載される。以下の記載においては、説明の目的のために、この発明の完全な理解を与えるために多数の特定の詳細が示される。しかし、これらの特定の詳細なしでもこの発明を行ない得ることが明らかになるであろう。別の例においては、この発明を不必要に曖昧にすることを避けるために、周知の構造および装置はブロック図の形で示される。
概要
この発明の実施例は、データベースシステム環境において直接メモリアクセス(DMA
)技術が効果的に実現されることを可能にする。特に、DMA通信媒体を用いてデータベースサーバによって行なわれるデータベース動作が行なわれてもよい。DMA通信媒体は、2つのコンピュータがそれぞれのコンピュータにおいて透過的な態様で互いにメモリを共有できるようにするチャネルを含む。よって、一方のコンピュータがDMAチャネルの支配下にあるメモリにデータを書込むと、そのデータはプロセッサからの最小限の介在によって他方のコンピュータに転送される。DMA通信媒体を用いてデータベース動作、特に大量のデータの転送を含む動作を行なうことにより、TCP/IPのようなより在来の通信媒体の使用による場合よりもデータベース動作をかなり速く行なうことが可能になる。
実施例の1つに従うと、データベース動作は、データベース動作を行なうために第2の機械と通信する第1の機械において行なわれてもよい。その機械の少なくとも一方はデータベースサーバである。第1の機械において、メモリの第1のセグメントが第2の機械に対して割当てられる。第2の機械から第1の機械へのデータの転送を含むデータベース動作の実行中に、データはメモリの第1のセグメント中にバッファリングされる。データは、第2の機械が第2の機械において第1の機械に対して割当てられたメモリの第2のセグメントにデータを書込むことに応答してバッファリングされる。
たとえば、データベースサーバはバッファの部分をクライアントに対して割当ててもよい。データベースサーバは、割当てられたメモリ中にクライアントから受取ったデータをバッファリングしてもよい。データは、クライアントにおいて割当てられたメモリにクライアントが同じデータを書込むことに応答してバッファリングされる。データの転送は、DMA使用可能チャネルによって行なわれる。データの転送とともに行なわれる動作は、クライアント端末110から送られる構造化照会言語コマンドに応答して行なわれてもよい。
実施例の1つにおいて、第1および第2の機械の間でDMA転送が利用可能でないとき、データは自動的にTCP/IP転送プロトコルを用いて転送される。確認ステップが行なわれて、2つの機械間でデータを転送するためにDMAチャネルまたはTCP/IPチャネルのいずれを用いるべきかどうかが定められてもよい。
実施例において、2つの機械間で記載される通信を繰り返すことによって付加的な機械間のデータ転送を可能にしてもよい。たとえば、クライアント端末がDMAチャネルを通じてデータベースサーバにデータを書込み、データベースサーバはそのデータを別個のDMAチャネルを通じて他のクライアントに分配してもよい。
一般的な機能の説明
図1は、この発明の実施例による、2つの機械間でデータを転送するための基本システムを例示する。記載されるようなシステムは、2つの機械がDMA転送技術を用いて互いにデータを転送してデータベース動作を行なうことを可能にする。2つの機械のうち少なくとも一方はデータベースサーバを含む。実施例の1つにおいて、2つの機械の一方はクライアント端末110であり、2つの機械の他方はデータベース132を管理するデータベースサーバ機120である。別の実施例において、クライアント端末110は別のデータベースサーバ機に対応してもよい。たとえば、データベースサーバ構成要素はクライアントプロセスを実行してデータベースサーバ機120と通信してもよい。
クライアント端末110は中央処理装置(CPU)112と、メモリ114と、I/Oポート118とを含む。データベースサーバ機120はCPU122と、メモリ124と、I/Oポート128とを含む。データベースサーバ機120上のデータベース132は
、CPU122によって実行されるサーバ構成要素によって管理されてもよい。
実施例の1つにおいて、クライアント端末110およびデータベースサーバ機120は、2つまたはそれ以上のチャネルのうちの1つを用いることによって通信してもよい。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は、CPU112、122を用いることなくそれぞれの機械上のメモリの割当セグメントから、およびそこへデータを転送するよう構成される。I/Oポート118、128もまた、TCP/IPチャネル132またはDMAチャネル134を用いて他のコンピュータと通信するよう構成される。以下に記載されるとおり、この発明の実施例は、DMAチャネル134が利用可能でないか、または妨害される事象においてTCP/IPチャネル132の使用を許可する。
DMAチャネル134を使用するために、クライアント端末はデータベースサーバ機120に対してメモリ114の第1のメモリセグメント116を割当てる。データベースサーバ機120はクライアント端末110に対して第2のメモリセグメント126を割当てる。
DMAチャネル134は、TCP/IPチャネル132とは異なる物理的構成要素上に設けられてもよい。たとえば、DMAチャネル134はクライアント端末110とデータベースサーバ機120との間のインフィニバンド接続を含んでもよく、TCP/IPチャネル132はイーサネット(登録商標)接続などの在来ネットワーク接続上に設けられてもよい。別の実施例において、DMAチャネルはTCP/IPチャネル132と同じ物理的構成要素上に設けられる。よって、1つの媒体をDMAチャネルまたはTCP/IPチャネルのいずれかとして用いることができてもよい。
実施例において、クライアント端末110およびデータベースサーバ機120は、DMAチャネル134が使用できるかどうかを定める必要がある。DMAチャネル134が使用できないときには、TCP/IPチャネル132が用いられる。DMAチャネル134を確立しかつそれが使用可能かどうかを決定するための予備通信は、TCP/IPチャネルによって行なわれる。
実施例の1つにおいて、クライアント端末110はデータベースサーバ機120に遠隔手順呼出(RPC)の信号を送る。データベースサーバ機120のCPU122は、RPCによって識別されるその後の通信のためにDMAチャネル134が利用可能であり得ることを認識する。データベースサーバ機120はTCP/IPチャネル132を通じてRPCに戻りの信号を送り、DMAチャネル134を用いるべきであることを示す。クライアント端末110のCPU112は次いで、データベースサーバ機120に対してメモリ114の第1のセグメント116を割当てる。データベースサーバ機120のCPU122は、クライアント端末110に対してメモリ124の第2のセグメント126を割当てる。クライアント端末110は、データベースサーバ機120に第1のメモリセグメント116に対する識別子を含む送信権要求を送る。同様に、データベースサーバ機120は、クライアント端末110に第2のメモリセグメント126に対する識別子を含む送信権要求を送る。
一旦クライアント端末110とデータベースサーバ機120とにメモリが割当てられる
と、実施例は、クライアント端末110およびデータベースサーバ機120の一方または両方が検証を行なうことを規定する。その検証は、2つの機械の間のデータ転送のためにDMAチャネルが利用可能かどうかを定めるためのものである。一方または両方の機械で行なわれる検証は、図4に記載されるような技術によって行なわれてもよい。
クライアント端末110とデータベースサーバ機120との間のデータベース動作を行なうためにDMAチャネル134が用いられてもよい。クライアント端末110とデータベースサーバ機120との間に一旦DMAチャネル134が確立されると、1つの機械から別の機械にデータを読出しまた書込むための動作は、他方の機械に対して割当てられたメモリセグメントに対する書込動作を実行するデータの転送側によって実行されてもよい。読出および書込動作はいずれも、2つの機械のうちの一方がデータを割当てられたローカルメモリに書込み、DMAチャネル134を用いてそのデータをローカルメモリから他方の機械に転送することによって行なわれてもよい。
読出または書込型動作のいずれに対しても、機械がDMAチャネル134によって通信できないことが判断されると、TCP/IPチャネル132が用いられる。TCP/IPチャネル132はより遅いが、そのチャネルのバックアップとしての使用により、データベース動作を行ない得ることが確実になる。
書込および読出動作を行なうためのデータ転送
図2および図3は、データベース動作を行なうために2つの機械の間でデータを転送するための方法を例示する。ここに記載されるような方法のステップを行なうための例示的な構成要素を提供するために、図1の要素が参照される。
図2は、この発明の実施例による、DMAデータ転送を用いて2つの機械の間で書込動作を実現するための方法を例示する。例示のために、クライアント端末110がデータベースサーバ機120にデータを書込む実施例が記載される。たとえば、クライアント端末110は挿入(INSERT)動作を開始して、データベースサーバ機120上のデータベースに行としてフォーマットされた大量のデータを転送してもよい。
ステップ210において、クライアント端末110はデータベースサーバ機120にRPCを送り、クライアント端末110がデータベースサーバ機120へのデータの書込を要求していることを示す。RPCは、クライアント端末110からデータベースサーバ機120にデータを転送するために挿入または他の書込動作が行なわれることを示してもよい。データはデータベース132向けであっても、または他のクライアントおよび/もしくはデータベースサーバに回送されてもよい。いずれの場合にも、データベースサーバ機120は遠隔手順呼出が行なわれたことに応答してクライアント端末110に戻りを送る。遠隔手順呼出とその戻りとはどちらもTCP/IPチャネル132を通じて送られる。
RPCを送った後、ステップ220は、各機械が他方の機械に対してメモリセグメントを割当てることを規定する。すなわち、クライアント端末110はデータベースサーバ機120に対して第1のメモリセグメント116を割当てる。データベースサーバ機120はクライアント端末110に対して第2のメモリセグメント126を割当てる。
ステップ230は、各機械が他方の機械にその割当てられたメモリに対する識別子を送ることを規定する。このような識別子は送信権要求と呼ばれてもよい。送信権要求は、各機械における割当てられたメモリに対するアドレスを含む。よって、クライアント端末110は第1のメモリセグメント116に対するアドレスを含む送信権要求をデータベースサーバ機120に送る。同様に、データベースサーバ機120は第2のメモリセグメント126に対するアドレスを含む送信権要求をクライアント端末110に送る。実施例の1
つにおいては、送信権要求もTCP/IPチャネル132を通じてクライアント端末110とデータベースサーバ機120との間で交換される。
クライアント端末110からデータベースサーバ機120にデータを書込むために、ステップ240は、クライアント端末110が第1のメモリセグメント116に転送されるデータを書込むことを規定する。クライアント端末110のI/Oポート118はデータを自動的に第1のメモリセグメント116からデータベースサーバ機120に移動し、データはそこでI/Oポート128によって受取られる。データはクライアント端末110からデータベースサーバ機120へ、DMAチャネル134を用いて転送される。
ステップ250において、データベースサーバ機120がクライアント端末110から受取ったデータは、第2のメモリセグメント126にバッファリングされる。これは、データベースサーバ機120のI/Oポート128が、I/Oポート118から受取ったデータを第2のメモリセグメント126に移動することによって達成されてもよい。データベースサーバ機120のCPU122は次いでそのデータをデータベースに読込む。
ステップ260において、データベースサーバ機120は、データが第2のメモリセグメント126の外に移動される際にクライアント端末110に通知を送る。たとえば、CPU122はデータを第2のメモリセグメント126から読出してそのデータをデータベース132に移動するか、またはそのデータを他のデータベースサーバおよびクライアント端末に対して利用可能にしてもよい。第2のメモリセグメント126が空になると、クライアント端末110に通知が出されてもよく、それによってクライアント端末110からデータベースサーバ機120へ追加のデータを書込むことができる。実施例において、クライアント端末110およびデータベースサーバ機120はどちらも、それぞれの第1のメモリセグメント116および第2のメモリセグメント126が空であるときに通知を出す。
通知は数バイトの長さなどの比較的短いメッセージであってもよい。よってそれはTCP/IPチャネル132またはDMAチャネル134のいずれによっても送ることができる。しかし、一旦DMAチャネル134が開くと、DMAチャネル134を用いて通知を送る方が簡単かもしれない。通知の大きさが小さいこと、およびDMAチャネル134によって送信されるデータは(ヘッダの形などの)オーバーヘッドをほとんど含まないという事実から、通知をデータベースサーバ機120からクライアント端末110に送られるいくつかの他のメッセージとともにパッケージ化することも比較的容易である。
図3は、この発明の実施例による、DMAデータ転送を用いて2つの機械の間で読取動作を実現するための方法を例示する。例示のために、図3はクライアント端末110からデータベースサーバ機120に含まれるデータに対して行なわれる読取動作によって説明される。たとえば、クライアント端末110によって更新(UPDATE)または選択(SELECT)動作が行なわれて、データベース132中のデータが見られてもよい。こうした動作が行なわれる速度は、DMAチャネル134を用いることによって促進され得る。
ステップ310において、クライアント端末110は遠隔手順呼出を送ってデータベースサーバ機120からデータを読取る。遠隔手順呼出は、更新、選択またはその他の読出動作を含むかまたは示してもよい。遠隔手順呼出の戻りはデータベースサーバ機120によって作成されてもよい。遠隔手順呼出とその戻りとはどちらもTCP/IPチャネル132を通じて送られる。
ステップ320において、各機械は他方の機械に対してメモリのセグメントを割当てる
。図2において説明した実施例と同様に、クライアント端末110はデータベースサーバ機120に対して第1のメモリセグメント116を割当ててもよい。データベースサーバ機120はクライアント端末110に対して第2のメモリセグメント126を割当ててもよい。
ステップ330は、クライアント端末110が第1のメモリセグメント116に対するアドレスを含む送信権要求をデータベースサーバ機120に送ることを規定する。実施例において、データベースサーバ機120も、クライアント端末110に対する戻り通信のためにメモリ126の第2のセグメントに対する送信権要求をクライアント端末110に送ってもよい。送信権要求はTCP/IPチャネル132を用いて交換されてもよい。
読出動作を行なうために、ステップ340は、データをクライアント端末110上の第1のメモリセグメント116に書込ませるために、データベースサーバ機120が第2のメモリセグメント126にデータを書込むことを規定する。データベースサーバ機120がデータを第2のメモリセグメント126に書込む際に、データベースサーバ機120のI/Oポート128は第2のメモリセグメント126中にバッファリングされているデータをクライアント端末110に移動する。データはDMAチャネル134を越えてクライアント端末110からデータベースサーバ機120に移動されてもよい。
ステップ350において、データは受取られてクライアント端末110の第1のメモリセグメント116にバッファリングされる。クライアント端末110のI/Oポート118はデータを第1のメモリセグメント116に移動する。クライアント端末110のCPU112は次いで、第1のメモリセグメント116から読出動作によって要求されるデータを読取る。
DMA通信の確認
クライアント端末110とデータベースサーバ機120との間で図2および図3によって記載される読出または書込動作が利用可能でないとき、この発明の実施例は、クライアント端末110およびデータベースサーバ機120がTCP/IPチャネル132を用いてデータベース動作を行なうためにデータを転送することを可能にする。DMAチャネル134の代わりにTCP/IPチャネルを用いることは、クライアント端末110およびデータベースサーバ機120のDMA構成が互換性を有さないか、または何らかの理由で可能でない場合の信頼性あるバックアップを提供する。
図4は、この発明の実施例による、DMAデータ転送を用いて2つの機械がデータベース動作のためにデータを交換する能力を確認するための方法を例示する。書込または読出動作を行なうための機械間のデータ転送とともに、図4に記載されるような方法が用いられてもよい。よって、図4に記載されるような方法は、図2および図3において記載される方法に対する付加的なステップとして実現されてもよい。
ステップ410において、第1の機械は別の機械にRPCを送ることにより、いくつかのデータベース動作を行なう。前述のとおり、遠隔手順呼出は実行される書込または読出動作のいずれを特定してもよい。他方の機械はRPCに対する戻りを送ってもよい。RPCおよびその戻りはどちらもTCP/IPチャネルを通じて送られる。
ステップ420は、各機械が他方の機械に対してメモリセグメントを割当てることを規定する。他の実施例において記載したとおり、各機械は割当てられたメモリに、機械間で転送されるデータに対する一時的なバッファを与える。
ステップ430において、各機械は他方の機械に割当てられたメモリに対する識別子ま
たは送信権要求を送る。識別子は、一方の機械が他方の機械にデータを書込むためのアドレスを与える。識別子はTCP/IP接続を越えて交換されてもよい。
ステップ440において、2つの機械間でDMAデータ転送を行ない得ることを確認するための判断が行なわれる。たとえば、2つの機械の各々がDMA使用可能であっても、一方の機械が異なる装置、ソフトウェアおよび/またはプロトコルを用いているために、2つの機械がDMAデータ転送を行なうために互いに互換性がないことがあり得る。
検証判断を行なうためにいくつかの技術が可能である。技術の1つは、各機械が割当てられたメモリを用いて他方の機械にテストメッセージの形のデータを書込むことを試みることを規定する。たとえば、一方の機械が割当てられたメモリを通じて他方の機械にテストメッセージを書込み、そのデータが他方の機械の割当てられたメモリを通じて第2の機械によって受取られ、バッファリングされ、および/または用いられたという他方の機械からの通知を待ってもよい。実施例の1つにおいては、他方の機械にデータを書込む機械のみがテストメッセージを送ればよい。別の実施例においては、両方の機械が互いにテストメッセージを送り合って、他方の機械からの通知を待つ。テストメッセージと通知とはどちらもDMAチャネル134によって通信されてもよい。
別の技術は、各機械のソフトウェアを比較してそれらの機械がDMA転送に対して互換性があるかどうかを定めることによって確認を行なうことを規定する。たとえば、一方の機械が他方の機械にそのソフトウェア情報を含むメッセージを送り、他方の機械が比較を行なって互換性を定めてもよい。実施例において、検証を行なうために用いられる互換性情報はTCP/IPチャネルによって送られてもよい。互換性情報が遠隔手順呼出およびその戻りとともに与えられることも可能である。こうした比較ステップは、割当てられたメモリを通じてテストメッセージを送るステップに加えて、またはその代わりに行なわれてもよい。
ステップ440においてDMA互換性が確認されるとき、ステップ450は、DMA接続によって第1の機械と第2の機械との間でデータベース動作が行なわれ得ることを規定する。ステップ440においてDMA互換性が確認されないとき、ステップ460はTCP/IP接続によって第1の機械と第2の機械との間でデータベース動作が行なわれ得ることを規定する。たとえば図1において、ステップ440において妥当性が判断されたときにはDMAチャネル134が用いられてもよく、そうでない場合にはTCP/IPチャネル132が用いられる。
データ転送のための多重バッファの使用
図5は、この発明の実施例による、多重バッファを用いて2つの機械間でデータを転送するための基本的なシステムを例示する。図5において、クライアント端末510はデータベースサーバ機520と通信して、読出および/または書込動作によってデータを転送するための動作を含むデータベース動作を行なう。クライアント端末510とデータベースサーバ機520とは、DMA接続534を越えて互換性があると仮定する。DMAチャネル534を越える通信を確立するために、TCP/IP接続532も2つの機械を相互接続してもよい。データベースサーバ機520は、図5に示さないデータベースを管理する。
クライアント端末510はメモリ516を有し、その一部がデータベースサーバ機520に割当てられてもよい。同様に、データベースサーバ機520はメモリ524を有し、その一部がクライアント端末510に割当てられてもよい。データベースサーバ機520はデータベース532も管理する。クライアント端末510への、およびそこからの通信はI/Oポート518を通じて行なわれてもよい。データベースサーバ機520への、お
よびそこからの通信はI/Oポート528を通じて行なわれてもよい。
機械の一方が他方の機械にTCP/IP接続532を越えてRPCの信号を送る際に、各機械は他方の機械に対してそのメモリの一部を割当てる。クライアント端末510はそのメモリ514からの第1のメモリセグメント516を割当てる。データベースサーバ機520はそのメモリ524からの第2のメモリセグメント526を割当てる。
実施例に従うと、各機械における割当てられたメモリは複数のバッファに分割されてもよい。クライアント端末510において、第1のメモリセグメント516は第1の複数のバッファ515に分割される。データベースサーバ機520において、第2のメモリセグメント526は第2の複数のバッファ525に分割される。バッファ間の関係は、第1の複数のバッファ515の各々が第2の複数のバッファ525の1つに対応する。よって、クライアント端末510またはデータベースサーバ機520のいずれかにおけるバッファの1つにデータが書込まれると、そのデータは指定コマンドの実行によって2つの機械の他方における対応するバッファに自動的に書込まれる。代替的には、ユーザからのプロンプトによって指定コマンドが開始されてもよく、それによってデータはDMAチャネル435によって転送される。
図5において、バッファ515、525間の対応は番号によって例示されており、ここでBUFF11はBUFF21に対応し、BUFF14はBUFF24に対応する。バッファ間の対応はTCP/IPチャネル532を用いて確立されてもよい。たとえば、RPC1によってクライアント端末510とデータベースサーバ機520との間のデータベース動作を開始することによって対応が確立されてもよい。
割当てられたメモリをバッファに分割することによって、データをクライアント端末510からデータベースサーバ機520に移動できる速度が増す。もし割当てられたメモリに分割が用いられなければ、クライアント端末510とデータベースサーバ機520との間で追加のデータを交換できるようになる前に、第1のメモリセグメント516に保持されるすべてのデータを第2のメモリセグメント526に転送する必要がある。したがって、第1のメモリセグメント516の大きさが4kしかなく、クライアント端末510のユーザがデータベースサーバ機520に8kのデータを書込むことを望んでいるとき、そのデータは第1のメモリセグメント516に少なくとも2回局所的に書込まれる必要がある。まず、4kを第1のメモリセグメント516に書込む必要があり、一旦I/Oポート518がそのデータをデータベースサーバ機520に移動してから、次の4kのデータが第1のメモリセグメント516に書込まれてもよい。たとえ第1のメモリセグメント516が8kのデータを収容するために十分に大きかったとしても、8kのデータは1つのかたまりとして移動しなければならないため、データのいくつかは他のデータよりも遅く到着する。
これに対し、図5に記載されるような実施例は、4kセグメントのデータの両方を第1のメモリセグメント516から同時に転送可能にして、クライアント端末510からデータベースサーバ機520にデータを送付するための全体の送付時間を向上させる。バッファを用いることで送られるデータのかたまりの大きさが減少するため、各バッファ515に保存されるデータすべてを、同量のデータを第1のメモリセグメント516から第2のメモリセグメント526にバッファを用いることなく転送した場合よりも少ない時間で、対応するバッファ525に転送できる。
データベース動作の実行の際にクライアント端末510とデータベースサーバ機520とがデータを交換し得る態様は以下のとおりである。転送側である一方の機械は、その割当てられたメモリにデータを書込み、そのデータはバッファ間に分配される。データは次
いで受信側の機械における対応するバッファに運ばれる。受信側の機械の各バッファに保存されたデータが用いられると、受信側機械は転送側機械に通知を送る。実施例において、その通知は受信側機械のバッファが空であることを示す。よって、通知は受信側機械の各バッファに対して送られてもよい。通知を受信することで、転送側機械は、そこから通知を受取った受信側機械のバッファに対応するバッファにより多くのデータを書込めることを知る。非同期データ転送が可能である実施例においては、バッファが利用可能になるまでデータは書込動作を行なう機械の割当てられたメモリにおいてキューに入れられてもよい。
図5によって示されるように、クライアント端末510がデータベースサーバ機520にデータを書込んでいるとき、クライアント端末510はそのデータを第1のメモリセグメント516に局所的に書込む。第1のメモリセグメント516中のデータはバッファ515に分配される。クライアント端末510のI/Oポート518は、データをバッファ515からデータベースサーバ機520に移動する。データベースサーバ機520のI/Oポート528は、データをバッファ525に移動する。この態様で、クライアント端末510のバッファ515の1つの中のデータが、データベースサーバ機520の対応するバッファ525に移される。データベースサーバ機520がバッファ515の1つに保持されるデータをすべて用いるとき、データベースサーバ機520はクライアント端末510に通知を送る。クライアント端末510は、その通知を与えたバッファ525に対応する特定のバッファ515により多くのデータを置くことができる。通知はバッファ515の各々から受取られてもよい。非同期データ転送が可能な実施例においては、バッファ515の1つの、データベースサーバ機520上の対応するバッファが空であると通知されるまで、クライアント端末510はデータベースサーバ機520への転送のために待機しているデータをキューに入れてもよい。
たとえば、クライアント端末510が、データベースサーバ機によって管理されるデータベース中のデータに対する読出動作を行なっているとき、クライアント端末510への転送に対して識別されるデータが第2のメモリセグメント526に移される。そのデータはバッファ515間で分配され、I/Oポート528を通じてクライアント端末510に運ばれてもよい。データは次いでクライアント端末510上のバッファ515に保持されてもよい。クライアント端末510は次いでバッファ515からデータを読取る。バッファ515の1つが利用可能になると、クライアント端末510はデータベースサーバ機520に通知を送ってそのバッファが空であることを示す。
同期および非同期データ転送
図5によって示されるようなシステムにおいて、データは同期または非同期的に転送されてもよい。同期データ転送において、別の機械に対して割当てられたメモリに局所的に書込まれるデータが割当てられたメモリの大きさを超えるとき、そのデータを書込んでいる機械のプロセッサは活動状態を保って割当てられたメモリをモニタし、割当てられたメモリが利用可能になるとそこに追加データを書込む。データが割当てられたメモリに同期的に書込まれると、そのデータは転送側機械から転送される。
非同期転送において、データは転送側機械のキューに局所的に書込まれる。キューによって、バッファが利用可能になるとデータがそのバッファに書込まれる。モニタしかつキューにデータを書込むために、データを局所的に書込む機械におけるプロセッサの積極的な介入は必要とされない。むしろ、割当てられたメモリを通じて転送する必要のあるすべてのデータが一旦キューに送られ、割当てられたメモリ内で追加データを分配できるようになるまで、キューは割当てられたメモリ(またはその個々のバッファ)に対するデータを保持する。
ハードウェアの概要
図6は、この発明の実施例を実現し得るコンピュータシステム600を例示するブロック図である。コンピュータシステム600は、情報を通信するためのバス602またはその他の通信機構と、情報を処理するためにバス602に結合されるプロセッサ604とを含む。コンピュータシステム600はまた、プロセッサ604によって実行される情報および命令を保存するためにバス602に結合される、ランダムアクセスメモリ(RAM)またはその他の動的記憶装置などの主メモリ606を含む。主メモリ606はまた、プロセッサ604によって実行される命令の実行の際に一時的変数またはその他の中間情報を保存するために用いられてもよい。コンピュータシステム600は、プロセッサ604に対する静的情報および命令を保存するためにバス602に結合される読出専用メモリ(ROM)608またはその他の静的記憶装置をさらに含む。情報および命令を保存するために、磁気ディスクまたは光ディスクなどの記憶装置610が設けられて、バス602に結合される。
コンピュータシステム600は、コンピュータユーザに情報を表示するために陰極線管(CRT)などのディスプレイ612にバス602を介して結合されてもよい。プロセッサ604に情報およびコマンド選択を通信するために、英数字およびその他のキーを含む入力装置614がバス602に結合される。別の種類のユーザ入力装置は、プロセッサ604に方向情報およびコマンド選択を通信し、かつディスプレイ612上のカーソルの動きを制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御616である。この入力装置は典型的に、第1の軸(たとえばx)および第2の軸(たとえばy)の2軸における自由度2を有して、その装置が平面における位置を特定できるようにする。
この発明は、ここに記載される技術を実現するためのコンピュータシステム600の用法に関する。この発明の実施例の1つに従うと、これらの技術は、主メモリ606に含まれる1つまたはそれ以上の命令の1つまたはそれ以上の連続を実行するプロセッサ604に応答してコンピュータシステム600によって行なわれる。こうした命令は、記憶装置610などの別のコンピュータ読取可能媒体から主メモリ606に読込まれてもよい。主メモリ606に含まれる命令の連続の実行により、プロセッサ604はここに記載される処理ステップを行なう。代替的な実施例においては、この発明を実現するためにソフトウェア命令の代わりに、またはそれと組合わせてハードワイヤード回路が用いられてもよい。よってこの発明の実施例は、ハードウェア回路およびソフトウェアのいかなる特定の組合せにも制限されない。
ここで用いられる「コンピュータ読取可能媒体」という用語は、実行のためにプロセッサ604に命令を与えることに関わるあらゆる媒体を示す。こうした媒体は、不揮発性媒体、揮発性媒体、および伝送媒体を含むがそれに制限されない多くの形をとってもよい。不揮発性媒体はたとえば、記憶装置610などの光または磁気ディスクを含む。揮発性媒体は主メモリ606などの動的メモリを含む。伝送媒体は、バス602を含むワイヤを含む、同軸ケーブル、銅線および光ファイバを含む。伝送媒体はまた、無線および赤外データ通信の際に生成されるような音波または光波の形をとることもできる。
コンピュータ読取可能媒体の一般的な形はたとえば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、またはあらゆるその他の磁気媒体、CD−ROM、あらゆる他の光媒体、パンチカード、紙テープ、孔のパターンを有するあらゆるその他の物理的媒体、RAM、PROM、およびEPROM、フラッシュ−EPROM、あらゆるその他のメモリチップもしくはカートリッジ、以下に説明する搬送波、またはコンピュータが読取ることが可能なあらゆるその他の媒体を含む。
実行のためにプロセッサ604に1つまたはそれ以上の命令の1つまたはそれ以上の連続を運ぶステップに、さまざまな形のコンピュータ読取可能媒体が関わっていてもよい。たとえば、命令は最初に遠隔コンピュータの磁気ディスク上に保持されていてもよい。遠隔コンピュータはその動的メモリに命令をロードし、その命令をモデムを用いて電話線で送ることができる。コンピュータシステム600に対して局所的なモデムは、電話線からデータを受信し、赤外送信機を用いてそのデータを赤外信号に変換できる。赤外検出器は赤外信号中に保持されるデータを受信でき、適切な回路がそのデータをバス602に配置できる。バス602はデータを主メモリ606に運び、プロセッサ604はそこから命令を検索して実行する。主メモリ606が受取る命令は、プロセッサ604による実行の前または後に、記憶装置610に任意に保存されてもよい。
コンピュータシステム600はまた、バス602に結合される通信インターフェイス618を含む。通信インターフェイス618は、ローカルネットワーク622に接続されるネットワークリンク620に結合する2方向のデータ通信を提供する。たとえば、通信インターフェイス618は、対応する種類の電話線へのデータ通信接続を提供する統合サービスデジタル網(ISDN)カードまたはモデムであってもよい。別の例として、通信インターフェイス618は、互換性のローカルエリアネットワーク(LAN)へのデータ通信接続を提供するLANカードであってもよい。ワイヤレスリンクが実施されてもよい。このような実施のいずれにおいても、通信インターフェイス618は、さまざまな種類の情報を表わすデジタルデータストリームを運ぶ電気、電磁気または光信号を送信および受信する。
ネットワークリンク620は典型的に、1つまたはそれ以上のネットワークを通じて他のデータ装置へのデータ通信を提供する。たとえば、ネットワークリンク620は、ホストコンピュータ624またはインターネットサービスプロバイダ(ISP)626によって操作されるデータ設備へのローカルネットワーク622を通じた接続を提供してもよい。続いてISP626は、現在一般的に「インターネット」628と呼ばれる世界的なパケットデータ通信ネットワークを通じたデータ通信サービスを提供する。ローカルネットワーク622およびインターネット628はどちらも、デジタルデータストリームを運ぶ電気、電磁気または光信号を用いる。コンピュータシステム600へ、およびそこからデジタルデータを運ぶ、さまざまなネットワークを通じた信号ならびにネットワークリンク620上および通信インターフェイス618を通じた信号は、情報を搬送する搬送波の例示的な形である。
コンピュータシステム600は、ネットワーク、ネットワークリンク620および通信インターフェイス618を通じて、メッセージを送信してプログラムコードを含むデータを受信できる。インターネットの例において、サーバ630は、インターネット628、ISP626、ローカルネットワーク622および通信インターフェイス618を通じて、アプリケーションプログラムに対する要求されるコードを送信してもよい。
受信されるコードは受信されてすぐにプロセッサ604により実行されても、および/または、後の実行のために記憶装置610もしくはその他の不揮発性記憶装置に保存されてもよい。この態様で、コンピュータシステム600は搬送波の形のアプリケーションコードを得てもよい。
前述の明細書において、この発明を特定の実施例を参照しながら説明した。しかし、この発明のより広い趣旨および範囲から逸脱することなくさまざまな変更および修正を行ない得ることが明らかになるであろう。したがってこの明細書および図面は、制限的な意味ではなく例示的にみなされる。
この発明の実施例による、2つの機械の間でデータを転送するための基本的なシステムを例示する図である。 この発明の実施例による、DMAデータ転送を用いて2つの機械の間で書込動作を実現するための方法を例示する図である。 この発明の実施例による、DMAデータ転送を用いて2つの機械の間で読出動作を実現するための方法を例示する図である。 DMAデータ転送を用いて2つの機械がデータベース動作のためにデータを交換する能力を確認するための方法を例示する図である。 この発明の実施例による、多重バッファを用いて2つの機械の間でデータを転送するための基本的なシステムを例示する図である。 この発明の実施例を実現し得るコンピュータシステムを例示するブロック図である。

Claims (48)

  1. データベース動作を行なうための方法であって、前記方法は、第1の機械において行なわれる以下のステップ:
    第2の機械とデータを交換するためにメモリの第1のセグメントを割当てるステップを含み、前記第1の機械および第2の機械のうち少なくとも一方はデータベースサーバであり、さらに
    前記第2の機械から前記第1の機械へのデータの転送を含むデータベース動作を行なう際に、前記第2の機械が前記第2の機械上のメモリの第2のセグメントに前記データを書込むことに応答して、メモリの前記第1のセグメントにデータをバッファリングするステップを含む、方法。
  2. 前記第2の機械にメモリの前記第1のセグメントに対する第1のアドレスを与えるステップをさらに含み、
    メモリの前記第1のセグメントにデータをバッファリングする前記ステップは、
    前記第2の機械によって直接メモリアクセス使用可能チャネルによって送られたデータをメモリの前記第1のセグメントに受取るステップを含む、請求項1に記載の方法。
  3. 前記データベース動作を行なう際に、前記第1の機械においてメモリの前記第1のセグメント中の前記データを読取るステップをさらに含む、請求項2に記載の方法。
  4. メモリの前記第1のセグメントにおける前記第2の機械から受取ったデータを伴う1つまたはそれ以上の構造化照会言語コマンドを実行するステップを含む、前記データをバッファリングしながら前記第1の機械において1つまたはそれ以上のデータベース動作を行なうステップをさらに含む、請求項1に記載の方法。
  5. 前記第2の機械からメモリの前記第2のセグメントに対する第2のアドレスを受取るステップをさらに含み、メモリの前記第2のセグメントは前記第1の機械とデータを交換するために前記第2の機械において割当てられる、請求項1に記載の方法。
  6. 前記第2の機械がメモリの前記第2のセグメントに前記データを書込むようにするために、前記第2の機械に前記データを読取るための要求を送るステップをさらに含む、請求項5に記載の方法。
  7. 前記データをバッファリングした後にメモリの前記第1のセグメントから前記データを読取るステップをさらに含む、請求項6に記載の方法。
  8. 前記データを読取るための要求を送るステップは、伝送制御プロトコル/インターネットプロトコルチャネルによって行なわれる、請求項6に記載の方法。
  9. 前記データがメモリの前記第1のセグメントから読出された結果としてメモリの前記第1のセグメントが空であるという前記第1の機械におけるローカル通告を与えるステップをさらに含む、請求項7に記載の方法。
  10. メモリの第1のセグメントを割当てるステップは、前記第2の機械とデータを交換するために用いられる複数のバッファを識別するステップを含み、
    メモリの前記第1のセグメントにおいて受取ったデータをバッファリングするステップは、前記複数のバッファの各々において前記第2の機械から受取ったデータの部分をバッファリングするステップを含む、請求項1に記載の方法。
  11. 前記第2の機械から受取ったデータの部分をバッファリングするステップは、前記第2の機械から複数の前記識別されたバッファに同時にデータを受取るステップを含む、請求項10に記載の方法。
  12. 前記第2の機械からいっそう多くのデータを受取るためにメモリの前記第1のセグメントが利用可能になると前記第2の機械に通知を送るステップをさらに含む、請求項2に記載の方法。
  13. 前記第1の機械から追加データを受取るために各バッファが利用可能になると前記第2の機械に通知を送るステップをさらに含む、請求項10に記載の方法。
  14. 前記第2の機械が前記直接メモリアクセス使用可能チャネルによって前記データをメモリの前記第1のセグメントに送り得ることを検証するステップをさらに含む、請求項2に記載の方法。
  15. 前記第2の機械が前記直接メモリアクセス使用可能チャネルによって前記データをメモリの前記第1のセグメントに送り得ることを検証するステップは、前記直接メモリアクセス使用可能チャネルによって前記第2の機械にテストメッセージを送るステップを含む、請求項14に記載の方法。
  16. 前記第2の機械が前記直接メモリアクセス使用可能チャネルによって前記データをメモリの前記第1のセグメントに送り得ることを検証するステップは、前記第2の機械が前記直接メモリアクセス使用可能チャネルによって前記第1の機械にテストメッセージを送るようにするステップを含む、請求項14に記載の方法。
  17. 前記第2の機械が前記直接メモリアクセス使用可能チャネルによって前記データをメモリの前記第1のセグメントに送り得ることを検証するステップは、前記直接メモリアクセス使用可能チャネルを用いるための前記第2の機械におけるリソースに関する情報を、前記直接メモリアクセス使用可能チャネルを用いるための前記第1の機械におけるリソースと比較するステップを含む、請求項14に記載の方法。
  18. 前記第2の機械がメモリの前記第1のセグメントに前記データを非同期的に送ることを可能にするステップをさらに含む、請求項2に記載の方法。
  19. 前記第2の機械がメモリの前記第1のセグメントに前記データを同期的に送ることを可能にするステップをさらに含む、請求項2に記載の方法。
  20. 前記第1の機械または前記第2の機械のいずれかが前記直接メモリアクセス使用可能チャネルを使用できないときに、前記直接メモリアクセス使用可能チャネルの代わりにインターネットプロトコル使用可能チャネルを用いて前記第1の機械と前記第2の機械との間でデータを送るステップをさらに含む、請求項12に記載の方法。
  21. 前記第2の機械が前記データを前記メモリの前記第2のセグメントに書込むようにするために前記第2の機械に遠隔手順呼出を送るステップをさらに含む、請求項1に記載の方法。
  22. 遠隔手順呼出を送るステップは、伝送制御プロトコル/インターネットプロトコルチャネルによって前記遠隔手順呼出を送るステップを含む、請求項1に記載の方法。
  23. 遠隔手順呼出に応答するステップは、伝送制御プロトコル/インターネットプロトコル
    チャネルによって前記遠隔手順呼出を受取り、前記伝送制御プロトコル/インターネットプロトコルチャネルによって前記遠隔手順呼出に応答するステップを含む、請求項1に記載の方法。
  24. データベース動作を行なうための方法であって、前記方法は、第1の機械において行なわれる以下のステップ:
    第2の機械とデータを交換するためにメモリの第1のセグメントを割当てるステップを含み、前記第1の機械および第2の機械のうち少なくとも一方はデータベースサーバであり、さらに
    データがメモリの第2のセグメント中にバッファリングされるようにするために前記データをメモリの前記第1のセグメントに書込むステップを含み、メモリの前記第2のセグメントは前記第1の機械とデータを交換するために前記第2の機械上に割当てられる、方法。
  25. 直接メモリアクセス使用可能チャネルを用いて前記データが前記第2の機械に送られるようにするために前記データをメモリの前記第1のセグメントに書込むステップをさらに含む、請求項24に記載の方法。
  26. 前記データをメモリの前記第1のセグメントに書込むステップは、データがメモリの前記第2のセグメントから読出されるようにするために前記データをメモリの前記第1のセグメントに書込むステップを含む、請求項24に記載の方法。
  27. 第2の機械に対してメモリの第1のセグメントを割当てるステップは、前記第2の機械に対する第1の複数のバッファを識別するステップを含み、前記第1の複数のバッファ中の各バッファは前記第2の機械における第2の複数のバッファ中のバッファに対応する、請求項24に記載の方法。
  28. データがメモリの第2のセグメント中にバッファリングされるようにするために前記データをメモリの前記第1のセグメントに書込むステップは、前記第1の複数のバッファを用いて前記データの一部を第2の複数のバッファ中の各バッファに送るステップを含む、請求項27に記載の方法。
  29. 前記第1の複数のバッファを用いてデータの一部を前記第2の複数のバッファ中の各バッファに送るステップは、第1の複数のバッファ中の第1のバッファを用いて前記データの第1の部分を前記第2の複数のバッファ中の対応する第1のバッファに送るステップと、
    前記第2の機械から、前記第2の複数のバッファ中の対応する第1のバッファは、より多くのデータを受取る準備ができたという通知を受取るステップとを含む、請求項28に記載の方法。
  30. 前記通知を受取ることに応答して、前記第1の複数のバッファ中の前記第1のバッファを用いて前記データの別の部分を前記第2の複数のバッファ中の前記対応する第1のバッファに送るステップをさらに含む、請求項29に記載の方法。
  31. 前記第2の機械から通知を受取るステップは、前記第2の機械が前記データの前記第1の部分を用いた結果として前記第2の複数のバッファ中の前記対応する第1のバッファが空になることに応答して前記通知を受取るステップを含む、請求項30に記載の方法。
  32. 前記第1の機械および前記第2の機械が前記直接メモリアクセス使用可能チャネルを用い得ることを検証するステップをさらに含む、請求項25に記載の方法。
  33. 前記第1の機械および前記第2の機械が前記直接メモリアクセス使用可能チャネルを用い得ることを検証するステップは、前記直接メモリアクセス使用可能チャネルによって前記第2の機械にテストメッセージを送るステップを含む、請求項32に記載の方法。
  34. 前記第1の機械および前記第2の機械が前記直接メモリアクセス使用可能チャネルを用い得ることを検証するステップは、前記直接メモリアクセス使用可能チャネルを用いるための前記第2の機械上のリソースに関する情報を、前記直接メモリアクセス使用可能チャネルを用いるための前記第1の機械上のリソースと比較するステップを含む、請求項33に記載の方法。
  35. 前記第1の機械および前記第2の機械が前記直接メモリアクセス使用可能チャネルを用い得ることを検証するステップと、
    前記第1の機械または前記第2の機械のいずれかが前記直接メモリアクセス使用可能チャネルを使用できないときに、前記直接メモリアクセス使用可能チャネルの代わりにインターネットプロトコル使用可能チャネルを自動的に用いて前記第1の機械から前記第2の機械に前記データを送るステップとをさらに含む、請求項25に記載の方法。
  36. 前記第2の機械から遠隔手順呼出を受取り、前記遠隔手順呼出を受取ったことに応答してメモリの前記第1のセグメントに前記データを書込むステップをさらに含む、請求項24に記載の方法。
  37. 前記第2の機械から遠隔手順呼出を受取るステップは、伝送制御プロトコル/インターネットプロトコルチャネルによって前記遠隔手順呼出を受取るステップを含む、請求項36に記載の方法。
  38. データが前記第2の機械に対して送られるようにするために前記データをメモリの前記第1のセグメントに書込むステップは、前記データを前記第2の機械に対して送らせながら前記データをメモリの前記第1のセグメントに非同期的に書込むステップを含む、請求項25に記載の方法。
  39. データが前記第2の機械に対して送られるようにするために前記データをメモリの前記第1のセグメントに書込むステップは、前記データを前記第2の機械に対して送らせながら前記データをメモリの前記第1のセグメントに同期的に書込むステップを含む、請求項25に記載の方法。
  40. データベース動作を行なうための方法であって、前記方法は、第1の機械において行なわれる以下のステップ:
    第2の機械からデータを受取るためにメモリの第1のセグメントを割当てるステップと、
    前記第2の機械から前記第1の機械へのデータの転送を含むデータベース動作を行なう際に、直接メモリアクセス使用可能チャネルによって前記第2の機械からの前記データをメモリの前記第1のセグメントに受取るステップとを含む、方法。
  41. メモリの前記第1のセグメントに対する第1のアドレスを前記第2の機械に与えることによって、前記第2の機械が前記データを送ることを可能にするステップをさらに含む、請求項40に記載の方法。
  42. 前記第2の機械からの前記データをバッファリングするステップと、
    前記データをバッファリングしながら前記第1の機械において1つまたはそれ以上のデ
    ータベース動作を行なうステップとをさらに含む、請求項40に記載の方法。
  43. 前記第2の機械が前記データを送ることを可能にするステップは、前記第2の機械が前記第1の機械に対して割当てられた前記第2の機械上の第2のメモリからデータを送ることを可能にするステップを含み、前記方法はさらに、前記1つまたはそれ以上のデータベース動作を行ないながら前記第1の機械から前記第2の機械にデータを転送するために、メモリの第2のセグメントに対して前記第2の機械から第2のアドレスを受取るステップを含む、請求項42に記載の方法。
  44. 前記データがメモリの前記第1のセグメントから読出された結果としてメモリの前記第1のセグメントが空であるという前記第1の機械におけるローカルな通告を与えるステップをさらに含む、請求項40に記載の方法。
  45. 前記第2の機械が前記データを送ることを可能にするステップは、第2のコンピュータからより多くのデータを受取るためにメモリの前記第1のセグメントが利用可能になると前記第2の機械に通知を送るステップをさらに含む、請求項40に記載の方法。
  46. 前記第2の機械が前記データを送ることを可能にするステップは、前記第2の機械が前記データをメモリの前記第1のセグメントに非同期的に送ることを可能にするステップを含む、請求項40に記載の方法。
  47. 前記第2の機械が前記データを送ることを可能にするステップは、前記第2の機械が前記データをメモリの前記第1のセグメントに同期的に送ることを可能にするステップを含む、請求項40に記載の方法。
  48. 1つまたはそれ以上のプロセッサによって実行されるときに、前記1つまたはそれ以上のプロセッサに請求項1から47のいずれかに記載の方法を実行させる命令の1つまたはそれ以上の連続を保持する、コンピュータ読取可能媒体。
JP2004565407A 2002-12-17 2003-12-10 2つまたはそれ以上の機械の間でデータベース動作を行なうための直接メモリアクセスの用法 Expired - Lifetime JP4624110B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/323,561 US7406481B2 (en) 2002-12-17 2002-12-17 Using direct memory access for performing database operations between two or more machines
PCT/US2003/039555 WO2004061684A2 (en) 2002-12-17 2003-12-10 Using direct memory access for performing database operations between two or more machines

Publications (3)

Publication Number Publication Date
JP2006510996A true JP2006510996A (ja) 2006-03-30
JP2006510996A5 JP2006510996A5 (ja) 2006-12-21
JP4624110B2 JP4624110B2 (ja) 2011-02-02

Family

ID=32507315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004565407A Expired - Lifetime JP4624110B2 (ja) 2002-12-17 2003-12-10 2つまたはそれ以上の機械の間でデータベース動作を行なうための直接メモリアクセスの用法

Country Status (8)

Country Link
US (2) US7406481B2 (ja)
EP (1) EP1581875B1 (ja)
JP (1) JP4624110B2 (ja)
CN (1) CN100422958C (ja)
CA (1) CA2509404C (ja)
DE (1) DE60324965D1 (ja)
HK (1) HK1077104A1 (ja)
WO (1) WO2004061684A2 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000002490A (ja) * 1998-06-18 2000-01-07 Kawasaki Refract Co Ltd 不定形耐火物用支持アンカー
JP2000020490A (ja) * 1998-07-01 2000-01-21 Fujitsu Ltd 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体
WO2002017034A2 (en) * 2000-08-24 2002-02-28 Voltaire Advanced Data Security Ltd. System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics
US20020029305A1 (en) * 2000-07-05 2002-03-07 International Business Machines Corporation Method and system for transmitting multiple data packets to reading device

Family Cites Families (31)

* Cited by examiner, † Cited by third party
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
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
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
JP2002024160A (ja) * 2000-07-03 2002-01-25 Matsushita Electric Ind Co Ltd Dma転送装置
US7222150B1 (en) * 2000-08-15 2007-05-22 Ikadega, Inc. Network server card and method for handling requests received via a network interface
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
US7194766B2 (en) * 2001-06-12 2007-03-20 Corrent Corporation Method and system for high-speed processing IPSec security protocol packets
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000002490A (ja) * 1998-06-18 2000-01-07 Kawasaki Refract Co Ltd 不定形耐火物用支持アンカー
JP2000020490A (ja) * 1998-07-01 2000-01-21 Fujitsu Ltd 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体
US20020029305A1 (en) * 2000-07-05 2002-03-07 International Business Machines Corporation Method and system for transmitting multiple data packets to reading device
WO2002017034A2 (en) * 2000-08-24 2002-02-28 Voltaire Advanced Data Security Ltd. System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics
JP2004526218A (ja) * 2000-08-24 2004-08-26 ボルテール アドバンスト データ セキュリティ リミテッド 相互接続されたファブリックにおける高度にスケーラブルで高速のコンテンツ・ベース・フィルタリング及び負荷均衡化システム及び方法

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
CN100422958C (zh) 2008-10-01
JP4624110B2 (ja) 2011-02-02
EP1581875A2 (en) 2005-10-05
EP1581875A3 (en) 2005-12-28
CA2509404C (en) 2009-04-21
US7406481B2 (en) 2008-07-29
US20040117375A1 (en) 2004-06-17

Similar Documents

Publication Publication Date Title
JP4624110B2 (ja) 2つまたはそれ以上の機械の間でデータベース動作を行なうための直接メモリアクセスの用法
JP3003977B2 (ja) 入出力通信サブシステム及び方法
JP3172387B2 (ja) 入出力通信サブシステム及び方法
US7281030B1 (en) Method of reading a remote memory
US10044796B2 (en) Method and system for transmitting an application message between nodes of a clustered data processing system
JP3364587B2 (ja) 通信システムで比較的大きなデータ・オブジェクトの伝送を制御するシステムと方法
US6185607B1 (en) Method for managing network data transfers with minimal host processor involvement
US7200641B1 (en) Method and system for encoding SCSI requests for transmission using TCP/IP
US20100150174A1 (en) Stateless Fibre Channel Sequence Acceleration for Fibre Channel Traffic Over Ethernet
US20100306387A1 (en) Network interface device
US8527661B1 (en) Gateway for connecting clients and servers utilizing remote direct memory access controls to separate data path from control path
US7460531B2 (en) Method, system, and program for constructing a packet
US7159010B2 (en) Network abstraction of input/output devices
CN116471242A (zh) 基于rdma的发送端、接收端、数据传输系统及方法
US6009463A (en) Cooperative service interface with buffer and lock pool sharing, for enhancing message-dialog transfer between network provider and distributed system services
US6021430A (en) Output interface method and system for enhanced data transfers via cooperative service interface
AU2003300885B2 (en) Using direct memory access for performing database operations between two or more machines
JP3644158B2 (ja) 並列計算機におけるデータ送受信方法
JP3130226B2 (ja) 入出力通信サブシステム及び方法
CN118474052A (zh) 基于FC-NVMe的流数据存储和共享系统和方法
JP3023339B2 (ja) メッセージ着信通知方法及びシステム
CN118301197A (zh) 网络通信方法、设备、介质、程序产品和装置
KR100441742B1 (ko) 정보교환 버스를 이용한 프로세스간 통신 데이터 제어방법및 그 시스템
JPH11312132A (ja) 通信方法および並列計算機およびクライアント・サーバ間通信方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101005

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101102

R150 Certificate of patent or registration of utility model

Ref document number: 4624110

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131112

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term