JP2014095946A - 情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラム - Google Patents

情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラム Download PDF

Info

Publication number
JP2014095946A
JP2014095946A JP2012245599A JP2012245599A JP2014095946A JP 2014095946 A JP2014095946 A JP 2014095946A JP 2012245599 A JP2012245599 A JP 2012245599A JP 2012245599 A JP2012245599 A JP 2012245599A JP 2014095946 A JP2014095946 A JP 2014095946A
Authority
JP
Japan
Prior art keywords
information processing
node
unit
cache
access request
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
JP2012245599A
Other languages
English (en)
Other versions
JP6036190B2 (ja
Inventor
Takatsugu Ono
貴継 小野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012245599A priority Critical patent/JP6036190B2/ja
Priority to US13/975,569 priority patent/US9401870B2/en
Publication of JP2014095946A publication Critical patent/JP2014095946A/ja
Application granted granted Critical
Publication of JP6036190B2 publication Critical patent/JP6036190B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Abstract

【課題】負荷分散を行うノード数が変更された場合におけるデータベースへのアクセスの上昇を抑える情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラムを提供する。
【解決手段】キャッシュノード201〜203は、複数ある。記憶部401〜410は複数あり、キャッシュノード201〜203毎に割り当てられる。管理部100は、アクセス要求を受けて、受信したアクセス要求に基づく処理をアクセス先のキャッシュノード201〜203に指示する。制御部301は、キャッシュノード201〜203のうちいずれかが故障した場合に、故障したキャッシュノード201〜203に割り当てられていた記憶部401〜410の割り当てを、故障したキャッシュノード201〜203以外のキャッシュノード201〜203のいずれかに切替える。
【選択図】図2

Description

本発明は、情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラムに関する。
ファイルや画像等のデータを記憶するデータベース等の情報処理システムは、サーバなどの複数の情報処理装置を並列に設けることで、アクセスによる負荷を分散できる。以下では、負荷分散を行っている情報処理装置をノードと言う場合がある。このような情報処理システムでは、特定のノードへのアクセスが集中した場合、アクセスが集中したノードがボトルネックになり、情報処理システム全体の性能が低下する。
そこで、ノードに対する負荷を分散させるために、各ノードに対応して設けられるデータ領域のうち参照頻度の高いデータ領域が、他のノードからアクセス可能な共有データ領域に設定される従来技術がある(例えば、特許文献1参照)。
また、データベースのアクセスを減らし検索効率を向上させるため、データベースサーバから検索結果を取得し、ページIDと検索条件データと取得結果データとを関連付けて管理する従来技術がある(例えば、特許文献2参照)。
さらに、データベースサーバへの問い合わせ項目及びその結果をサーバなどの各ノードが有するメモリに格納する技術が従来提案されている。
特開2005−339236号公報 特開2006−127123号公報
このように、問い合わせ項目とその結果をメモリに格納する場合、各ノードに問い合わせを分配するロードバランサが、どのノードが有するメモリに問い合わせ項目やその結果を格納させるかを決定する。その場合、ロードバランサは、どのノードに情報を格納するかハッシュテーブルを用いて決定することが多い。そして、このような負荷分散を行う場合には、負荷分散しているノードの数でハッシュ値を割った余りをIDとするノードを情報の格納先として、情報の格納先を分散させる分散アルゴリズムを用いることが考えられる。
しかしながら、負荷分散を行っているいずれかのノードが故障などの理由により負荷分散の構成から削除された場合、ノードの数が減ってしまう。ノードの数を用いて情報の格納先を決定している場合、ノードの数が減ってしまうと、情報の格納先として取得される値が異なってしまい、求める情報を格納するノードへの接続が困難となり、キャッシュミスが頻発するおそれがある。そして、キャッシュミスの頻発により、データベースにアクセスが集中し情報処理システムの性能が著しく低下するおそれがある。
この問題を緩和するため、ノードの数が減った影響を一部だけに抑えるためのコンシステントハッシュを用いることが考えられるが、それでも複数のノードに影響が及ぶことは避けられず、やはり、情報処理システムの性能が低下するおそれがある。
データ領域のうち参照頻度の高いデータ領域を共有データ領域として設定する従来技術では、各ノードのメモリを情報の格納先として割り当てることは考慮されておらず、上述した状況において、情報処理システムの性能低下を回避することは困難である。
また、ページID、検索条件及び取得結果を関連付けて管理する従来技術では、上述の分散アルゴリズムを用いた場合におけるノードの削除については考慮されておらず、そのような場合における情報処理システムの性能の低下を回避することは困難である。
開示の技術は、上記に鑑みてなされたものであって、負荷分散を行うノード数が変更された場合におけるデータベースへのアクセスの上昇を抑える情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラムを提供することを目的とする。
本願の開示する情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラムは、一つの態様において、情報処理部は、複数ある。記憶部は複数あり、前記情報処理部毎に割り当てられる。負荷分散制御部は、アクセス要求を受けて、受信したアクセス要求に基づく処理をアクセス先の前記情報処理部に指示する。割当制御部は、前記情報処理部のうちいずれかが故障した場合に、故障した情報処理部に割り当てられていた記憶部(401〜410)の割り当てを、故障した情報処理部以外の情報処理部のいずれかに切替える。
本願の開示する情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラムの一つの態様によれば、負荷分散を行うノード数が変更された場合におけるデータベースへのアクセスの上昇を抑えることができるという効果を奏する。
図1は、情報通信システムのシステム構成を表す概略図である。 図2は、実施例1に係る情報通信システムのブロック図である。 図3は、ノード変換テーブルの一例を表す図である。 図4は、管理テーブルの一例を表す図である。 図5は、記憶部の割り当て変更後の管理テーブルを表す一例の図である。 図6は、実施例1に係る情報処理システムにおけるアクセス要求に対する処理のフローチャートである。 図7は、アクセス先のキャッシュノードの決定処理のフローチャートである。 図8は、実施例1に係る情報処理システムにおけるにおけるキャッシュミスヒット後の書き込み要求に対する処理のフローチャートである。 図9は、ノード故障によるノード切替時の処理のフローチャートである。 図10は、代替ノードの決定処理のフローチャートである。 図11は、情報処理システムのハードウェア構成を表す図である。 図12は、実施例2に係る情報処理システムのブロック図である。
以下に、本願の開示する情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラムが限定されるものではない。
図1は、情報通信システムのシステム構成を表す概略図である。図1に示すように、本実施例に係る情報通信システムは、ロードバランサ1、キャッシュサーバ2、スイッチ3、外部メモリ格納装置4、データベースサーバ5、クライアントPC(Personal Computer)6及びネットワーク7を有している。
データベースサーバ5は、データベースを有するサーバである。データベースサーバ5は、キャッシュサーバ2においてキャッシュヒットしなかった場合、書き込みや読み出しなどのアクセス要求を受ける。アクセス要求には、書き込みや読み出しを指示するクエリが含まれる。クエリには要求するデータを特定するためのキーが含まれる。受信したアクセス要求が読み出し要求の場合、データベースサーバ5は、データベースを検索し、指定されたデータを抽出する。そして、データベースサーバ5は、抽出したデータを要求元へ返す。また、受信したアクセス要求が書き込み要求の場合、データベースサーバ5は、指定されたデータをデータベースに書き込み、処理完了の応答を要求元へ返す。
クライアントPC6は、アクセス要求をロードバランサ1へネットワーク7を介して送信する。そして、クライアントPC6は、アクセス要求に含まれるクエリに対する応答をロードバランサ1から取得する。例えば、アクセス要求が読み出し要求の場合、クライアントPC6は、読み出しを指定したデータをロードバランサ1から取得する。
ロードバランサ1は、アクセス要求をクライアントPC6から受ける。そして、ロードバランサ1は、受信したアクセス要求に応じたクエリをデータベースサーバ5又はキャッシュサーバ2へ出力する。具体的には、ロードバランサ1は、取得したアクセス要求のクエリに対してハッシュ関数などを用いて、キャッシュサーバ2を一意に表すバリューを求める。そして、ロードバランサ1は、求めたバリューに対応するキャッシュサーバ2にクエリを送信する。求めたバリューに対応するキャッシュサーバ2でデータが既に管理されている場合、ロードバランサ1は、キャッシュヒットの通知をキャッシュサーバ2から受ける。これに対して、求めたバリューに対応するキャッシュサーバ2で管理されていなければ、ロードバランサ1は、キャッシュミスヒットの通知をキャッシュサーバ2から受ける。そして、ロードバランサ1は、データベースサーバ5から指定されたデータを読み出す。次に、ロードバランサ1は、読み出したデータを求めたバリューに対応するキャッシュサーバ2が管理するメモリに格納する。この時、メモリに空きが無ければ、ロードバランサ1は、Least Recently Used(LRU)方式でメモリ内のデータを削除し、空いた領域に読み出したデータを格納する。
キャッシュサーバ2は、アクセス要求に応じたクエリをロードバランサ1から受ける。そして、内蔵メモリに指定されたデータがあるか否かを確認する。指定されたデータが内蔵メモリにあれば、キャッシュサーバ2は、キャッシュヒットの通知をロードバランサ1に送る。加えて、アクセス要求が読み出し命令の場合、キャッシュサーバ2は、ヒットしたデータをロードバランサ1へ出力する。これに対して、指定されたデータが内蔵メモリに無ければ、キャッシュサーバ2は、スイッチ3を介して外部メモリ格納装置4へアクセス要求に応じたクエリを出力する。その後、キャッシュサーバ2は、外部メモリ格納装置4においてキャッシュヒットした場合、キャッシュヒットの通知をロードバランサへ送信する。加えて、アクセス要求が読み出し命令の場合、キャッシュサーバ2は、読み出し命令に対応したデータの入力を外部メモリ格納装置4からスイッチ3を介して受ける。そして、キャッシュサーバ2は、取得した読み出し命令に応じたデータをクライアントPC6へ出力する。これに対して、外部メモリ格納装置4においてもキャッシュミスヒットの場合、キャッシュサーバ2は、キャッシュミスヒットの通知をロードバランサへ送信する。
また、キャッシュミスヒットの場合、後に、キャッシュサーバ2は、ロードバランサ1からキャッシュミスヒットしたデータのキャッシュへの書き込み要求を受ける。そして、キャッシュサーバ2は、書き込み要求を受けると、内蔵メモリに空き容量があるか否かを判定する。内蔵メモリに空き容量があれば、キャッシュサーバ2は、指定されたデータを内蔵メモリに書き込む。一方、内蔵メモリに空き容量が無ければ、キャッシュサーバ2は、書き込み要求のクエリを外部メモリ格納装置4にスイッチ3を介して送信する。
スイッチ3は、例えばMulti Root-Input Output Virtualization(MR−IOV)を利用したスイッチなどである。スイッチ3は、キャッシュサーバ2から送られてきたクエリなどを外部メモリ格納装置4へ転送する。
外部メモリ格納装置4は、コントローラ41及びメモリ42を有している。図1では、メモリ42を9個記載したが、メモリ42の数には特に制限は無い。
コントローラ41は、各キャッシュサーバ2が管理するメモリの情報及び各メモリが格納するクエリの情報が記載された管理テーブルを有している。
コントローラ41は、アクセス要求に応じたクエリをキャッシュサーバ2から受けると、管理テーブルを用いて、クエリの入力元であるキャッシュサーバ2に対応するメモリ42を特定する。さらに、コントローラ41は、特定したメモリ42の中からクエリを格納しているメモリ42を抽出し、クエリに応じたデータがあるか否かを判定する。クエリに応じたデータが無い場合、コントローラ41は、キャッシュミスヒットの通知をキャッシュサーバ2へ返す。これに対して、クエリに応じたデータがある場合、コントローラ41は、キャッシュヒットの通知をキャッシュサーバ2へ返す。加えて、読み出し要求のクエリの場合コントローラ41は、クエリに応じたデータを抽出したメモリ42から取得する。そして、コントローラ41は、取得したデータをクエリの送信元のキャッシュサーバ2へスイッチ3を介して出力する。
また、コントローラ41は、キャッシュミスヒット後、データの書き込み要求をキャッシュサーバ2から受けると、管理テーブルを用いて、書き込み要求の送信元のキャッシュサーバ2に割り当てられているメモリ42を特定する。そして、コントローラ41は、特定したメモリ42に書き込み要求に応じたデータを書き込む。そして、コントローラ41は、そのデータに対するクエリのクエリ名とそのデータの格納先のメモリ42との対応を管理テーブルに登録する。
次に、図2を参照して、本実施例に係る情報通信システムにおいてキャッシュサーバの故障が発生した場合の機能及び動作について詳細に説明する。図2は、実施例1に係る情報通信システムのブロック図である。
本実施例に係る情報通信システムは、図2に示すように、管理部100、キャッシュノード201〜203及び外部記憶部300を有している。管理部100は、図1のロードバランサ1にあたる。キャッシュノード201〜203は、図1のキャッシュサーバ2にあたる。以下では、キャッシュノード201〜203のそれぞれを区別しない場合には、単に「キャッシュノード200」という。
外部記憶部300は、制御部301及び記憶部401〜410を有している。制御部301は、図1のコントローラ41にあたる。記憶部401〜410がメモリ42にあたる。以下では、記憶部401〜410のそれぞれを区別しない場合には、単に「記憶部400」と言う場合がある。ここで、図2では、説明の便宜上、図1のスイッチ3にあたる機能を省略しているが、実際には、キャッシュノード201〜203と制御部301との間にスイッチ3が行うスイッチング機能を実現する処理部がある。また、図2では、キャッシュノード200の故障時の動作を主に説明するため、図1におけるデータベースサーバ5、クライアントPC6及びネットワーク7は省略している。
管理部100は、アクセス要求制御部101、ノード変換テーブル管理部102及び故障検知部103を有している。この管理部100が、「負荷分散制御部」の一例にあたる。
ノード変換テーブル管理部102は、例えば、図3に示すようなノード変換テーブル500を格納している。図3は、ノード変換テーブルの一例を表す図である。ノード変換テーブル500は、あるキャッシュノード200で故障が発生し、故障が発生したキャッシュノード200が管理していた記憶部400が、他のキャッシュノード200の管理下へ移行されたことを示すテーブルである。図3に示すように、ノード変換テーブル500は、ハッシュ後のアクセス先とそれに対応するアクセス変更先が登録されている。ハッシュ後のアクセス先は、アクセス要求によってデータの書き込みや読み出しを行う対象となるキャッシュノード200の識別子である。具体的には、ハッシュ後のアクセス先は、アクセス要求に含まれるクエリに対して、例えばハッシュ関数などのアルゴリズムを用いて求めるバリューによって表される。より具体的には、バリューは、例えば、クエリ(キー)に対してハッシュ関数を用いてハッシュ値を求め、そのハッシュ値をキャッシュノード200のノード数で割ることによって求められる。以下では、キャッシュノード200の識別子を「ノードID」と呼ぶ場合がある。さらに、図3に示す「S0」は、キャッシュノード201のノードIDにあたり、「S1」は、キャッシュノード202のノードIDにあたり、「S2」は、キャッシュノード203のノードIDにあたる。このノード変換テーブル500が、「変換テーブル」の一例にあたる。
アクセス要求制御部101は、クライアントPC6からのアクセス要求を受信する。そして、アクセス要求制御部101は、受信したアクセス要求に含まれるクエリに対して、例えば、ハッシュ関数などのアルゴリズムを用いてバリューを求める。そして、アクセス要求制御部101は、ハッシュ後のアクセス先である求めたバリューで表されるノードIDを有するキャッシュノード200に対応するアクセス変更先を表すノードIDをノード変換テーブル管理部102に格納されているノード変換テーブル500から取得する。そして、アクセス要求制御部101は、取得したノードIDに対応するキャッシュノード200へクエリを出力する。以下では、クエリの送信先のキャッシュノード200を「アクセス先」という場合がある。
例えば、図3に示すように、ハッシュ後のアクセス先510は、キャッシュノード201を示す「S0」である。それに対応するアクセス変更先511は、キャッシュノード201を示す「S0」である。すなわち、キャッシュノード201においては、ノードの切替えが発生していないといえる。この場合、アクセス要求制御部101は、アクセス要求から求めたハッシュ後のアクセス先のバリューが「S1」であれば、アクセス変更先のバリューとして「S1」を取得し、「S1」に対応するキャッシュノード201をアクセス要求の出力先とする。また、このようにハッシュ後のアクセス先とアクセス変更先とのバリューが一致している場合、アクセス要求制御部101は、アクセス変更先の情報を取得せずに、ハッシュ後のアクセス先に対応するキャッシュノード201をクエリの出力先としてもよい。
また、図3に示すように、ハッシュ後のアクセス先520は、キャッシュノード202を示す「S1」である。それに対応するアクセス変更先521は、キャッシュノード203を示す「S2」である。この場合、アクセス要求制御部101は、アクセス要求から求めたハッシュ後のアクセス先のバリューが「S1」であれば、アクセス変更先のバリューとして「S2」を取得する。そして、アクセス要求制御部101は、受信したアクセス要求を「S2」に対応するキャッシュノード203をクエリの出力先とする。
また、アクセス要求制御部101は、アクセス要求に含まれるクエリに応じた応答をキャッシュノード200から受信する。そして、アクセス要求制御部101は、受信した応答を出力する。
また、アクセス要求制御部101は、キャッシュノード200の故障の通知の入力を故障検知部103から受ける。そして、アクセス要求制御部101は、キャッシュノード201〜203のうち故障していないキャッシュノード200の中から仮代替ノードを選択する。例えば、アクセス要求制御部101は、故障していないキャッシュノード201の中からランダムに仮代替ノードを選択する。そして、アクセス要求制御部101は、仮代替ノードになった旨を選択した仮代替ノードへ通知する。その後、アクセス要求制御部101は、仮代替ノードによって決定された正式な代替サーバとして決定されたキャッシュノード200から、後述する管理テーブル更新完了の通知を受信する。そして、アクセス要求制御部101は、ノード変換テーブル500におけるハッシュ後のアクセス先である故障したキャッシュノード200に対応するアクセス変換先に、代替サーバとなったキャッシュノード200のノードIDを登録する。
故障検知部103は、各キャッシュノード200の動作を監視している。そして、故障検知部103は、キャッシュノード200のいずれかに故障が発生すると、故障の発生を検知する。故障の発生を検知した場合、故障検知部103は、故障が発生したキャッシュノード200の識別情報をアクセス要求制御部101へ出力する。
このように、本実施例に係る情報処理システムは、各キャッシュノード200が管理する記憶部400を変更した場合に、ノード変換テーブル500の故障したキャッシュノード200を表すハッシュ後のアクセス先に対応するアクセス変換先を書き換えておく。これにより、本実施例に係る情報処理システムは、故障したキャッシュノード200が管理していた記憶部400が新たに割り当てられたキャッシュノード200経由で、故障したキャッシュノード200が管理していた記憶部400に格納しているデータにアクセスできる。
キャッシュノード200は、クエリをアクセス要求制御部101から受信する。このキャッシュノード200が、「情報処理部」の一例にあたる。
キャッシュノード200は、自装置に内蔵された内蔵メモリにクエリで指定されたデータがあるか否かを判定する。データが内蔵メモリにあれば、キャッシュノード200は、キャッシュヒットの通知をアクセス要求制御部101へ通知する。加えて、クエリが読み出し要求であれば、内蔵メモリからデータを取得し管理部100のアクセス要求制御部101へ送信する。これに対して、クエリで指定されたデータが内蔵メモリに無ければ、キャッシュノード200は、クエリを制御部301に対して送信する。その後、キャッシュヒットの通知を制御部301から受信した場合、キャッシュノード200は、キャッシュヒットの通知をアクセス要求制御部101へ送信する。加えて、クエリが読み出し要求の場合、キャッシュノード200は、読み出しのクエリに応じたデータを制御部301から受信する。そして、キャッシュノード200は、受信したデータを管理部100のアクセス要求制御部101へ送信する。これに対して、読み出しのクエリに応じたデータが無い旨、すなわちキャッシュミスヒットの通知を制御部301から受信した場合、キャッシュノード200は、キャッシュミスヒットの通知をアクセス要求制御部101へ送信する。その後、キャッシュノード200は、キャッシュミスヒットとなったデータの書き込み要求を、キャッシュノード200から受信する。
キャッシュミスヒットとなったデータの書き込み要求を受信すると、キャッシュノード200は、自装置に内蔵された内蔵メモリに空きがあるか否かを判定する。内蔵メモリに空きが有れば、キャッシュノード200は、内蔵メモリに指定されたデータを書き込む。これに対して、内蔵メモリに空きがない場合、キャッシュノード200は、自己が管理する記憶部400の空きがあるか否かの確認を制御部301に対して行う。その後、キャッシュノード200は、空きがある旨の通知を制御部301から受けた場合、書き込み要求を制御部301に送信する。これに対して、空きがない旨の通知を制御部301から受けた場合、キャッシュノード200は、自装置の内蔵メモリのデータをLRU方式などに基づいて消去する。そして、キャッシュノード200は、内蔵メモリにできた空き領域に書き込み要求で指示されたデータを書き込む。
また、アクセス要求制御部101によって仮代替ノードに選択されたキャッシュノード200は、仮代替ノードとして選択された通知をアクセス要求制御部101から受信する。そして、仮代替ノードとなったキャッシュノード200は、各記憶部400のアクセス回数を制御部301から取得する。さらに、仮代替ノードとなったキャッシュノード200は、各記憶部400が割り当てられているキャッシュノード200の情報を取得する。その後、仮代替ノードとなったキャッシュノード200は、故障していないキャッシュノードにおけるキャッシュノード200毎の割り当てられている記憶部400のアクセス回数の総和を算出する。そして、仮代替ノードとなったキャッシュノード200は、割り当てられている記憶部400に対するアクセス回数の総和が最小のキャッシュノード200を特定する。そして、仮代替ノードとなったキャッシュノード200は、特定したキャッシュノード200を正式な代替サーバとして決定する。その後、仮代替ノードとなったキャッシュノード200は、代替サーバとして決定したキャッシュノード200の識別情報を制御部301へ通知する。ここで、正式な代替サーバは、仮代替ノードが選択されてもよい。
また、仮代替ノードとなったキャッシュノード200から正式な代替サーバとして選択されたキャッシュノード200は、後述するノード管理テーブルの更新の通知を制御部301から受信する。そして、代替サーバとなったキャッシュノード200は、ノード管理テーブルの更新の通知を自装置の識別情報と共に管理部100のアクセス要求制御部101へ通知する。
制御部301は、入出力部311及び管理テーブル管理部312を有している。この制御部301が、「割当制御部」の一例にあたる。
管理テーブル管理部312は、図4に示す管理テーブル600を記憶している。図4は、管理テーブルの一例を表す図である。図4に示すように、管理テーブル600には、各ノードIDに対応するように、メモリID、クエリ名、アクセス回数及び時間カウンタが登録されている。メモリIDは、各ノードIDを有するキャッシュノード200に割り当てられているメモリの識別情報である。ここで、図4のメモリIDである「D0」〜「D9」はそれぞれ、図2の記憶部401〜409に対応しているものとする。クエリ名は、各記憶部400に格納されているクエリの識別情報である。クエリ名の領域は、各記憶部400のアドレス空間に対応して区画されている。クエリに対応するデータの記憶部400内の格納先は、クエリ名の領域内のクエリの格納位置により検出される。図4に示す例では、クエリA,B,Cは、メモリIDが「D0」である記憶部401の先頭の3ブロックに格納されている。また、クエリD,E,Fは、記憶部402の2番目、4番目、5番目のブロックにそれぞれ格納されている。クエリ名の空白の領域は、データが書き込まれていないとき又はデータが消去されたときなどを示している。アクセス回数は、各メモリに対する一定時間内でのアクセスの回数である。時間カウンタは、各メモリが割り当てられてからの時間の経過を示すカウンタである。
管理テーブル管理部312は、キャッシュノード201〜203が起動した際に、各キャッシュノード201〜203に記憶部400のいずれを割り当てるかを決定する。例えば、管理テーブル管理部312は、記憶部400の数をキャッシュノード200の数で割り余りを除いた記憶部400を各キャッシュノード200に均等に割り当てる等する。そして、管理テーブル管理部312は、各キャッシュノード200に割り当てた記憶部400の識別情報を管理テーブル600のメモリIDの欄に登録する。また、管理テーブル管理部312は、記憶部400に格納したクエリのクエリ名を格納先の記憶部400の識別情報であるメモリIDと共に入出力部311から取得する。そして、管理テーブル管理部312は、取得したメモリIDに対応する管理テーブル600のクエリ名の欄に取得したクエリ名を登録する。また、管理テーブル管理部312は、アクセス要求に応じたクエリを受信した旨の通知を、そのクエリで指示されたデータを格納している記憶部400のメモリIDとともに入出力部311から受信する。そして、管理テーブル管理部312は、受信したメモリIDに対応する管理テーブル600のアクセス回数を1つインクリメントする。さらに、管理テーブル302は、時間カウンタを用いて時間を計測し所定の時間が経過すると、アクセス回数をリセットして0にする。また、管理テーブル管理部312は、時計(不図示)を有しており、時間カウンタには、自己の時計を用いてカウントした時間を随時登録していく。そして、あるクエリが記憶部400に格納されてから予め決められた期間が経過すると、管理テーブル管理部312は、そのクエリに対応するデータを記憶部400から削除する。さらに、管理テーブル管理部312は、クエリ名を管理テーブル600から削除する。
また、管理テーブル管理部312は、仮代替ノードとなったキャッシュノード200が送信した故障サーバの情報及び代替サーバの情報を、入出力部311を介して受信する。そして、管理テーブル管理部312は、管理テーブル600において、故障サーバであるキャッシュノード200のノードIDに割り当てられていたメモリIDを代替サーバとなったキャッシュノード200に割り当てる。そして、管理テーブル管理部312は、管理テーブル更新完了の通知を、入出力部311を介して代替サーバであるキャッシュノード200に送信する。ここで、図4及び図5を参照して、管理テーブル管理部312による管理テーブル600の書き換えについて具体的に説明する。図5は、記憶部の割り当て変更後の管理テーブルを表す一例の図である。管理テーブル600が図4のような状態の場合に、管理テーブル管理部312が、故障サーバがキャッシュノード202であり、代替サーバがキャッシュノード203であるという情報を仮代替ノードから受ける。この場合、管理テーブル管理部312は、キャッシュノード202を表すサーバIDである「S1」には、メモリIDが「D3」〜「D5」である記憶部400が割り当てられていることを確認する。次に、管理テーブル管理部312は、管理テーブル600から故障サーバであるキャッシュノード200のノードIDである「S1」を削除する。さらに、管理テーブル管理部312は、代替サーバであるキャッシュノード203のノードIDに対応するように、メモリIDが「D3」〜「D5」である記憶部400を登録する。これにより、管理テーブル600は、図5の状態に変わる。図5では、「S2」のノードIDに対して、「D3」〜「D8」の6つのメモリIDが対応している。すなわち、キャッシュノード203に対して、記憶部404〜409が割り当てられている。
入出力部311は、キャッシュノード200からアクセス要求に応じたクエリを受けると、受信したクエリのクエリ名が、管理テーブル管理部312の有する管理テーブル600に登録されているか否かを判定する。登録されている場合、入出力部311は、キャッシュヒットの通知をキャッシュノード200へ送信する。加えて、クエリが読み出し要求であれば、入出力部311は、そのクエリ名に対応するメモリID及びそのクエリが格納されているブロックを特定する。そして、入出力部311は、特定したメモリIDを有する記憶部400の特定したブロックからアクセス要求に対応したデータを取得する。その後、入出力部311は、取得したデータをクエリの送信元のキャッシュノード200へ送信する。
例えば、キャッシュノード200のいずれにも故障が発生しておらず、管理テーブル600が図4のような状態である場合で説明する。入出力部311は、クエリ名が「M」の読み出し要求のクエリをキャッシュノード202から受信すると、図4の管理テーブル600において「S1」のノードIDに対してメモリIDが「D3」〜「D5」の記憶部400が割り当てられていることを確認する。そして、入出力部311は、管理テーブル600において、メモリIDが「D3」〜「D5」の記憶部400に格納されているクエリ名を検索する。そして、入出力部311は、クエリ名が「M」のクエリが、メモリIDが「D4」である記憶部405の1番目のブロックに格納されていることを特定する。そして、入出力部311は、キャッシュノード202へキャッシュヒットを通知する。さらに、入出力部311は、記憶部405の1番目のブロックからデータを取得し、キャッシュノード202へ取得したデータを出力する。
次に、キャッシュノード202が故障し、管理テーブル600が図5のような状態になっている場合で説明する。入出力部311は、クエリ名が「M」のクエリをキャッシュノード203から受信すると、図4の管理テーブル600において「S2」のノードIDに対してメモリIDが「D3」〜「D8」の記憶部400が割り当てられていることを確認する。そして、入出力部311は、管理テーブル600において、メモリIDが「D3」〜「D8」の記憶部400に格納されているクエリ名を検索する。そして、入出力部311は、クエリ名が「M」のクエリが、メモリIDが「D4」である記憶部405の1番目のブロックに格納されていることを特定する。そして、入出力部311は、キャッシュノード203へキャッシュヒットを通知する。さらに、入出力部311は、記憶部405の1番目のブロックからデータを取得し、キャッシュノード203へ取得したデータを出力する。
このように、本実施例に係る情報処理システムは、故障により各キャッシュノード200が管理する記憶部400を変更した場合に、管理テーブル600のノードIDに対応するメモリIDを書き換えておく。これにより、本実施例に係る情報処理システムは、故障したキャッシュノード200が管理していた記憶部400が新たに割り当てられたキャッシュノード200経由で、故障したキャッシュノード200が管理している記憶部400に格納していたデータにアクセスできる。
図2に戻って説明を続ける。読み出し要求のクエリのクエリ名が、管理テーブル600に登録されていない場合、入出力部311は、アクセス要求の送信元のキャッシュノード200へキャッシュミスヒットを通知する。
キャッシュミスヒット後に書き込み要求を受信した場合、入出力部311は、管理テーブル600を用いてクエリの送信元のキャッシュノード200に割り当てられている記憶部400を特定する。そして、入出力部311は、特定した記憶部400のいずれかに空き容量があるか否かを判定する。
空き容量がある場合、入出力部311は、空いている場所にアクセス要求で指定されたデータを書き込む。そして、入出力部311は、データを書き込んだ記憶部400のメモリID及び書き込んだブロックを管理テーブル管理部312へ通知する。ここで、データを書き込む記憶部400の割り当て方式として次のような方式が考えられる。例えば、入出力部311は、管理テーブル600から各記憶部400のアクセス回数を取得し、アクセス回数の少ない記憶部400から順に割り当てていく。これにより、アクセス要求の対象となる記憶部400のコンフリクトを軽減することができる。他には、例えば、入出力部311は、管理テーブル600から各記憶部400のアクセス回数を取得し、アクセス回数の多い記憶部400から順に割り当てていく。これにより、アクセス回数の少ない記憶部400を低消費電力モードにすることができ、省電力化を図ることができる。
これに対して、空き容量がない場合、入出力部311は、空き容量が無い旨を書き込み要求の送信元のキャッシュノード200へ通知する。
記憶部401〜410は、例えばDIMM(Dual Line Memory Module)といったメモリなどの記憶媒体である。記憶部401〜410は、入出力部311からの制御を受けて、クエリに応じたデータを格納する。
次に、図6を参照して、本実施例に係る情報処理システムにおけるアクセス要求に対する処理の流れを説明する。図6は、実施例1に係る情報処理システムにおけるアクセス要求に対する処理のフローチャートである。
管理部100のアクセス要求制御部101は、アクセス要求を受け付ける。そして、アクセス要求制御部101は、受信したアクセス要求に応じたクエリを送信するキャッシュノード200を決定する(ステップS101)。そして、アクセス要求制御部101は、決定したキャッシュノード200にクエリを送信する(ステップS102)。
アクセス要求制御部101からクエリを受信したキャッシュノード200は、内蔵メモリに要求されたクエリに応じたデータがあるか否かを判定する(ステップS103)。内蔵メモリにデータがある場合(ステップS103:肯定)、キャッシュノード200は、ステップS106へ進む。
これに対して、内蔵メモリにデータが無い場合(ステップS103:否定)、キャッシュノード200は、入出力部311へクエリを送信する。入出力部311は、クエリをキャッシュノード200から受信する。そして、入出力部311は、管理テーブル管理部312が有する管理テーブルを用いて、クエリに対応するデータの格納場所を求める(ステップS104)。そして、入出力部311は、クエリに対応するデータが記憶部400に格納されているか否かを判定する(ステップS105)。
データが格納されている場合(ステップS105:肯定)、入出力部311は、キャッシュヒットの通知をクエリの送信元のキャッシュノード200へ返す。そして、キャッシュノード200は、キャッシュヒットの通知をアクセス要求制御部101へ送信する(ステップS106)。
これに対して、データが格納されていない場合(ステップS105:否定)、入出力部311は、キャッシュミスヒットの通知をクエリの送信元のキャッシュノード200へ返す。そして、キャッシュノード200は、キャッシュミスヒットの通知をアクセス要求制御部101へ送信する(ステップS107)。
次に、図7を参照して、アクセス要求受信時のキャッシュノードの決定の処理について詳細に説明する。図7は、アクセス要求受信時のキャッシュノードの決定処理のフローチャートである。図7のフローチャートは、図6におけるステップS101にあたる。
アクセス要求制御部101は、受信したアクセス要求のクエリに対してハッシュ関数を用いてハッシュ値を求め、そのハッシュ値をキャッシュノード200のノード数で割るなどしてバリューを求める。そして、アクセス要求制御部101は、求めたバリューに対応するキャッシュノード200をハッシュ後のアクセス先のキャッシュノード200を決定する(ステップS201)。
次に、アクセス要求制御部101は、ノード変換テーブルを用いてハッシュ後のアクセス先として特定したキャッシュノード200に対応するアクセス変更先を確認する(ステップS202)。
そして、アクセス要求制御部101は、ハッシュ後のアクセス先とアクセス変更先とが異なっているか否かにより、アクセス先が変更されているか否かを判定する(ステップS203)。
アクセス先が変更されていない場合(ステップS203:否定)、アクセス要求制御部101は、ステップS205に進む。
これに対して、アクセス先が変更されている場合(ステップS203:肯定)、アクセス要求制御部101は、アクセス先のキャッシュノード200を変更する(ステップS204)。
そして、アクセス要求制御部101は、アクセス先のキャッシュノード200にクエリを送信する(ステップS205)。
次に、図8を参照して、本実施例に係る情報処理システムにおけるキャッシュミスヒット後の書き込み要求に対する処理の流れを説明する。図8は、実施例1に係る情報処理システムにおけるにおけるキャッシュミスヒット後の書き込み要求に対する処理のフローチャートである。
アクセス要求制御部101は、キャッシュノード200に書き込み要求のクエリを送信する(ステップS301)。
書き込み要求のクエリを受信したキャッシュノード200は、内蔵メモリに空き容量があるか否かを判定する(ステップS302)。内蔵メモリに空き容量がある場合(ステップS302:肯定)、キャッシュノード200は、空き容量がある内蔵メモリへデータを書き込む(ステップS303)。
これに対して、内蔵メモリに空き容量がない場合(ステップS302:否定)、キャッシュノード200は、入出力部311に書き込み要求のクエリを送信する。クエリを受信した入出力部311は、クエリの送信元のキャッシュノード200に割り当てた記憶部400に空き容量があるか否かを判定する(ステップS304)。記憶部400に空き容量がない場合(ステップS304:否定)、入出力部311は、空き容量が無い旨をアクセス要求の送信元のキャッシュノード200へ通知する。通知を受けたキャッシュノード200は、LRU方式を用いて内蔵メモリのデータを消去する。その後、キャッシュノード200は、内蔵メモリにおけるデータ消去することで空いた場所にデータを書き込む(ステップS305)。
一方、記憶部400に空き容量がある場合(ステップS304:肯定)、入出力部311は、記憶部400の空いている領域からデータを書き込む領域を決定し、データを書き込む(ステップS306)。
その後、入出力部311は、管理テーブルにクエリ名を書き込む(ステップS307)。
次に、図9を参照して、ノード故障によるノード切替時の処理の流れについて説明する。図9は、ノード故障によるノード切替時の処理のフローチャートである。図9では、フローチャートの上部に示された各部によって、各ステップにおける動作が行われることを表している。
故障検知部103は、サーバの故障を検知する(ステップS401)。
アクセス要求制御部101は、サーバの故障の通知を故障検知部103から受ける。そして、アクセス要求制御部101は、仮代替ノードを決定する(ステップS402)。次に、アクセス要求制御部101は、仮代替ノードになった旨を仮代替ノードとして選択したキャッシュノード200へ通知する(ステップS403)。
仮代替ノードとして選択されたキャッシュノード200は、仮代替ノードになった旨の通知を受信する(ステップS404)。そして、仮代替ノードは、正式な代替ノードを決定する(ステップS405)。次に、仮代替ノードは、代替ノードとして決定したキャッシュノード200の情報を入出力部311を介して管理テーブル管理部312へ送信する。
管理テーブル管理部312は、代替ノードとして決定されたキャッシュノード200の情報を仮代替ノードから受信する。そして、管理テーブル管理部312は、故障したノードに割り当てられていた記憶部400を代替ノードへ割り当てるように管理テーブルを更新する(ステップS406)。その後、管理テーブル管理部312は、代替ノードとなったキャッシュノード200に対して更新完了の通知を行う(ステップS407)。
代替ノードとなったキャッシュノード200は、更新完了の通知を管理テーブル管理部312から受信する(ステップS408)。次に、代替ノードは、代替ノードとなった自装置の情報をアクセス要求制御部101へ通知する(ステップS409)。
アクセス要求制御部101は、代替ノードの情報を代替ノードとなったキャッシュノード200から受信する(ステップS410)。その後、ノード変換テーブル管理部102は、アクセス要求制御部101から故障したノード及び代替ノードの情報を取得する。そして、ノード変換テーブル管理部102は、故障したノードに対応するアクセス変更先が代替ノードとなるようにノード変換テーブルを更新する(ステップS411)。
次に、図10を参照して代替ノードの決定処理の流れをより詳細に説明する。図10は、代替ノードの決定処理のフローチャートである。図10では、代替ノード決定処理について詳細に説明するため、図9における代替サーバ決定に直接関らない処理については省略している。
アクセス要求制御部101は、故障していないキャッシュノード200から1つのキャッシュノード200を仮代替ノードとしてランダムに選択する(ステップS501)。
仮代替ノードは、管理テーブル管理部312が保持する管理テーブルから各記憶部400のアクセス回数を取得する。そして、管理テーブル管理部312は、キャッシュノード200毎に割り当てられている記憶部400のアクセス回数の総和を算出する(ステップS502)。
仮代替ノードは、アクセス回数の総和が最小のキャッシュノード200を正式な代替ノードとして決定する(ステップS503)。
仮代替ノードにより正式な代替ノードとして決定されたキャッシュノード200は、代替ノードのノードID、すなわち自装置のノードIDを管理部100へ通知する(ステップS504)。
(ハードウェア構成)
図11は、情報処理システムのハードウェア構成を表す図である。
図11に示すように、ロードバランサ1は、Optical Network Unit(ONU)8を介してネットワーク7と接続されている。
ロードバランサ1は、Network Interface Card(NIC)11、Central Processing Unit(CPU)12、Memory(MEM)13、Table(TBL)14及びPeripheral Component Interconnect Express Interface(PCIeI/F)15を有している。
TBL14は、ノード変換テーブルの一例にあたる。そして、CPU12、MEM13及びTBL14によって、図2に例示したノード変換テーブル管理部102の機能を実現する。
NIC11は、外部の装置と通信を行うためのネットワークインタフェースである。CPU12は、NIC11を介してクライアントPC6からのアクセス要求を取得する。また、CPU12は、NIC11を介してキャッシュサーバ2と通信を行う。
また、NIC11、CPU12、MEM13及びPCIeI/F15によって故障検知部103及びアクセス要求制御部101の機能を実現する。具体的には、PCIe I/F15に接続されたハードディスク(不図示)に故障検知部103及びアクセス要求制御部101等による処理を実現するプログラムなどの各種プログラムが格納されている。そして、CPU12は、ハードディスクからそれらのプログラムを読み出し、上述の各機能を実現するプロセスをMEM13に展開するなどして、それらのプログラムを実行する。
キャッシュサーバ2は、NIC21、CPU22、MEM23及びPCIeI/F24を有している。
NIC21は、ロードバランサ1と通信を行うためのネットワークインタフェースである。CPU22は、NIC21を介してロードバランサ1からクエリを受信する。
PCIeI/F24は、外部メモリ格納装置4と通信を行うためのインタフェースである。
NIC21、CPU22、MEM23及びPCIeI/F24によって図2に例示したキャッシュノード201〜203の機能を実現する。具体的には、PCIe I/F24に接続されたハードディスク(不図示)にキャッシュノード200〜203による処理を実現するプログラムなどの各種プログラムが格納されている。そして、CPU22は、ハードディスクからそれらのプログラムを読み出し、上述の各機能を実現するプロセスをMEM23に展開するなどして、それらのプログラムを実行する。
また、図11に示した破線は、PCI Express規格の信号を伝送するケーブルまたは信号線を示している。なお、破線は、他の規格の信号を伝達するケーブルまたは信号線が使用されてもよい。
スイッチ(SW)3は、各キャッシュサーバ2を、PCI Express規格のケーブル又は信号線を介して外部メモリ格納装置4に接続するために、各キャッシュサーバ2に共通に設けられている。例えば、キャッシュサーバ2と外部メモリ格納装置4とは、Multi Root Input Output Virtualization(MR−IOV)技術を用いて、SW3を介して接続されている。そして、各キャッシュサーバ2から出力されるデータが外部メモリ格納装置4に伝達され、外部メモリ格納装置4から出力されるデータがキャッシュサーバ2のいずれかに伝達される。
外部メモリ格納装置4は、Controller(CTRL)40、MEM42及びTBL43を有している。
例えば、CTRL40は、ASICなどのロジックLSIにより設計されている。管理テーブルTBL43は、Random Access Memory(RAM)などのメモリチップ内に設けられてもよく、CTRL43の内部のレジスタやメモリ内に設けられてもよい。なお、CTRL40は、Read Only Memory(ROM)及びRAMを内蔵するマイクロコントローラやCPUであってもよい。
TBL43は、管理テーブルの一例にあたる。そして、CTRL40及びTBL43によって、図2に例示した入出力部311及びノード変換テーブル管理部102の機能を実現する。
以上に説明したように、本実施例に係る情報処理システムは、ロードバランサはノード変換テーブルを用いてデータの格納先のノードを特定し、外部メモリのコントローラは、管理テーブルを用いてデータの格納先のメモリを特定する。これにより、ノードが故障し、管理されていた外部メモリが他のノードに切り替わった場合にも、故障したノードが管理していた外部メモリへアクセスすることができる。したがって、本実施例に係る情報処理システムは、ノード数が変更された場合におけるデータベースへのアクセスの上昇を抑えることができる。
図12は、実施例2に係る情報処理システムのブロック図である。本実施例に係る情報処理装置は、アクセス先テーブルを有することが実施例1と異なるものである。そこで、以下では、アクセス先テーブルを用いた管理部100の機能について主に説明する。また、図12において図1と同じ符号を有する各部は、特に説明の無い限り同じ機能を有するものとする。
本実施例に係る情報処理システムは、実施例1の情報処理システムに加えてアクセス先テーブル104をさらに有する。
アクセス先テーブル104は、クエリのキーに対応させてアクセス先となるキャッシュノード200の識別情報が登録されている。
アクセス要求制御部101は、アクセス要求を受けると、アクセス先テーブル104を参照し、受信したアクセス要求に含まれるクエリのキーに対応するキャッシュノード200があるか否かを判定する。キーに対応するキャッシュノード200がある場合、アクセス要求制御部101は、そのキャッシュノード200をハッシュ後のアクセス先とする。一方、キーに対応するキャッシュノード200がない場合、アクセス要求制御部101は、キーに対してハッシュ関数を用いる等してバリューを求め、ハッシュ後のアクセス先となるキャッシュノード200を特定する。
さらに、アクセス要求制御部101は、データを記憶部に新しく格納した場合、新しく格納したクエリのキーとそれに対応するサーバの情報をハッシュテーブルに登録する。
その後、アクセス要求制御部101は、実施例1と同様に、ハッシュ後のアクセス先に対応するアクセス変更先を取得し、取得したアクセス変更先にクエリを送信する。
ここで、故障が発生しデータが格納されている記憶部400が割り当てられたキャッシュノードが変更された場合について考える。本実施例では、アクセス先テーブル104を用いることで、クエリから直接アクセス先を特定することができる。そこで、アクセス要求制御部101は、アクセス先テーブル104において、切替えられた記憶部400に格納されたデータを要求するクエリに対応するアクセス先を変更してもよい。これにより、アクセス先テーブル104に登録されているクエリに関しては、アクセス要求制御部101は、ノード変換テーブルの参照を行わなくてもよくなり、より迅速にアクセス先の決定ができる。
このように、本実施例に係る情報処理システムは、アクセス先テーブルを用いて受信したアクセス要求のアクセス先となるキャッシュノードを取得できる。これにより、情報処理システムは、ハッシュ関数などを用いた計算を行う必要が無くなり、容易にクエリの送信先であるアクセス先を特定することができる。すなわち、情報処理システムにおける処理負荷を軽減することができる。
また、以上の説明では、内蔵メモリに格納したデータに対する対処については触れていないが、それについては以下のような対処を行うことができる。
例えば、キャッシュノード200は、内蔵メモリ上に格納されたデータを定期的に記憶部400に書き出しておき、バックアップを作成する。これにより、内蔵メモリ上に格納されたデータも記憶部400に格納されるので、管理部100は、キャッシュノード200が故障しても、故障したノードの内蔵メモリ上にあったデータにアクセスすることができる。
また、例えば、キャッシュノード200の内蔵メモリを使用しないとしてもよい。
1 ロードバランサ
2 キャッシュサーバ
3 スイッチ
4 外部メモリ格納装置
5 データベースサーバ
6 クライアントPC
7 ネットワーク
41 コントローラ
42 メモリ
100 管理部
101 アクセス要求制御部
102 ノード変換テーブル管理部
103 故障検知部
104 アクセス先テーブル
201〜203 キャッシュノード
300 外部記憶部
311 入出力部
312 管理テーブル管理部
401〜410 記憶部

Claims (7)

  1. 複数の情報処理部と、
    前記情報処理部毎に割り当てられた複数の記憶部と、
    アクセス要求を受けて、受信したアクセス要求に基づく処理をアクセス先の前記情報処理部に指示する負荷分散制御部と、
    前記情報処理部のうちいずれかが故障した場合に、故障した情報処理部に割り当てられていた記憶部の割り当てを、故障した情報処理部以外の情報処理部のいずれかに切替える割当制御部と
    を備えたことを特徴とする情報処理装置。
  2. 前記負荷分散制御部は、故障した情報処理部と切替えにより故障した情報処理部に割り当てられていた前記記憶部が割り当てられた情報処理部とを対応付ける変換テーブルを有し、故障した情報処理部に対するアクセス要求を受信すると、前記変換テーブルを参照して切替えにより故障した情報処理部に割り当てられていた前記記憶部が割り当てられた情報処理部を特定し、特定した情報処理部をアクセス先の情報処理部とすることを特徴とする請求項1に記載の情報処理装置。
  3. 前記割当制御部は、前記情報処理部毎に割り当てられている前記記憶部を示す管理テーブルを有し、前記情報処理部の故障が発生した場合、前記管理テーブルの対応を変更することで割り当ての切替えを行い、且つ、前記情報処理部から前記アクセス要求に基づく処理の指示を受信すると、前記管理テーブルを参照して前記情報処理部に割り当てられた前記記憶部を特定し、特定した記憶部に、前記アクセス要求に基づく処理に応じたデータが格納されているか否かを判定することを特徴とする請求項1又は請求項2に記載の情報処理装置。
  4. 前記負荷分散制御部は、前記情報処理部の故障の発生を検知し、故障が発生した場合、故障が発生していない前記情報処理部の中から代替装置を決定し、前記代替装置を介して前記割当制御部へ前記管理テーブルの対応の変更を指示し、前記管理テーブルの対応の変更完了の通知を前記割当制御部から前記代替装置を介して取得して変換テーブルを更新することを特徴とする請求項2又は請求項3に記載の情報処理装置。
  5. 前記負荷分散制御部は、故障が発生していない前記情報処理部のうちアクセス数が最も少ない情報処理部を代替装置として決定することを特徴とする請求項3に記載の情報処理装置。
  6. 複数の情報処理装置と前記情報処理装置毎に割り当てられた複数の記憶装置とを備えた情報処理システムの制御方法であって、
    外部からのアクセス要求を受けて、受信した前記アクセス要求に基づく処理をアクセス先の前記情報処理装置に指示し、
    前記情報処理装置のうちいずれかが故障した場合に、故障した情報処理装置に割り当てられていた記憶装置の割り当てを、故障した情報処理装置以外の情報処理装置のいずれかに切替える
    ことを特徴とする情報処理システムの制御方法。
  7. 複数の情報処理装置と前記情報処理装置毎に割り当てられた複数の記憶装置とを備えた情報処理システムの制御プログラムであって、
    アクセス要求を受けて、受信したアクセス要求に基づく処理をアクセス先の前記情報処理装置に指示し、
    前記情報処理装置のうちいずれかが故障した場合に、故障した情報処理装置に割り当てられていた記憶装置の割り当てを、故障した情報処理装置以外の情報処理装置のいずれかに切替える
    処理をコンピュータに実行させることを特徴とする情報処理システムの制御プログラム。
JP2012245599A 2012-11-07 2012-11-07 情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラム Expired - Fee Related JP6036190B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012245599A JP6036190B2 (ja) 2012-11-07 2012-11-07 情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラム
US13/975,569 US9401870B2 (en) 2012-11-07 2013-08-26 Information processing system and method for controlling information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012245599A JP6036190B2 (ja) 2012-11-07 2012-11-07 情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラム

Publications (2)

Publication Number Publication Date
JP2014095946A true JP2014095946A (ja) 2014-05-22
JP6036190B2 JP6036190B2 (ja) 2016-11-30

Family

ID=50623449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012245599A Expired - Fee Related JP6036190B2 (ja) 2012-11-07 2012-11-07 情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラム

Country Status (2)

Country Link
US (1) US9401870B2 (ja)
JP (1) JP6036190B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021517695A (ja) * 2018-04-03 2021-07-26 サイトリックス システムズ,インコーポレイテッド クラウドサービスのデータキャッシング
JP7394129B2 (ja) 2018-11-27 2023-12-07 キンドリル・インク ナレッジグラフのパーティション分割

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298389B2 (en) * 2013-10-28 2016-03-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Operating a memory management controller
US10649964B2 (en) * 2015-02-26 2020-05-12 Red Hat, Inc. Incorporating external data into a database schema

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004530972A (ja) * 2001-02-24 2004-10-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 障害の存在下で完全な性能を維持するファイルサーバのツイン接続フェールオーバ
JP2005339079A (ja) * 2004-05-26 2005-12-08 Hitachi Ltd データベース管理システムにおける処理代行方法
US20090177860A1 (en) * 2005-02-23 2009-07-09 Yaolong Zhu Data management method for network storage system and the network storage system built thereof

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305629A (ja) 1995-04-25 1996-11-22 Internatl Business Mach Corp <Ibm> メモリ・アクセス制御装置及びメモリ・アクセス制御方法、コンピュータ・システム
JP2003256310A (ja) * 2002-03-05 2003-09-12 Nec Corp サーバ負荷分散システム、サーバ負荷分散装置、コンテンツ管理装置、及びサーバ負荷分散プログラム
US7409583B2 (en) * 2002-10-07 2008-08-05 Hitachi, Ltd. Volume and failure management method on a network having a storage device
JP4574230B2 (ja) 2004-05-27 2010-11-04 株式会社日立製作所 データベース管理方法及びデータベースシステム
JP2006127123A (ja) 2004-10-28 2006-05-18 Mitsubishi Electric Corp アプリケーションサーバ、データベースサーバ、ウェブ検索システム、検索結果取得方法、検索結果応答方法、検索結果取得プログラムおよび検索結果応答プログラム
WO2009032712A2 (en) * 2007-08-29 2009-03-12 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
US8443237B2 (en) * 2010-05-12 2013-05-14 Hitachi, Ltd. Storage apparatus and method for controlling the same using loopback diagnosis to detect failure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004530972A (ja) * 2001-02-24 2004-10-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 障害の存在下で完全な性能を維持するファイルサーバのツイン接続フェールオーバ
JP2005339079A (ja) * 2004-05-26 2005-12-08 Hitachi Ltd データベース管理システムにおける処理代行方法
US20090177860A1 (en) * 2005-02-23 2009-07-09 Yaolong Zhu Data management method for network storage system and the network storage system built thereof

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021517695A (ja) * 2018-04-03 2021-07-26 サイトリックス システムズ,インコーポレイテッド クラウドサービスのデータキャッシング
US11356531B2 (en) 2018-04-03 2022-06-07 Citrix Systems, Inc. Data caching for cloud services
JP7143434B2 (ja) 2018-04-03 2022-09-28 サイトリックス システムズ,インコーポレイテッド クラウドサービスのデータキャッシング
US11716406B2 (en) 2018-04-03 2023-08-01 Citrix Systems, Inc. Data caching for cloud services
JP7394129B2 (ja) 2018-11-27 2023-12-07 キンドリル・インク ナレッジグラフのパーティション分割

Also Published As

Publication number Publication date
US20140129718A1 (en) 2014-05-08
JP6036190B2 (ja) 2016-11-30
US9401870B2 (en) 2016-07-26

Similar Documents

Publication Publication Date Title
US9811465B2 (en) Computer system and cache control method
US8850158B2 (en) Apparatus for processing remote page fault and method thereof
US8656137B2 (en) Computer system with processor local coherency for virtualized input/output
JP2017151982A (ja) データストレージサブシステムにおけるキャッシングのための方法およびシステム
JP6068676B2 (ja) 計算機システム及び計算機システムの制御方法
JP2016181058A (ja) 半導体記憶装置
US20200201782A1 (en) Memory controller and memory page management method
JP6036190B2 (ja) 情報処理装置、情報処理システムの制御方法及び情報処理システムの制御プログラム
CN107969153A (zh) 一种资源分配方法、装置及numa系统
KR20160064720A (ko) 캐시 메모리 장치 및 이를 포함하는 전자 시스템
US9606910B2 (en) Method and apparatus for data reduction
KR20230012440A (ko) 이기종 메모리 시스템에서의 로드 밸런싱을 위한 시스템 및 방법
US9086803B2 (en) Changing correspondence among control devices and memories based on memory access frequencies
US20170031601A1 (en) Memory system and storage system
JP6281442B2 (ja) 割り当て制御プログラム、割り当て制御方法及び割り当て制御装置
JP2017107300A (ja) データ管理プログラム及びデータ管理方法
JP2016057763A (ja) キャッシュ装置、及びプロセッサ
JP2006164218A (ja) ストレージシステム及びそのキャッシュ制御方法
JP2020087409A (ja) データ処理システム
JP5900063B2 (ja) ストレージ装置およびストレージ装置における初期化方法
WO2016051593A1 (ja) 計算機システム
US10853267B2 (en) Adaptive method for selecting a cache line replacement algorithm in a direct-mapped cache
JP6657706B2 (ja) データ管理装置、データ管理方法およびプログラム
WO2018061158A1 (ja) 計算機システムおよび計算機システム制御方法
JP2019049872A (ja) 演算処理装置及び演算処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160419

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160620

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161017

R150 Certificate of patent or registration of utility model

Ref document number: 6036190

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees