JP4546943B2 - 転写メモリシステムに用いられるノードおよびメモリ領域管理方法 - Google Patents

転写メモリシステムに用いられるノードおよびメモリ領域管理方法 Download PDF

Info

Publication number
JP4546943B2
JP4546943B2 JP2006237407A JP2006237407A JP4546943B2 JP 4546943 B2 JP4546943 B2 JP 4546943B2 JP 2006237407 A JP2006237407 A JP 2006237407A JP 2006237407 A JP2006237407 A JP 2006237407A JP 4546943 B2 JP4546943 B2 JP 4546943B2
Authority
JP
Japan
Prior art keywords
area
node
information
transfer
change
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
JP2006237407A
Other languages
English (en)
Other versions
JP2008059420A (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 JP2006237407A priority Critical patent/JP4546943B2/ja
Publication of JP2008059420A publication Critical patent/JP2008059420A/ja
Application granted granted Critical
Publication of JP4546943B2 publication Critical patent/JP4546943B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

本発明は、転写メモリシステムにおけるメモリ領域管理技術に関する。
従来から、ネットワークに接続された計算機やコントローラ等の複数の処理装置(以下、ノードと呼ぶ)間において周期的な同報送信によりデータ共有する転写メモリシステムがある。この転写メモリシステムにおいて、ノードのデータ書き込み領域は、他のノードのデータ書き込み領域と重ならないようにする必要がある。また、転写データを使用する読み出し側のノードは、どのノードがどの領域に書き込みをしているかを知っている必要がある。このため、転写メモリシステムにおいて、予めノード毎に使用できるメモリ領域を固定化する方法がとられていた(特許文献1参照)。
特開平11−341038号公報
しかし、この転写メモリシステムにおいて、制御アプリケーションがシステム更新を行うときや、メモリ領域の使い勝手の向上させたいときに、各ノードのメモリ使用領域の変更が必要な場合もある。このような場合、各ノードのメモリ使用領域の変更は、ノードの稼動をいったん停止させ、管理者が手動で変更しなければなら無かった。
そこで、本発明は、前記した問題を解決し、転写メモリシステムにおけるメモリ使用領域の変更の手間を軽減する手段を提供することを目的とする。
このような課題を解決するために、本発明は、他のノードそれぞれへ、変更領域情報、確保領域情報およびメモリ上のデータの周期的な同報送信を行う転写メモリシステムの各ノードが、メモリ上の領域ごとに、この領域を確保しているノードの識別情報を示した領域管理情報を備える構成とした。そして、このノードにおいて、メモリ領域の変更が必要になったときには、変更領域を示した変更領域情報と、領域管理情報において自身のノードが確保している確保領域情報とを、他のノードへ同報送信する。このとき、ノードは、領域管理情報を参照して、変更領域情報に示される領域が他のノードにより確保されていないことを確認しておく。一方、自身のノードが、他のノードから、当該他のノードの確保領域情報および変更領域情報を受信したときには、これらの情報に基づき、領域管理情報を更新する。この後、ノードにおいてメモリ上へのデータ書き込み要求が発生したときには、この領域管理情報を参照して、自身のノードが確保している領域にデータを書き込む構成とした。
本発明によれば、転写メモリシステムのメモリ領域を変更するとき、ノードが自動で変更するので、ノードの稼動をいったん停止させ、管理者が手動で変更する必要がなくなる。また、転写メモリシステムのノードはそれぞれ、どのメモリ領域を確保しているか知った上で変更するので、メモリ領域の変更を確実に行うことができる。
以下、本発明を実施するための最良の形態(以下、実施の形態とする)について、図面を参照して詳細に説明する。
図1は、本発明の実施の形態の転写メモリシステムの全体構成を例示した図である。図1において、ノード1(1a,1b,1c,1d)はネットワーク14経由で、転写メモリ111(後記)に記憶されたデータのコピーや、転写メモリ111の転写管理情報の送受信を行う。ここでの転写メモリ111のデータのコピーや転写管理情報の送受信には、ブロードキャスト通信、IP(Internet Protocol)マルチキャスト通信等の同報送信を用いる。なお、システム内のノード数は、図1に例示した数に限定されない。
図2は、図1のノードの構成を示すブロック図である。ノード1は、コントローラ(制御装置)、ワークステーション、パーソナルコンピュータ等のコンピュータである。このノード1は、揮発/不揮発性メモリやハードディスク装置を含む記憶部11と、中央処理装置(CPU、Central Processing Unit)等からなる処理部12と、通信インタフェース(通信I/F)13とを備える。この通信インタフェース13は、ネットワーク14との物理的接続およびネットワークドライバやTCP(Transmission Control Protocol/Internet Protocol)、UDP/IP(User Datagram Protocol/Internet Protocol)レイヤまでのプロトコルが実装されている。なお、ノード1には、それぞれのノードを一意に識別するノード番号およびこのノード1が領域変更をする際の優先順位(あるいは優先度)が付与され、この優先順位に関する情報は記憶部11に記憶される。
記憶部11は、転写メモリ111と、領域管理テーブル(領域管理情報)112と、ノード稼動監視テーブル113とを備える。
転写メモリ111は、ネットワーク14経由で同報送信されたデータをノード1間の共有メモリデータとして格納する領域である。
領域管理テーブル112は、転写メモリ111の領域ごとのノード1(1a〜1d)による使用状況を示したテーブルである。この領域管理テーブル112の情報は、ノード1それぞれから同報送信された転写管理情報を基に、転写領域管理部123(後記)により書き込まれる。領域管理テーブル112の詳細は、図面を用いて後記する。
ノード稼動監視テーブル113は、システム内のノード1それぞれの稼動/停止状態管理情報を示したテーブルである。この情報も転写領域管理部123により書き込まれる。
処理部12は、受信処理部121と、送信処理部122と、転写領域管理部123と、転写メモリアクセス制御部124と、制御アプリケーション125とを備える。
受信処理部121は、他ノード(システム内の他のノード1)からフレームを受信する。そして、この受信したフレームのうち、転写データを転写メモリ111に記録し、転写管理情報を転写領域管理部123に転送する。
送信処理部122は、転写メモリ111に書き込まれたデータをフレーム化して、他ノードへ同報送信する。なお、この送信処理部122はタイマを備え、このタイマにより所定周期ごとに転写メモリ111に書き込まれたデータを同報送信する。また、転写メモリ111の転写管理情報もフレーム化して、他ノードへ同報送信する。
制御アプリケーション125は、転写メモリ111に対するデータ書き込みおよび読み込みを行う。
転写領域管理部123は、他ノードから受信した転写管理情報、または自ノードにおける制御アプリケーション125からの領域確保指示を基に、領域管理テーブル112に情報を書き込む。また、この転写領域管理部123は、転写管理情報の送信タイミング時に、自ノードの転写管理情報を作成し、送信処理部122に渡す。
転写メモリアクセス制御部124は、自ノードの領域管理テーブル112を参照して、転写メモリ111の有効領域(書き込みおよび読み取り可能な領域)を判断する。つまり、自ノードに確保された領域を判断する。そして、転写メモリアクセス制御部124は、この判断結果に基づき、制御アプリケーション125による転写メモリ111へのアクセスを制御する。
図3を用いて転写メモリ111を説明する。図3は、図2の転写メモリを例示した図である。転写メモリ111は、複数バイトを1ブロックとしたブロックに分けられ、例えば、図3に示すように、転写メモリ開始アドレス「A」から、1ブロックが「Bバイト」のブロックにより16個のブロックに分けられる。
次に、図4を用いて領域管理テーブル112を説明する。図4は、図2の領域管理テーブルを例示した図である。図4に示すように、領域管理テーブル112には、転写メモリ111の領域(ブロック)ごとに、そのブロックを識別するブロック番号と、そのブロックを確保しているノード1の識別情報である確保ノード番号と、そのブロックにおけるデータ更新時刻と、そのブロックが現在変更要求中であるときには、その変更要求の種類(開放/追加)を示した変更要求と、変更カウンタとが含まれる。この変更カウンタは、他ノードに対し、変更要求を行う残り回数を示したものである。ここでの変更要求は、後記する変更領域情報を含む転写管理情報の送信により行われる。なお、本実施の形態において、ある領域がノード1により確保されている状態とは、この領域管理テーブル112における確保ノード番号に、このノード1のノード番号が記載され、かつ、変更要求の欄に何も記載されていない状態のことである。
例えば、図4の領域管理テーブル112において、ブロック番号「2」のブロックを確保しているノードのノード番号は「1」であることを示す。また、このブロックにおけるデータ更新時刻は「10:10:00.123」であることを示す。
また、ブロック番号「4」のブロックは、ノード番号「3」のノード1により変更要求中であり、まだノード1に確保されていない状態であることを示す。そして、ノード番号「3」のノード1が、この領域を確保するためには、あと「3(回)」、他ノードへ追加要求をする必要があることを示す。このように、領域の変更を確定する前に、複数回変更要求を行うのは、同じ領域について他ノードからの変更要求があったとき、同じ領域を複数のノード1に割り当てないようにするためである。なお、このとき、どちらのノード1に領域を割当てるかは、記憶部11に記憶されるノードごとの優先順位の情報に基づき判断する。このときの判断の詳細は、フローチャートを用いて後記する。
次に、図5を用いてノード稼動監視テーブル113を説明する。図5は、図2のノード稼動監視テーブルを例示した図である。図5に示すように、ノード稼動監視テーブル113には、システムに接続されているノード1のノード番号と、そのノード1の稼動状態と、管理情報更新時間(転写管理情報の更新時刻)とが示される。例えば、図5のノード稼動監視テーブル113において、ノード番号「1」のノード1は「稼動中」であり、管理情報の更新時刻は「10:10:00.403」であることを示す。また、ノード番号「3」のノード1は「停止中」であり、管理情報の最終更新時刻は「10:08:00.321」であることを示す。さらに、ノード番号「4」のノード1は「無(ネットワーク14に接続されていない状態)」であることを示す。
図6(a)は、本実施の形態における転写データ伝送フレームを例示した図である。図6(a)を用いてノード1から所定周期で同報送信される転写データ伝送フレームを説明する。図6(a)に示すように、転写データ伝送フレームは、ヘッダ部61と書込データ62とから構成される。ヘッダ部61には、転写データ伝送フレーム識別子、フレームサイズ、送信元ノード番号、フレーム通番、送信周期等の情報が含まれる。また、書込データ62には、総書込領域数(ブロック数)と、各書込領域ごとに、書込先頭ブロック番号、連続ブロック数、書込データ等が含まれる。
ノード1は、このような転写ノード伝送フレームを他ノードへ送信することにより、自ノードの転写メモリ111に書き込まれたデータを他ノードへ転写する。
次に、転写管理情報伝送フレームを説明する。図7は、本実施の形態における転写管理情報伝送フレームを例示した図である。図7に例示するように、転写管理情報伝送フレームは、ヘッダ部71と、転写管理情報72とから構成され、この転写管理情報72は、確保領域情報721と変更領域情報722とが含まれる。ヘッダ部71には、転写管理情報伝送フレーム識別子、フレームサイズ、送信元ノード番号、フレーム通番、送信周期等の情報が示される。確保領域情報721には、総確保領域数、フレームを送信するノード1が送信時点で確保している領域の先頭ブロック番号(確保先頭ブロック番号)、先頭ブロックからの連続ブロック数が含まれる。また、変更領域情報722は、総変更領域数、変更要求の対象である領域の先頭ブロック番号(変更先頭ブロック番号)、先頭ブロックからの連続ブロック数、変更区分(追加/開放)が含まれる。
ノード1は、このような転写管理情報伝送フレームを他ノードへ送信することにより、システム内の他ノードに転写メモリ111の確保領域、変更領域(追加領域、開放領域)を通知することができる。
次に、図6(b)を用いて、制御アプリケーション125が転写メモリ111の読み出しを実行するときに引き渡されるデータのデータフォーマットを説明する。図6(b)は、制御アプリケーションが転写メモリの読み出しを実行するときに引き渡されるデータのデータフォーマットを例示した図である。図6(b)に示すように、転写メモリ111の読み出しを実行するときに引き渡されるデータは、ブロック番号ごとに、そのブロックに記憶されたデータと、そのデータに関する付加情報とが含まれる。この付加情報は、そのデータが正常なものであるか、未更新(所定期間以上更新されていないもの)であるか、無効なものかを示した情報である。この付加情報の詳細は、後記する。
<動作概要>
次に、図8を用いて、ノード1の動作の概要を説明する。図8は、図2のノードの動作の概要を示したフローチャートである。
まず、ノード1は、ネットワーク14(図1参照)に接続された他ノードから転写管理情報を受信し、この受信した転写管理情報に基づく領域管理テーブルの更新処理を行う(S81)。次に、ノード1は、転写管理情報の送信処理を行う(S82)。つまり、自身のノード1が確保している領域の情報と、変更要求の領域があればその領域の情報を含む転写管理情報を、他ノードへ同報送信する。そして、ノード1は、転写データの送信処理を行う。つまり、転写データを他ノードへ送信(同報送信)する(S83)。また、他ノードからの転写データの受信処理を行う(S84)。転写メモリシステムを構成するノード1は以上のような処理を繰り返し、お互いに転写メモリ111上のデータを共有する。
<他ノードから転写管理情報を受信して領域管理テーブルを更新する手順>
次に、図9を用いて、図8のS81の処理を詳細に説明する。図9は、図2の転写領域管理部による領域管理テーブルの更新手順を示したフローチャートである。転写領域管理部123は、本システムが起動されると、領域管理テーブル112およびノード稼動監視テーブル113のデータをクリアし、以下の手順を実行する。
転写領域管理部123は、受信処理部121経由で転写管理情報伝送フレーム(図7参照)を受信すると(S302のYes)、受信したフレームのヘッダ部71から送信元ノード番号を取り込む(S303)。次に、転写領域管理部123は、受信したフレームにおける確保領域情報721を領域管理テーブル112に反映する(S304)。
例えば、S302で受信したフレームにおける送信元ノード番号が「1」であり、確保領域情報721に示される確保領域のブロック番号が「2,13〜15」であるとき、転写領域管理部123は、この情報を、図4に例示するような領域管理テーブル112として反映する。
次に、転写領域管理部123は、S302で受信したフレームに、変更領域情報722が有るか否かを判断する(S305)。ここで、S302で受信したフレームに、変更領域情報722が有るときには(S305のYes)、この変更領域情報722に示される追加領域(新追加領域)に対し、既に他ノードからの追加要求が有るか否かを確認する(S306)。このときの確認は、領域管理テーブル112における、この領域(ブロック)に関する変更要求の有無により確認する。
一方、S305において、受信したフレームに変更領域情報722が無いときは(S305のNo)、S310へ進む。
S306において、変更領域情報722に示される追加領域について、他ノードからの追加要求が無いとき(S306のNo)、S302で受信したフレームにおける変更領域情報722に示される送信元ノード番号、変更領域の情報(追加領域情報)を領域管理テーブル112に反映する(S308)。
一方、S306において、新追加領域は既に追加要求が有ると判断されたとき(S306のYes)、つまり、変更領域情報722に示される追加領域について、既に他ノードから追加要求がされているとき、転写領域管理部123は、今回、変更領域情報722により追加要求をしているノード1(新ノード)と、既に追加要求を行っているノード1(既ノード)との間で優先順位の比較を行い、優先順位の高いノード1の追加要求を領域管理テーブル112に反映する。
すなわち、まず、転写領域管理部123は、記憶部11に記憶されている各ノード1の優先順位の情報を参照して、新ノードの方が、既ノードよりも優先順位が高いか否かを判断する(S307)。そして、新ノードの方が、既ノードよりも優先順位が高いと判断したとき(S307のYes)、S302で受信したフレームに示される変更領域情報722に示される送信元ノード番号、変更領域の情報(追加領域情報)を領域管理テーブル112に反映し(S308)、次に、転写領域管理部123は、受信したフレームに示される開放領域情報を領域管理テーブル112に反映する(S309)。
一方、S307において、既ノードの方が、新ノードよりも優先順位が高いと判断したとき(S307のNo)、S309へ進む。
このようにして、転写領域管理部123は、システム内の他ノードから受信したフレームを基に、領域管理テーブル112にデータを更新する。この後、転写領域管理部123は、ノード稼動監視テーブル113における、該当ノード(転写管理情報伝送フレームの送信元のノード)の状態を「稼動」に設定する(S310)。また、転写領域管理部123は、該当ノードの管理情報更新時刻を現在時刻に更新し(S311)、ノード稼動監視テーブル113を更新すると、S302へ戻り、転写管理情報伝送フレームの受信を待つ。
なお、前記したS302において、まだ転写管理情報伝送フレームを受信していないとき(S302のNo)、転写領域管理部123は、ノード稼動監視テーブル113を監視し、管理情報更新時刻が、停止判断時間を超過しているノードが有るか否かを判断する(S312)。つまり、所定時間、転写管理情報伝送フレームを受信していないノードが有るか否かを判断する。ここで、ノード稼動監視テーブル113に停止判断時間を超過しているノードが有る場合(S312のYes)、ノード稼動監視テーブル113の該当ノードの状態(稼動状態)に「停止」を設定し、S311へ進む。一方、ノード稼動監視テーブル113に停止判断時間を超過しているノードが無い場合(S312のNo)、S302へ戻り、転写管理情報伝送フレームの受信を待つ。
<転写管理情報の送信処理>
次に、図10を用いて、図8のS82の処理を詳細に説明する。図10は、図2の転写領域管理部による転写管理情報送信手順を示したフローチャートである。転写領域管理部123は、転写管理情報伝送フレームの周期送信タイミングになると起動され、以下の手順を実行する。
まず、転写領域管理部123は、領域管理テーブル112のデータを読み込む(S401)。次に、S401で読み込んだデータから、自ノード番号が設定されている領域の確保領域情報(図7の確保領域情報721参照)を生成する(S402)。例えば、自ノードのノード番号が「1」のとき、図4に例示した領域管理テーブル112のうち、このノード番号「1」が設定されている領域のブロック番号「2,13〜15」を用いて、当該ノード1の確保領域情報721を生成する。
また、転写領域管理部123は、S401で読み込んだデータのうち、自ノード番号が設定されている領域について、変更要求(追加要求、または開放要求)が設定されているか否かを確認する(S403)。ここで、当該領域に変更要求が設定されていない場合(S403のNo)、転写領域管理部123は、この確保領域情報721に、ヘッダ部71を付加した転写管理情報を生成する(S406)。この後、転写領域管理部123は、S406で生成した転写管理情報を送信処理部122へ出力し、送信処理部122は、この転写管理情報を転写管理情報伝送フレームに変換して、他ノードへ同報送信する(S407)。そして、次の周期送信タイミングになったとき、S401以降の処理を再度実行する。
一方、S403において、当該領域に変更要求が設定されている場合(S403のYes)、転写領域管理部123は、自ノード番号と変更要求が設定されている変更領域情報722を生成する(S404)。そして、転写領域管理部123は、領域管理テーブル112において、確保ノード番号として自ノード番号が設定されており、かつ、変更要求が設定されている全てのブロックの変更カウンタ値を「1」減算する(S405)。次に、S406へ進み、転写領域管理部123は、転写管理情報を生成する(S406)。なお、ここでの転写管理情報は、S402で生成した確保領域情報と、S404で生成した変更領域情報とを含むものである。そして、前記したS407と同様に、送信処理部122は、S406で生成した転写管理情報を転写管理情報伝送フレームに変換して、他ノードへ同報送信する。そして、次の周期送信タイミングになったとき、S401以降の処理を再度実行する。
このようにして、領域管理テーブル112において、転写メモリ111の変更要求が設定されている場合、その旨を通知する転写管理情報伝送フレームがシステム内のノード1に周期的に伝送される。
<自発的に領域管理テーブルを更新するときの手順。(1)領域追加>
次に、図11を用いて、制御アプリケーション25が転写メモリ111の領域追加命令を出力したときの、転写領域管理部による領域管理テーブルの更新手順を説明する。図11は、図2の転写領域管理部による領域管理テーブルの更新手順を示したフローチャートである。
まず、転写領域管理部123は、制御アプリケーション25から、転写メモリ111において領域(ブロック)の追加を指示する領域追加命令を受け付けると(S500)、領域管理テーブル112のデータを読み込む(S501)。
転写領域管理部123は、読み込んだ領域管理テーブル112のデータを参照して、S500で受け付けた追加命令の対象である領域(追加要求領域)が既に使われているか否かを確認する(S502)。つまり、領域管理テーブル112(図7参照)において、当該追加要求領域(ブロック)を確保しているノード1があるか否かを判断する。ここで、追加要求領域を確保しているノード1が有るとき(S502のYes)、そのまま処理を終了するが、この追加要求領域が、追加要求領域を確保しているノード1が無いとき(S502のNo)、以下の処理を実行する。
すなわち、転写領域管理部123は、領域管理テーブル112において、該当領域(追加要求領域)の「確保ノード番号」に自ノード番号に設定し、「変更要求」に「追加」を設定する(S503)。また、該当領域の変更カウンタに初期値を設定する(S504)。ここでの初期値は、例えば「3(回)」等である。
この後、転写領域管理部123は、領域管理テーブル112のデータを基に、前記した図10の手順にしたがって、転写管理情報送信処理を実行し(S505)、自ノードが領域追加を要求している旨を、転写管理情報伝送フレームにより他ノードへ通知する。
次に、転写領域管理部123は、領域管理テーブル112における「変更カウンタ」の値を監視し、この値が0以下になったか否か判断する(S506)。つまり、転写領域管理部123は、自ノードが追加領域を要求していることを示す転写管理情報伝送フレームを、S504で設定した初期値の回数分(例えば、3回分)、同報送信したか否かを確認する。
ここで、まだ「変更カウンタ」の値が0よりも大きいとき(S506のNo)、転写領域管理部123は、受信処理部121のバッファ等をチェックして、同じ領域に対し追加変更要求する他ノードからのフレーム(転写管理情報伝送フレーム)が受信されているか否かを判断する(S507)。つまり、自ノードが追加したい転写メモリ111の領域(ブロック)について、他ノードからも追加要求がされているか否かを判断する。
ここで、他ノードからも当該追加領域に対し追加要求がされているときには(S507のYes)、前記した図9のS307と同様に、転写領域管理部123は、自ノード(既ノード)と、他ノード(新ノード)との優先順位の比較を行う(S508)。
ここで、新ノードの方が、優先順位が高ければ(S508のYes)、領域管理テーブル112における当該追加領域の「確保ノード番号」、「変更要求」、「変更カウンタ」の値をクリアする(S509)。つまり、他ノード(新ノード)の追加要求を優先させるため、領域管理テーブル112における自ノードの追加要求をクリアする。
一方、S508において、他ノード(新ノード)よりも自ノード(既ノード)の方が、優先順位が高ければ(S508のNo)、S506へ戻る。
なお、S506おいて、領域管理テーブル112における「変更カウンタ」の値が既に0以下になっているとき(S506のYes)、転写領域管理部123は、当該追加領域に関する「変更要求」、「変更カウンタ」をクリアし、領域を確保する(S510)。この後、転写領域管理部123は、前記した図9と同様の手順により、領域管理テーブル112における自ノードの情報を基に転写管理情報生成処理を実行し、自ノードの領域が追加されたことを他ノードに通知する。
なお、S507において、当該追加領域に対し他ノードから追加変更要求をする転写管理情報伝送フレームが無いとき(S507のNo)、S506へ戻り、「変更カウンタ」が0以下になった段階で(S506のYes)、S510へ進む。また、S508において、他ノードよりも自ノードの方が、優先順位が高いときも(S508のNo)、S506へ戻り、「変更カウンタ」が0以下になった段階で(S506のYes)、S510へ進む。
このようにして、ノード1は、転写メモリ111に自ノードの領域を追加する。ここで、ノード1は他ノードからも同じ領域の追加要求があったとき、それぞれのノードに設定された優先順位により、どちらのノードの追加要求を優先するかを判断するので、追加要求の衝突を避けることができる、また、ノード1は、制御アプリケーション125から領域追加命令があったとき、すぐに転写メモリ111に領域追加をするのではなく、所定時間内(つまり、追加要求を所定回数同報送信する間)、他ノードからの追加要求の受信を待つ。これにより優先順位の高いノードに対し確実に転写メモリ111の領域を割り当てることができる。さらに、このように転写メモリ111の領域追加要求を複数回同報送信することで、自ノードの領域追加要求を、確実にシステム内の他ノードに周知させることができる。
<自発的に領域管理テーブルを更新するときの手順。(2)領域開放>
次に、図12を用いて、制御アプリケーション25が転写メモリ111の領域開放命令を出力したときの、転写領域管理部による領域管理テーブルの更新手順を説明する。図12は、図2の転写領域管理部による領域管理テーブルの更新手順を示したフローチャートである。
まず、転写領域管理部123は、制御アプリケーション125から、転写メモリ111の領域(ブロック)の開放命令を受け付けると(S600)、図11のS501と同様に領域管理テーブル112のデータを読み込む(S601)。
転写領域管理部123は、読み込んだ領域管理テーブル112のデータを参照して、S600で受け付けた開放命令の対象である領域(開放要求領域)は、自ノードが確保しているか否かを確認する(S602)。つまり、領域管理テーブル112(図7参照)において当該開放要求領域(ブロック)の「確保ノード番号」が自ノード番号か否かを判断する。ここで、当該開放要求領域を自ノードが確保していないとき(S602のNo)、そのまま処理を終了するが、当該開放要求領域を自ノードが確保していることが確認できたとき(S602のYes)、転写領域管理部123は、以下の処理を実行する。
すなわち、まず、転写領域管理部123は、領域管理テーブル112において、当該開放要求領域(ブロック)における「変更要求」を「開放」に設定する(S603)。また、当該開放要求領域における変更カウンタに初期値を設定する(S604)。なお、ここでの初期値は、前記した領域追加の場合と同様に、例えば「3(回)」等とする。
この後、転写領域管理部123は、領域管理テーブル112のデータを基に、前記した図9の手順にしたがって、転写管理情報送信処理を実行し(S605)、自ノードが領域開放を要求している旨を転写管理情報伝送フレームにより他ノードへ通知する。
次に、転写領域管理部123は、前記した領域追加の場合と同様に、領域管理テーブル112における「変更カウンタ」の値を監視し、この値が0以下になったか否か判断する(S606)。つまり、転写領域管理部123は、自ノードが領域開放を要求していることを示す転写管理情報伝送フレームを、S604で設定した初期値の回数分(例えば、3回分)、同報送信したか否かを確認する。そして、「変更カウンタ」の値が0以下になったとき(S606のYes)、転写領域管理部123は、領域管理テーブル112における当該開放要求領域の「確保ノード番号」、「変更要求」、「変更カウンタ」の値をクリアし(S607)、当該開放要求領域の開放を確定する。
このようにして、ノード1は、転写メモリ111における自ノードの領域の開放を行う。また、領域を開放する場合も、転写メモリ111の領域開放要求を複数回同報送信することで、自ノードの領域開放要求を、確実にシステム内の他ノードに周知させることができる。
<制御アプリケーションが転写メモリを読み出す手順>
次に、図13を用いて、図8のS83の処理を詳細に説明する。図13は、図8のS83の処理において、図2の制御アプリケーションが転写メモリを読み出す手順を示したフローチャートである。
まず、転写メモリアクセス制御部124は、制御アプリケーション125から転写メモリ111の読み出し要求を受け付ける(S700)。これを受けて転写メモリアクセス制御部124は、制御アプリケーション125が読み出し要求をした転写メモリ111の領域(ブロック)の中から、未処理の読出要求領域を1つ選択する(S701)。
次に、転写メモリアクセス制御部124は、領域管理テーブル112を参照して、当該選択領域を確保しているノード1があるか否かを判断する(S702)。ここで、当該選択領域を確保しているノード1が有るとき(S702のYes)、ノード稼動監視テーブル113(図5参照)を参照して、このノード1の状態が「稼動」か、否かを判断する(S703)。ここで、このノード1が「稼動」であるとき(S703のYes)、領域管理テーブル112における当該選択領域のデータ更新時刻を参照して、前回のデータ更新から所定時間経過しているか否かを判断する(S704)。ここで、まだ当該選択領域における前回のデータ更新から所定時間経過していないとき(S704のYes)、転写メモリアクセス制御部124は、制御アプリケーション125へ引き渡すデータフォーマット(図6(b)参照)に、転写メモリ111の当該選択領域に記録されたデータを格納する。また、このデータの付加情報として「正常」をセットする(S705)。つまり、このデータは、稼動中のノード1が、所定時間以内に書き込んだデータであるので、正常なデータである可能性が高いことを示しておく。
次に、転写メモリアクセス制御部124は、S700で要求された読出要求領域すべてについて、処理したとき(S709のYes)、制御アプリケーション125へ転写データを引き渡す(S710)。この後、制御アプリケーション125は、この転写データを、送信処理部122経由で、システム内の他ノードへ送信(同報送信)する。なお、S700で要求された読出要求領域のうち、まだ処理が終了していない領域があるときは(S709のNo)、S701へ戻る。
なお、S702において、当該選択領域を確保しているノード1が無いとき(S702のNo)、および、当該選択領域を確保しているノード1の状態が「稼動」ではないとき(S703のNo)、S706へ進む。そして、転写メモリアクセス制御部124は、制御アプリケーション125へ引き渡すデータの当該選択領域に関する付加情報に「無効」をセットし(S706)、S709へ進む。すなわち、転写メモリ111の当該選択領域が、どのノード1にも確保されていない場合や、稼動していないノード1に確保されている場合、この領域のデータは無効であることを示しておく。
また、S704において、領域管理テーブル112における当該選択領域における前回のデータ更新から、所定時間経過しているとき(S704のYes)、転写メモリアクセス制御部124は、制御アプリケーション125へ引き渡すデータフォーマットに、データを格納し、このとき、当該選択領域に関する付加情報に「未更新」をセットする(S707)。つまり、当該選択領域に書き込まれたデータは、稼動しているノード1により書き込まれたものであるが、前回のデータ更新から所定時間経過しているので、その旨を付加情報として付与する。そして、S709へ進む。
このようにして、制御アプリケーション125には、転写メモリ111の転写データが引き渡される。このとき、転写アクセス制御部124は、転写データに含まれるデータそれぞれが「正常」か、「未更新」か、「無効」か、を付加情報として付与して引き渡すので、この転写データを受け取った制御アプリケーション125は、データそれぞれの信頼性を確認することができる。
なお、前記した実施の形態において、ノード1はノード稼動監視テーブル113を含まない構成としてもよい。また、制御アプリケーション125に引き渡される転写データには、付加情報を含めないようにしてもよい。
さらに、前記した実施の形態において、ノード1は、メモリ領域の追加を確定させるまで、転写管理情報を所定周期で、所定回数(例えば、3回)生成し、送信するようにしたが、メモリ領域の追加の要求命令が発生してから、所定時間経過するのを待って、メモリ領域の追加を確定させるようにしてもよい。このような方法によっても、他ノードの追加要求と自ノードの追加要求とが衝突するのを防止することができる。
本実施の形態に係るノード1は、前記したような処理を実行させる専用回路あるいはプログラムによって実現することができる。ノード1をプログラムにより実現する場合、そのプログラムをコンピュータによる読み取り可能な記憶媒体(CD−ROM等)に記憶して提供することが可能である。また、そのプログラムを、ネットワークを通して提供することも可能である。
本発明の実施の形態のシステムの全体構成を例示した図である。 図1のノードの構成を示すブロック図である。 図2の転写メモリを例示した図である。 図2の領域管理テーブルを例示した図である。 図2のノード稼動監視テーブルを例示した図である。 (a)は、本実施の形態における転写データ伝送フレームを例示した図であり、(b)は、(a)の転写データ伝送フレームに含まれる書込データを例示した図である。 本実施の形態における転写管理情報伝送フレームを例示した図である。 図2のノードの動作の概要を示したフローチャートである。 図2の転写領域管理部による領域管理テーブルの更新手順を示したフローチャートである。 図2の転写領域管理部による転写管理情報送信手順を示したフローチャートである。 図2の転写領域管理部による領域管理テーブルの更新手順を示したフローチャートである。 図2の転写領域管理部による領域管理テーブルの更新手順を示したフローチャートである。 図2の制御アプリケーションが転写メモリを読み出す手順を示したフローチャートである。
符号の説明
1 ノード
11 記憶部
12 処理部
13 通信インタフェース
14 ネットワーク
24 転写メモリアクセス制御部
25 制御アプリケーション
61 ヘッダ部
62 書込データ
71 ヘッダ部
72 転写管理情報
111 転写メモリ
112 領域管理テーブル
113 ノード稼動監視テーブル
121 受信処理部
122 送信処理部
123 転写領域管理部
124 転写メモリアクセス制御部
125 制御アプリケーション
721 確保領域情報
722 変更領域情報

Claims (5)

  1. ネットワークに接続された他のノードそれぞれへ、変更領域情報、確保領域情報およびメモリ上のデータの周期的な同報送信を行い、前記ノードのメモリ上のデータを前記ノード同士で共有する転写メモリシステムに用いられるノードであって、
    情報の送受信を行う通信インタフェース部と、
    前記メモリ上の領域ごとに、前記領域を確保しているノードの識別情報を示した領域管理情報を記憶する記憶部と、
    前記転写メモリシステムを構成する他のノードから、このノードが確保しているメモリ上の領域を示した前記確保領域情報と、このノードの追加要求の対象である前記メモリ上の領域を示した前記変更領域情報とを、前記通信インタフェース部を介して前記ネットワーク経由で受信し、
    前記受信した確保領域情報および変更領域情報に基づき、前記領域管理情報を更新し、
    前記メモリ上における自身のノードの確保領域の追加命令が発生したとき、前記領域管理情報を参照して、前記追加命令の対象となる領域が、前記他のノードにより確保されているか否かを判断し、
    前記追加命令の対象となる領域が、前記他のノードにより確保されていないと判断したとき、前記追加命令の対象となる領域を示した変更領域情報と、前記領域管理情報において自身のノードが確保している確保領域情報とを、前記通信インタフェース部を介して前記ネットワーク経由で、前記他のノードへ送信し、
    前記メモリ上へのデータ書き込み要求が発生したとき、前記領域管理情報を参照して、前記自身のノードが確保している領域にデータを書き込み、前記データを書き込んだメモリ上のデータを、前記通信インタフェース部を介して前記ネットワーク経由で、前記他のノードへ送信する
    処理部と、
    を備え
    前記処理部は、
    前記変更領域情報の送信後、所定時間以内に、前記他のノードから、前記送信した変更領域情報に示される領域と同じ領域に関する変更領域情報を受信しなかった場合、再度、前記変更領域情報を送信する処理を、所定回数実行した後、前記領域管理情報において前記領域を確保しているノードの識別情報を、自身のノードの識別情報とすることを特徴とする転写メモリシステムに用いられるノード。
  2. 前記記憶部は、
    前記転写メモリシステムを構成するノードそれぞれの領域変更に関する優先度を示した優先度情報をさらに記憶し、
    前記処理部は、
    前記変更領域情報の送信後、所定時間以内に、前記他のノードから、前記送信した変更領域情報に示される領域と同じ領域に関する変更領域情報を受信したとき、
    前記優先度情報を参照して、前記他のノードが、自身のノードよりも優先度が高いか否かを判断し、
    前記他のノードが、前記自身のノードよりも優先度が高いと判断したとき、前記変更領域情報を送信しないことを特徴とする請求項1に記載の転写メモリシステムに用いられるノード。
  3. 前記変更領域情報は、前記ノードの開放要求の対象である前記メモリ上の領域を含み、
    前記処理部は、
    前記受信した確保領域情報および変更領域情報に基づき、前記領域管理情報を更新し、
    前記メモリ上における自身のノードの確保領域の開放命令が発生したとき、前記領域管理情報を参照して、前記開放命令の対象となる領域が、前記自身のノードにより確保されているか否かを判断し、
    前記開放命令の対象となる領域が、前記自身のノードにより確保されていると判断したとき、前記変更領域情報と、前記領域管理情報において自身のノードが確保している確保領域情報とを、前記ネットワーク経由で、前記他のノードへ送信することを特徴とする請求項1に記載の転写メモリシステムに用いられるノード。
  4. 前記記憶部は、
    前記転写メモリシステムを構成するノードそれぞれの稼動状態を示したノード稼動監視テーブルをさらに備え、
    前記処理部は、
    所定時間以内に、前記他のノードから、前記確保領域情報を受信し無かった場合、前記ノード稼動監視テーブルにおける、当該ノードの稼動状態を停止として記録することを特徴とする請求項1に記載の転写メモリシステムに用いられるノード。
  5. 情報を処理する処理部と、情報を記憶する記憶部と、情報の送受信を行う通信インタフェースとを備え、ネットワークに接続された他のノードそれぞれへ、変更領域情報、確保領域情報およびメモリ上のデータの周期的な同報送信を行い、前記ノードのメモリ上のデータを前記ノード同士で共有する転写メモリシステムに用いられるノードが、
    前記転写メモリシステムを構成する他のノードから、前記このノードが確保しているメモリ上の領域を示した確保領域情報と、このノードによる変更要求の対象である前記メモリ上の領域を示した変更領域情報とを前記通信インタフェース部を介して前記ネットワーク経由で受信し、
    前記受信した確保領域情報および変更領域情報に基づき、前記メモリ上の領域ごとに、前記領域を確保しているノードの識別情報を示した領域管理情報を更新し、
    前記メモリ上における自身のノードの確保領域の変更命令が発生したとき、前記領域管理情報を参照して、前記変更命令の対象となる領域が、前記他のノードにより確保されているか否かを判断し、
    前記変更命令の対象となる領域が、前記他のノードにより確保されていないと判断したとき、前記変更命令の対象となる領域を示した変更領域情報と、前記領域管理情報において自身のノードが確保している確保領域情報とを前記通信インタフェース部を介して前記ネットワーク経由で、前記他のノードへ送信し、
    前記変更領域情報の送信後、所定時間以内に、前記他のノードから、前記送信した変更領域情報に示される領域と同じ領域に関する変更領域情報を受信しなかった場合、再度、前記変更領域情報を送信する処理を、所定回数実行した後、前記領域管理情報において前記領域を確保しているノードの識別情報を、自身のノードの識別情報とする
    ことを特徴とするメモリ領域管理方法。
JP2006237407A 2006-09-01 2006-09-01 転写メモリシステムに用いられるノードおよびメモリ領域管理方法 Expired - Fee Related JP4546943B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006237407A JP4546943B2 (ja) 2006-09-01 2006-09-01 転写メモリシステムに用いられるノードおよびメモリ領域管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006237407A JP4546943B2 (ja) 2006-09-01 2006-09-01 転写メモリシステムに用いられるノードおよびメモリ領域管理方法

Publications (2)

Publication Number Publication Date
JP2008059420A JP2008059420A (ja) 2008-03-13
JP4546943B2 true JP4546943B2 (ja) 2010-09-22

Family

ID=39242050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006237407A Expired - Fee Related JP4546943B2 (ja) 2006-09-01 2006-09-01 転写メモリシステムに用いられるノードおよびメモリ領域管理方法

Country Status (1)

Country Link
JP (1) JP4546943B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6441153B2 (ja) * 2015-04-07 2018-12-19 株式会社日立製作所 データ共有システム、及びデータ共有プログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01263762A (ja) * 1988-04-13 1989-10-20 Mitsubishi Electric Corp マルチプロセッサシステム
JPH06332869A (ja) * 1993-05-24 1994-12-02 Hitachi Ltd 共有データ管理システム
JPH07152640A (ja) * 1993-11-26 1995-06-16 Hitachi Ltd 分散共有メモリ方式
JPH09237244A (ja) * 1996-02-29 1997-09-09 Hitachi Ltd メモリ転写機能を有する情報処理装置
JPH11341038A (ja) * 1998-05-28 1999-12-10 Hitachi Ltd ノード装置及びデータ通信装置
JP2002024189A (ja) * 2000-06-30 2002-01-25 Hitachi Eng Co Ltd 超並列コンピュータ及びその処理方法
JP2003316753A (ja) * 2002-04-26 2003-11-07 Fujitsu Ltd マルチプロセッサ装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01263762A (ja) * 1988-04-13 1989-10-20 Mitsubishi Electric Corp マルチプロセッサシステム
JPH06332869A (ja) * 1993-05-24 1994-12-02 Hitachi Ltd 共有データ管理システム
JPH07152640A (ja) * 1993-11-26 1995-06-16 Hitachi Ltd 分散共有メモリ方式
JPH09237244A (ja) * 1996-02-29 1997-09-09 Hitachi Ltd メモリ転写機能を有する情報処理装置
JPH11341038A (ja) * 1998-05-28 1999-12-10 Hitachi Ltd ノード装置及びデータ通信装置
JP2002024189A (ja) * 2000-06-30 2002-01-25 Hitachi Eng Co Ltd 超並列コンピュータ及びその処理方法
JP2003316753A (ja) * 2002-04-26 2003-11-07 Fujitsu Ltd マルチプロセッサ装置

Also Published As

Publication number Publication date
JP2008059420A (ja) 2008-03-13

Similar Documents

Publication Publication Date Title
US10254998B2 (en) Coordinated garbage collection of flash devices in a distributed storage system
JP4543780B2 (ja) 電力管理システム、電力管理方法及びプログラム
JP5274669B2 (ja) リンクデータ伝送方法、ノードおよびシステム
JP5094460B2 (ja) 計算機システム、データ一致化方法およびデータ一致化処理プログラム
TWI755538B (zh) 通訊裝置、通訊方法、程式及通訊系統
WO2009015549A1 (fr) Système à mémoire cache partagée, son procédé de mise en œuvre et son logiciel de mise en œuvre
JP2008046969A (ja) 共有メモリのアクセス監視方法及び装置
JP2010141600A (ja) 画像処理システム、画像処理装置及び画像処理方法
JP2008140142A (ja) 情報処理システム
JP2007141047A (ja) 計算機システム及び計算機システムのデータ複製方法
JP4546943B2 (ja) 転写メモリシステムに用いられるノードおよびメモリ領域管理方法
JP4958611B2 (ja) 通信装置、ネットワークシステム、通信方法、及びプログラム
JP2007226742A (ja) 記憶制御装置、記憶制御方法、記憶制御プログラムおよび情報処理装置
JP2003157189A5 (ja)
WO2020029778A1 (zh) 拥塞控制方法及相关设备
JP2009111758A (ja) 転送システム及び転送装置
JP2008107997A (ja) データ通信方法、データ通信装置及びデータ通信システム
JP2008107997A5 (ja)
JP2007537519A5 (ja)
JP2008294671A (ja) 応答制御方法およびデバイス装置
KR101486546B1 (ko) 장애 대비를 위한 복제 시스템 및 그 방법
JP2008046977A (ja) 画像処理システム及び画像形成装置
WO2018122893A1 (ja) データアクセスシステムおよびデータアクセス方法
JP2006195800A (ja) 無線画像形成システム
JP4539156B2 (ja) 文書共有システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090907

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

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

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

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4546943

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees