JP4192416B2 - 計算機システムおよびそのデータ転送方法 - Google Patents

計算機システムおよびそのデータ転送方法 Download PDF

Info

Publication number
JP4192416B2
JP4192416B2 JP2000309299A JP2000309299A JP4192416B2 JP 4192416 B2 JP4192416 B2 JP 4192416B2 JP 2000309299 A JP2000309299 A JP 2000309299A JP 2000309299 A JP2000309299 A JP 2000309299A JP 4192416 B2 JP4192416 B2 JP 4192416B2
Authority
JP
Japan
Prior art keywords
data
storage area
processing unit
data record
computer node
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 - Fee Related
Application number
JP2000309299A
Other languages
English (en)
Other versions
JP2002063060A (ja
Inventor
一 芹沢
弘文 長須賀
健年 櫻庭
健太 二瀬
正弘 山下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000309299A priority Critical patent/JP4192416B2/ja
Publication of JP2002063060A publication Critical patent/JP2002063060A/ja
Application granted granted Critical
Publication of JP4192416B2 publication Critical patent/JP4192416B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワークまたは入出力チャネルで接続された計算機の間で、複数のレコードからなるデータを受け渡す処理に関する。
【0002】
【従来の技術】
二つの計算機ノード間で、多数のレコードからなるデータを受け渡す従来の技術として、以下に示すものがある。
【0003】
第1の従来の技術は、特開平6−67944号公報の2ページ61行目から、2ページ81行目に示されている。この第1の従来の技術は、2つの計算機ノード間で共用しているディスク装置を利用した方法である。この方法では、同一のデータを格納した2個のボリュームからなる組を用意し、各々のボリュームを各計算機ノードに接続させて、共用できる状態にしておく。そして、一方の計算機ノードがデータを参照する場合は、ボリュームの組を解き(ボリュームの切り離し)、一方のボリューム(以下、第1のボリューム)を参照する側の計算機ノードに占有させる。その間、該ディスクの制御装置は、もう片方のボリューム(以下、第2のボリューム)に他方の計算機ノードによる変更を全て記録しておく。データを参照した計算機ノードが、参照を終え、上記第1のボリュームの占有を解くと、上記ディスクの制御装置は、上記第2のボリュームに対する変更の記録を、上記第1のボリュームに反映し、その後、上記2個のボリュームを、同一のデータを格納する組として、二つの計算機ノードから共用できる状態にする(ボリュームの再同期化)。
【0004】
第2の従来の技術は、特開平6−149485号公報の3ページ58行目から、4ページ52行目に示されている。この第2の従来の技術は、計算機ノード間で共用している半導体外部記憶装置を利用した方法である。この方法では、単一のメモリ領域を複数の計算機ノード間で共用し、各々の計算機ノードは、該メモリ領域に対して排他的にアクセスする。
【0005】
【発明が解決しようとする課題】
ここで、第1の従来の技術は、一方の計算機ノードがデータを参照するたびにボリュームの切り離しと、再同期化を行う必要が有る。そのため、リアルタイム処理に適用することは困難である問題がある。
【0006】
一方、第2の従来の技術は、データ転送のたびに、レコードの完全性を保証するためにデータの出力側の計算機ノードと、データの参照側計算機ノードとの間で、これらの領域の排他制御を行う必要がある。大量のデータを転送する際には、これらの排他処理に要するオーバヘッドが膨大となる問題がある。さらに、このオーバヘッドは、データ転送の効率を低下させることがある。
【0007】
本発明の第1の目的は、データ転送効率の向上を阻害する排他処理に要するオーバヘッドを軽減することにある。
【0008】
本発明の第2の目的は、リアルタイム処理にも利用可能なデータ転送方法を提供することにある。
【0009】
【課題を解決するための手段】
本発明では、RDMA(Remote Direct Memory Access)を用いた、データ転送を行う。RDMAとは、送信側の計算機ノードの送信すべきデータのアドレスを受信側の計算機ノードが判っている、または受信側の計算機ノードの受信すべきデータのアドレスを送信側の計算機ノードがわかっているものである。そして、ネットワークで接続された二つの計算機ノード間において、一方の計算機ノードのプログラムが、該計算機ノードの主記憶のデータを格納すべき/データを読み出すべき領域と、他方の計算機ノードの主記憶のデータを読み出すべき/データを格納すべき領域とを指定してそれらの領域間でデータのコピーをする要求を作成し、この要求を、通信手段またはそれを制御するソフトウェアで処理することで、上記計算機ノードのそれぞれの主記憶間で直接データのコピーを行う技術である。
【0010】
RDMAには、RDMAを起動する計算機ノードの主記憶のデータを、他方の計算機ノード上の主記憶に格納するRDMA−Writeと、RDMAを起動する計算機ノードの主記憶に、他方の計算機ノード上の主記憶のデータを格納するRDMA−Readの2種がある。
【0011】
RDMAは、例えば米Intel社、米Compaq社、米マイクロソフト社による、Virtual Interface Architecture Specification 1.0(1997.12.16)に記載されている。
【0012】
本発明では、第1の計算機ノードの主記憶上の領域に、同期を取らずに一方的に(非同期の手順で)任意の時間間隔で、一つ以上のレコードを格納し、第2の計算機ノード上で動作しているプログラムが、RDMA−Readを利用して、当該領域を任意の時間間隔で参照することで、データ転送を実現する。
【0013】
また、第1の計算機ノード上のプログラムが、第2の計算機ノードの主記憶上の領域に、同期を取らずに一方的に(非同期の手順で)任意の時間間隔で、RDMA−Writeを用いて一つ以上のレコードを格納し、第2の計算機ノード上で動作しているプログラムが、上記領域を任意の時間間隔で参照することでデータ転送を実現する。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態を、図を用いて説明する。
【0015】
まず、図1から図10を用いて第1の本発明の実施の形態を説明する。
【0016】
図1は、第1の本発明の実施の形態の全体構成図である。第1の計算機ノード10と第2の計算機ノード20は、ネットワーク30に接続している。そして、第1の計算機10と第2の計算機20とは、ネットワーク30を介して互いに通信することが可能である。
【0017】
第1の計算機ノード10には、第2の計算機ノード20に送信すべきデータレコード153を出力する第1のプログラム110と主記憶150に格納され、データレコード153を格納するデータレコードテーブル151と、前記データレコード153をネットワーク30を経由して第2の計算機20へ送信する送信部170を有している。送信部170は、第1のプログラムと独立したプログラム、又はハードウェアで構成されている。さらに、第1のプログラム110は、前記データレコード153を出力するデータレコード出力処理部111と、後述する識別情報152を出力する識別情報出力処理部112と、データレコード出力処理部111および識別情報出力処理部112の出力をデータレコードテーブル151に格納する格納処理部113で構成される。ここで、前記識別情報152とは、少なくとも前後に連続して格納された2個のデータレコード153を識別できる情報であり、例えばデータレコード153のそれぞれに対し採番される通し番号である。識別情報出力処理部112には該通し番号を生成するカウンタ116を有する。さらに、格納処理部113には、データレコードテーブル151における格納すべきエントリのインデクス(ある識別情報及びデータレコードをどのエントリに格納すべきかを示すもの)を格納するポインタ115を含む。
【0018】
また、データレコード出力処理部111とは例えば、OLTP(On Line Transaction Processing)がジャーナルデータをデータレコードテーブル151に書き込むものであり、この例ではデータレコード153はオンライン処理におけるジャーナルデータである。
【0019】
第2の計算機ノード20は、第1の計算機10が出力したデータレコード153を受信し、参照する第2のプログラム210と第1の計算機10のデータレコードテーブル151の、完全または不完全な複製である主記憶250上のデータレコードテーブル251と、前記データレコード153をネットワーク30を経由して第1の計算機から受信する受信部270を有している。さらに、第2のプログラム210は、タイマ211と、前記データレコード153の受信要求を生成するデータ受信要求生成処理部212と、データレコード参照処理部221を有する。なお、タイマ211は一定の時間間隔でデータ受信要求生成処理部212を起動するための処理であり、第2のプログラム210の外部に存在しても良い。
【0020】
さらに、データレコード参照処理部221はデータレコードテーブル251において、どのエントリを参照すべきかを示すインデクスを格納するポインタ225と、読み出された前記識別情報252の妥当性を検証する為に使用するカウンタ226とを含む。
【0021】
なお、データレコード153を生成するプログラム、およびデータレコード253を参照してさらに別の処理を行うプログラムは、本発明とは直接関係ないので、本実施例では省略する。
【0022】
図2は第1の実施の形態において、第1のプログラム110の処理を示すフローチャートである。
【0023】
まず、データレコード出力処理部111が1個のデータレコード153を出力し、格納処理部113に該データレコード153のデータレコードテーブル151への格納処理を依頼する(ステップ11a)。格納処理部113は、識別情報出力処理部112を起動する(ステップ11b)。識別情報出力処理部112は識別情報152を出力し、これを格納処理部113に返す(ステップ11c)。
【0024】
格納処理部113は、ステップ11aのデータレコード153とステップ11cの識別情報152とを組にして、ポインタ115が指すエントリに格納する(ステップ11g)。その後、格納処理部113は、ポインタ115をインクリメントし、最大値を超えた場合はラップ処理を行う(ステップ11h)。識別情報出力処理部112および格納処理部113の詳細については後述する。第1のプログラム110が複数のデータレコード153を出力する場合、上記ステップ11aからステップ11hを繰り返す。識別情報及びデータレコードは第2の計算機ノードとは関係なくデータレコードが発生する毎にデータレコードテーブル151へと格納される。
【0025】
図3は、第1の実施の形態において、第2のプログラム210の処理を示すフローチャートである。
【0026】
まず、第2のプログラム210はデータレコードテーブル251を初期化する(ステップ21a)。初期化後のデータレコードテーブル251は、後に図7で説明するため、ここでは説明を省略する。次にデータ受信要求生成処理部212が参照先としてデータレコードテーブル151を、受信先としてデータレコードテーブル251を、それぞれ指定したデータ受信要求を生成し、受信部270を起動する(ステップ21c)。即ち、このときにRDMA−Readの起動が行なわれる。ステップ21cにおいて、送信先および受信先には、データレコードテーブル151および251の全てのエントリ、または一部のエントリ群、のいずれを指定しても良い。望ましくは、前回の最後のデータ転送において、送信部170が最後のエントリを読み出した時刻から、今回のデータ転送において、送信部が最初のエントリを読み出す時刻までの間に、格納処理部113が格納するエントリ群を指定する。第1の計算機ノード10の負荷により、上記エントリ群に含まれるエントリ数が変化する場合は、負荷に追随して読み出すエントリ数を増減する。例えば、前回読み出しに失敗したエントリ数が多い場合は、次に読み出すエントリ数を減少させる。
【0027】
さらに、第2のプログラム210は、受信部270からの、ステップ21cで発行したデータ転送の完了を待つ(ステップ21d、ステップ21e)。さらに、データレコード受信処理部221が、データレコードテーブル251を参照する(ステップ21f)。データレコード参照処理部221については、後に図10を用いて説明する。さらに、第2のプログラム210は、タイマ211に対し、一定時間後にステップ21cから処理を続行することを要求する(ステップ21g)。ステップ21gにおいて、タイマに要求する時間間隔は任意で良い。リアルタイム性を向上する為に望ましくは、該時間間隔として、今回のデータ転送において、送信部170が最後のエントリを読み出した時刻から、次回のデータ転送において、送信部170が最初のエントリを読み出す時刻までの間に、格納処理部113が一つ以上のエントリを格納可能な時間間隔を指定する。特に、ステップ21fにおいて、今回データ転送した全てのエントリが読み出し可能であった場合には、次のデータが既に格納されている可能性が有るので、時間間隔として0を設定することが望ましい。
【0028】
データ転送効率を向上する為に望ましくは、該時間間隔として今回のデータ転送において、送信部170が最後のエントリを読み出した時刻から、次回のデータ転送において、送信部が最初のエントリを読み出す時刻までの間に、格納処理部113がデータレコードテーブル151の半分に相当するエントリを格納可能な時間間隔を指定する。次に、タイマ211が一定の時間後にデータ受信要求生成処理部212を起動する(ステップ21b)。このようにRDMAに関して第1の計算機ノードにおけるデータの格納と第2の計算機ノードにおけるRDMA−Readによるデータの読み出しがそれぞれ任意の時間間隔で非同期に行なわれるので、これらの間での確認手順が不要であり、プログラムにかかる負担は小さいものとなる。
【0029】
以下では、l、m、nは1を超える自然数とし、lとn、およびmとnはそれぞれ互いに素であるとする。n−1はカウンタ116の上限値の意味を持ち、mはデータレコードテーブル151のエントリ数を、lはデータレコードテーブル251のエントリ数をそれぞれ示す。
【0030】
図4は、第1の実施の形態において、識別情報出力処理部112の処理を示すフローチャートである。
【0031】
まず識別情報出力処理部112は、カウンタ116を0にクリアし(ステップ112a)、格納処理部113からの要求を待つ(ステップ112b、ステップ112c)。ここで、格納処理部113からの要求があると、識別情報出力処理部112はカウンタ116の値を格納処理部113に返す(ステップ112d)。ここで、カウンタ116の値がn−1より小さいか判断し(ステップ112e)、該判断が真の場合、カウンタ116をインクリメントし(ステップ112f)、ステップ112bからの処理を繰り返す。該判断が偽の場合は、ステップ112aからの処理を繰り返す。
【0032】
図5は、第1の実施の形態において、格納処理部113を示すフローチャートである。
【0033】
まず格納処理部113は、データレコードテーブル151を初期化する(ステップ113a)。初期化後のデータレコードテーブル151は後に図8に説明する。さらに格納処理部113は、ポインタ115を0にクリアし(ステップ113b)、データレコード出力処理部111からの要求を待つ(ステップ113c、ステップ113d)。ここで、データレコード出力処理部111からの要求があると、格納処理部113は、データレコード出力処理部111が出力したデータレコード153を受け取り(ステップ113e)、さらに図2で示したステップ11bを行い、識別情報出力処理部112から識別情報152を得る(ステップ113f)。さらに、格納処理部113は、データレコードテーブル151においてポインタ115が指すエントリに、ステップ113eで得たデータレコード153を格納し(ステップ113g)、ステップ113fで得た識別情報152を、該エントリに格納する(ステップ113h)。さらにポインタのインクリメントのための処理を行う(ステップ113k、ステップ113l)。
【0034】
図6は、第1の実施の形態において、格納処理部113のステップ113aの直後の、即ち初期化後のデータレコードテーブル151を示している。
【0035】
データレコードテーブルはエントリ0からエントリm−1で成り立っており、それぞれポインタが0からm−1をとるときに指すエントリに対応している。格納処理部113は各エントリの識別情報152を、次のように格納する。格納処理部113はエントリ0の識別情報152.0に−1を、エントリ1の識別情報152.1からエントリm−2の識別情報152.m−2までは、0、1、2、...の順に、0から1ずつ増加させた数を格納する。ここで、もし、識別情報152に格納すべき値がn−1を超えた場合には、該エントリの識別情報152には0を格納し、以降は同様に1ずつ増加させた数を格納する。さらに格納処理部113は、エントリm−1の識別情報152.m−1にはn−1を格納する。
【0036】
各エントリのデータレコード153は、適当な初期値で初期化されている。但し、以降に述べるデータレコード参照処理部221では、これらのデータレコード153を無視するため、必ずしも初期化する必要はない。
【0037】
図7は、本発明の第1の実施の形態において、第2のプログラム210のステップ21aの直後の、即ち初期化後のデータレコードテーブル251を示している。図6との違いは、エントリ数がmではなくl(エル)であることである。
【0038】
図8は、本発明の第1の実施の形態において、格納処理部113と送信部170がそれぞれデータレコードテーブル151に対する書き込みと読み出しを行っているときの、ある一時点の状態を示している。
【0039】
矢印156は格納処理部113がエントリを書き込む方向を、矢印157は送信部170がエントリを読み出す方向を示している。すなわち、格納処理部113と送信部170とは互いに逆の順序で読み書きしている。この理由は、格納処理部113の書き込みと、送信部170の読み出しとのすれ違いを、識別情報152の不連続により検出するためである。以下に詳しく説明する。
【0040】
格納処理部113は、エントリ9のデータレコード153.9、エントリ9の識別情報152.9、エントリ10のデータレコード153.10、エントリ10の識別情報152.10、...の順にデータレコードテーブル151のエントリを書き込んでおり、送信部170の読み出しとすれ違う瞬間は、エントリ12のデータレコード153.12を書き換え途中にある。送信部170は、エントリ12の識別情報152.12、エントリ12のデータレコード153.12、エントリ11の識別情報152.11、エントリ11のデータレコード152.11、...の順にデータレコードテーブル151のエントリを読み出している。
【0041】
ここで、識別情報152.12とデータレコード153.12、および識別情報152.11に注目する。格納処理部113は、データレコード153.12の書き込みを完了してから識別情報152.12を書き込む。そのため、図8に示した時点では、識別情報152.12に格納処理113が書き込む前の値(具体的には12)が残っていて、この値は識別情報152.11の値(具体的には68)とは不連続になる。この時、送信部170は既に識別情報152.12を読み込んでおり、その後識別情報152.11を読み出す。そのため、上記のすれ違いが生じたときは、必ず識別番号152.11と識別番号152.12が不連続になる。不連続になるということはまだ、エントリ12は書き換え中のデータレコードを含んでいることを意味する。
【0042】
なお、もし仮に格納処理部113と送信部170とが同じ順序で読み書きした場合はこの限りではない。これを図9および図10を用いて説明する。図9では、読み出し動作が書き込み動作に追いついて来た場合を示している。格納処理部113が識別番号152.11を書き込んで(615.1)から、送信部170がこれを読み出す(615.2)。その後、送信部170がデータレコード153.12を読み出している(615.3)が、このデータレコード153.12は格納処理部113が書き込みを完了する前であるから、不正な値のまま読み出される。その後の処理は図10に示す。
【0043】
図10では、まず格納処理部113がデータレコード153.12を書き込む(615.4)。その後、格納処理部113が識別番号152.12を書き込んで(615.5)から送信部170がこれを読み出し(615.6)ているが、この識別番号152.12は正しい値(具体的には69)が読み出される。すなわち、送信部170が読み出した識別番号152.11と識別番号152.12は、連続になる。このように、格納処理部113の書き込みと、送信部170の読み出しとの順序が同じであると、図9で示したように、69番目のデータレコードは正しくないまま読み出しているにも係わらず識別番号は連続したものとして読み出されてしまう。従って、識別番号152の連続性だけでデータレコード153が正しく読めたことを保証できない。
【0044】
図11は本発明の第1の実施の形態において、図8のデータレコードテーブル151が、送信部170と受信部270とによって、第2の計算機ノード20に転送された、データレコードテーブル251を示している。
【0045】
図8で述べたように、エントリ9の識別情報252.9から、エントリ11の識別情報252.11は66から68と連続しており、これらに対するデータレコード253.9からデータレコード253.11が正しく書き込まれたことを示している。さらに、データレコード253.12の識別情報は12であり連続でなく、データレコード253.12が書き換え途中に読み出されたことを示している。
【0046】
図12は、第1の実施の形態において、データレコード参照処理部221の内容を示すフローチャートである。ここでは、識別番号がエントリ上で連続性があるか、どのエントリのデータレコードが不正であるかを知る。
【0047】
まず、データレコード参照処理部221はカウンタ226を0にクリアし(ステップ221a)、ポインタ225を0にクリアする(ステップ221b)。次に、ポインタ225が指すエントリの一つ前のエントリの識別番号252が正しいかを確認するため、ポインタ225の値から1を減じた数をラップさせ、その値をインデクスとして持つエントリの識別情報225を読み取り(ステップ221c)、カウンタ226から1を減じた数をラップさせた値を求める(ステップ221d)。そして、ステップ221cの識別情報225と、ステップ221dの値とが等しいか否かを判断する(ステップ221e)。該判断が真の場合はステップ221fへ進み、偽の場合は、ノードBへ進む。詳しくは後述するが、ノードBからの処理は、ポインタ225が指すエントリのデータレコードが不正のときの処理である。ステップ221fでは、データレコード参照処理部221は、ポインタ225が指すエントリの識別情報252が、カウンタ226の値と一致しているか否かを判断する。該判断が真の場合はノードAへ進み、該判断が偽の場合はノードBへ進む。ノードAに進んだ場合は、データレコード参照処理部221は、ポインタ225が指すエントリのデータレコード253は正しいと判断し、該データレコード253を参照する(ステップ221k)。さらにデータレコード参照処理部221は、カウンタ226をインクリメントし(ステップ221m)、ポインタ225をインクリメントして(ステップ221n)、ポインタ225、カウンタ226のラップ処理を行って(ステップ221v)、ステップ221cへ進む。ノードBへ進んだ場合は、データレコード参照処理部221は、ポインタ225が指すエントリのデータレコード253は不正と判断し、該データレコード253は参照しない(ステップ221l)。さらに、データレコード参照処理部221は、ポインタ225、カウンタ226の値を変更せずに、ステップ221cから処理を繰り返す。また、不正と判断されたデータレコード253に関する情報が出力され、データレコード253を参照する別の処理で利用される。
【0048】
ここで、データレコードが不正と判断された場合はポインタはインクリメントされない。従って、次のデータの転送はこのポインタで表されるエントリを含むいくつかのエントリのデータレコードが適当な時間間隔後に転送されることになる。
【0049】
本発明の第1の実施形態ではCPUの負荷の削減効果が大きい。
【0050】
次に、図13から図18を用いて、第2の本発明の実施の形態と第1の本発明の実施の形態との違いを説明する。
【0051】
図13は、第2の本発明の実施の形態の全体構成図である。図1との違いは、第1のプログラム110が誤り検出符号生成処理部114を含むことと、第2のプログラム210が誤り検出符号検査処理部222を含むこと、データレコードテーブル151に誤り検査符号154を含むこと、データレコードテーブル251に誤り検査符号254を含むことである。
【0052】
誤り検出符号生成処理部114は、データレコードエントリの識別情報152と、データレコード153の組から、誤り検出符号154を生成する。誤り検出符号検査処理部222は、誤り検出符号254が、データレコードエントリの識別情報252と、データレコード253との組から生成された符号(誤りなし)か否(誤りあり)かを検査する。ここで、誤り検出符号を採用した理由を簡単に説明しておく。第1の実施例ではデータレコードテーブル151にジャーナルデータなどのデータレコードを書き込む方向と反対の方向に転送のための読み出しを進めることにより不正なデータを検出する方法を採ったのに対して、同一方向に読み出す場合を想定している。そして、データレコードの正しさを誤り検出符号を利用して保証しようとしたものである。
【0053】
図14は、第2の本発明の実施の形態において、第1のプログラム110の処理を示すフローチャートである。
【0054】
図2との違いは、ステップ11dおよびステップ11e、ステップ11fを含むこと、ステップgを含まないことである。ステップ11dでは、格納処理部113がステップ11aのデータレコード153とステップ11cの識別情報152とを組にして、誤り検出符号生成処理部114に渡す。ステップ11eでは、誤り検出符号生成処理部114が、ステップ11dで渡された情報から誤り検出符号154を生成し、格納処理部113に返す。ステップ11fでは、格納処理部113が、ステップ11aのデータレコード153とステップ11cの識別情報152とステップ11eの誤り検出符号154とを組にして、ポインタ115が指すエントリに格納する。
【0055】
図15は、第2の本発明の実施の形態において、格納処理部113の内容を示すフローチャートである。
【0056】
図5との違いは、ステップ113iとステップ113jを含むことである。ステップ113iにおいて、格納処理部113は、図14で示したステップ11dを行い、誤り検出符号生成処理部114から誤り検出符号154を得る。ステップ113jにおいて、格納処理部113は、ステップ113iで取得した誤り検出符号154をポインタ115が指すエントリに格納する。
【0057】
図16は、本発明の第2の実施の形態において、初期化後のデータレコードテーブル151を示している。
【0058】
図6との違いは、誤り検出符号154を含むこと、データレコード153の初期化を必ず行う必要があることである。何故ならば古いデータではあるがデータレコードと誤り検出符号とが整合したデータが残っているとそれが新しく格納された正しいデータレコードなのか、古い(正しくない)データなのかの区別が付かなくなるからである。格納処理部113は、ステップ113aにおいて、これらの誤り検出符号154を、識別情報152、データレコード153から生成した誤り訂正符号以外の値、即ち、不正な符号を格納する。
【0059】
図17は、本発明の第2の本発明の実施の形態において、データレコードテーブル151の、ある一時点の状態を示している。
【0060】
図8との違いは、誤り検出符号154を含むことである。図17で、格納処理部113がエントリ12のデータレコード153に書き込んでいる途中で、送信部170が当該エントリを読み出しているとする。このとき、エントリ12の誤り検出符号154.12は、当該エントリから生成された誤り検出符号でないため、不正な符号となる。図17のその他の誤り検出符号154.9から誤り検出符号154.11はそれぞれのエントリから生成された誤り検出符号であるため、正しい符号である。
【0061】
図18は、本発明の第2の実施の形態において、データレコード参照処理部221の内容を示すフローチャートである。ここでは誤り検出符号によって読み出されたデータレコードが正しいものかどうかを判定している。
【0062】
図12との違いは、ステップ221rおよび221sを含むこと、ステップ221cからステップ221eを含まないことである。ステップ221rにおいて、データレコード参照処理部221はポインタ225が指すエントリを誤り検出符号検査処理部222に渡す。
【0063】
ステップ221sにおいて、データレコード参照処理部221は、誤り検出符号検査処理部222の結果から、当該レコードに誤りが含まれたか否かを判断する。該判断が真の場合はノードBへ進み、該判断が偽の場合はノードAに進む。
【0064】
本発明の第2の実施の形態においては、読み取り順序が同一方向のものでもデータレコードの正しさが保証できる。
【0065】
次に、図19から図22を用いて、第3の本発明の実施の形態と第1の本発明の実施の形態との違いを説明する。
【0066】
図19は、第3の本発明の実施の形態の全体構成図である。図1との違いは、第1のプログラム110がデータ送信要求生成処理部122を含むこと、第2のプログラム210がタイマ211とデータ受信要求生成処理部212を含まないこと、である。データ送信要求生成処理部122は送信部170に対し、データレコードテーブル151の送信要求を生成する。即ち、RDMA−Writeを使って送信側の主導によりデータの転送を行なう場合を示している。このとき、第1の計算機ノードには図1の構成に比べて負荷はかかるが同期を取らない転送方式としているため従来例よりも負荷は小さいものとなっている。データ送信要求生成処理部122は送信データがある程度たまったときに送信部170にデータの読み出しを行なわせるものである。データの転送は第2のプログラムがポーリングして転送データがあることを認知して実施される。
【0067】
図20は、本発明の第3の実施の形態における、第1のプログラム110の処理を示すフローチャートである。
【0068】
図2との違いは、ステップ11iからステップ11lを含むことである。ステップ11iにおいて、第1のプログラム110はデータレコードテーブル151を送信するか否かの判断をする。即ち、本発明の第3の実施の形態おいて、データ送信の間隔は任意である。リアルタイム性を向上する為に望ましくは、該時間間隔を短くする、即ち、なるべく多くの場合についてステップ11iにおける判断を真とする。データ送信の時間間隔の調整はデータ送信要求生成処理部122がステップ11iで行なう。
【0069】
データ転送効率を向上する為に望ましくは、最後にデータ送信を行った時点から現在までに、格納処理部113がデータレコードテーブル151の半分に相当するエントリを格納したときにステップ11iにおける判断を真とする。
【0070】
該判断が真の場合、ステップ11jに進み、偽の場合は11aに進む。ステップ11jにおいては、データ送信要求生成処理部122が、データ送信要求を作成し、送信部170を起動する。さらに、ステップ11kとステップ11lにおいて、第1のプログラム110は、ステップ11jで起動した送信が完了したことを待つ。その後、第1のプログラム110はステップ11aから処理を続行する。本発明の第3の実施の形態では、第2のプログラム210は、図3に示すステップ21fを実行するのみである。
【0071】
本発明の第3の実施の形態では、格納処理部113は、図5に示す処理と同一だが、ステップ113gとステップ113hの順序の入れ替えが可能であることが異なる。本発明の第3の実施の形態では、データレコードテーブル151の読み書き順序について、図8に示す順序でなくても構わない。
【0072】
図21は、本発明の第3の実施の形態において、データレコードテーブル151が、送信部170と受信部270とによって、第2の計算機ノード20に転送された、データレコードテーブル251を示している。
【0073】
矢印256は受信部270がエントリを書き込む方向を、矢印257は第2のプログラム210がエントリを読み出す方向を示している。データレコード253が正しく読めたか否かの判定は、本発明の第1の実施の形態と同様である。
【0074】
図22は、第3の実施の形態において、データレコード参照処理部221の内容を示すフローチャートである。
【0075】
図22は図12と異なり、ステップ221vからステップ221xを含み、ステップ221fをステップ221cの前に実行する。即ち、本発明の第3の実施の形態によれば、データレコード参照処理部221はインデクスの大きいほうの識別情報252から参照する。ステップ221vでは、データレコード参照処理部221はポインタ225、カウンタ226それぞれに、同じ任意の自然数を加える。ここで望ましくは、該自然数は以降のステップ221fの判断が真となる、最大の数とする。ただし、この最適値を予測することは困難なので、例えば前回のステップ221vにおいて加算した自然数を記憶しておき、今回のステップ221vでは、該自然数から、前回のステップ221v処理から不正レコードを読み出した数を差し引いた数、またはそれに近い数を指定する。
【0076】
ステップ221fの判断が真の場合、データレコード参照処理部221はステップ221cへ進み、偽の場合はノードBへ進む。ステップ221Wにおいて、データレコード参照処理部221はポインタ225から1を減じた値が指すエントリ(ポインタ225が0の場合は、エントリl−1)が既に正しく読み込み済みか判断する。
【0077】
該判断が真の場合、データレコード参照処理部221はステップ221vに進み、該判断が偽の場合、ステップ221xに進む。ステップ221xにおいて、データレコード参照処理部221は、カウンタ226、ポインタ225をそれぞれデクリメントする。本発明の第3の実施の形態ではRDMA−Readをサポートしていないものにも適用できる。
【0078】
次に、図23から図24を用いて、第4の本発明の実施の形態と第2の本発明の実施の形態との違いを説明する。
【0079】
図23は、第4の本発明の実施の形態の全体構成図である。図23は、図13と異なり、第1のプログラム110がデータ送信要求生成処理部122を含み、第2のプログラム210がタイマ211とデータ受信要求生成処理部212を含まない。データ送信要求生成処理部122は本発明の第3の実施の形態と変わらない。
【0080】
図24は、第4の本発明の実施の形態における、第1のプログラム110の処理を示すフローチャートである。
【0081】
図24は、図14と異なり、ステップ11iからステップ11lを含む。これらのステップは、本発明の第3の実施の形態と同様である。本発明の第4の実施の形態では読み取り順序が書き込み順序と同一で、RDMA−Readをサポートしていないものにも適用出来る。
【0082】
次に、図25から図27を用いて、第5の本発明の実施の形態と第1の本発明の実施の形態との違いを説明する。図25は、第5の本発明の実施の形態の全体構成図である。図25は図1と異なり、第1のプログラム110に通知処理部117を含み、第2のプログラム210にタイマ211を含まない。通知処理部117はデータレコードがある程度たまったとき送信部170に読み出しをなさせるとともに第2のプログラムに読み取りのきっかけを与えるものでRDMA−Writeの割り込みをするものである。
【0083】
図26は、第5の本発明の実施の形態における、第1のプログラム110の処理を示すフローチャートである。
【0084】
図26は、図2と異なり、ステップ11mを有する。ステップ11mにおいて、通知処理部117は、送信部170に、第2のプログラム210が受信するイベント通知を依頼する。本実施例では第2のプログラムにタイマが不要で送信側のトリガでデータの転送が制御される。つまり、データの転送の時間間隔は通知処理部117の制御による。
【0085】
図27は、第5の実施の形態において、第2のプログラム210の処理を示すフローチャートである。
【0086】
図27は、図3と異なり、ステップ21hを含み、ステップ21bおよびステップ21gを含まない。ステップ21bにおいて、第2のプログラム210は通知処理部117からのイベント通知を待つ。本発明の第5の実施の形態ではCPUの負荷の削減効果が大きく、送信側の通知をトリガとしてデータの転送が行なわれるので受信側の負担が小さい。
【0087】
次に、図28を用いて、第6の本発明の実施の形態と第2の本発明の実施の形態との違いを説明する。
【0088】
図28は、第6の本発明の実施の形態の全体構成図である。
【0089】
図28は図13と異なり、第1のプログラム110に通知処理部117を含み、第2のプログラム210にタイマ211を含まない。第6の本発明の実施の形態と第2の本発明の実施の形態とのその他の違いは、第5の本発明の実施の形態と第1の本発明の実施の形態との違いと同一なので説明を省略する。これはデータレコードテーブル151へのジャーナルデータなどのデータレコードを書き込む方向とその読み出し方向とが同じである場合を想定し、且つ、送信側でデータの転送時間間隔を制御する場合である。本発明の第6の実施の形態では読み取り順序が書き込み順序と同一のものでもサポートでき、CPU負荷の削減の効果が大きい。また、送信側の通知をトリガとしているので受信側の負担が小さい。
【0090】
次に、図29を用いて、第7の本発明の実施の形態と第3の本発明の実施の形態との違いを説明する。
【0091】
図29は、第7の本発明の実施の形態の全体構成図である。図29は図19と異なり、第1のプログラム110にデータ送信要求生成・通知処理部123を含み、第1のプログラム110にデータ送信要求生成処理部122を含まない。
【0092】
データ送信要求生成・通知処理部123は、データ送信要求生成処理部122と異なり、送信部117を起動するとき、データ送信要求と通知要求を組みにして送信部に渡す。ただし、本発明を実施するためには、データ送信要求と通知要求は必ずしも組みにする必要はない。本発明の第7の実施の形態ではCPUの負荷の削減効果が大きく、RDMA−Readをサポートしていないものにも適用が可能である。また、送信側の通知によるため受信側の負担は小さい。
【0093】
次に、図30を用いて、第8の本発明の実施の形態と第4の本発明の実施の形態との違いを説明する。
【0094】
図30は、第8の本発明の実施の形態の全体構成図である。図30は図23と異なり、第1のプログラム110にデータ送信要求生成・通知処理部123を含み、第1のプログラム110にデータ送信要求生成処理部122を含まない。本発明の第8の実施の形態では読み取りが書き込みと同一方向でも適用でき、RDMA−Readをサポートしていないものにも適用出来る。また、送信側の通知によるため受信側の負荷は小さい。
【0095】
次に、図31を用いて、第9の本発明の実施の形態を説明する。
【0096】
図31は、第9の本発明の実施の形態の全体構成図である。第1の計算機ノード10は基幹系システム510を含み、第2の計算機ノード20は情報系システム20を含む。第1のプログラム110は、第9の本発明の実施の形態ではオンライン・トランザクション・プロセッシング(OLTP)である。データレコード153は第9の本発明の実施の形態では、OLTP110が処理過程を保存するために出力するジャーナルである。第2のプログラム210は、第9の本発明の実施の形態ではデータベース管理システム(DBMS)である。
【0097】
第9の本発明の実施の形態では、第1の本発明の実施の形態から、第8の本発明の実施の形態に示した処理内容の具体的応用を示すもので、これらのいずれか一つと同様の処理を行って、OLTP110が出力するジャーナル153を情報系システム520に転送する。
【0098】
次に、図32を用いて、第10の本発明の実施の形態を説明する。
【0099】
図32は、第10の本発明の実施の形態の全体構成図である。第10の本発明の実施の形態では、第1の計算機ノード10と第2の計算機ノード20と外部記憶装置40が、ネットワーク30を介して互いに接続されている。外部記憶装置40は、送信手段170と受信手段470、データレコードテーブル151、受信制御部410、および送信制御部411を含む。受信制御部410は受信手段470を制御する。送信制御部411は、送信手段170を制御する。第1の計算機ノードは、第1のプログラム110と主記憶150、送信手段171を含む。さらに、主記憶150は、バッファ161を含む。このバッファ161は、第1のプログラム110がデータレコードテーブル151に格納すべきデータを一時的に格納し、送信手段171が送信時に参照できるようにする。
【0100】
第2の計算機ノード20は、第2のプログラム210と主記憶250、受信手段270とを含む。主記憶250はデータレコードテーブル251を含む。
【0101】
第10の本発明の実施の形態では、第1のプログラム110はデータレコード153と識別情報152の組を、データレコードテーブル151に格納することを、バッファ161、送信手段171、受信手段470を介して、受信制御部410と通信しながら行うこと以外、既に述べた第1から第8の本発明の実施の形態と変りない。この格納方法は、本発明と直接関係ないので説明を省略する。
【0102】
第10の本発明の実施の形態ではデータレコードテーブル151の最終的な書き込みは、受信手段470が行う。受信手段470が、データレコードテーブル151に書き込む方向は、第1から第8の本発明の実施の形態における格納処理113が格納する方向と同じである。
【0103】
送信制御部411は、第3、4の本発明の実施の形態における、データ送信要求生成処理部122、または第5、6の本発明の実施の形態における、通知処理部117、または第7、8の本発明の実施の形態における、データ送信要求生成・通知処理部123と同様の処理を行う。なお、送信制御部411と受信制御部410とは互いに非同期に独立に動作する。
【0104】
第10の本発明の実施の形態の構成は、以上に述べた相違を除き、第1から第8の本発明の実施の形態の構成と同様である。
【0105】
第10の本発明の実施の形態においては、以上の構成で、第1から第8の本発明の実施の形態の処理内容の何れか一つと同様の処理を行って、第1のプログラムが出力するデータレコード153を第2のプログラムに転送する。
【0106】
【発明の効果】
本発明により、データを送信するプログラムと受信するプログラムとの同期オーバヘッドが低減する。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の全体構成図である。
【図2】第1のプログラム110の処理を示すフローチャートである。
【図3】第2のプログラム210の処理を示すフローチャートである。
【図4】識別情報出力処理112の処理を示すフローチャートである。
【図5】格納処理113を示すフローチャートである。
【図6】データレコードテーブル151を示す図である。
【図7】データレコードテーブル251を示す図である。
【図8】データレコードテーブル151を示す図である。
【図9】同方向に読み出しと書き込みを行なったときのデータレコードテーブルの状態を説明する図(1)である。
【図10】同方向に読み出しと書き込みを行なったときのデータレコードテーブルの状態を説明する図(2)である。
【図11】データレコードテーブル251を示す図である。
【図12】データレコード参照処理221の内容を示すフローチャートである。
【図13】第2の本発明の実施の形態の全体構成図である。
【図14】第1のプログラム110の処理を示すフローチャートである。
【図15】格納処理113の内容を示すフローチャートである。
【図16】データレコードテーブル151を示す図である。
【図17】データレコードテーブル151を示す図である。
【図18】データレコード参照処理221の内容を示すフローチャートである。
【図19】第3の本発明の実施の形態の全体構成図である。
【図20】第1のプログラム110の処理を示すフローチャートである。
【図21】データレコードテーブル251を示す図である。
【図22】データレコード参照処理221の内容を示すフローチャートである。
【図23】第4の本発明の実施の形態の全体構成図である。
【図24】第1のプログラム110の処理を示すフローチャートである。
【図25】第5の本発明の実施の形態の全体構成図である。
【図26】第1のプログラム110の処理を示すフローチャートである。
【図27】第2のプログラム210の処理を示すフローチャートである。
【図28】第6の本発明の実施の形態の全体構成図である。
【図29】第7の本発明の実施の形態の全体構成図である。
【図30】第8の本発明の実施の形態の全体構成図である。
【図31】第9の本発明の実施の形態の全体構成図である。
【図32】第10の本発明の実施の形態の全体構成図である。
【符号の説明】
10:第1の計算機ノード
20:第2の計算機ノード
110:第1のプログラム
111:データレコード出力処理部
112:識別情報出力処理部
113:格納処理部
115:ポインタ
116:カウンタ
150:主記憶
151:データレコードテーブル
152:識別情報
153:データレコード
170:送信部
210:第2のプログラム
211:タイマ
212:データ受信要求生成処理部
221:データレコード参照処理部
225:ポインタ
226:カウンタ
250:主記憶
251:データレコードテーブル
252:識別情報
253:データレコード
270:受信部
30:ネットワーク

Claims (14)

  1. 第1の処理部を有する第1の計算機ノードと、
    前記第1の計算機に接続され、第2の処理部を有する第2の計算機ノードとを有する計算機システムであって、
    データレコードを格納する第1の記憶領域と、
    前記第1の記憶領域からコピーされたデータレコードを格納する第2の記憶領域と、を備え、
    前記第1の処理部は、任意の時間間隔で前記第2の処理部とは非同期に前記第1の記憶領域に前記データレコードを格納
    前記第2の処理部は、前記第1の処理部とは非同期の任意の時間間隔で前記第1の記憶領域から読み出すべきデータレコードを指定して前記第2の記憶領域に読み出し、参照することを特徴とする計算機システム。
  2. 第1の処理部を有する第1の計算機ノードと、
    前記第1の計算機ノードに接続され、第2の処理部を有する第2の計算機ノードとを有する計算機システムであって、
    前記第1の処理部は、任意の時間間隔で前記第2の処理部とは非同期に第1の記憶領域にデータレコードを格納
    前記第2の処理部は、前記第1の処理部とは非同期の任意の時間間隔で前記第1の記憶領域から読み出すべきデータレコードを指定して読み出し、参照
    前記第1の記憶領域は識別番号と前記データレコードが組で格納される複数個のエントリを有しており、
    前記第1の処理部は、前記データレコードが格納された順序を示し連続性のある前記識別番号を付与して前記データレコードを前記エントリに格納し、
    前記第2の処理部は、前記第1の処理部が前記データレコードを前記エントリに格納する前記順序とは逆の順序で、前記エントリから前記データレコード及び前記識別番号を読み出して第2の記憶領域に格納し、
    前記第2の処理部は、読み出された前記データレコードの前記識別番号に連続性がある場合当該データレコードは正しいと判断し、連続性がない場合当該データレコードが不正であると判断することを特徴とする計算機システム。
  3. 第1の処理部を有する第1の計算機ノードと、
    前記第1の計算機ノードに接続され、第2の処理部を有する第2の計算機ノードとを有する計算機システムであって、
    データレコードを格納する第1の記憶領域と、
    前記第1の記憶領域からコピーされたデータレコードを格納する第2の記憶領域と、を備え
    前記第1の処理部は、任意の時間間隔で前記第2の処理部とは非同期に前記第1の記憶領域に前記データレコードを格納
    前記第2の処理部は、前記第1の処理部とは非同期の任意の時間間隔で前記第1の記憶領域から読み出すべきデータレコードを指定して前記第2の記憶領域に読み出し、参照
    前記第1の処理部は前記データレコードに対して誤り検出符号を生成する誤り検出符号生成処理部を有し、
    前記第1の処理部は、前記第1の記憶領域に前記データレコードと前記誤り検出符号を書き込み、前記第2の処理部は、前記第2の記憶領域に読み出されたデータレコードについて前記誤り検出符号により誤りの検出を行ない、誤りが検出されない場合当該データレコードを正しいものと判断し誤りが検出された場合当該データレコードを正しくないものと判断することを特徴とする計算機システム。
  4. 前記第1の記憶領域は前記誤り検出符号と前記データレコードが組で格納される複数個のエントリを有しており、前記エントリに前記第1の処理部で書き込まれる方向と前記エントリから読み出される方向とは同一方向であることを特徴とする請求項に記載の計算機システム。
  5. 前記第1の記憶領域は、前記第1の計算機ノード内に配置されていることを特徴とする請求項1乃至4のいずれかに記載の計算機システム。
  6. 前記第2の記憶領域は、前記第2の計算機ノード内に配置されていることを特徴とする請求項1乃至5のいずれかに記載の計算機システム。
  7. 前記第1の記憶領域は、前記第1の計算機ノードおよび前記第2の計算機ノードと互いに接続する外部記憶装置内に配置されていることを特徴とする請求項1、2、3、4、6のいずれかに記載の計算機システム。
  8. 前記第2の計算機ノードは前記第2の処理部を一定の時間間隔で起動し、前記第1の記憶領域から前記第2の記憶領域へデータを読み出すためのタイマを備えたことを特徴とする請求項1乃至7のいずれかに記載の計算機システム。
  9. 第1の計算機ノードと第2の計算機ノードが接続された計算機システムであって
    前記第1の計算機ノードはデータレコードを格納する第1の記憶領域と、任意の時間間隔で前記第2の計算機ノードと非同期に前記第1の記憶領域に前記データレコードを格納する第1の処理部と、任意の時間間隔で前記第1の記憶領域の前記データレコードを前記第2の計算機ノードに送信するデータ送信要求を生成するデータ送信生成処理部とを備え
    第2の計算機ノードはコピーされた前記第1の記憶領域の前記データレコードを格納する第2の記憶領域と、前記第2の記憶領域のデータレコードを任意の時間間隔で前記第1の計算機ノードと非同期に参照する第2の処理部を備えたことを特徴とする計算機システム。
  10. 第1の計算機ノード上の第1の記憶領域に格納された一つ以上のレコードで構成されるデータを、第2の計算機ノード上で動作しているプログラムが、前記第2の計算機ノード上の第2の記憶領域にコピーさせて参照することが可能な通信手段を有する計算機システムのデータ転送方法において、
    前記第1の計算機ノード上で動作し、任意の時間間隔で、前記第1の記憶領域に、一つ以上のレコードで構成されるデータを格納するステップと、
    前記第2の計算機ノード上で動作し、任意の時間間隔で、前記通信手段を用いて前記第1の記憶領域の指定されたデータを前記第2の記憶領域にコピーさせ、前記データを参照するステップとを備えたことを特徴とするデータ転送方法。
  11. 第1の記憶領域を持つ第1の計算機ノード上で動作しているプログラムが、第2の計算機ノードの主記憶装置内の第2の記憶領域に、前記第1の記憶領域の一つ以上のレコードで構成されるデータを、直接格納することが可能な通信手段を有する計算機システムのデータ転送方法において、
    前記第1の計算機ノード上で動作し、任意の時間間隔で、前記通信手段を用いて前記第2の記憶領域に前記一つ以上のレコードで構成されるデータを格納するステップと、
    前記第2の計算機ノード上で動作し、任意の時間間隔で、前記第2の領域のデータを参照するステップとを備えたことを特徴とするデータ転送方法。
  12. 外部記憶装置にある第1の記憶領域に、第1の計算機ノード上で動作しているプログラムが、データを直接格納することが可能な第1の通信手段と、第2の計算機ノード上で動作しているプログラムが、前記第1の記憶領域を指定して、前記第2の計算機ノード上の第2の記憶領域にコピーさせて参照することが可能な第2の通信手段を有する計算機システムのデータ転送方法において、
    前記第1の計算機ノード上で動作し、前記第1の通信手段を用いて任意の時間間隔で、前記第1の記憶領域に、一つ以上のレコードで構成されるデータを格納する第1のステップと、
    前記第2の計算機ノード上で動作し、前記第1のステップとは非同期に任意の時間間隔で、前記第2の通信手段を用いて前記第1の記憶領域の指定されたデータを前記第2の記憶領域にコピーさせ、前記データを参照する第2のステップとを備えたことを特徴とするデータ転送方法。
  13. 第1の計算機ノード上の第1の記憶領域に格納された一つ以上のレコードで構成されるデータを、第2の計算機ノード上で動作している第2のプログラムが、前記第2の計算機ノード上の第2の記憶領域にコピーさせて参照することが可能な通信手段を有する計算機システムのデータ転送方法において、
    前記第1の計算機ノード上で動作している第1のプログラムが、データレコード格納した順序を示し連続性のある識別番号を付与して前記データレコードを前記第1の記憶領域のエントリに格納するステップと、
    前記第2のプログラムが、前記第1のプログラムが前記データレコードを前記エントリに格納する前記順序とは逆の順序で、前記エントリから前記データレコード及び前記識別番号を読み出して前記第2の記憶領域に格納するステップと、
    前記第2のプログラムが、読み出された前記データレコードの前記識別番号に連続性がある場合当該データレコードは正しいと判断し、連続性がない場合当該データレコードが不正であると判断するステップを備えたことを特徴とするデータ転送方法。
  14. 前記第1の記憶領域は誤り検出符号と前記データレコードが組で格納される複数個のエントリを有しており、
    前記第1の計算機ノード上で動作し、前記第1の記憶領域に前記データレコードと前記誤り検出符号を書き込み、前記エントリに書き込まれる方向と同一方向に前記エントリから読み出すステップと、
    前記第2の計算機ノード上で動作し、前記第2の記憶領域に読み出されたデータレコードについて前記誤り検出符号により誤りの検出を行ない、誤りが検出されない場合当該データレコードを正しいものと判断し誤りが検出された場合当該データレコードを正しくないものと判断するステップとを備えたことを特徴とする請求項11または12記載のデータ転送方法。
JP2000309299A 2000-06-08 2000-10-04 計算機システムおよびそのデータ転送方法 Expired - Fee Related JP4192416B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000309299A JP4192416B2 (ja) 2000-06-08 2000-10-04 計算機システムおよびそのデータ転送方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000177123 2000-06-08
JP2000-177123 2000-06-08
JP2000309299A JP4192416B2 (ja) 2000-06-08 2000-10-04 計算機システムおよびそのデータ転送方法

Publications (2)

Publication Number Publication Date
JP2002063060A JP2002063060A (ja) 2002-02-28
JP4192416B2 true JP4192416B2 (ja) 2008-12-10

Family

ID=26593846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000309299A Expired - Fee Related JP4192416B2 (ja) 2000-06-08 2000-10-04 計算機システムおよびそのデータ転送方法

Country Status (1)

Country Link
JP (1) JP4192416B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003075166A1 (fr) * 2002-03-06 2003-09-12 Fujitsu Limited Systeme de stockage et procede de transfert de donnees dans ledit systeme
US20040010612A1 (en) * 2002-06-11 2004-01-15 Pandya Ashish A. High performance IP processor using RDMA
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7698361B2 (en) * 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
US9141557B2 (en) 2006-12-08 2015-09-22 Ashish A. Pandya Dynamic random access memory (DRAM) that comprises a programmable intelligent search memory (PRISM) and a cryptography processing engine
US7996348B2 (en) 2006-12-08 2011-08-09 Pandya Ashish A 100GBPS security and search architecture using programmable intelligent search memory (PRISM) that comprises one or more bit interval counters
US9495325B2 (en) * 2013-12-30 2016-11-15 International Business Machines Corporation Remote direct memory access (RDMA) high performance producer-consumer message processing
KR101870492B1 (ko) 2015-06-22 2018-06-22 엘에스산전 주식회사 Plc 시스템
JP6740683B2 (ja) 2016-04-07 2020-08-19 富士通株式会社 並列処理装置及び通信制御方法

Also Published As

Publication number Publication date
JP2002063060A (ja) 2002-02-28

Similar Documents

Publication Publication Date Title
US6145017A (en) Data alignment system for a hardware accelerated command interpreter engine
US7069373B2 (en) USB endpoint controller flexible memory management
KR100290943B1 (ko) 유니버설 시리얼 버스 제어 이전을 처리하는 장치 및 방법
US6088740A (en) Command queuing system for a hardware accelerated command interpreter engine
US7155585B2 (en) Method and system for synchronizing storage system data
US6449631B1 (en) Method and apparatus for transmitting data in a network wherein acknowledgment signals are transmitted to acknowledge receipt of data
US6070194A (en) Using an index and count mechanism to coordinate access to a shared resource by interactive devices
JP2802043B2 (ja) クロック故障検出回路
US7194517B2 (en) System and method for low overhead message passing between domains in a partitioned server
JP2846837B2 (ja) 障害を早期検出するためのソフトウェア制御方式のデータ処理方法
US7069305B2 (en) Computer system and a data transfer method thereof using remote direct memory access
JP4192416B2 (ja) 計算機システムおよびそのデータ転送方法
US7143206B2 (en) Method for controlling data transfer unit having channel control unit, storage device control unit, and DMA processor
WO2013165379A1 (en) Reflective memory bridge for external computing nodes
US20020112105A1 (en) Method and apparatus for efficient messaging between memories across a PCI bus
US5564023A (en) Method for accessing a sequencer control block by a host adapter integrated circuit
JPH11502341A (ja) プロセッサ間のデータ伝送用のリンクプロトコル
US20030005071A1 (en) Inter-processor communication system and method
JP4422304B2 (ja) 分散型コンピュータシステムを初期化するためのシステムおよびその方法
JP2570187B2 (ja) Dma転送装置および方法
JP2710587B2 (ja) 情報処理システム
JP2522412B2 (ja) プログラマブルコントロ―ラと入出力装置の間の通信方法
JPH0241535A (ja) データ処理装置
US7421459B2 (en) Buffer management for data transfers between a host device and a storage medium
JP2825589B2 (ja) バス制御方式

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080805

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: 20080826

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: 20080908

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

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121003

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131003

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees