JP2010205005A - 共通資源管理システム、方法、及び、プログラム - Google Patents

共通資源管理システム、方法、及び、プログラム Download PDF

Info

Publication number
JP2010205005A
JP2010205005A JP2009050362A JP2009050362A JP2010205005A JP 2010205005 A JP2010205005 A JP 2010205005A JP 2009050362 A JP2009050362 A JP 2009050362A JP 2009050362 A JP2009050362 A JP 2009050362A JP 2010205005 A JP2010205005 A JP 2010205005A
Authority
JP
Japan
Prior art keywords
node
common resource
resource management
management table
pointer
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
JP2009050362A
Other languages
English (en)
Other versions
JP5375205B2 (ja
Inventor
Toshiaki Oi
堂史昌 大井
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009050362A priority Critical patent/JP5375205B2/ja
Publication of JP2010205005A publication Critical patent/JP2010205005A/ja
Application granted granted Critical
Publication of JP5375205B2 publication Critical patent/JP5375205B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】特定のノードにアクセスを集中させることなく、また、ネットワークの規模に依存せずに資源の取得を可能とする共通資源管理システムを提供する。
【解決手段】共通資源管理テーブル15は、ネットワーク内の複数のノードが共通に使用可能な共通資源の使用状況を管理する。共通資源管理テーブル移動手段11は、共通資源管理テーブル15を、一のノードから別のノードに移動させる。テーブルポインタ14は、共通資源管理テーブルを保有するノードの識別情報を記憶する。テーブルポインタ更新手段12は、共通資源管理テーブルが移動した際に、テーブルポインタ14に、移動先のノードの識別情報を記憶する。
【選択図】図1

Description

本発明は、共通資源管理システム、方法、及び、プログラムに関し、更に詳しくは、複数のノードで共有可能な資源を管理する共通資源管理システム、方法、及び、プログラムに関する。
分散並列処理の分野で、複数のノードが共通の資源を利用可能なシステムがある。一般に、そのようなシステムでは、共通資源の管理テーブルを1つのノードに固定し、そのノードが資源の割り当て及び管理を行う。共通資源管理テーブルは、並列処理システム内の様々なプロセスから利用される。このため、共通資源管理テーブルが置かれたノードにアクセスが集中することになり、そのノードのアクセス負荷が高くなる。また、共通資源管理テーブルは、そのアクセスに排他制御を必要とするため、共通資源管理テーブルに関わる処理は、システムの運用効率に影響を与える。
特定ノードへのアクセス集中を回避できる技術として、特許文献1に記載の技術がある。ネットワークには、複数の資源提供主体と、複数の資源使用主体とが接続される。資源提供主体及び資源使用主体は、資源の空き状況を示す空き資源リストをネットワークに巡回させる。資源提供主体は、空き資源リストを受け取ると、その時点で資源提供主体が保有している資源の空き状況に基づいて、空き資源リストを更新する。資源提供主体は、空き資源リストの更新後、更新した空き資源リストを、次の資源提供主体又は資源使用主体に渡す。
各資源使用主体は、ネットワークを介して空き資源リストを取得する。資源使用主体は、空き資源リスト内に、自身が獲得を希望する資源があるか否かを調べる。資源使用主体は、空き資源リストに獲得したい資源があるときは、その資源を獲得すべく、空き資源リストを更新する。資源使用主体は、空き資源リストの更新後、空き資源リストを、次の資源使用主体又は資源提供主体に渡す。また、資源使用主体は、獲得すべき資源を保有する資源提供主体に対して資源使用要求を送信し、資源提供主体から資源を獲得する。
特開平10−27109号公報
特許文献1では、空き資源リストはネットワークを巡回するので、特定のノードへアクセスが集中することを回避できる。しかし、特許文献1では、空き資源リストをネットワークの全てのノードに巡回させる必要がある。このため、規模に依存して、空き資源リストがネットワークを巡回する時間が変化し、ノード数が増えるほど、資源獲得までに要する時間が長くなる。また、資源使用主体は、空き資源リストが巡回してきたタイミングでしか資源獲得ができないという問題もある。
本発明は、特定のノードにアクセスを集中させることなく、また、ネットワークの規模に依存せずに共通資源の管理情報にアクセス可能な共通資源管理システム、方法、及び、プログラムを提供することを目的とする。
上記目的を達成するために、本発明の共通資源管理システムは、ネットワーク内の複数のノードが共通に使用可能な共通資源の使用状況を管理する共通資源管理テーブルを、一のノードから別のノードに移動させる共通資源管理テーブル移動手段と、前記共通資源管理テーブルが移動した際に、前記共通資源管理テーブルを保有するノードの識別情報を記憶するテーブルポインタに、移動先のノードの識別情報を記憶するテーブルポインタ更新手段とを備えることを特徴とする。
本発明の共通資源管理方法は、コンピュータが、ネットワーク内の複数のノードが共通に使用可能な共通資源の使用状況を管理する共通資源管理テーブルを、一のノードから別のノードに移動させる移動ステップと、前記コンピュータが、前記共通資源管理テーブルを保有するノードの識別情報を記憶するテーブルポインタに、前記移動ステップで移動させた移動先のノードの識別情報を記憶するテーブルポインタ更新ステップとを有することを特徴とする。
本発明のプログラムは、コンピュータに、ネットワーク内の複数のノードが共通に使用可能な共通資源の使用状況を管理する共通資源管理テーブルを、一のノードから別のノードに移動させる移動処理と、前記共通資源管理テーブルを保有するノードの識別情報を記憶するテーブルポインタに、前記移動処理で移動させた移動先のノードの識別情報を記憶するテーブルポインタ更新処理とを実行させることを特徴とする。
本発明の共通資源管理システム、方法、及び、プログラムは、特定のノードにアクセスを集中させることなく、また、ネットワークの規模に依存せずに共通資源の管理情報にアクセスすることができる。
本発明の第1実施形態の共通資源管理システムを示すブロック図。 共通資源管理テーブルアクセス時の動作手順を示すフローチャート。 共通資源管理テーブル再構築時の動作手順を示すフローチャート。 稼働開始時のノードの動作手順を示すフローチャート。 稼働中の2つのノードを示すブロック図。 共通資源管理テーブル移動後の状態を示すブロック図。 プライマリのテーブルポインタにアクセスできない状態を示すブロック図。 プライマリ及びセカンダリのテーブルポインタにアクセスできない状態を示すブロック図。 共通資源管理テーブルにアクセスできない状態を示すブロック図。 共通資源管理テーブルの再構築前の状態を示すブロック図。 共通資源管理テーブルの再構築後の状態を示すブロック図。 稼働中のノードが1つの状態を示すブロック図。 稼働中のノードが2つの状態を示すブロック図。 稼働中のノードが3つの状態を示すブロック図。 本発明の第2実施形態の共通資源管理システムを示すブロック図。
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図1は、本発明の第1実施形態の共通資源管理システムを示している。共通資源管理システムは、分散処理システムを構成する複数のノード(ノード10、20)を有する。ノード10及びノード20は、例えばコンピュータである。ノード10とノード20とは、ネットワークを介して相互に接続される。図1では、ノードの数が2つであるが、ノードの数は3以上でもよい。ノード10と、ノード20とは、図示しない共通の資源を利用可能である。
ノード10は、共通資源管理テーブル移動手段11、テーブルポインタ更新手段12、共通資源管理テーブル再構築手段13、及び、プロセス19を有する。また、ノード10は、情報記憶領域として、テーブルポインタ14、共通資源管理テーブル15、及び、管理テーブル情報16を有する。共通資源管理テーブル移動手段11は、共通資源管理テーブルアクセス手段17を含む。ノード10内の各手段の機能は、コンピュータ上で所定のプログラムを実行することで実現可能である。
ノード20は、共通資源管理テーブル移動手段21、テーブルポインタ更新手段22、共通資源管理テーブル再構築手段23、及び、プロセス29を有する。また、ノード20は、情報記憶領域として、テーブルポインタ24、共通資源管理テーブル25、及び、管理テーブル情報26を有する。共通資源管理テーブル移動手段21は、共通資源管理テーブルアクセス手段27を含む。ノード20内の各手段の機能は、コンピュータ上で所定のプログラムを実行することで実現可能である。なお、以下、ノードを代表して、ノード10の各構成要素について説明するが、ノード20内の各構成要素の役割は、ノード10内の対応する各構成要素の役割と同じである。
共通資源管理テーブル15は、共通資源の管理情報(使用状況、空き状況)を記憶するテーブルである。共通資源は、システム内でユニークな番号で管理されている。共通資源の具体例としては、ノード間スイッチの複数のレジスタなどが挙げられる。共通資源は、ハードウェア資源には限られず、ソフトウェア的な資源(リソース)でもよい。共通資源管理テーブル移動手段11は、共通資源管理テーブルを、一のノードから別のノードに移動させる。共通資源管理テーブル15は、共通資源管理テーブル15がノード10に移動した時刻を含む。プロセス19は、共通資源管理テーブルを参照して処理を行う部分である。
テーブルポインタ14は、使用中の共通資源管理テーブルを保有するノードのノード番号(ノード識別情報)を格納する。また、テーブルポインタ14は、付加情報として、共通資源管理テーブルの最終移動時刻を保持する。テーブルポインタは、ネットワークを構成する複数のノードのうちの少なくとも1つに存在する。管理テーブル情報16は、テーブルポインタが存在するノードのノード番号を保持する。図1では、管理テーブル情報16は、プライマリとして用いるテーブルポインタを保有するノードのノード番号(P)と、セカンダリとして用いるテーブルポインタを保有するノードのノード番号(S)とを保持している。
共通資源管理テーブルアクセス手段17は、共通資源管理テーブルにアクセスする。共通資源管理テーブルアクセス手段17は、アクセスに際して、まず、管理テーブル情報16を参照し、テーブルポインタが存在するノードを特定する。次いで、共通資源管理テーブルアクセス手段17は、特定したノードが保有するテーブルポインタを参照し、共通資源管理テーブルを保有するノードを特定する。その後、特定したノードが保有する共通資源管理テーブルにアクセスする。
共通資源管理テーブル移動手段11は、共通資源管理テーブルアクセス手段17がアクセスする共通資源管理テーブルの内容を、自ノード内の共通資源管理テーブル15に格納し、共通資源管理テーブルを、自ノードに移動させる。その際、共通資源管理テーブル移動手段11は、共通資源管理テーブルの移動時刻と現在時刻(共通資源管理テーブルにアクセスした時刻)とを比較する。共通資源管理テーブル移動手段11は、時刻の差が所定の時間を超えるときに共通資源管理テーブルの移動を行う。差が所定時間よりも短いときは、共通資源管理テーブルの移動は行わない。このようにする理由は、共通資源管理テーブルが頻繁に移動し、ネットワーク負荷が増大することを避けるためである。
テーブルポインタ更新手段12は、共通資源管理テーブル移動手段11が共通資源管理テーブルを自ノードに移動すると、移動先のノードのノード番号、つまり、ノード10のノード番号を、テーブルポインタに格納する。また、テーブルポインタ更新手段12は、共通資源管理テーブルの最終移動時刻を、テーブルポインタに格納する。このとき、テーブルポインタ更新手段12は、管理テーブル情報16に格納されたノード番号のノードが保有するテーブルポインタに、ノード10のノード番号、及び、最終移動時刻を格納する。
共通資源管理テーブル再構築手段13は、共通資源管理テーブルアクセス手段17が共通資源管理テーブルにアクセスできないとき、通信可能なノードから共通資源の使用状況を取得し、自ノード内に共通資源管理テーブルを再構築する。その後、共通資源管理テーブル再構築手段13は、テーブルポインタに、再構築した共通資源管理テーブルを保有するノード、つまり、自ノードのノード番号を記録する。共通資源管理テーブルアクセス手段17が共通資源管理テーブルにアクセスできない状況としては、共通資源管理テーブルを保有するノードがダウンし、そのノードから共通資源管理テーブルを取得できない状況が考えられる。また、テーブルポインタを保有するノードがダウンし、使用中の共通資源管理テーブルを保有するノードが不明となる状況が考えられる。
図2に、共通資源管理テーブルへのアクセス時の動作手順を示す。ここでは、ノード10が共通資源管理テーブルへアクセスするものとして説明する。共通資源管理テーブルアクセス手段17は、プロセス19が共通資源管理テーブルを参照する際に、管理テーブル情報16を参照し、管理テーブル情報16にプライマリとして用いるテーブルポインタを保有するノードとして記録されているノードを特定する(ステップA1)。共通資源管理テーブルアクセス手段17は、特定したノードが保有するテーブルポインタ、つまり、プライマリとして用いるテーブルポインタにアクセス可能か否かを判断する(ステップA2)。共通資源管理テーブルアクセス手段17は、アクセス可能なときは、テーブルポインタを参照して、使用中の共通資源管理テーブルを保有するノードを特定する(ステップA3)。
共通資源管理テーブルアクセス手段17は、ステップA2でアクセス不能と判断すると、管理テーブル情報16を参照し、管理テーブル情報16にセカンダリとして用いるテーブルポインタを保有するノードとして記録されたノードを特定する(ステップA4)。共通資源管理テーブルアクセス手段17は、特定したノードが保有するテーブルポインタ、つまり、セカンダリとして用いるテーブルポインタにアクセス可能か否かを判断する(ステップA5)。共通資源管理テーブルアクセス手段17は、アクセス可能なときは、ステップA3に進み、テーブルポインタを参照して、使用中の共通資源管理テーブルを保有するノードを特定する。
共通資源管理テーブルアクセス手段17は、ステップA5でアクセス不能と判断すると、現在使用中の共通資源管理テーブルを保有するノードが不明であるとして、共通資源管理テーブルの再構築処理を行う(ステップA6)。この再構築処理については後述する。なお、プライマリのテーブルポインタと、セカンダリのテーブルポインタとには、同じノード番号が記録されている。このため、プライマリのテーブルポインタを用いる場合も、セカンダリのテーブルポインタを用いる場合も、ステップA3で特定される共通資源管理テーブル保有ノードは同じノードになる。
共通資源管理テーブルアクセス手段17は、ステップA3で特定したノードが保有する共通資源管理テーブルにアクセス可能か否かを判断する(ステップA7)。共通資源管理テーブルアクセス手段17は、アクセス不能と判断すると、現在使用中の共通資源管理テーブルが使用不能であるとして、ステップA6に進み、共通資源管理テーブルの再構築を行う。共通資源管理テーブルアクセス手段17は、ステップA7でアクセス可能と判断したときは、共通資源管理テーブルから移動時刻を取得し、これと、プライマリ又はセカンダリのテーブルポインタに記録された最終移動時刻とが一致するか否かを判断する(ステップA8)。共通資源管理テーブルアクセス手段17は、両者が一致しないときは、共通資源管理テーブルが無効であるとして、ステップA6に進み、共通資源管理テーブルの再構築処理を行う。共通資源管理テーブルアクセス手段17は、時刻が一致するときは、共通資源管理テーブルが有効であると判断する。
共通資源管理テーブルの有効性が確認されると、共通資源管理テーブル移動手段11は、現在時刻と共通資源管理テーブルの最終移動時刻との差、つまり、共通資源管理テーブルが前回移動してからの経過時間を求める。共通資源管理テーブル移動手段11は、経過時間が所定の時間(最大停留時間)を超えているか否かを判断する(ステップA9)。この最大停留時間は、システム規模、運用形態などに基づいて、あらかじめ決めておく。共通資源管理テーブル移動手段11は、前回の移動からの経過時間が、最大停留時間を超えるときは、共通資源管理テーブルを、自ノードに移動する(ステップA10)。すなわち、共通資源管理テーブル移動手段11は、共通資源管理テーブルアクセス手段17がアクセスする共通資源管理テーブルの内容を、自ノードの共通資源管理テーブル15に格納する。共通資源管理テーブル移動手段11は、ステップA9で前回の移動からの経過時間が最大停留時間以内と判断したときは、共通資源管理テーブルの移動を行わない。
共通資源管理テーブルの移動を行った場合、共通資源管理テーブル移動手段11は、自ノードに移動した共通資源管理テーブル15に、移動時刻を記録する(ステップA11)。テーブルポインタ更新手段12は、管理テーブル情報16に記録されたノード番号のノードが保有するテーブルポインタに自ノードのノード番号を記録する。また、テーブルポインタ更新手段12は、テーブルポインタの最終移動時刻に、ステップA11で記録した共通資源管理テーブルの移動時刻を記録する(ステップA12)。テーブルポインタ更新手段12は、管理テーブル情報16に、プライマリのテーブルポインタを保有するノードとセカンダリのテーブルポインタを保有するノードの2つのノードが記録されているときは、双方のノードが保有するテーブルポインタに、自ノードのノード番号と最終移動時刻とを記録する。
共通資源管理テーブルアクセス手段17は、プロセス19の資源取得又は資源解放に合わせて、共通資源管理テーブルを更新する(ステップA13)。共通資源管理テーブルアクセス手段17は、共通資源管理テーブルが自ノードに移動しているときは、更新内容を自ノードの共通資源管理テーブル15に反映させる。共通資源管理テーブルアクセス手段17は、共通資源管理テーブルが移動していないときは、ステップA3で特定した共通資源管理テーブル保有ノードが保有する共通資源管理テーブルに、更新内容を反映させる。
図3に、再構築処理の動作手順を示す。共通資源管理テーブル再構築手段13は、自ノードを含む全ノードから、各ノードの共通資源の使用状況を収集し、共通資源管理テーブル15に記録する(ステップB1)。より詳細には、共通資源管理テーブル再構築手段13は、各ノードに対し、各ノード(各ノードのマシン)が現在使用している共通資源の情報を問い合わせる。共通資源管理テーブル再構築手段13は、ノードからの応答に含まれる共通資源の使用状況を、共通資源管理テーブル15に反映させる。共通資源管理テーブル再構築手段13は、ノードからの応答が得られないときは、そのノードは未稼働とし、共通資源の使用状況の収集は行わない。
共通資源管理テーブル再構築手段13は、ステップB1では、最弱番のノード番号を持つノードから順に、共通資源の使用状況を問い合わせていく。共通資源管理テーブル再構築手段13は、全てのノードに対して共通資源の使用状況の問い合わせを完了すると、共通資源管理テーブル15の移動時刻に、現在時刻を記録する(ステップB2)。共通資源管理テーブル再構築手段13は、システム内に存在するノードが自ノードのみであるか否かを判断する(ステップB3)。共通資源管理テーブル再構築手段13は、システム内に存在するノードが自ノードのみであるときは、管理テーブル情報16を作成し、管理テーブル情報16のプライマリに、自ノードのノード番号を記録する(ステップB4)。セカンダリについては、空欄(未設定)としておく。
共通資源管理テーブル再構築手段13は、ステップB3でシステム内に他のノードが存在すると判断したときは、プライマリとして用いるテーブルポインタを保有するノードを探すためにブロードキャストを発行する(ステップB5)。共通資源管理テーブル再構築手段13は、発行したブロードキャストに対し応答が得られたか否かを判断する(ステップB6)。共通資源管理テーブル再構築手段13は、応答が得られたときは、管理テーブル情報16のプライマリに、応答したノードのノード番号を記録する(ステップB7)。
共通資源管理テーブル再構築手段13は、ステップB6で応答が得られないと判断すると、管理テーブル情報16のプライマリに、自ノードのノード番号を記録する(ステップB8)。その後、共通資源管理テーブル再構築手段13は、自ノードがプライマリとなったことを通知するために、管理テーブル情報16のプライマリが変更されたことを、ブロードキャストで、他のノードに通知する(ステップB9)。他のノードは、通知内容に従って、管理テーブル情報のプライマリに、ノード10のノード番号を記録する。
共通資源管理テーブル再構築手段13は、プライマリとして用いるテーブルポインタを保有するノードの探索後、セカンダリとして用いるテーブルポインタを保有するノードを探索する。共通資源管理テーブル再構築手段13は、セカンダリとして用いるテーブルポインタを保有するノードを探すためにブロードキャストを発行する(ステップB10)。共通資源管理テーブル再構築手段13は、発行したブロードキャストに対し応答が得られたか否かを判断する(ステップB11)。共通資源管理テーブル再構築手段13は、応答が得られたときは、管理テーブル情報16のセカンダリに、応答したノードのノード番号を記録する(ステップB12)。
共通資源管理テーブル再構築手段13は、ステップB11で応答が得られないと判断すると、自ノードがプライマリとして用いるテーブルポインタを保有するノードになっているか否かを判断する(ステップB13)。共通資源管理テーブル再構築手段13は、自ノードがプライマリのテーブルポインタを保有するノードになっているときは、他のノード、例えば隣接ノードに対し、セカンダリとして用いるテーブルポインタを保有するノードになることを依頼する(ステップB14)。共通資源管理テーブル再構築手段13は、自ノードがプライマリのテーブルポインタを保有するノードでないときは、管理テーブル情報16のセカンダリに、自ノードのノード番号を記録する(ステップB15)。その後、共通資源管理テーブル再構築手段13は、自ノードがセカンダリになったことを通知するために、管理テーブル情報16のセカンダリが変更されたことを、ブロードキャストで、他のノードに通知する(ステップB16)。
共通資源管理テーブル再構築手段13は、管理テーブル情報16に記録されたノード番号のノードが保有するテーブルポインタに、自ノードのノード番号を記録する(ステップB17)。また、共通資源管理テーブル再構築手段13は、管理テーブル情報16に記録されたノード番号のノードが保有するテーブルポインタに、ステップB2で共通資源管理テーブル15に記録した移動時刻を記録する。ステップB3からステップB4に進んだ場合、プライマリとして用いるテーブルポインタを保有するノードが自ノードで、セカンダリとして用いテーブルポインタを保有するノードは存在しない。このため、共通資源管理テーブル再構築手段13は、自ノードのテーブルポインタ14に、自ノードのノード番号及び移動時刻を記録する。ステップB3からステップB4に進んだ場合、共通資源管理テーブル再構築手段13は、プライマリ及びセカンダリとして用いるテーブルポインタの双方に、自ノードのノード番号及び移動時刻を記録する。
図4に、ノード起動時の動作手順を示す。ノードは、稼働を開始すると、他のノードから管理テーブル情報の取得を試み、管理テーブル情報が取得できたか否かを判断する(ステップC1)。既にネットワークに接続されたノードが存在し、そのノードが稼働中であれば、新たに稼働を開始したノードは、稼働中のノードから管理テーブル情報を取得できる。ノードは、管理テーブル情報が取得できないと判断すると、共通資源管理テーブル再構築手段を用いて、共通資源管理テーブルの再構築処理を行う(ステップC2)。
ステップC2の共通資源管理テーブル再構築処理の手順は、図3に示す手順と同じである。新たに稼働したノードは、共通資源管理テーブルの再構築処理を行うことで、自ノード内に共通資源管理テーブルを作成すると共に、テーブルポインタ及び管理テーブル情報を生成する。ノードは、テーブルポインタの共通資源管理テーブル所在ノードに、自ノードのノード番号を記録する。また、ノードは、管理テーブル情報のプライマリに、自ノードのノード番号を記録する。管理テーブル情報のセカンダリは、設定なしにしておく。
新たに稼働したノードは、ステップC1で管理テーブル情報が取得できたと判断すると、自ノード内の管理テーブル情報に、取得した管理テーブル情報の内容を格納する(ステップC3)。ノードは、管理テーブル情報に、プライマリとして用いるテーブルポインタを保有するノードのノード番号とセカンダリとして用いるテーブルポインタを保有するノードのノード番号とが記録されているか否かを判断する(ステップC4)。プライマリ及びセカンダリとして用いるテーブルポインタを保有するノードの双方が記録されているときは、処理を終了する。
ノードは、ステップC3でプライマリとして用いるテーブルポインタを保有するノードとセカンダリとして用いるテーブルポインタを保有するノードの何れか一方が記録されていると判断したときは、記録されたノード番号のノードから、そのノードが保有するテーブルポインタの取得を試みる。ノードは、テーブルポインタを取得できたか否かを判断する(ステップC5)。ノードは、テーブルポインタが取得できないときは、ステップC2に移行し、共通資源管理テーブルの再構築を行う。
ノードは、ステップC5でテーブルポインタが取得できたと判断すると、取得したテーブルポインタの内容を、自ノードのテーブルポインタに記録する(ステップC6)。その後、ノードは、管理テーブル情報に、自ノードのノード番号を、プライマリとして用いるテーブルポインタを保有するノードとセカンダリとして用いるテーブルポインタを保有するノードのうちの未設定の方のノードとして記録する。ノードは、自ノードがプライマリとして用いるテーブルポインタを保有するノード又はセカンダリとして用いるテーブルポインタを保有するノードになったことをブロードキャストで宣言する(ステップC7)。
以下、具体的なケースを用いて説明する。図5に、稼働中の2つのノードを示す。図5は、障害等が発生していないケースである。ノード20(ノード番号20)は、プライマリとして用いるテーブルポインタ24を保有するノードであり、ノード10(ノード番号10)は、セカンダリとして用いるテーブルポインタ14を保有するノードである。ノード10の管理テーブル情報16のプライマリ(P)にはノード番号「20」が記録され、セカンダリ(S)にはノード番号「10」が記録されている。ノード20でも、同様に、管理テーブル情報26のプライマリ(P)にはノード番号「20」が記録され、セカンダリ(S)にはノード番号「10」が記録されている。
使用中の共通資源管理テーブル情報を保有するノードは、ノード20である。ノード20が保有する共通資源管理テーブル25の移動時刻は、時刻t1である。プライマリとして用いるノード20のテーブルポインタ24には、共通資源管理テーブル所在ノードとしてノード番号「20」が記録されている。また、テーブルポインタ24には、最終移動時刻として時刻t1が記録されている。セカンダリとして用いるノード10のテーブルポインタ14にも、同様に、共通資源管理テーブル所在ノードとしてノード番号「20」が記録され、最終移動時刻として時刻t1が記録されている。
図5で、ノード10に属するプロセス(proc1)19が共通資源管理テーブルにアクセスする必要が生じたとする。共通資源管理テーブルアクセス手段17(図1)は、自ノード内の管理テーブル情報16のプライマリ(P)を参照し、ノード番号「20」を取得する。共通資源管理テーブルアクセス手段17は、ノード20が保有するテーブルポインタ24にアクセスし、使用中の共通資源管理テーブルを保有するノードのノード番号「20」を取得する。また、共通資源管理テーブルアクセス手段17は、テーブルポインタ24から、最終移動時刻t1を取得する。
共通資源管理テーブルアクセス手段17は、ノード20が保有する共通資源管理テーブル25から、共通資源管理テーブル25がノード20に移動してきた時刻(移動時刻)t1を取得する。共通資源管理テーブルアクセス手段17は、テーブルポインタ24に記録された最終移動時刻t1と、共通資源管理テーブル25に記録された移動時刻t1とを比較する。両者は一致するので、共通資源管理テーブルアクセス手段17は、ノード20が保有する共通資源管理テーブル25は有効であると判断する。
ノード10の共通資源管理テーブル移動手段11は、共通資源管理テーブルがリモートノードにあるので、これを自ノードに移動するか否かを決定する。より詳細には、まず、現在時刻と共通資源管理テーブル25の移動時刻t1との差から、共通資源管理テーブルがノード20に移動してからの経過時間を求める。次いで、経過時間と所定の最大停留時間とを比較し、経過時間が最大停留時間を超えるか否かを判断する。共通資源管理テーブル移動手段11は、経過時間が最大停留時間を超えるときは、共通資源管理テーブルを自ノードに移動すると決定する。経過時間が最大停留時間以内であれば、共通資源管理テーブルを移動しないと決定する。
図6に、共通資源管理テーブル移動後の状態を示す。共通資源管理テーブル移動手段11は、共通資源管理テーブル25の内容を複製し、共通資源管理テーブル15として格納する。また、共通資源管理テーブル15に、移動時刻t2を記録する。これで、ノード10が保有する共通資源管理テーブル15が利用可能な状態になる。その後、テーブルポインタ更新手段12は、管理テーブル情報16を参照し、プライマリとして用いるテーブルポインタ24及びセカンダリとして用いるテーブルポインタ14の内容を更新する。この更新では、共通資源管理テーブル所在ノードのノード番号をノード番号「20」からノード番号「10」に変更すると共に、最終移動時刻を時刻t1から時刻t2に変更する。
プロセス19は、共通資源管理テーブルに対して更新等の処理を行う。プロセス19は、共通資源管理テーブルが移動していれば、自ノード内の共通資源管理テーブル15に、更新内容を反映させる。プロセス19は、共通資源管理テーブルの移動がなければ、リモートノードであるノード20が保有する共通資源管理テーブル25に、更新内容を反映させる。
図7に、プライマリとして用いるテーブルポインタにアクセスできないケースを示す。ノード40のプロセスに、共通資源管理テーブルにアクセスする必要が生じたとする。ノード40の共通資源管理テーブルアクセス手段は、管理テーブル情報46を参照し、プライマリとして用いる、ノード30が保有するテーブルポインタ34にアクセスしようとする。ノード30がダウンなどにより稼働を停止している場合、ノード40の共通資源管理テーブルアクセス手段は、アクセスに失敗する。
ノード40の共通資源管理テーブルアクセス手段は、プライマリとして用いるテーブルポインタ34へのアクセスに失敗すると、管理テーブル情報46を再び参照し、セカンダリとして用いる、ノード20が保有するテーブルポインタ24へアクセスする。ノード20は稼働中であるので、このアクセスは成功する。共通資源管理テーブルアクセス手段は、テーブルポインタ24を参照し、使用中の共通資源管理テーブルを保有するノードのノード番号「10」と、最終移動時刻t5とを取得する。これ以降は、図5を用いて説明した障害等が発生していないケースと同じである。
図8に、プライマリ及びセカンダリとして用いるテーブルポインタの双方にアクセスできないケースを示す。ノード40のプロセスに、共通資源管理テーブルにアクセスする必要が生じたとする。ノード40の共通資源管理テーブルアクセス手段は、管理テーブル情報46を参照し、プライマリとして用いる、ノード30が保有するテーブルポインタ34にアクセスしようとする。ノード30がダウンなどにより稼働を停止している場合、ノード40の共通資源管理テーブルアクセス手段は、アクセスに失敗する。ここまでは、図7を用いて説明したケースと同じである。
ノード40の共通資源管理テーブルアクセス手段は、プライマリとして用いるテーブルポインタ34へのアクセスに失敗すると、管理テーブル情報46を再び参照し、セカンダリとして用いる、ノード20が保有するテーブルポインタ24へのアクセスを試みる。ノード20は、ダウンしており、このアクセスにも失敗する。つまり、共通資源管理テーブルアクセス手段は、プライマリとして用いるテーブルポインタ34へのアクセスも、セカンダリとして用いるテーブルポインタ24へのアクセスも失敗する。
テーブルポインタへのアクセスに失敗すると、使用中の共通資源管理テーブルを保有するノードが不明になるので、図3に示す手順で、共通資源管理テーブルを再構築する。共通資源管理テーブルの再構築を行うことで、ノード40に、共通資源管理テーブルが生成される。共通資源管理テーブルを再構築した以降は、図5に示す障害がないケースと同様である。
図9に、使用中の共通資源管理テーブルにアクセスできないケースを示す。ノード40のプロセスに、共通資源管理テーブルにアクセスする必要が生じたとする。ノード40の共通資源管理テーブルアクセス手段は、管理テーブル情報46を参照し、プライマリとして用いる、ノード30が保有するテーブルポインタ34にアクセスする。共通資源管理テーブルアクセス手段は、テーブルポインタ34から、共通資源管理テーブルの所在ノードのノード番号「10」と最終移動時刻t5とを取得する。
ノード40の共通資源管理テーブルアクセス手段は、ノード10の共通資源管理テーブル15にアクセスし、移動時刻を取得しようとするが、ノード10はダウンしており、アクセスに失敗する。共通資源管理テーブルへのアクセスができないので、図3に示す手順で、共通資源管理テーブルを再構築する。共通資源管理テーブルの再構築を行うことで、ノード40に、共通資源管理テーブルが生成される。共通資源管理テーブルを再構築した以降は、図5に示す障害がないケースと同様である。
図10に、ノード30に共通資源管理テーブルを再構築するケースを示す。ノード20は、プライマリとして用いるテーブルポインタ24を保有するノードであり、ノード10は、セカンダリといして用いるテーブルポインタ14を保有するノードである。使用中の共通資源管理テーブルが存在するノードは、ノード10である。ノード30の共通資源管理テーブルアクセス手段は、プライマリとして用いる、ノード20が保有するテーブルポインタ24へのアクセス後、ノード10の共通資源管理テーブル15へアクセスする。ノード10はダウンしており、共通資源管理テーブルアクセス手段は、このアクセスに失敗する。共通資源管理テーブル15へのアクセスに失敗すると、ノード30の共通資源管理テーブル再構築手段は、自ノード内に、共通資源管理テーブルを再構築する。
ノード30の共通資源管理テーブル再構築手段は、自ノードを含む全ノードに対し、現在使用している共通資源の情報(使用状況)を問い合わせ、共通資源の使用状況を収集する。共通資源管理テーブル再構築手段は、収集した使用状況を、自ノード内の共通資源管理テーブル35に反映させる。このとき、問い合わせに対する応答が得られないノードは、未稼働であるとして、使用状況を収集しない。共通資源管理テーブル再構築手段は、稼働中の全てのノードから共通資源の使用状況を収集し、共通資源管理テーブルが完成すると、共通資源管理テーブルの移動時刻に、現在時刻を記録する。
続いて、ノード30の共通資源管理テーブル再構築手段は、プライマリとして用いるテーブルポインタを保有するノードを探すために、ブロードキャストを行い、その応答を待つ。図10では、ノード20が該当し、ノード20がブロードキャストに対して応答する。共通資源管理テーブル再構築手段は、ノード20のノード番号「20」を、管理テーブル情報36のプライマリ(P)に記録する。共通資源管理テーブル再構築手段は、引き続き、セカンダリとして用いるテーブルポインタを保有するノードを探すために、ブロードキャストを行い、その応答を待つ。図10では、ノード10が該当するものの、ノード10はダウンしており、ブロードキャストに対して応答するノードはない。
ノード30の共通資源管理テーブル再構築手段は、セカンダリのテーブルポインタを保有するノードからの応答がない場合、管理テーブル情報36のセカンダリ(S)に、自ノードのノード番号「30」を記録する。また、共通資源管理テーブル再構築手段は、自ノードがセカンダリとして用いるテーブルポインタを保有するノードになることを宣言するブロードキャストを行う。その後、共通資源管理テーブル再構築手段は、管理テーブル情報36を参照して、プライマリとして用いる、ノード20が保有するテーブルポインタ24と、セカンダリとして用いる自ノードのテーブルポインタ34とを更新する。
図11に、共通資源管理テーブル再構築後の状態を示す。ノード30の共通資源管理テーブル再構築手段は、自ノードがセカンダリとして用いるテーブルポインタを保有するノードになることを宣言する。他のノード20、40は、宣言の内容に従って、管理テーブル情報26、46におけるセカンダリ(S)に記録されるノード番号を、ノード番号「10」からノード番号「30」に書き換える。また、共通資源管理テーブル再構築手段は、管理テーブル情報36の参照後、プライマリとして用いるテーブルポインタ24及びセカンダリとして用いるテーブルポインタ34の共通資源管理テーブル所在ノードに、ノード番号「30」を記録する。このようにすることで、以降、共通資源管理テーブルにアクセスするノードは、ノード30が保有する共通資源管理テーブル35にアクセスすることになる。
なお、共通資源管理テーブルへのアクセスが不能になったことを複数のノードが検出した場合、複数のノードで、並行して、共通資源管理テーブルの再構築が行われる可能性がある。これを防ぐために、共通資源管理テーブル再構築手段は、共通資源管理テーブルの再構築が終了した旨を、全ノードに通知する。再構築終了の通知を受けたノードは、再構築処理を中止し、作成していた共通資源管理テーブルを破棄する。このようにすることで、共通資源管理テーブルが重複して作成されることを防止できる。
図12に、ノード立ち上げ時の状態を示す。図12は、システム内に稼働ノードが存在せず、ノード30が新たに稼働を開始した状態を示している。ノード30は、隣接ノードから管理テーブル情報を取得しようとするが、稼働ノードはノード30のみであるため、管理テーブル情報を取得できない。ノード30は、共通資源管理テーブルの再構築処理を行い、テーブルポインタ34、共通資源管理テーブル35、及び、管理テーブル情報36を生成する。
ノード30は、共通資源管理テーブル35の作成後、作成した時刻t4を共通資源管理テーブル35に記録する。また、ノード30は、テーブルポインタ34の共通資源管理テーブル所在ノードに、自ノードのノード番号「30」を記録する。最終移動時刻には、共通資源管理テーブルを作成した時刻である時刻t4を記録する。ノード30は、管理テーブル情報36のプライマリ(P)に、自ノードのノード番号「30」を記録する。セカンダリ(S)については、空欄(設定なし)にしておく。
図13に、ノード20が稼働を開始した状態を示す。図12に示す状態から、ノード20が稼働を開始すると、ノード20は、隣接ノードであるノード30から管理テーブル情報36の内容を取得し、その内容を自ノードの管理テーブル情報26に反映する。このとき取得する管理テーブル情報の内容は、図12に示す管理テーブル情報36の内容であり、プライマリ(P)のみが設定済み(ノード番号「30」)で、セカンダリ(S)は設定なしである。
ノード20は、管理テーブル情報26のプライマリ(P)を参照し、ノード30のテーブルポインタ34にアクセス可能か否かを調べる。ノード20は、テーブルポインタ34の内容を取得し、これを自ノードのテーブルポインタ24に反映する。すなわち、テーブルポインタ24の共通資源管理テーブル所在ノードにノード番号「30」を記録し、最終移動時刻に時刻t4を記録する。その後、ノード20は、管理テーブル情報26のセカンダリ(S)に自ノードのノード番号「20」を記録する。また、ノード20は、セカンダリとしても用いるテーブルポインタを保有するノードになることを宣言するブロードキャストを行う。ノード30は、ノード20がセカンダリのテーブルポインタを保有するノードになることを宣言することで、管理テーブル情報36のセカンダリ(S)に、ノード番号「20」を記録する。
図14に、更にノード40が稼働を開始した状態を示す。図13に示す状態からノード40が稼働を開始すると、ノード40は、隣接ノードから管理テーブル情報の内容を取得し、その内容を自ノードの管理テーブル情報46に反映する。管理テーブル情報の内容の取得元は、ノード20の管理テーブル情報26とノード30の管理テーブル情報36のどちらでもよい。システム内には、既に、プライマリとして用いるテーブルポインタ34と、セカンダリとして用いるテーブルポインタ24とが存在している。従って、ノード40内に新たにテーブルポインタを作成する必要はなく、ノード40は、管理テーブル情報46のみを有することになる。以降、新たに稼働を開始するノードは、ノード40と同様に、管理テーブル情報を生成する。
本実施形態の共通資源管理システムは、最小構成として、共通資源管理テーブル移動手段と、テーブルポインタ更新手段とを備える。共通資源管理テーブル移動手段は、共通資源管理テーブルを一のノードから別のノードに移動させる。テーブルポインタ更新手段は、共通資源管理テーブルが移動した際に、テーブルポインタに、移動先のノードの識別情報を記憶する。本実施形態では、共通資源管理テーブル移動手段が共通資源管理テーブルを移動させるので、共通資源管理テーブルが1つのノードに固定されない。このため、共通資源管理テーブルへのアクセスで特定のノードにアクセスが集中することがなく、特定のノードの共通資源管理テーブルを固定する場合に比して負荷分散を期待できる。
特許文献1では、空き資源管理リストを全ノードに巡回させる必要があるので、ノード数に依存して、資源取得に要する時間が長くなっていた。本実施形態では、共通資源管理テーブルを全てのノードに巡回させる必要はないので、ネットワーク規模に依存して、資源取得に要する時間が長くなることはない。また、特許文献1では、各資源使用主体は、空き資源管理リストが巡回してきたタイミングでしか資源を取得することができなかった。本実施形態では、使用中の共通資源管理テーブルを保有するノードを、テーブルポインタを用いて管理しているので、各ノードは、任意の時点で、テーブルポインタを参照して、共通資源管理テーブルにアクセスできる。更に、特許文献1では、資源管理リストを巡回させるために、システム内の個々のノードに対して、論理的に一筆書きできる必要があったが、本実施形態ではそのような制約はない。
また、本実施形態では、共通資源管理テーブルにアクセスしたノードに、共通資源管理テーブルを移動している。共通資源管理テーブルの移動後、移動先のノードは、ローカルアクセスで、共通資源管理テーブルにアクセスできる。例えば、ノードのプロセスが共通資源管理テーブルに対して探索などの処理を行うとき、そのプロセスが、短時間に複数回共通資源管理テーブルにアクセスすることがしばしばある。本実施形態では、共通資源管理テーブルを、アクセスしたノードに移動するので、移動後のアクセスを高速化することができる。その結果として、処理の高速化が可能である。
本実施形態では、共通資源管理テーブルを保有するノードを示すテーブルポインタを、プライマリとセカンダリの2つ用意し、2つのノードがテーブルポインタを保有している。テーブルポインタが失われると、共通資源管理テーブルの所在が不明となって、各ノードは、共通資源管理テーブルにアクセスできなくなる。本実施形態では、プライマリとセカンダリの2つのテーブルポインタがあるので、ノードがダウンすることなどで、プライマリのテーブルポインタが参照できないときでも、セカンダリのテーブルポインタをアクセスして、共通資源管理テーブルを保有するノードの特定が可能である。このように、テーブルポインタを保有するノードを複数設けておくことで、耐障害性の向上を期待できる。
本実施形態では、共通資源管理テーブルにアクセスできなくなると、共通資源管理テーブル再構築手段が、各ノードから共通資源の使用状況を収集し、共通資源管理テーブルを再構築する。共通資源管理テーブル再構築手段が、テーブルポインタに、再構築した共通資源管理テーブルを保有するノードの識別情報を記録することで、各ノードは、再構築された共通資源管理テーブルにアクセスできる。従って、本実施形態では、共通資源管理テーブルを保有するノードがダウンするなどして共通資源管理テーブルへアクセスできなくなったときでも、共通資源管理テーブルを再構築することで、ダウンしたノードを除くシステムの継続運用が可能である。
図15は、本発明の第2実施形態の共通資源管理システムを示している。共通資源管理システムは、ノード10a、20aと、クロスバースイッチ50とを有する。クロスバースイッチ50は、ノード間を接続するネットワークスイッチである。クロスバースイッチ50は、システム用共有レジスタ51と、ユーザ用共有レジスタ52とを有する。システム用共有レジスタ51は、システムが使用するレジスタであり、ユーザ用共有レジスタ52は、ユーザが分散処理プログラム等で使用可能なレジスタである。
ユーザ用共有レジスタ52は、複数のノードで共有される共通資源に該当する。システム用共有レジスタ51は、テーブルポインタ53を記憶している。システム用共有レジスタ51は、各ノードから一意にアクセスすることが可能である。各ノードは、記憶領域として、共通資源管理テーブル(ユーザ用共有レジスタフリーリスト)を有する。また、図15では図示を省略するが、各ノードは、共通資源管理テーブル移動手段、共通資源管理テーブル再構築手段、及び、共通資源管理テーブルアクセス手段を有している。
図15では、ノード20aが、使用中のユーザ用共有レジスタフリーリスト25を保有しており、テーブルポインタ53には、共通資源管理テーブル所在ノードに、ノード20aのノード番号「20」が記録されている。第1実施形態では、テーブルポインタを複数のノードに配置し、プライマリとして用いるテーブルポインタを保有するノードと、セカンダリとして用いるテーブルポインタを保有するノードとを、管理テーブル情報を用いて管理した。本実施形態では、テーブルポインタ53は、クロスバースイッチ50に固定的に配置されるので、管理テーブル情報は不要である。
テーブルポインタ53を、クロスバースイッチ50のシステム用共有レジスタ51に1つだけ配置するのは次のような理由からである。すなわち、クロスバースイッチ50が何らかの原因で故障すると、接続されたノード間のアクセスができなくなることに加えて、各ノードは、システム用共有レジスタ51及びユーザ用共有レジスタ52にアクセスできなくなる。つまり、テーブルポインタ53へのアクセスができなくなると共に、共通資源の利用ができなくなる。仮にどこかのノードがセカンダリとして用いるテーブルポインタを保有していたとしても、クロスバースイッチ50がダウンすると、共通資源を利用することはできない。従って、テーブルポインタに冗長性を持たせる必要はなく、テーブルポインタは、クロスバースイッチ50に1つあれば十分である。
本実施形態においても、共通資源管理テーブルであるユーザ用共有レジスタフリーリストの移動は、第1実施形態と同じである。つまり、各ノードは、ユーザ用共有レジスタフリーリストへのアクセス時に、自ノードに、ユーザ共有レジスタフリーリストを移動する。従って、本実施形態では、第1実施形態と同様な効果を得ることができる。すなわち、特定のノードに対するアクセスが集中することを防いで負荷分散を図ることができる。また、ユーザ用共有レジスタフリーリストの移動後に同じノードがアクセスする際のアクセスをローカルアクセスとすることができ、処理の高速化が可能である。
本実施形態では、テーブルポインタ53は、クロスバースイッチ50内のシステム用共有レジスタ51に配置している。従って、各ノードが、テーブルポインタの参照時にアクセスするのは、クロスバースイッチ50までとなる。何れかのノードがテーブルポインタを保有する構成の場合、アクセス元のノードは、クロスバースイッチ50を通って、アクセス先のノードまでアクセスすることになる。本実施形態では、クロスバースイッチ50までのアクセスで、テーブルポインタ53にアクセスできるので、ノードがテーブルポインタを保有する構成に比して、ネットワーク負荷を低減する効果が期待できる。
本実施形態では、テーブルポインタ53は、クロスバースイッチ50内に固定的に配置されるので、管理テーブル情報は不要である。管理テーブル情報を用いる場合、ユーザ用共有レジスタフリーリストにアクセスするためには、まず、管理テーブル情報を参照し、テーブルポインタを保有するノードを特定する必要がある。本実施形態では、管理テーブル情報を参照してテーブルポインタを保有するノードを特定する手順を省けるので、ユーザ用共有レジスタフリーリストへのアクセスの高速化が期待できる。
本実施形態では、テーブルポインタ53をクロスバースイッチ50に配置している。テーブルポインタを、ノードからクロスバースイッチ50に移すことで、システムとしての耐障害性のノード依存割合を低下させることができる。これは、クロスバースイッチ50の耐障害性を上げることで、システムの運用としての耐障害性を上げることができることを意味している。特に、ノード数が多くなる大規模システムでは、テーブルポインタをクロスバースイッチ50に配置する構成は、有利な構成になる。
また、本実施形態でも、ノードダウン等によりユーザ用共有レジスタフリーリストが失われたときは、共通資源管理テーブル再構築手段が、各ノードにユーザ用共有レジスタ52の使用状況を問い合わせ、ユーザ用共有レジスタフリーリストの再構築を行う。ユーザ用共有レジスタフリーリストの再構築を行うことで、ダウンしたノードを除くシステムの継続運用が可能である。
なお、上記各実施形態では、各ノードが共通資源管理テーブル移動手段、テーブルポインタ更新手段、及び、共通資源管理テーブル再構築を有しているが、全てのノードがこれら3つの手段を有している必要はなく、最低限、システム内に各手段が1つあればよい。また、共通資源管理テーブル移動手段は、共通資源管理テーブルにアクセスしたノードに共通資源管理テーブルを移動することとしたが、これには限定されない。負荷分散の観点からは、移動先の決定は任意であり、移動先がアクセスしたノードでなくとも、負荷分散の効果は得られる。
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の共通資源管理システム、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
本発明は、HPC(High Performance Computing)の分野に適用することができる。
10、20、30、40:ノード
11、21:共通資源管理テーブル移動手段
12、22:テーブルポインタ更新手段
13、23:共通資源管理テーブル再構築手段
14、24、34:テーブルポインタ
15、25、35:共通資源管理テーブル
16、26、36、46:管理テーブル情報
17、27:共通資源管理テーブルアクセス手段
19、29:プロセス
50:クロスバースイッチ
51:システム用共有レジスタ
52:ユーザ用共有レジスタ
53:テーブルポインタ

Claims (25)

  1. ネットワーク内の複数のノードが共通に使用可能な共通資源の使用状況を管理する共通資源管理テーブルを、一のノードから別のノードに移動させる共通資源管理テーブル移動手段と、
    前記共通資源管理テーブルが移動した際に、前記共通資源管理テーブルを保有するノードの識別情報を記憶するテーブルポインタに、移動先のノードの識別情報を記憶するテーブルポインタ更新手段とを備える共通資源管理システム。
  2. 前記共通資源管理テーブル移動手段が、前記ノードから前記共通資源管理テーブルへのアクセス時に、前記テーブルポインタを参照して前記共通資源管理テーブルを保有するノードを特定し、該特定したノードから前記共通資源管理テーブルを取得する共通資源管理テーブルアクセス手段を含み、前記共通資源管理テーブル移動手段は、前記共通資源管理テーブルにアクセスしたノードに、前記共通資源管理テーブルを移動する、請求項1に記載の共通資源管理システム。
  3. 前記複数のノードのそれぞれが前記共通資源管理テーブル移動手段を有しており、前記共通資源管理テーブル移動手段は、自ノードが前記共通資源管理テーブルにアクセスすると、前記共通資源管理テーブルを自ノードに移動する、請求項2に記載の共通資源管理システム。
  4. 前記共通資源管理テーブル移動手段は、共通資源管理テーブルの移動に際し、前記共通資源管理テーブルの最終移動時刻と現在時刻とを比較し、両時刻の差が所定の時間以上のとき、前記アクセスしたノードに前記共通資源管理テーブルを移動する、請求項2又は3に記載の共通資源管理システム。
  5. 前記複数のノードの少なくとも1つが前記テーブルポインタを保有しており、前記共通資源管理テーブルアクセス手段は、使用すべきテーブルポインタを保有するノードの識別情報を記憶する管理テーブル情報を参照して使用するテーブルポインタを保有するノードを特定し、該特定したノードが保有するテーブルポインタを参照して、前記共通資源管理テーブルを保有するノードを特定する、請求項2乃至4の何れか一に記載の共通資源管理システム。
  6. 前記管理テーブル情報が、プライマリとして用いるテーブルポインタを保有するノードの識別情報と、セカンダリとして用いるテーブルポインタを保有するノードの識別情報とを含み、前記共通資源管理テーブルアクセス手段は、前記プライマリとして用いるテーブルポインタが使用可能なときは当該テーブルポインタを参照し、前記プライマリとして用いるテーブルポインタが使用できないときは、前記セカンダリとして用いるテーブルポインタを参照する、請求項5に記載の共通資源管理システム。
  7. 前記共通資源管理テーブルアクセス手段が前記共通資源管理テーブルにアクセスできないとき、通信可能なノードから前記共通資源の使用状況を取得し、前記共通資源管理テーブルを再構築すると共に、前記テーブルポインタに、前記再構築した共通資源管理テーブルを保有するノードのノード識別情報を記録する共通資源管理テーブル再構築手段を更に備える、請求項2乃至6に記載の共通資源管理システム。
  8. 前記複数のノードのそれぞれが前記共通資源管理テーブル再構築手段を有しており、前記共通資源管理テーブル再構築手段は、自ノード内に共通資源管理テーブルを再構築する、請求項7に記載の共通資源管理システム。
  9. 前記共通資源管理テーブル再構築手段は、前記共通資源管理テーブルを保有するノードへアクセスしたときに当該ノードから応答がないとき、又は、前記テーブルポインタを参照することができないとき、前記共通資源管理テーブルの再構築を行う、請求項7又は8に記載の共通資源管理システム。
  10. コンピュータが、ネットワーク内の複数のノードが共通に使用可能な共通資源の使用状況を管理する共通資源管理テーブルを、一のノードから別のノードに移動させる移動ステップと、
    前記コンピュータが、前記共通資源管理テーブルを保有するノードの識別情報を記憶するテーブルポインタに、前記移動ステップで移動させた移動先のノードの識別情報を記憶するテーブルポインタ更新ステップとを有する共通資源管理方法。
  11. 前記移動ステップが、前記コンピュータが、前記ノードから前記共通資源管理テーブルへのアクセス時に、前記テーブルポインタを参照して前記共通資源管理テーブルを保有するノードを特定し、該特定したノードから前記共通資源管理テーブルを取得するステップを含み、前記移動ステップでは、前記コンピュータは、前記共通資源管理テーブルにアクセスしたノードに、前記共通資源管理テーブルを移動する、請求項10に記載の共通資源管理方法。
  12. 前記コンピュータが前記ノードを構成しており、前記移動ステップでは、自ノードが前記共通資源管理テーブルにアクセスすると、前記共通資源管理テーブルを自ノードに移動する、請求項11に記載の共通資源管理方法。
  13. 前記移動ステップでは、前記コンピュータは、前記共通資源管理テーブルの最終移動時刻と現在時刻とを比較し、両時刻の差が所定の時間以上のとき、前記アクセスしたノードに前記共通資源管理テーブルを移動する、請求項11又は12に記載の共通資源管理方法。
  14. 前記複数のノードの少なくとも1つが前記テーブルポインタを保有しており、前記共通資源管理テーブルを取得するステップでは、前記コンピュータは、使用すべきテーブルポインタを保有するノードの識別情報を記憶する管理テーブル情報を参照して使用するテーブルポインタを保有するノードを特定し、該特定したノードが保有するテーブルポインタを参照して、前記共通資源管理テーブルを保有するノードを特定する、請求項11乃至13の何れか一に記載の共通資源管理方法。
  15. 前記管理テーブル情報が、プライマリとして用いるテーブルポインタを保有するノードの識別情報と、セカンダリとして用いるテーブルポインタを保有するノードの識別情報とを含み、前記共通資源管理テーブルを取得するステップでは、前記コンピュータは、前記プライマリとして用いるテーブルポインタが使用可能なときは当該テーブルポインタを参照し、前記プライマリとして用いるテーブルポインタが使用できないときは、前記セカンダリとして用いるテーブルポインタを参照する、請求項14に記載の共通資源管理方法。
  16. 前記コンピュータが、前記共通資源管理テーブルにアクセスできないときに、通信可能なノードから前記共通資源の使用状況を取得し、前記共通資源管理テーブルを再構築するステップと、
    前記コンピュータが、前記テーブルポインタに、前記再構築した共通資源管理テーブルを保有するノードのノード識別情報を記録するステップとを更に有する、請求項11乃至15に記載の共通資源管理方法。
  17. 前記共通資源管理テーブルを再構築するステップでは、前記コンピュータは、前記共通資源管理テーブルを保有するノードへアクセスしたときに当該ノードから応答がないとき、又は、前記テーブルポインタを参照することができないとき、前記共通資源管理テーブルの再構築を行う、請求項16に記載の共通資源管理方法。
  18. コンピュータに、
    ネットワーク内の複数のノードが共通に使用可能な共通資源の使用状況を管理する共通資源管理テーブルを、一のノードから別のノードに移動させる移動処理と、
    前記共通資源管理テーブルを保有するノードの識別情報を記憶するテーブルポインタに、前記移動処理で移動させた移動先のノードの識別情報を記憶するテーブルポインタ更新処理とを実行させるプログラム。
  19. 前記移動処理が、前記ノードから前記共通資源管理テーブルへのアクセス時に、前記テーブルポインタを参照して前記共通資源管理テーブルを保有するノードを特定し、該特定したノードから前記共通資源管理テーブルを取得する処理を含み、前記移動処理では、前記共通資源管理テーブルにアクセスしたノードに、前記共通資源管理テーブルを移動する、請求項18に記載のプログラム。
  20. 前記コンピュータが前記ノードを構成しており、前記移動処理では、自ノードが前記共通資源管理テーブルにアクセスすると、前記共通資源管理テーブルを自ノードに移動する、請求項19に記載のプログラム。
  21. 前記移動処理では、前記共通資源管理テーブルの最終移動時刻と現在時刻とを比較し、両時刻の差が所定の時間以上のとき、前記アクセスしたノードに前記共通資源管理テーブルを移動する、請求項19又は20に記載のプログラム。
  22. 前記複数のノードの少なくとも1つが前記テーブルポインタを保有しており、前記共通資源管理テーブルを取得する処理では、使用すべきテーブルポインタを保有するノードの識別情報を記憶する管理テーブル情報を参照して使用するテーブルポインタを保有するノードを特定し、該特定したノードが保有するテーブルポインタを参照して、前記共通資源管理テーブルを保有するノードを特定する、請求項19乃至21の何れか一に記載のプログラム。
  23. 前記管理テーブル情報が、プライマリとして用いるテーブルポインタを保有するノードの識別情報と、セカンダリとして用いるテーブルポインタを保有するノードの識別情報とを含み、前記共通資源管理テーブルを取得する処理では、前記プライマリとして用いるテーブルポインタが使用可能なときは当該テーブルポインタを参照し、前記プライマリとして用いるテーブルポインタが使用できないときは、前記セカンダリとして用いるテーブルポインタを参照する、請求項22に記載のプログラム。
  24. 前記コンピュータに、
    前記共通資源管理テーブルにアクセスできないときに、通信可能なノードから前記共通資源の使用状況を取得し、前記共通資源管理テーブルを再構築する処理と、前記テーブルポインタに、前記再構築した共通資源管理テーブルを保有するノードのノード識別情報を記録する処理とを更に実行させる、請求項19乃至23の何れか一に記載のプログラム。
  25. 前記共通資源管理テーブルを再構築する処理では、前記共通資源管理テーブルを保有するノードへアクセスしたときに当該ノードから応答がないとき、又は、前記テーブルポインタを参照することができないとき、前記共通資源管理テーブルの再構築を行う、請求項24に記載のプログラム。
JP2009050362A 2009-03-04 2009-03-04 共通資源管理システム、方法、及び、プログラム Expired - Fee Related JP5375205B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009050362A JP5375205B2 (ja) 2009-03-04 2009-03-04 共通資源管理システム、方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009050362A JP5375205B2 (ja) 2009-03-04 2009-03-04 共通資源管理システム、方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2010205005A true JP2010205005A (ja) 2010-09-16
JP5375205B2 JP5375205B2 (ja) 2013-12-25

Family

ID=42966415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009050362A Expired - Fee Related JP5375205B2 (ja) 2009-03-04 2009-03-04 共通資源管理システム、方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP5375205B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0279152A (ja) * 1988-09-16 1990-03-19 Hokkaido Nippon Denki Software Kk 複数プロセッサシステムにおける共有データの高速アクセス方式
JPH04112260A (ja) * 1990-08-31 1992-04-14 Fujitsu Ltd マルチプロセッサによるデータベース処理装置
JPH0696031A (ja) * 1992-09-10 1994-04-08 Fujitsu Ltd 共有資源管理方式
JP2001022599A (ja) * 1999-07-06 2001-01-26 Fujitsu Ltd フォールトトレラント・システム,フォールトトレラント処理方法およびフォールトトレラント制御用プログラム記録媒体
JP2006113828A (ja) * 2004-10-15 2006-04-27 Hitachi Ltd 作業負荷管理可能なクラスタシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0279152A (ja) * 1988-09-16 1990-03-19 Hokkaido Nippon Denki Software Kk 複数プロセッサシステムにおける共有データの高速アクセス方式
JPH04112260A (ja) * 1990-08-31 1992-04-14 Fujitsu Ltd マルチプロセッサによるデータベース処理装置
JPH0696031A (ja) * 1992-09-10 1994-04-08 Fujitsu Ltd 共有資源管理方式
JP2001022599A (ja) * 1999-07-06 2001-01-26 Fujitsu Ltd フォールトトレラント・システム,フォールトトレラント処理方法およびフォールトトレラント制御用プログラム記録媒体
JP2006113828A (ja) * 2004-10-15 2006-04-27 Hitachi Ltd 作業負荷管理可能なクラスタシステム

Also Published As

Publication number Publication date
JP5375205B2 (ja) 2013-12-25

Similar Documents

Publication Publication Date Title
JP6047564B2 (ja) セッションアフィニティおよびクラスタ化されたデータベース環境におけるコネクティビティの向上を提供するためのシステムおよび方法
Wang et al. Hadoop high availability through metadata replication
US10817478B2 (en) System and method for supporting persistent store versioning and integrity in a distributed data grid
US9130821B2 (en) Hybrid locking using network and on-disk based schemes
JP4771378B2 (ja) ファイル・システム逐次化再初期設定の装置、システム、および方法
US8185493B2 (en) Solution method of in-doubt state in two-phase commit protocol of distributed transaction
US8275815B2 (en) Transactional processing for clustered file systems
US9548912B2 (en) System and method for supporting smart buffer management in a distributed data grid
US8126843B2 (en) Cluster-wide read-copy update system and method
US8352658B2 (en) Fabric based lock manager service
KR101296778B1 (ko) NoSQL 데이터베이스를 위한 결과적 트랜잭션 처리 방법
US8805855B2 (en) Efficiently storing and retrieving data and metadata
JP6225262B2 (ja) 分散データグリッドにおいてデータを同期させるためにパーティションレベルジャーナリングをサポートするためのシステムおよび方法
US9553951B1 (en) Semaphores in distributed computing environments
US11550820B2 (en) System and method for partition-scoped snapshot creation in a distributed data computing environment
WO2018120810A1 (zh) 一种解决数据冲突的方法和系统
US11288237B2 (en) Distributed file system with thin arbiter node
CN109522043B (zh) 一种配置数据的管理方法、装置及存储介质
US20160077888A1 (en) System and method for supporting cooperative notification offloading in a distributed data grid
JP5375205B2 (ja) 共通資源管理システム、方法、及び、プログラム
Meiklejohn Riak PG: Distributed process groups on dynamo-style distributed storage
US8180739B2 (en) Duplicate filtering in a data processing environment
Ling * The Case for a Session State Storage Layer
Pandey et al. Persisting the AntidoteDB Cache: Design and Implementation of a Cache for a CRDT Datastore
dos Santos Almeida Geo-Replication in Large Scale Cloud Computing Applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130909

R150 Certificate of patent or registration of utility model

Ref document number: 5375205

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