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

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

Info

Publication number
JP5983484B2
JP5983484B2 JP2013059038A JP2013059038A JP5983484B2 JP 5983484 B2 JP5983484 B2 JP 5983484B2 JP 2013059038 A JP2013059038 A JP 2013059038A JP 2013059038 A JP2013059038 A JP 2013059038A JP 5983484 B2 JP5983484 B2 JP 5983484B2
Authority
JP
Japan
Prior art keywords
information processing
data
node
request
processing apparatus
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
JP2013059038A
Other languages
English (en)
Other versions
JP2014186382A (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.)
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 JP2013059038A priority Critical patent/JP5983484B2/ja
Priority to US14/210,516 priority patent/US9418096B2/en
Publication of JP2014186382A publication Critical patent/JP2014186382A/ja
Application granted granted Critical
Publication of JP5983484B2 publication Critical patent/JP5983484B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Description

本発明は、情報処理システム、情報処理装置を制御する制御プログラム及び情報処理システムの制御方法に関する。
従来、分散KVS(Key Value Store)に代表されるNoSQLなど、複数のノード間でデータが多重化されて記憶される情報処理システムにおいては、データの書き込みがあった場合のレプリカの更新方式として、マルチパスレプリケーションがある。
ここで、ノードとは、CPU(Central Processing Unit)、メモリ、ディスク装置などを備えた情報処理装置であり、ノード間はネットワークで相互に接続される。また、レプリカとは、データの複製である。また、情報処理システムは、分散ストレージシステムとして機能し、情報処理システムにおいて、各ノードはデータを分散して記憶するストレージ装置として機能する。
図12A及び図12Bは、マルチパスレプリケーションを説明するための図である。図12Aに示すように、情報処理システム90は、データセンターXと、データセンターYとを有する。データセンターXは、第1のレプリカ(1stレプリカ)を記憶するノード91〜第4のレプリカ(4thレプリカ)を記憶するノード94を有し、データセンターYは、第5のレプリカ(5thレプリカ)を記憶するノード95を有する。なお、図では、第1のレプリカを記憶するノードを単に「1stレプリカ」と記載する。他のレプリカを記憶するノードについても同様である。
クライアント81が第1のレプリカを記憶するノード91にデータの書き込みを行うと、ノード91は、第2のレプリカ(2ndレプリカ)を記憶するノード92、第3のレプリカ(3rdレプリカ)を記憶するノード93、ノード94に更新要求(update要求)を送る。そして、ノード92とノード93とノード94は、更新要求をノード95に送る。
すなわち、情報処理システム90は、クライアント81から第1のレプリカに書き込みがあると、第1→第2→第5と、第1→第3→第5と、第1→第4→第5との3つの経路、すなわちマルチパスで並列して更新要求を送る。
そして、終点にあたるノード95に全経路から更新要求が届くと、図12Bに示すように、3つの経路で逆に更新済要求(updated要求)が送られる。すなわち、第5→第2→第1と、第5→第3→第1と、第5→第4→第1との3つの経路で更新済要求が送られる。そして、各ノードは、更新済要求を受け取った段階で、更新要求に含まれる新しいデータにレプリカを更新する。
マルチパスレプリケーションの特徴として、データの一貫性を保つ仕組みが含まれている点がある。ここで、データの一貫性とは、どのレプリカにアクセスしても常に同じデータが見えることである。データの一貫性が問題となるのは、図13のような場合である。
図13は、第1→第2→第5と、第1→第3→第5の2経路では終点まで更新要求が届いたが、残りの第1→第4→第5の1経路ではまだ終点まで更新要求が届いていない時にクライアント82からノード92にデータの読み込みリクエストが届いた場合を示す。この場合、ノード92は、クライアント82に対して、更新要求に含まれる新しいデータか、更新されるまでの古いデータの2通りを返すことができる。データの一貫性とは、このような場合にクライアント82が他のノードにアクセスしたとしても、他のノードは常に同じデータを返す、ということである。
例えば、図13において、第5のレプリカを記憶するノード95が新しいデータを返すならば第2のレプリカを記憶するノード92も新しいデータを返す。また、第5のレプリカを記憶するノード95が古いデータを返すならば、第2のレプリカを記憶するノード92も古いデータを返す。このようなデータの一貫性を保証するレプリカの更新方式は強一貫性(Strong Consistency)である、と言われる。
マルチパスレプリケーションでは、バージョン機能を用いてデータの一貫性を実現している(例えば、非特許文献1参照。)。図13は、バージョン機能を用いてデータの一貫性を保つ場合を示している。第2のレプリカを記憶するノード92のようにクライアント82に返すデータの候補が複数あるノードは、終点にあたるノード95に対してバージョン要求(version要求)を送り、どのデータをクライアント82に返すべきかを決めてもらう。
バージョン要求を受け取った終点のノード95は、全経路から更新要求を受け取ってレプリカの更新が既に終わったかどうかを判断する。例えば、図13のような場合では、終点のノード95は第1→第4→第5の1経路から更新要求を受け取っていないため、まだレプリカの更新はされておらず、第2のレプリカを記憶するノード92には古いデータを返すよう返答を行う。マルチパスレプリケーションでは終点のノード95が一番初めにデータの更新を行うため、終点のバージョンを基準にすることでデータの一貫性が保たれる。
なお、複数の複製ノードを有するシステムにおいて、クライアントからの要求を複製ノードに仲介するノードが、複製ノードから取得したデータがどの程度最近のデータであるかを示す尺度を返答する技術が開示されている(例えば、特許文献1参照。)。
特開2000−242620号公報
Jeff Terrace and Michael J. Freedman,"Object Storage on CRAQ:High-throughput chain replication for read-mostly workloads", Proc. USENIX Annual Technical Conference (USENIX'09), San Diego, CA, June 2009.
しかしながら、図13のように、ノード92が、別のデータセンターにある終点ノードにバージョン要求を送ると、バージョン要求を送っている間、データ読み込みリクエストに対して返答できず、レスポンス時間がのびてしまう、という問題がある。
一般に、レプリカを配置する場合は天災地変が発生した場合においてもデータの普及を可能にするディザスタリカバリ(Disaster Recovery)を考慮して数個のレプリカは遠距離の別データセンターに置かれる場合が多い。例えば、データセンターXは東京にあるストレージシステムの基幹データセンター、データセンターYはサンフランシスコにあるディザスタリカバリ用の遠距離データセンター、という運用がしばしばみられる。また、レプリカを増やすことでデータの読み込みリクエストを多くのノードで分散させて処理することができるため、読み込み性能を上げることができる。
図13に示すシステムは、これらの状況に対応するためのものであり、図13に示すシステムにおいては、なるべく遠距離のデータセンターにバージョン要求を送らない仕組みが必要である。
本発明は、1つの側面では、更新中のデータへの読み出しリクエストに対する応答時間の短縮を図ることを目的とする。
本願の開示する情報処理システムは、1つの態様において、同一のデータを複数の情報処理装置が記憶し、前記複数の情報処理装置のうち第1のクライアント装置からデータの更新要求を受信する情報処理装置である第1の情報処理装置を有する。また、情報処理システムは、前記更新要求が最終的に送信される情報処理装置である第2の情報処理装置を有し、第1の情報処理装置と第2の情報処理装置との間で他の情報処理装置を経由する複数の経路を用いて前記更新要求を送信する。そして、第3の情報処理装置は、第2のクライアント装置から前記データの読み込み要求を受信する受信部と、前記受信部が読み込み要求を受信したデータが、前記更新要求により更新中であるかを判定する判定部とを有する。また、第3の情報処理装置は、前記データが更新中であると前記判定部が判定した場合、前記複数の情報処理装置のうち前記第1の情報処理装置と前記第2の情報処理装置とを除いた他の情報処理装置のいずれかから前記データが更新中であるかを問合わせる情報処理装置を選択する選択部を有する。また、第3の情報処理装置は、前記選択部が選択した前記情報処理装置に問合わせを行う問合せ部と、選択された前記情報処理装置からの問合わせの結果に基づいて、更新前のデータ又は更新後のデータを第2のクライアント装置に応答する応答部とを有する。
1実施態様によれば、更新中のデータへの読み出しリクエストに対する応答時間を短縮することができる。
図1Aは、実施例に係る情報処理システムによるデータ読み込み処理を説明するための図である。 図1Bは、ベリファイ要求を異なるデータセンターにあるノードに送る情報処理システムの一例を示す図である。 図2は、実施例に係る情報処理装置の機能構成を示すブロック図である。 図3は、配置情報記憶部の一例を示す図である。 図4は、レプリカ配置の一例を示す図である。 図5は、距離情報記憶部の一例を示す図である。 図6は、経路情報記憶部の一例を示す図である。 図7は、候補選択部による候補選びの一例を示す図である。 図8は、送り先選択部による送り先選びの一例を示す図である。 図9は、データの読み込みリクエストに対して情報処理装置が行う処理のフローを示すフローチャートである。 図10は、ベリファイ要求に対する処理のフローを示すフローチャートである。 図11は、実施例に係る情報処理装置のハードウェア構成を示す図である。 図12Aは、マルチパスレプリケーションを説明するための図(A)である。 図12Bは、マルチパスレプリケーションを説明するための図(B)である。 図13は、バージョン機能を説明するための図である。
以下に、本願の開示する情報処理システム、情報処理装置を制御する制御プログラム及び情報処理システムの制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係る情報処理システムによるデータ読み込み処理について説明する。図1Aは、実施例に係る情報処理システムによるデータ読み込み処理を説明するための図である。図1Aに示すように、情報処理システム10は、データセンターAと、データセンターBとを有する。データセンターAは、第1のレプリカを記憶するノード1〜第4のレプリカを記憶するノード4を有し、データセンターBは、第5のレプリカを記憶するノード5を有する。
クライアント11がノード1にデータの書き込みを行うと、ノード1は、第2のレプリカを記憶するノード2、第3のレプリカを記憶するノード3に更新要求を送る。そして、ノード3は、ノード4に更新要求を送り、ノード2とノード4は、更新要求をノード5に送る。
すなわち、情報処理システム10は、クライアント11から第1のレプリカに書き込みがあると、第1→第2→第5と、第1→第3→第4→第5の2つの経路、すなわちマルチパスで並列して更新要求を送る。
ここで、ノード3が故障すると、第1→第2→第5の経路で更新要求が送信されるが、第1→第3→第4→第5の経路では更新要求は送信されず、ノード4には更新要求が送信されない。
この状態で、クライアント12からノード2に更新中のデータの読み込みリクエストがあると、ノード2は、ノード5にバージョン要求を送るとともに、ノード4にベリファイ要求(verify要求)を送る。ここで、ベリファイ要求とは、更新要求が届いているか否かを確認する要求である。ノード4は、ベリファイ要求に対して、更新要求が届いていないことをノード2に応答する。したがって、ノード2は、終点ノードであるノード5に更新要求がノード4経由では届いていないことがわかる。そこで、ノード2は、古いデータをクライアント12に返す。
ここで、ノード5とノード4を比較すると、ノード5がノード2と異なるデータセンターBにあるのに対して、ノード4はノード2と同じデータセンターAにある。このため、データセンターAとデータセンターBの距離が長い場合には、ノード2は、ノード5からバージョン要求に対する応答を得るより、ノード4からベリファイ要求に対する応答を早く得ることができる。したがって、ノード2は、クライアント12に早く応答することができる。
このように、情報処理システム10は、ベリファイ要求を用いて、更新中のデータに対する読み込みリクエストに早く応答することができる。なお、ここでは、ノード2とノード4が同じデータセンターにある場合について説明したが、ノード2は、異なるデータセンターにあるノードにベリファイ要求を送ることもできる。
図1Bは、ベリファイ要求を異なるデータセンターにあるノードに送る情報処理システムの一例を示す図である。図1Bに示すように、情報処理システム10aは、データセンターCを有し、ノード4がデータセンターAではなくデータセンターCにあることを除いて、情報処理システム10と同様にノード1〜5でマルチレプリケーションを行う。また、データセンターCは、データセンターBよりもデータセンターAに近い。
ノード2は、更新中のデータに対してクライアント12から読み込みリクエストを受信すると、異なるデータセンターCにあるノード4にベリファイ要求を送る。データセンターCはデータセンターBよりもノード2に近いため、ノード2はノード5からバージョン要求に対する応答を得るより早くノード4からベリファイ要求に対する応答を得ることができる。
このように、ノード2は、バージョン要求の送信先のノードがあるデータセンターよりも近いデータセンターにあるノードにベリファイ要求を送ることによって、クライアント12に早く応答することができる。
次に、実施例に係る情報処理装置の機能構成について説明する。図2は、実施例に係る情報処理装置の機能構成を示すブロック図である。図2に示すように、情報処理装置100は、リクエスト受信部111と、リクエスト保持部112と、更新状態判定部113と、配置情報記憶部114と、距離情報記憶部115とを有する。また、情報処理装置100は、経路情報記憶部116と、候補選択部117と、送り先選択部118と、ベリファイ要求処理部119と、バージョン要求処理部120と、リクエスト処理部121とを有する。なお、情報処理装置100は、図1A及び図1Bに示したノードに対応する。
リクエスト受信部111は、ネットワークを介してクライアントからデータのアクセスリクエストを受信する。リクエスト保持部112は、クライアントからの書き込みリクエストによりデータが更新中である場合に、書き込みリクエストを書き込みデータとともに保持する。
更新状態判定部113は、リクエスト受信部111が受信したアクセスリクエストの対象となるデータが更新中であるか否かをリクエスト保持部112を参照して判定する。更新状態判定部113は、データが更新中である場合には、アクセスリクエストを候補選択部117に渡し、データが更新中でない場合には、アクセスリクエストをリクエスト処理部121に渡す。
配置情報記憶部114は、レプリカの配置すなわちレプリカを記憶するノードがどのデータセンターにあるかを示す情報を記憶する。図3は、配置情報記憶部114の一例を示す図であり、図4は、レプリカ配置の一例を示す図である。
図4に示すように、第1のレプリカを記憶するノード1はデータセンターAにあり、第2のレプリカを記憶するノード2と、第3のレプリカを記憶するノード3と、第4のレプリカを記憶するノード4は、データセンターBにある。また、第5のレプリカを記憶するノード5はデータセンターCにあり、第6のレプリカを記憶するノード6と、第7のレプリカを記憶するノード7は、データセンターDにあり、第8のレプリカを記憶するノード8はデータセンターEにある。
そして、クライアント11からの書き込みリクエストをノード1が受信すると、ノード1は、ノード2とノード3とノード4に更新要求を送信する。そして、ノード2はノード5に更新要求を送信し、ノード3はノード6に更新要求を送信し、ノード4はノード7に更新要求を送信する。そして、ノード5とノード6とノード7は、ノード8に更新要求を送信する。
図3は、図4に示すレプリカ配置について、配置情報記憶部114が記憶する情報を示す。図3に示すように、配置情報記憶部114は、レプリカ毎に対応するデータセンターの情報を記憶する。例えば、配置情報記憶部114は、第1のレプリカに対応するデータセンターがAであることを示す情報を記憶する。
距離情報記憶部115は、ノード間の通信による遅延時間を記憶する。図5は、距離情報記憶部115の一例を示す図である。図5は、図4に示すレプリカ配置について、距離情報記憶部115が記憶する情報を示す。
図5に示すように、距離情報記憶部115は、レプリカ毎に他のレプリカとの通信による遅延時間を記憶する。ここで、レプリカとノードは1対1に対応することから、距離情報記憶部115は、ノード毎に他のノードとの通信による遅延時間を記憶する。図5において、時間の単位はミリ秒(ms)である。例えば、第1のレプリカを記憶するノード1と第2のレプリカを記憶するノード2との間の通信による遅延時間は100ミリ秒である。
経路情報記憶部116は、マルチパスレプリケーションにおける経路の情報を記憶する。図6は、経路情報記憶部116の一例を示す図である。図6は、図4に示すレプリカ配置及びマルチパスレプリケーションについて、経路情報記憶部116が記憶する情報を示す。
図6に示すように、経路情報記憶部116は、経路毎に経路を形成する始点のノード、2番目のノード、3番目のノード、終点のノードを記憶する。例えば、経路1は、始点ノードが第1のレプリカを記憶するノード1であり、2番目のノードが第2のレプリカを記憶するノード2であり、3番目のノードが第5のレプリカを記憶するノード5であり、終点ノードが第8のレプリカを記憶するノード8である。
候補選択部117は、配置情報記憶部114、距離情報記憶部115及び経路情報記憶部116を参照してベリファイ要求を送信するノードの候補を選択する。候補選択部117は、アクセスリクエストが到着したノードをAとし、A及び始点ノードを除く任意のノードをBとすると、以下の2つの条件を満たすノードを候補として選択する。
第1の条件は、(AからBまでの通信遅延時間)<(AからAに最も近い終点ノードまでの通信遅延時間)である。Aに最も近い終点ノードとは、バージョン要求を送るノードであり、バージョン要求の通信遅延時間より通信遅延時間が大きいノードは、バージョン要求の処理の方が早く終了するため、候補とならない。例えば、終点ノードは、第1の条件を満たさないため、候補とならない。
第2の条件は、(始点ノードからAまでの更新要求伝播時間)+(Aが更新要求を送信してからの経過時間)+(AからBまでの通信遅延時間)<(始点ノードからBまでの更新要求伝播時間)である。ここで、(始点ノードからAまでの更新要求伝播時間)+(Aが更新要求を送信してからの経過時間)=(始点ノードが更新要求を送信してからの経過時間)であるので、第2の条件は、(始点ノードが更新要求を送信してからの経過時間)+(AからBまでの通信遅延時間)<(始点ノードからBまでの更新要求伝播時間)である。すなわち、Bにベリファイ要求が届くまでに、更新要求がまだBに届いていないことが候補となる第2の条件である。
図7は、候補選択部117による候補選びの一例を示す図である。図7に示すように、始点レプリカを記憶するノード31、第1のレプリカを記憶するノード1、第2のレプリカを記憶するノード2及び第3のレプリカを記憶するノード3はデータセンターAにあり、終点レプリカを記憶するノード32はデータセンターBにある。
また、ノード31→ノード1→ノード2→ノード3→ノード32の経路で更新要求が伝播され、データセンター間の通信遅延時間は一律100ミリ秒であり、データセンター内の通信遅延時間は一律1ミリ秒であるとする。そして、ノード1は、時刻Sで更新要求を送信し、時刻S+0.5ミリ秒にクライアント11から読み込みリクエストを受信したとする。
ノード2は、(ノード1からノード2までの通信遅延時間=1ミリ秒)<(ノード1からノード1に最も近い終点ノード32までの通信遅延時間=100ミリ秒)であるので、第1の条件を満たす。しかしながら、(ノード31からノード1までの更新要求伝播時間)+(ノード1が更新要求を送信してからの経過時間)+(ノード1からノード2までの通信遅延時間)=1ミリ秒+0.5ミリ秒+1ミリ秒=2.5ミリ秒である。一方、(ノード31からノード2までの更新要求伝播時間=2ミリ秒)であるので、ノード2は、第2の条件を満たさない。
ノード3は、(ノード1からノード3までの通信遅延時間=1ミリ秒)<(ノード1からノード1に最も近い終点ノード32までの通信遅延時間=100ミリ秒)であるので、第1の条件を満たす。また、(ノード31からノード1までの更新要求伝播時間)+(ノード1が更新要求を送信してからの経過時間)+(ノード1からノード3までの通信遅延時間)=1ミリ秒+0.5ミリ秒+1ミリ秒=2.5ミリ秒である。一方、(ノード31からノード3までの更新要求伝播時間=3ミリ秒)であるので、ノード3は、第2の条件も満たし、ベリファイ要求送信先の候補となる。
図2に戻って、送り先選択部118は、配置情報記憶部114、距離情報記憶部115及び経路情報記憶部116を参照し、候補選択部117が選択した複数の候補の中からベリファイ要求送信先を選択する。
具体的には、送り先選択部118は、ベリファイ要求送信先の候補を、アクセスリクエストが到着したノードからの通信遅延時間が短い順にソートし、ソートにより先頭となった候補をベリファイ要求送信先として選択する。また、送り先選択部118は、アクセスリクエストが到着したノードからの通信遅延時間が同じである複数のノードについては、更新要求が届く時間が長い順にソートする。
すなわち、送り先選択部118は、アクセスリクエストが到着したノードをAとすると、Aから見て、候補Bまでの通信遅延時間が候補Cまでの通信遅延時間より短ければ、候補Bが候補Cより前になるようにソートする。また、通信遅延時間が同じ場合には、送り先選択部118は、始点ノードからの更新要求の伝播時間が長いノードが前になるようにソートする。
図8は、送り先選択部118による送り先選びの一例を示す図である。図8において、アクセスリクエストが到着したノードをAとし、候補選択部117により3つの候補D1〜D3が選択されたとする。
候補D1は、Aからの通信遅延時間が2ミリ秒であり、始点ノードからの更新要求の伝播時間は5ミリ秒である。候補D2は、Aからの通信遅延時間が2ミリ秒であり、始点ノードからの更新要求の伝播時間は3ミリ秒である。候補D3は、Aからの通信遅延時間が1ミリ秒であり、始点ノードからの更新要求の伝播時間は3ミリ秒である。
送り先選択部118は、Aからの通信遅延時間が1ミリ秒である候補D3を先頭とし、Aからの通信遅延時間が同じである候補D1と候補D2については、始点ノードからの更新要求の伝播時間が長い候補D1が候補D2の前になるようにソートする。そして、送り先選択部118は、先頭の候補D3をベリファイ要求送信先として選択する。
図2に戻って、ベリファイ要求処理部119は、送り先選択部118が選択した候補にベリファイ要求を送信し、送信先からの応答を受け取ってリクエスト処理部121に渡す。また、ベリファイ要求処理部119は、他のノードから受信したベリファイ要求の処理を行う。具体的には、ベリファイ要求処理部119は、ベリファイ要求を受け取ったデータが更新中である場合には、バージョンは不明であると要求元に応答し、更新中でない場合には、記憶するデータのバージョンを要求元に応答する。
バージョン要求処理部120は、最も近い終点ノードにバージョン要求を送信し、送信先からの応答を受け取ってリクエスト処理部121に渡す。また、バージョン要求処理部120は、他のノードから受信したバージョン要求の処理を行う。
リクエスト処理部121は、更新状態判定部113による判定結果、ベリファイ要求に対する応答及びバージョン要求に対する応答に基づいてクライアントに送信するデータのバージョンを決定し、データをクライアントに送信する。
すなわち、リクエスト処理部121は、アクセスリクエストがあったデータが更新中でない場合には、記憶するデータをクライアントに送信する。また、リクエスト処理部121は、アクセスリクエストがあったデータが更新中の場合には、ベリファイ要求に対する応答としてバージョンを受け取ると、そのバージョンのデータをクライアントに送信する。また、リクエスト処理部121は、アクセスリクエストがあったデータが更新中で、ベリファイ要求の送信先がないとき又はベリファイ要求に対する応答が不明であるときは、バージョン要求に対する応答で受け取ったバージョンのデータをクライアントに送信する。
次に、データの読み込みリクエストに対して情報処理装置100が行う処理のフローについて説明する。図9は、データの読み込みリクエストに対して情報処理装置100が行う処理のフローを示すフローチャートである。図9に示すように、情報処理装置100は、処理を停止する停止条件があるか否かを判定し(ステップS1)、停止条件がある場合には、処理を終了する。ここで、停止条件は、例えば情報処理システム10の保守などでシステム管理者によって設定される。
一方、停止条件がない場合には、情報処理装置100は、データにアクセスがあったか否かを判定し(ステップS2)、データにアクセスがあると、更新状態判定部113が、アクセスのあったデータは更新中であるか否かを判定する(ステップS3)。その結果、アクセスのあったデータは更新中でない場合には、リクエスト処理部121が、現在のデータをクライアントに返し(ステップS4)、ステップS1に制御が戻る。
一方、アクセスのあったデータは更新中である場合には、候補選択部117が、ベリファイ要求を送れるノードの候補を選択する(ステップS5)。そして、候補選択部117は、候補が0個であるか否かを判定し(ステップS6)、候補が0個である場合には、バージョン要求処理部120が、終点ノードにバージョン要求を送る(ステップS7)。そして、バージョン要求処理部120がバージョン要求に対する応答として受け取ったバージョンに基づいて、リクエスト処理部121が終点ノードのバージョンと同じデータをクライアントに返し(ステップS8)、ステップS1に制御が戻る。
一方、候補が0個でない場合には、送り先選択部118がベリファイ要求の送り先を選択し(ステップS9)、バージョン要求処理部120が終点ノードにバージョン要求を送るとともに、ベリファイ要求処理部119がベリファイ要求を送り先選択部118により選択された送り先に送る(ステップS10)。
そして、リクエスト処理部121は、ベリファイ要求でバージョンが分かったか否かを判定し(ステップS11)、バージョンが分からない場合には、終点ノードのバージョンと同じデータをクライアントに返す(ステップS8)。一方、バージョンが分かった場合には、リクエスト処理部121は、ベリファイ要求で分かったバージョンのデータをクライアントに返し(ステップS12)、ステップS1に制御が戻る。
このように、ベリファイ要求でバージョンが分かった場合に、リクエスト処理部121は、ベリファイ要求で分かったバージョンのデータをクライアントに返すことで、バージョン要求に対する応答を待つことなくクライアントに応答することができる。
次に、ベリファイ要求に対する処理のフローについて説明する。図10は、ベリファイ要求に対する処理のフローを示すフローチャートである。図10に示すように、情報処理装置100は、処理を停止する停止条件があるか否かを判定し(ステップS21)、停止条件がある場合には、処理を終了する。
一方、停止条件がない場合には、ベリファイ要求処理部119は、データのベリファイ要求が届いたか否かを判定し(ステップS22)、届いた場合には、ベリファイ要求が届いたデータは更新中であるか否かを判定する(ステップS23)。
その結果、ベリファイ要求処理部119は、更新中である場合には、データのバージョンは分からないと返答し(ステップS24)、更新中でない場合には、データのバージョンを返す(ステップS25)。そして、ステップS21に制御が戻る。
上述してきたように、実施例では、候補選択部117が更新中のデータについてベリファイ要求を送信する候補を配置情報記憶部114、距離情報記憶部115及び経路情報記憶部116を参照して選択する。そして、候補選択部117が選択した候補から、送り先選択部118が、ベリファイ要求を送信する送り先を選択し、ベリファイ要求処理部119が、送り先にベリファイ要求を送信する。そして、ベリファイ要求でバージョンが分かった場合に、リクエスト処理部121が、ベリファイ要求で分かったバージョンのデータをクライアントに返す。したがって、情報処理システム10は、更新中のデータに対する読み込みリクエストに対して、バージョン機能を用いるよりも高速に応答することができる。
また、実施例では、候補選択部117は、ベリファイ要求が届くまでに、更新要求がまだ届いていない情報処理装置をベリファイ要求の送信先の候補として選択する。したがって、情報処理システム10は、更新中のデータに対する読み込みリクエストに対して、バージョン機能を用いるよりも高速に応答することを確実に行うことができる。
また、実施例では、送り先選択部118は、ベリファイ要求の送信先の複数の候補の中から、通信遅延時間が最も短い情報処理装置をベリファイ要求の送信先として選択する。したがって、更新中のデータに対する読み込みリクエストを受信した情報処理装置は、最も応答が早く得られる情報処理装置にベリファイ要求を送信することができる。
また、実施例では、送り先選択部118は、ベリファイ要求の送信先の複数の候補の中に、通信遅延時間が最も短い情報処理装置が複数ある場合に、マルチパスレプリケーションの経路において更新要求が最も遅く届く情報処理装置を送信先として選択する。したがって、更新中のデータに対する読み込みリクエストを受信した情報処理装置は、データの更新が行われていないと推定される情報処理装置にベリファイ要求を送信することができる。
また、実施例では、情報処理装置について説明したが、情報処理装置が有する機能構成をソフトウェアによって実現することで、同様の機能を有し情報処理装置を制御する制御プログラムを得ることができる。そこで、制御プログラムを実行する情報処理装置のハードウェア構成について説明する。
図11は、実施例に係る情報処理装置のハードウェア構成を示す図である。図11に示すように、情報処理装置200は、メインメモリ210と、CPU(Central Processing Unit)220と、LAN(Local Area Network)インタフェース230とを有する。また、情報処理装置200は、HDD(Hard Disk Drive)240と、スーパーIO(Input Output)250と、DVI(Digital Visual Interface)260と、ODD(Optical Disk Drive)270とを有する。
メインメモリ210は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU220は、メインメモリ210からプログラムを読み出して実行する中央処理装置である。CPU220は、メモリコントローラを有するチップセットを含む。
LANインタフェース230は、情報処理装置200をLAN経由で他の情報処理装置に接続するためのインタフェースである。HDD240は、プログラムやデータを格納するディスク装置であり、スーパーIO250は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI260は、液晶表示装置を接続するインタフェースであり、ODD270は、DVDの読み書きを行う装置である。
LANインタフェース230は、PCIエクスプレスによりCPU220に接続され、HDD240及びODD270は、SATA(Serial Advanced Technology Attachment)によりCPU220に接続される。スーパーIO250は、LPC(Low Pin Count)によりCPU220に接続される。
そして、情報処理装置200において実行される制御プログラムは、DVDに記憶され、ODD270によってDVDから読み出されて情報処理装置200にインストールされる。あるいは、制御プログラムは、LANインタフェース230を介して接続された他の情報処理システムのデータベースなどに記憶され、これらのデータベースから読み出されて情報処理装置200にインストールされる。そして、インストールされた制御プログラムは、HDD240に記憶され、メインメモリ210に読み出されてCPU220によって実行される。
1,2,3,4,5,6,7,8 ノード
10,10a 情報処理システム
11,12 クライアント
31 始点ノード
32 終点ノード
81,82 クライアント
90 情報処理システム
91,92,93,94,95 ノード
100 情報処理装置
111 リクエスト受信部
112 リクエスト保持部
113 更新状態判定部
114 配置情報記憶部
115 距離情報記憶部
116 経路情報記憶部
117 候補選択部
118 送り先選択部
119 ベリファイ要求処理部
120 バージョン要求処理部
121 リクエスト処理部
200 情報処理装置
210 メインメモリ
220 CPU
230 LANインタフェース
240 HDD
250 スーパーIO
260 DVI
270 ODD

Claims (6)

  1. 同一のデータを複数の情報処理装置が記憶し、前記複数の情報処理装置のうち第1のクライアント装置からデータの更新要求を受信する情報処理装置である第1の情報処理装置と前記更新要求が最終的に送信される情報処理装置である第2の情報処理装置との間で他の情報処理装置を経由する複数の経路を用いて前記更新要求が送信される情報処理システムにおいて、
    第3の情報処理装置は、
    第2のクライアント装置から前記データの読み込み要求を受信する受信部と、
    前記受信部が読み込み要求を受信したデータが、前記更新要求により更新中であるかを判定する判定部と、
    前記データが更新中であると前記判定部が判定した場合、前記複数の情報処理装置のうち前記第1の情報処理装置と前記第2の情報処理装置とを除いた他の情報処理装置のいずれかから前記データが更新中であるかを問合わせる情報処理装置を選択する選択部と、
    前記選択部が選択した前記情報処理装置に問合わせを行う問合せ部と、
    選択された前記情報処理装置からの問合わせの結果に基づいて、更新前のデータ又は更新後のデータを第2のクライアント装置に応答する応答部と
    を有することを特徴とする情報処理システム。
  2. 前記選択部は、第2の情報処理装置と通信する場合より第4の情報処理装置と通信する場合の遅延時間が短く、かつ、第1の情報処理装置が前記更新要求を送信した時間からの経過時間と第4の情報処理装置と通信する場合の遅延時間との和が第1の情報処理装置から第4の情報処理装置への前記更新要求の伝播時間より小さい場合に、第4の情報処理装置を前記問合先として選択することを特徴とする請求項1に記載の情報処理システム。
  3. 前記選択部は、第4の情報処理装置が複数ある場合には、通信する際の遅延時間が最も小さい情報処理装置を前記問合先として選択することを特徴とする請求項2に記載の情報処理システム。
  4. 前記選択部は、通信する際の遅延時間が最も小さい情報処理装置が複数ある場合には、第1の情報処理装置からの前記更新要求の伝播時間が最も長い情報処理装置を前記問合先として選択することを特徴とする請求項3に記載の情報処理システム。
  5. 同一のデータを複数の情報処理装置が記憶し、前記複数の情報処理装置のうち第1のクライアント装置からデータの更新要求を受信する情報処理装置である第1の情報処理装置と前記更新要求が最終的に送信される情報処理装置である第2の情報処理装置との間で他の情報処理装置を経由する複数の経路を用いて前記更新要求が送信される情報処理システムで情報処理装置を制御する制御プログラムにおいて、
    第3の情報処理装置を制御する制御プログラムが、
    第2のクライアント装置から前記データの読み込み要求を受信し、
    前記読み込み要求を受信したデータが、前記更新要求により更新中であるかを判定し、
    前記データが更新中であると判定した場合、前記複数の情報処理装置のうち前記第1の情報処理装置と前記第2の情報処理装置とを除いた他の情報処理装置のいずれかから前記データが更新中であるかを問合わせる情報処理装置を選択し、
    選択した情報処理装置に問合わせを行い、
    選択された情報処理装置からの問合わせの結果に基づいて、更新前のデータ又は更新後のデータを第2のクライアント装置に応答することを特徴とする情報処理装置を制御する制御プログラム。
  6. 同一のデータを複数の情報処理装置が記憶し、前記複数の情報処理装置のうち第1のクライアント装置からデータの更新要求を受信する情報処理装置である第1の情報処理装置と前記更新要求が最終的に送信される情報処理装置である第2の情報処理装置との間で他の情報処理装置を経由する複数の経路を用いて前記更新要求が送信される情報処理システムの制御方法において、
    第3の情報処理装置が、
    第2のクライアント装置から前記データの読み込み要求を受信し、
    前記読み込み要求を受信したデータが、前記更新要求により更新中であるかを判定し、
    前記データが更新中であると判定した場合に、前記情報処理装置のうち前記第1の情報処理装置と前記第2の情報処理装置とを除いた他の情報処理装置のいずれかから前記データが更新中であるかを問合わせる情報処理装置を選択し、
    選択した前記情報処理装置に問合わせを行い、
    選択された前記情報処理装置からの問合わせの結果に基づいて、更新前のデータ又は更新後のデータを第2のクライアント装置に応答することを特徴とする情報処理システムの制御方法。
JP2013059038A 2013-03-21 2013-03-21 情報処理システム、情報処理装置を制御する制御プログラム及び情報処理システムの制御方法 Expired - Fee Related JP5983484B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013059038A JP5983484B2 (ja) 2013-03-21 2013-03-21 情報処理システム、情報処理装置を制御する制御プログラム及び情報処理システムの制御方法
US14/210,516 US9418096B2 (en) 2013-03-21 2014-03-14 Control method, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013059038A JP5983484B2 (ja) 2013-03-21 2013-03-21 情報処理システム、情報処理装置を制御する制御プログラム及び情報処理システムの制御方法

Publications (2)

Publication Number Publication Date
JP2014186382A JP2014186382A (ja) 2014-10-02
JP5983484B2 true JP5983484B2 (ja) 2016-08-31

Family

ID=51569910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013059038A Expired - Fee Related JP5983484B2 (ja) 2013-03-21 2013-03-21 情報処理システム、情報処理装置を制御する制御プログラム及び情報処理システムの制御方法

Country Status (2)

Country Link
US (1) US9418096B2 (ja)
JP (1) JP5983484B2 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9736065B2 (en) 2011-06-24 2017-08-15 Cisco Technology, Inc. Level of hierarchy in MST for traffic localization and load balancing
US8908698B2 (en) 2012-01-13 2014-12-09 Cisco Technology, Inc. System and method for managing site-to-site VPNs of a cloud managed network
US9043439B2 (en) 2013-03-14 2015-05-26 Cisco Technology, Inc. Method for streaming packet captures from network access devices to a cloud server over HTTP
US10122605B2 (en) 2014-07-09 2018-11-06 Cisco Technology, Inc Annotation of network activity through different phases of execution
US9825878B2 (en) 2014-09-26 2017-11-21 Cisco Technology, Inc. Distributed application framework for prioritizing network traffic using application priority awareness
US10050862B2 (en) * 2015-02-09 2018-08-14 Cisco Technology, Inc. Distributed application framework that uses network and application awareness for placing data
US10708342B2 (en) 2015-02-27 2020-07-07 Cisco Technology, Inc. Dynamic troubleshooting workspaces for cloud and network management systems
US10476982B2 (en) 2015-05-15 2019-11-12 Cisco Technology, Inc. Multi-datacenter message queue
US10034201B2 (en) 2015-07-09 2018-07-24 Cisco Technology, Inc. Stateless load-balancing across multiple tunnels
US11005682B2 (en) 2015-10-06 2021-05-11 Cisco Technology, Inc. Policy-driven switch overlay bypass in a hybrid cloud network environment
US10462136B2 (en) 2015-10-13 2019-10-29 Cisco Technology, Inc. Hybrid cloud security groups
US10523657B2 (en) 2015-11-16 2019-12-31 Cisco Technology, Inc. Endpoint privacy preservation with cloud conferencing
US10205677B2 (en) 2015-11-24 2019-02-12 Cisco Technology, Inc. Cloud resource placement optimization and migration execution in federated clouds
CN105488148A (zh) * 2015-11-26 2016-04-13 上海晶赞科技发展有限公司 大数据的存储访问系统及方法
US10084703B2 (en) 2015-12-04 2018-09-25 Cisco Technology, Inc. Infrastructure-exclusive service forwarding
US10367914B2 (en) 2016-01-12 2019-07-30 Cisco Technology, Inc. Attaching service level agreements to application containers and enabling service assurance
US10129177B2 (en) 2016-05-23 2018-11-13 Cisco Technology, Inc. Inter-cloud broker for hybrid cloud networks
US10659283B2 (en) 2016-07-08 2020-05-19 Cisco Technology, Inc. Reducing ARP/ND flooding in cloud environment
US10432532B2 (en) 2016-07-12 2019-10-01 Cisco Technology, Inc. Dynamically pinning micro-service to uplink port
US10382597B2 (en) 2016-07-20 2019-08-13 Cisco Technology, Inc. System and method for transport-layer level identification and isolation of container traffic
US10263898B2 (en) 2016-07-20 2019-04-16 Cisco Technology, Inc. System and method for implementing universal cloud classification (UCC) as a service (UCCaaS)
US10567344B2 (en) 2016-08-23 2020-02-18 Cisco Technology, Inc. Automatic firewall configuration based on aggregated cloud managed information
US10523592B2 (en) 2016-10-10 2019-12-31 Cisco Technology, Inc. Orchestration system for migrating user data and services based on user information
US11044162B2 (en) 2016-12-06 2021-06-22 Cisco Technology, Inc. Orchestration of cloud and fog interactions
US10326817B2 (en) 2016-12-20 2019-06-18 Cisco Technology, Inc. System and method for quality-aware recording in large scale collaborate clouds
US10334029B2 (en) 2017-01-10 2019-06-25 Cisco Technology, Inc. Forming neighborhood groups from disperse cloud providers
US10552191B2 (en) 2017-01-26 2020-02-04 Cisco Technology, Inc. Distributed hybrid cloud orchestration model
US10320683B2 (en) 2017-01-30 2019-06-11 Cisco Technology, Inc. Reliable load-balancer using segment routing and real-time application monitoring
US10671571B2 (en) 2017-01-31 2020-06-02 Cisco Technology, Inc. Fast network performance in containerized environments for network function virtualization
US11005731B2 (en) 2017-04-05 2021-05-11 Cisco Technology, Inc. Estimating model parameters for automatic deployment of scalable micro services
US10439877B2 (en) 2017-06-26 2019-10-08 Cisco Technology, Inc. Systems and methods for enabling wide area multicast domain name system
US10382274B2 (en) 2017-06-26 2019-08-13 Cisco Technology, Inc. System and method for wide area zero-configuration network auto configuration
US10425288B2 (en) 2017-07-21 2019-09-24 Cisco Technology, Inc. Container telemetry in data center environments with blade servers and switches
US10892940B2 (en) 2017-07-21 2021-01-12 Cisco Technology, Inc. Scalable statistics and analytics mechanisms in cloud networking
US10601693B2 (en) 2017-07-24 2020-03-24 Cisco Technology, Inc. System and method for providing scalable flow monitoring in a data center fabric
US10541866B2 (en) 2017-07-25 2020-01-21 Cisco Technology, Inc. Detecting and resolving multicast traffic performance issues
US11481362B2 (en) 2017-11-13 2022-10-25 Cisco Technology, Inc. Using persistent memory to enable restartability of bulk load transactions in cloud databases
US10705882B2 (en) 2017-12-21 2020-07-07 Cisco Technology, Inc. System and method for resource placement across clouds for data intensive workloads
US11595474B2 (en) 2017-12-28 2023-02-28 Cisco Technology, Inc. Accelerating data replication using multicast and non-volatile memory enabled nodes
US10511534B2 (en) 2018-04-06 2019-12-17 Cisco Technology, Inc. Stateless distributed load-balancing
CN110417838A (zh) 2018-04-28 2019-11-05 华为技术有限公司 一种数据同步方法及同步服务设备
US10728361B2 (en) 2018-05-29 2020-07-28 Cisco Technology, Inc. System for association of customer information across subscribers
US10904322B2 (en) 2018-06-15 2021-01-26 Cisco Technology, Inc. Systems and methods for scaling down cloud-based servers handling secure connections
US10764266B2 (en) 2018-06-19 2020-09-01 Cisco Technology, Inc. Distributed authentication and authorization for rapid scaling of containerized services
US11019083B2 (en) 2018-06-20 2021-05-25 Cisco Technology, Inc. System for coordinating distributed website analysis
US10819571B2 (en) 2018-06-29 2020-10-27 Cisco Technology, Inc. Network traffic optimization using in-situ notification system
US10904342B2 (en) 2018-07-30 2021-01-26 Cisco Technology, Inc. Container networking using communication tunnels
CN109671314B (zh) * 2019-01-21 2020-12-29 合肥状元郎电子科技有限公司 一种智能互动黑板与电子书包协同的教学系统
CN111464397B (zh) * 2020-04-08 2021-04-30 清华大学 一种双向距离和钟差测量的方法和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3421270B2 (ja) 1999-02-24 2003-06-30 日本電信電話株式会社 データ複製システムおよびデータ複製プログラムを記録した記録媒体
JP3545267B2 (ja) * 1999-07-14 2004-07-21 日本電信電話株式会社 データ複製方法およびデータ複製プログラムを記録した記録媒体
JP4077172B2 (ja) 2000-04-27 2008-04-16 富士通株式会社 ファイルレプリケーションシステム、ファイルレプリケーション制御方法及び記憶媒体
US20010039548A1 (en) 2000-04-27 2001-11-08 Yoshitake Shinkai File replication system, replication control method, and storage medium
ES2582364T3 (es) * 2005-12-19 2016-09-12 Commvault Systems, Inc. Sistemas y métodos para realizar replicación de datos

Also Published As

Publication number Publication date
US9418096B2 (en) 2016-08-16
US20140289200A1 (en) 2014-09-25
JP2014186382A (ja) 2014-10-02

Similar Documents

Publication Publication Date Title
JP5983484B2 (ja) 情報処理システム、情報処理装置を制御する制御プログラム及び情報処理システムの制御方法
JP5191062B2 (ja) ストレージ制御システム、ストレージ制御システムに関する操作方法、データ・キャリア及びコンピュータ・プログラム
US20200012568A1 (en) Scalable log-based continuous data protection for distributed databases
US7594086B2 (en) Storage system for copying data and storing in a plurality of storage devices
JP5390067B2 (ja) データのブロックを伝送するための優先順位方式
US20070168629A1 (en) Storage controller and data management method
JP4773788B2 (ja) 記憶システムにおけるリモートコピー制御
US10922009B2 (en) Mirroring write operations across data storage devices
JP4794194B2 (ja) ストレージシステム及び記憶制御方法
JP2018181325A (ja) 分散ストレージネットワークにおけるデータ経路モニタリング
US20070094456A1 (en) Storage system and storage control method
JP2009157785A (ja) 待機系計算機の追加方法、計算機及び計算機システム
JP2007328396A (ja) 記憶システム並びに管理装置及び方法
JP5245711B2 (ja) 分散データ処理システム、分散データ処理方法および分散データ処理用プログラム
US9323464B2 (en) Assigning device adaptors to use to copy source extents to target extents in a copy relationship
US20160034191A1 (en) Grid oriented distributed parallel computing platform
US20130275992A1 (en) Distributed processing system, distributed processing method, and distributed processing program
US11055013B2 (en) Recovering from data loss using copy services relationships between volumes
US11934927B2 (en) Handling system-characteristics drift in machine learning applications
US9208114B2 (en) Storage device, computer-readable recording medium, and storage control method
US11341407B2 (en) Selecting a disconnect from different types of channel disconnects by training a machine learning module
US10929057B2 (en) Selecting a disconnect from different types of channel disconnects using a machine learning module
US20120166588A1 (en) Shared-bandwidth multiple target remote copy
JP5783008B2 (ja) ストレージ装置、ストレージシステム、データ更新方法およびデータ管理プログラム
JP2018032072A (ja) プログラム、情報処理装置、ストレージシステム、およびストレージシステムの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160627

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160718

R150 Certificate of patent or registration of utility model

Ref document number: 5983484

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees