JP2014229088A - データ処理システム、データ処理装置および記憶媒体 - Google Patents

データ処理システム、データ処理装置および記憶媒体 Download PDF

Info

Publication number
JP2014229088A
JP2014229088A JP2013108531A JP2013108531A JP2014229088A JP 2014229088 A JP2014229088 A JP 2014229088A JP 2013108531 A JP2013108531 A JP 2013108531A JP 2013108531 A JP2013108531 A JP 2013108531A JP 2014229088 A JP2014229088 A JP 2014229088A
Authority
JP
Japan
Prior art keywords
data
node
users
slave
master
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.)
Pending
Application number
JP2013108531A
Other languages
English (en)
Inventor
勉 河内
Tsutomu Kawachi
勉 河内
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2013108531A priority Critical patent/JP2014229088A/ja
Priority to CN201410208814.4A priority patent/CN104182296A/zh
Priority to US14/279,647 priority patent/US20140351210A1/en
Publication of JP2014229088A publication Critical patent/JP2014229088A/ja
Pending legal-status Critical Current

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】バックアップを利用したデータ処理をより円滑に実行する。
【解決手段】ユーザ群にサービスを提供するためのデータを、ユーザ群の一部である1または複数のユーザを単位として保持するノードと、1または複数のユーザからのデータへのアクセス要求に対応して、1または複数のユーザのデータが格納されたノードへのルーティングを実行するルーティングマネージャとを含み、ノードは、1または複数のユーザのマスタデータを保持する第1のノードと、マスタデータをレプリケートしたスレーブデータを保持する第2のノードと、第3のノードとを含み、ルーティングマネージャは、さらに、第2のノードに保持されたスレーブデータをマスタデータに変更するとともに、スレーブデータをレプリケートして新たなスレーブデータとして第3のノードに保持させるデータ移動処理を実行するデータ処理システムが提供される。
【選択図】図1

Description

本開示は、データ処理システム、データ処理装置および記憶媒体に関する。
サービスの提供のために利用される各ユーザについてのデータは、サーバのノードにおいてデータベースとして保持されるとともに、ノードに障害が発生した場合などに備え、バックアップデータとしても保持されることが一般的である。バックアップデータは、例えばノードの障害時に代わりにアクセスを受け付けたり、障害によって失われたデータを復旧したりするのに利用される。このようなデータのバックアップの技術の例は、例えば特許文献1に記載されている。
特開平5−61756号公報
しかしながら、サービスを提供されるユーザの数や、各ユーザについて格納されるデータの量が増加するにつれて、データベースは巨大になる。データベースが巨大化すると、データへのアクセスに伴うノードへの負荷が大きくなり、システムのパフォーマンスが低下しうる。また、ひとたびノードに障害が発生すると、その影響が多くのユーザに及んでしまう。
そこで、本開示では、バックアップを利用したデータ処理をより円滑に実行することを可能にする、新規かつ改良されたデータ処理システム、データ処理装置および記憶媒体を提案する。
本開示によれば、ユーザ群にサービスを提供するためのデータを、上記ユーザ群の一部である1または複数のユーザを単位として保持するノードと、上記1または複数のユーザからの上記データへのアクセス要求に対応して、上記1または複数のユーザのデータが格納された上記ノードへのルーティングを実行するルーティングマネージャとを含み、上記ノードは、上記1または複数のユーザのマスタデータを保持する第1のノードと、上記マスタデータをレプリケートしたスレーブデータを保持する第2のノードと、第3のノードとを含み、上記ルーティングマネージャは、さらに、上記第2のノードに保持された上記スレーブデータを上記マスタデータに変更するとともに、上記スレーブデータをレプリケートして新たなスレーブデータとして上記第3のノードに保持させるデータ移動処理を実行するデータ処理システムが提供される。
また、本開示によれば、1または複数のユーザにサービスを提供するためのマスタデータをレプリケートしたスレーブデータを保持する記憶部と、上記マスタデータへのアクセス要求に対応してルーティングを実行するルーティングマネージャが上記スレーブデータを上記マスタデータに変更したときに、上記変更後のマスタデータへのアクセスを受け付けるとともに、上記変更後のマスタデータをレプリケートして新たなスレーブデータとして外部装置に保持させる制御部とを備えるデータ処理装置が提供される。
また、本開示によれば、1または複数のユーザにサービスを提供するためのマスタデータをレプリケートしたスレーブデータを保持する記憶部に接続されるコンピュータに、上記マスタデータへのアクセス要求に対応してルーティングを実行するルーティングマネージャが上記スレーブデータを上記マスタデータに変更したときに、上記変更後のマスタデータへのアクセスを受け付けるとともに、上記変更後のマスタデータをレプリケートして新たなスレーブデータとして外部装置に保持させる機能を実現させるためのプログラムが保持された記憶媒体が提供される。
ユーザ群にサービスを提供するためのデータを、マスタデータおよびスレーブデータとしてユーザを単位として別々のノードに保持させることによって、マスタデータが利用可能でない場合のバックアップとしてスレーブデータが利用できる。このとき、例えば他のユーザのマスタデータは引き続き利用可能でありうる。また、第3のノードに新たなスレーブデータを保持させることで、引き続きバックアップを利用することができる。
以上説明したように本開示によれば、バックアップを利用したデータ処理をより円滑に実行することができる。
本開示の第1の実施形態に係るデータ処理システムの構成を概略的に示す図である。 図1に示したデータ処理システムにおけるデータアクセスの処理の例を示すフローチャートである。 図1に示したデータ処理システムにおけるレプリケーションの処理の例を示すフローチャートである。 図1に示したデータ処理システムにおけるユーザ情報の例を示す図である。 図1に示したデータ処理システムにおけるノード情報の例を示す図である。 図1に示したデータ処理システムにおけるデータアクセス時のデータ移動処理の具体的な例を示す図である。 図6に例示したデータ移動処理によって更新されたユーザ情報を示す図である。 本開示の第2の実施形態に係るデータ処理システムにおけるノード監視の処理の例を示すフローチャートである。 図8に示したデータ移動処理の具体的な例を示す図である。 本開示の第3の実施形態に係るデータ処理システムにおける負荷分散の処理の例を示すフローチャートである。 本開示の第3の実施形態におけるユーザ情報の例を示す図である。 本開示の第3の実施形態におけるノード情報の例を示す図である。 本開示の第3の実施形態における負荷分散処理の具体的な例を示す図である。 本開示の他の実施形態に係るデータ処理システムの構成を概略的に示す図である。 本開示のさらに他の実施形態に係るデータ処理システムの構成を概略的に示す図である。 情報処理装置のハードウェア構成を説明するためのブロック図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.第1の実施形態
1−1.システム構成
1−2.処理フロー
1−3.管理情報の例
1−4.データ移動処理の例
2.第2の実施形態
3.第3の実施形態
4.その他のバリエーション
5.ハードウェア構成
6.補足
(1.第1の実施形態)
(1−1.システム構成)
図1は、本開示の第1の実施形態に係るデータ処理システムの構成を概略的に示す図である。図1を参照すると、システム10は、ルーティングマネージャ100と、ノード200とを含む。
ルーティングマネージャ100は、例えば後述する情報処理装置のハードウェア構成によって実現されうる。ルーティングマネージャ100は、例えばネットワーク上でサーバとして機能する1または複数の情報処理装置であって、サービスを提供されるユーザからのデータへのアクセス要求に応じて、ノード200へのルーティングを実行する。後述するように、本実施形態では、ユーザにサービスを提供するためのデータが、1または複数のユーザ(以下、単にユーザという場合1または複数のユーザを意味しうるものとする)を単位としてノード200に保持される。それゆえ、ルーティングマネージャ100は、ストレージ装置などに記憶されるユーザ情報110を有し、これを参照して、アクセス要求を送信したユーザのデータがどのノード200に格納されているかを特定する。また、ルーティングマネージャ100は、定期的に、またはデータへのアクセス時にノード200の状態を監視し、その情報をストレージ装置などにノード情報120として記憶する。
ノード200も、例えば後述する情報処理装置のハードウェア構成によって実現されうる。ノード200は、例えばネットワークを介してルーティングマネージャ100に接続された情報処理装置であって、ユーザにサービスを提供するためのデータを保持する。図では、ノード200a〜200eが図示されているが、システム10はさらに多くのノード200を含みうる。ノード200には、マスタデータ210と、スレーブデータ220とが格納されうる。マスタデータ210は、ユーザにサービスを提供するにあたってアクセスされるデータである。スレーブデータ220は、マスタデータ210をレプリケートしたデータであり、マスタデータ210のバックアップとして用いられる。上記のように、本実施形態ではデータがユーザを単位としてノード200に保持される。従って、各ユーザのマスタデータ210は、互いに異なるノード200に保持されうる。また、本実施形態ではマスタデータ210とスレーブデータ220とは別個のノード200に保持される。さらに、図示されたノード200eのように、ある時点ではマスタデータ210もスレーブデータ220も保持しない待機ノードが存在してもよい。
(1−2.処理フロー)
図2は、図1に示したデータ処理システムにおけるデータアクセスの処理の例を示すフローチャートである。図2を参照すると、データアクセスの要求を受けたルーティングマネージャ100は、まず、ユーザのマスタノードおよびスレーブノードを特定する(ステップS101)。ここで、マスタノードはユーザのマスタデータを保持するノードを意味し、スレーブノードはユーザのスレーブデータを保持するノードを意味する。ルーティングマネージャ100は、ユーザ情報110を参照することによってマスタノードおよびスレーブノードを特定する。なお、ユーザ情報110の具体的な例については後述する。また、本明細書で説明されるルーティングマネージャ100の処理は、より具体的には、ルーティングマネージャ100を実現する情報処理装置のプロセッサによって実行されるものでありうる。
次に、ルーティングマネージャ100は、ユーザのマスタノードが利用可能であるか否かを判定する(ステップS103)。ここで、ルーティングマネージャ100は、例えば、ノード情報120を参照し、マスタノードの状況を示す情報を取得することによって判定を実行してもよい。あるいは、ルーティングマネージャ100は、マスタノードへのアクセスを実行し、アクセスが成功したか否かによって、この判定を実行してもよい。
上記のステップS103において、マスタノードが利用可能ではなかった場合(NO)、ルーティングマネージャ100は、ルーティングに先立ってマスタノードを変更する処理を実行する。ここで、まず、ルーティングマネージャは、ステップS103におけるマスタノードと同様にして、ユーザのスレーブノードが利用可能であるか否かを判定する(ステップS105)。ここで、スレーブノードも利用可能ではなかった場合(NO)、利用可能なデータが一時的に存在しないことになるため、処理はエラー終了する(ステップS107)。
一方、上記のステップS105において、スレーブノードが利用可能であった場合(YES)、ルーティングマネージャ100は、ユーザ情報110においてスレーブノードをマスタノードに変更する(ステップS109)。これによって、ユーザのスレーブデータ220を保持していたノード200(スレーブノード)が新たにそのユーザのマスタデータ210を保持するノード200(マスタノード)として登録され、それまでのスレーブデータ220が新たにマスタデータ210として参照されるようになる。
上記のステップS105〜S109の処理によって新たなマスタノードが設定された後、および上記のステップS103でマスタノードが利用可能であった場合(YES)、ルーティングマネージャ100は、マスタノードへのルーティングを実行する。より具体的には、ルーティングマネージャ100は、ユーザ情報110にマスタノードとして定義されたノード200にアクセスして、マスタデータ210の更新番号を取得する(ステップS111)。続いて、アクセス要求を送信したユーザによるマスタデータへのアクセスが実行される(ステップS113)。なお、マスタデータへのアクセスは、例えばデータの追加、更新、複製または削除を含みうる。
マスタデータへのアクセス(ステップS113)が終了すると、ルーティングマネージャ100は、ステップS103におけるマスタノードと同様にして、ユーザのスレーブノードが利用可能であるか否かを判定する(ステップS115)。ここで、スレーブノードが利用可能ではなかった場合(NO)、ルーティングマネージャ100は新たなスレーブノードを設定する(ステップS117)。新たなスレーブノードは、例えばマスタノードとは別のノード200の中から選択される。選択されたスレーブノードは、ユーザ情報110に登録される。
なお、上記のステップS117において新たなスレーブノードが設定されるのは、以下の2つの場合である。1つは、マスタノードが利用可能である(ステップS103でYES)ためそのままマスタデータへのアクセスが実行されたが、その一方でスレーブノードは利用可能でなくなっていた場合。もう1つは、マスタノードが利用可能ではなかった(ステップS103のNO)ためステップS109でスレーブノードがマスタノードに変更され、その結果としてスレーブノードが存在していない場合である。上記のステップS115での判定とステップS117での処理によって、これらのいずれの場合にも利用可能なスレーブノードが新たに設定される。
次に、ルーティングマネージャ100は、マスタデータからスレーブデータへのレプリケーションを実行する(ステップS150)。これによって、スレーブデータに上記のステップS113でのデータアクセスの結果が反映され、マスタデータとスレーブデータとが同期された状態になる。
図3は、図1に示したデータ処理システムにおけるレプリケーションの処理の例を示すフローチャートである。なお、ここで説明するレプリケーションの処理は、図2に示したステップS150の処理に対応する。図3を参照すると、レプリケーションを実行するルーティングマネージャ100は、まず、マスタデータとスレーブデータとの更新番号が合致しているか否かを判定する(ステップS151)。ここで、マスタデータとスレーブデータとの更新番号が合致していれば(YES)、ルーティングマネージャ100は、スレーブデータにマスタデータとの差分を反映し(ステップS153)、スレーブデータの更新番号を更新する(ステップS155)。一方、ステップS151でマスタデータとスレーブデータとの更新番号が合致していなければ(NO)、ルーティングマネージャ100は、マスタデータをスレーブデータにコピーする(ステップS157)。
(1−3.管理情報の例)
図4は、図1に示したデータ処理システムにおけるユーザ情報の例を示す図である。図4を参照すると、ユーザ情報110は、「ユーザ」、「マスタノード」、および「スレーブノード」の項目を含む。「ユーザ」は、ルーティングマネージャ100によるルーティングの対象になるユーザを識別するための情報である。「マスタノード」および「スレーブノード」は、「ユーザ」として特定されるユーザのマスタデータおよびスレーブデータがそれぞれ保持されているノード200と示す情報である。図示された例ではノードの名称(ノードA、ノードB、・・・)が記録されているが、これに代えてネットワーク上で各ノード200を識別するアドレスなどが記録されていてもよい。
なお、ユーザ情報110における「ユーザ」は、ノード200におけるデータの保持単位としての1または複数のユーザを意味し、必ずしもサービスを利用する個々のユーザアカウントとは一致しない。例えば、「ユーザ」の項目の「User_001」というIDは、複数のユーザアカウントに対応しうる。この場合、ユーザ情報110には、この複数のユーザアカウントについてのマスタデータが「マスタノード」であるノードA(ノード200a)に保持されており、スレーブデータが「スレーブノード」であるノードB(ノード200b)に保持されていることが定義されていることになる。ルーティングマネージャ100は、これらのユーザアカウントからのデータアクセス要求があった場合、ノードAへのルーティングを実行する。ノードAに格納されたマスタデータの中でどのレコードにアクセスするかは、例えばアクセス要求に含まれるクエリに応じてノードAにおいて判断されうる。
図5は、図1に示したデータ処理システムにおけるノード情報の例を示す図である。図5を参照すると、ノード情報120は、「ノード」および「状態」の項目を含む。「ノード」は、ルーティングマネージャ100によるルーティングの対象になりうるノード200を互いに識別するための情報である。ユーザ情報110について既に説明したように、各ノード200はノード名ではなくアドレスで記録されてもよい。「状態」は、各ノードが利用可能であるかを示す情報である。図示された例では、ノードB(ノード200b)が利用可能ではないことが示されている。「状態」の情報は、例えば、ルーティングマネージャ100によるノード200の状態の定期的な監視によって更新されてもよいし、図2に示したようなデータアクセスの実行時におけるアクセスの成否に基づいて更新されてもよい。
(1−4.データ移動処理の例)
図6は、図1に示したデータ処理システムにおけるデータアクセス時のデータ移動処理の具体的な例を示す図である。図6では、ノード200b(ノードB)が装置故障や通信の不調などのために利用可能ではない場合のデータ移動処理が示されている。ここで、ノード200bには、User_003のマスタデータ210と、User_001およびUser_006のスレーブデータ220とが保持されている。
例えば、User_003(として識別される1または複数のユーザアカウントのうちのいずれか)からのデータアクセス要求を受信したルーティングマネージャ100は、図4に例示したようなユーザ情報110に従ってマスタノードであるノード200bにアクセスしようとするが、図5に例示したノード情報120にあるように、図示された例においてノード200bは利用可能ではない。
そこで、ルーティングマネージャ100は、さらにユーザ情報110を参照して、スレーブノードであるノード200d(ノードD)に保持されていたUser_003のスレーブデータ220(図中に白い星印で示す)をマスタデータ210dに変更する。ルーティングマネージャ100は、User_003からのアクセス要求に対応して新たなマスタデータ210dを保持するノード200dへのルーティングを実行し、マスタデータ210dへのアクセスが実行される。
この時点で、User_003については、元のスレーブデータ220がマスタデータ210dになったためにスレーブデータが存在していない。そこで、ルーティングマネージャ100は、ノード200dのマスタデータ210dをレプリケートして、ノード200aに新たなスレーブデータ220aとして保持させる。なお、新たなスレーブデータ220を保持するノード200は、例えば、既にマスタデータ210dを保持しているノード200d以外の、利用可能なノード200(図示された例ではノード200a,200c)の中から選択されうる。この時点でノード200bが復旧していれば、ノード200bがスレーブデータ220を保持するノードの選択肢に加えられてもよいし、優先的にスレーブデータ220を保持するノードとして選択されてもよい。
一方、User_001およびUser_006については、ノード200bに保持されているのがスレーブデータ220であるため、他のノード200(User_001についてはノード200a、User_006についてはノード200c)に保持されているマスタデータ210にはアクセスが可能である。しかしながら、例えば他のノードにも装置故障や通信の不調などが発生した場合にはデータへのアクセスができなくなってしまうため、例えば図2のステップS115として例示したように、マスタデータ210へのアクセスのタイミングで、スレーブデータ220を保持するノード200が利用可能であるか否かが判定され、利用可能でなければ別のノードに新たなスレーブデータ220が作成される。
図示された例では、User_001についてはノード200c(ノードC)に、User_006についてはノード200d(ノードD)に、それぞれ新たなスレーブデータ220(図中に黒い星印で示す)が作成される。これらのスレーブデータ220は、別のノードに保持されているマスタデータ210からのレプリケーションによって生成される。なお、新たなスレーブデータ220を保持するノード200は、例えば、既にマスタデータ210を保持しているノード200以外の利用可能なノード200の中から選択されうる。従って、User_001についてはノード200c,200dが新たなスレーブノードの選択肢になり、User_006についてはノード200a,200dが新たなスレーブノードの選択肢になる。上記のUser_003の場合と同様に、ノード200bが復旧していれば、ノード200bが選択肢に加えられてもよい。
図7は、図6に例示したデータ移動処理によって更新されたユーザ情報を示す図である。図7では、更新された項目に説明のために(*)印が付されている。図示されたユーザ情報110’では、User_001およびUser_006についてはスレーブノードだけが変更されている。また、User_003についてはマスタノード、スレーブノードともに変更されている。これによって、利用可能ではないノードB(ノード200b)はいずれのユーザについてもマスタノードおよびスレーブノードではなくなっている。
以上、本開示の第1の実施形態について説明した。本実施形態では、ユーザにサービスを提供するためのデータが、1または複数のユーザを単位としてノードに分散して保持され、ユーザからのデータへのアクセス要求に対応してルーティングが実行されるときに、ルーティング対象のマスタノードに障害が発見された場合には、レプリケートされたデータを保持しているスレーブノードへの代替的なルーティングが実行される。これによって、マスタノードに障害があった場合にもユーザへのサービスを継続することができる。
また、本実施形態では、データがユーザを単位として分散して保持されているために、上記のような代替的なルーティングの対象を、当該ノードをマスタノードまたはスレーブノードとするユーザに限定することが可能である。全ユーザについてのデータが一括して保持されている場合、スレーブノードからマスタノードへの切り替えや新たなスレーブノードの設定の影響は全ユーザに及ぶが、本実施形態では影響をより小さい範囲のユーザに限定することが可能である。また、例えば、上記の例のようにデータアクセス時に障害があったときにデータ移動処理を実行することにすれば、障害継続中にデータアクセス要求を送信しなかったユーザについては、障害復旧後に従前と同様のルーティングを実行することが可能でありうる。
(2.第2の実施形態)
図8は、本開示の第2の実施形態に係るデータ処理システムにおけるノード監視の処理の例を示すフローチャートである。本実施形態では、上記の第1の実施形態と同様のデータ処理システムにおいて、データアクセス時に加えて、またはデータアクセス時とは別に、定期的なノード状態の監視が実行され、利用可能ではないノードが発見された場合にはデータ移動処理が実行される。なお、以下で説明する部分以外については、本実施形態の構成は上記の第1の実施形態と同様でありうる。
図8を参照すると、ノード監視を実行するルーティングマネージャ100は、まず、各ノード200について、ノードが利用可能であるか否かを判定する(ステップS201)。ここで、ノード200が利用可能であった場合(YES)、そのノード200に関する処理は終了する。一方、ノード200が利用可能ではなかった場合(NO)、ルーティングマネージャ100は、利用可能でなかったノード200でデータが格納されているボリュームのマウントを解除する(ステップS203)。さらに、ルーティングマネージャ100は、利用可能な他のノード200、例えば待機ノードに、ステップS203でマウントが解除されたボリュームをマウントする(ステップS205)。そして、ルーティングマネージャ100は、ボリュームが新たにマウントされたノード200の情報でユーザ情報110を更新する(ステップS207)。
図9は、図8に示したデータ移動処理の具体的な例を示す図である。図9では、第1の実施形態の説明で図1に例示したシステム10において、ノード200b(ノードB)が装置故障や通信の不調などのために利用可能ではなくなった場合のデータ移動処理が示されている。ここで、ノード200bには、User_003のマスタデータ210と、User_001およびUser_006のスレーブデータ220とが保持されている。
ノード監視を実行するルーティングマネージャ100は、ノード200bが利用可能ではないことを発見すると、ノード200bでデータが格納されているボリュームのマウントを解除し、このボリュームを待機ノード200e(ノードE)にマウントする。これによって、ノード200eには、新たにUser_003のマスタデータ210と、User_001およびUser_006のスレーブデータ220とが保持されるようになる。このとき、User_003のマスタデータ210は、ノード200dに格納されたスレーブデータ220からのレプリケーションによって生成されうる。また、User_001およびUser_006のスレーブデータ220は、それぞれノード200a,200cに格納されたマスタデータ210からのレプリケーションによって生成されうる。
このとき、データ移動の処理の間にUser_003のマスタデータ210が存在しない状態になることを防ぐため、ノード200dに格納されたスレーブデータ220をマスタデータ210に変更した上で、ノード200eにUser_003のスレーブデータ220を作成してもよい。なお、例えば負荷分散の観点からマスタデータを分散させる方が望ましいような場合には、データのレプリケーションの完了後に、User_003について、ノード200eのスレーブデータ220がマスタデータ210に変更され、ノード200dのマスタデータ210がスレーブデータ220に戻されてもよい。
以上、本開示の第2の実施形態について説明した。本実施形態では、データへのアクセス要求がなくても、定期的なノードの監視によって、ノードに障害が発見された場合には当該ノードに保持されているマスタデータやスレーブデータが例えば待機ノードなどの他のノードに移動される。データがユーザを単位として保持されているために、こうしたデータ移動の処理中も、当該ノード以外のノードにマスタデータが保持されているユーザにはサービスを継続することができる。これによって、データへのアクセス要求があった場合には高い確率で利用可能なマスタノードへのルーティングが可能になる。
(3.第3の実施形態)
図10は、本開示の第3の実施形態に係るデータ処理システムにおける負荷分散の処理の例を示すフローチャートである。本実施形態では、上記の第1または第2の実施形態と同様のデータ処理システムにおいて、データアクセス時および/またはノード監視時に加えて、またはこれらとは別に、負荷分散のためのデータ移動処理が実行される。なお、以下で説明する部分以外については、本実施形態の構成は上記の第1または第2の実施形態と同様でありうる。
図10を参照すると、ルーティングマネージャ100は、後述するノード情報122を参照して、各ノード200の負荷が所定の閾値を上回っているか否かを判定する(ステップS301)。ここで、負荷が閾値を上回るノード200がなかった場合(NO)、負荷分散の処理は終了する。一方、負荷が閾値を上回るノード200があった場合(YES)、ルーティングマネージャ100は、他のノード200で負荷が閾値を下回っているものがないかを判定する(ステップS303)。なお、ステップS303で用いられる閾値は、例えばステップS301で用いられる閾値と同じ値であってもよいし、ステップS301で用いられる閾値よりも小さい値であってもよい。ステップS303において負荷が閾値を下回るノードがない場合(NO)、つまりすべてのノードが高負荷状態である場合には、分散先がないため負荷分散の処理が終了する。あるいは、さらに高い閾値を設定して、ステップS301,S303の判定が繰り返されてもよい。
上記のステップS303において、負荷が閾値を下回っている他のノード200があった場合、つまり、あるノード200では負荷が閾値を上回っており、他のノード200では負荷が閾値を下回っている場合、ルーティングマネージャ100は、データ移動処理を実行する。具体的には、ルーティングマネージャ100は、負荷が閾値を上回っているノード200(以下、高負荷ノードともいう)にマスタデータが保持されているユーザの中で、所定の程度以上負荷が高いユーザのマスタデータを、負荷が閾値を下回っているノード200(以下、低負荷ノードともいう)に移動させる(ステップS305)。ここで、低負荷ノードは、例えば負荷が閾値を下回っているノード200の中で、最も負荷が低いノードでありうる。また、低負荷ノードは、負荷が閾値を下回っているノード200のうち、移動対象のユーザのスレーブデータを保持していないノードの中から選択されてもよい。
ここで、移動対象のユーザは、例えば、マスタデータへのアクセス頻度がより高く、ノードにより大きな負荷を及ぼしているユーザでありうる。また、移動の対象になるユーザは、高負荷ノードにマスタデータが保持されているユーザの中で最も負荷が高いユーザであってもよい。しかし、例えば、高負荷ノードの負荷の大部分がそのユーザによって発生しており、そのユーザのマスタデータを移動させると今度は移動先の低負荷ノードの負荷が閾値を上回ってしまうことが予測された場合には、負荷の大きさが2番目以降のユーザのマスタデータを移動させたり、マスタデータの移動自体を中止したりしてもよい。なお、移動先のノードは、上述した待機ノードであってもよい。
また、ステップS305でのデータの移動は、例えば、移動先の低負荷ノードに対象ユーザのスレーブデータが既に保持されていれば、そのスレーブデータをマスタデータに変更することによって実行されてもよい。一方、移動先の低負荷ノードが対象ユーザのスレーブデータを保持しているノードとは異なる場合、高負荷ノードにあるマスタデータをレプリケートすることによって低負荷ノードに新たにマスタデータが作成されてもよい。この場合、スレーブデータは別のノードに既に保持されているため、高負荷ノードにある元のマスタデータを消去してもよいし、高負荷ノードにある元のマスタデータをスレーブデータに変更して、別のノードのスレーブデータを消去してもよい。
次に、ルーティングマネージャ100は、マスタデータが移動されたユーザについて、スレーブデータが存在するか否かを判定する(ステップS307)。ここで、スレーブデータが存在しないと判定される(NO)のは、例えばステップS305における移動先の低負荷ノードが対象ユーザのスレーブデータを既に保持しており、このスレーブデータをマスタデータに変更することによってデータの移動を実行したような場合である。このような場合、ルーティングマネージャ100は、新たにスレーブデータを作成する(ステップS309)。この処理は、例えば、移動元の高負荷ノードにある元のマスタデータをスレーブデータに変更して残すことによって実行されてもよい。あるいは、移動元の高負荷ノードとも移動先の低負荷ノードとも異なる別のノードに、マスタデータのレプリケートによって新たにスレーブデータを作成してもよい。
なお、上記のステップS309で作成されるスレーブデータは、負荷が高いためにマスタデータが移動の対象になったユーザのデータである。上述の通り、スレーブデータはマスタデータに変更して使用される可能性があるため、スレーブデータの作成にあたっては、その時点でより負荷が低いノードが選択されてもよい。
スレーブデータが既に存在する(ステップS307のYES)か、新たに作成される(ステップS309)と、ルーティングマネージャ100は、後述するユーザ情報112に、新たなマスタノードおよびスレーブノードの情報を登録する(ステップS311)。
図11は、本開示の第3の実施形態におけるユーザ情報の例を示す図である。図11を参照すると、ユーザ情報112は、図4を参照して説明したユーザ情報110の項目に加えて、「アクセス頻度」の項目を含む。「アクセス頻度」は、ユーザがどのくらいの頻度でマスタデータにアクセスしたかを示す情報である。アクセスの頻度が高いほど、ユーザはマスタデータが保持されているノード200に対してより大きな負荷を及ぼしていると考えられる。図10を参照して説明した負荷分散の処理において、ルーティングマネージャ100は、この「アクセス頻度」の項目を参照して、高負荷ノードにマスタデータが保持されているユーザの中で、所定の程度以上の負荷をノードに及ぼしているユーザを特定しうる。なお、「アクセス頻度」は、例えば図示されているように「非常に高い」「高い」「低い」といったような等級によって記録されてもよいし、例えば1日あたりのアクセス回数のような数値で記録されてもよい。
図12は、本開示の第3の実施形態におけるノード情報の例を示す図である。図12を参照すると、ノード情報122は、図5を参照して説明したノード情報120の項目に加えて、「負荷」の項目を含む。「負荷」は、ノードにどのくらいの負荷がかかっているかを示す情報である。図10を参照して説明した負荷分散の処理において、ルーティングマネージャ100は、この「負荷」の項目を参照して、ノード200の負荷が閾値を上回っているか否かを判定しうる。なお、「負荷」は、例えば図示されているように「非常に高い」「高い」「低い」といったような等級によって記録されてもよいし、例えばプロセッサもしくはメモリの使用率、またはロードアベレージといったような指標値によって記録されてもよい。
図13は、本開示の第3の実施形態における負荷分散処理の具体的な例を示す図である。図13では、第1の実施形態の説明で図1に例示したシステム10において、図11および図12に例示したような各ユーザのアクセス頻度および各ノード200の負荷が発生した場合の負荷分散処理が示されている。
図示された例では、図12に示したノード情報122にあるように、ノード200a(ノードA)の負荷が最も高い。このときノード200aの負荷が所定の閾値を上回っていれば、ルーティングマネージャ100はノード200aから他のノードへのデータ移動処理を実行する。一方、ノード情報122によれば、負荷が最も低いのはノード200b(ノードB)である。そこで、ルーティングマネージャ100は、データの移動先をノード200bに決定する。従って、上記の例でいえば、ノード200aが高負荷ノード、ノード200bが低負荷ノードとしてそれぞれ扱われる。
ここで、図11に示したユーザ情報112にあるように、ノード200aにマスタデータ210が保持されているユーザの中では、User_001のアクセス頻度が「非常に高い」であり、User_004のアクセス頻度が「高い」である。そこで、ルーティングマネージャは、アクセス頻度がより高いUser_001を移動対象のユーザに決定し、データ移動の処理を実行する。ここで、ノード200bには既にUser_001のスレーブデータ220が既に保持されているため、ルーティングマネージャ100は、このスレーブデータ220(図中に白い星印で示す)をマスタデータ210に変更する。
さらに、これによってUser_001のスレーブデータが存在しなくなるため、ルーティングマネージャ100は、ノード200cに新たにUser_001のスレーブデータ220を作成する。このスレーブデータ220は、例えば、図示されているようにノード200bで新たにマスタデータ210となったデータからレプリケートされてもよく、ノード200aにある元のマスタデータ210からレプリケートされてもよい。なお、図示された例の場合、ノード200aにある元のマスタデータ210は、データ移動の処理終了後に消去されてもよい。
以上、本開示の第3の実施形態について説明した。本実施形態では、ノードに障害が発生しなくても、ノードの負荷が高い場合に、その負荷を分散させるためのデータ移動が実行される。こうした処理は、データがユーザを単位として各ノードに分散して格納されているために可能になる。移動の対象になるユーザ以外のユーザについてはサービスを継続することが可能であるとともに、移動の対象になるユーザについても、例えばスレーブデータを利用してデータ移動の処理を実行することによって、サービスの停止時間を最小限にすることができる。これによって、一部のノードへの負荷の集中が緩和され、例えばノードの過負荷による障害の発生やサービス品質の低下を防止することができる。
(4.その他のバリエーション)
図14は、本開示の他の実施形態に係るデータ処理システムの構成を概略的に示す図である。図14を参照すると、システム20は、ルーティングマネージャ100と、ノード200とを含む。ここで、ルーティングマネージャ100と、ノード200とは、いずれも上記の第1の実施形態で図1に例示したシステム10と同様である。システム20は、本開示の実施形態に係るデータ処理システムを、最小限のノード200で実現した例の1つである。
システム20には、ノード200a,200b,200cの3つが含まれる。システム20は、User_001、User_002、およびUser_003の3組のユーザ(データの保持のために組織された1または複数のユーザ)のデータを保持する。User_001については、ノード200aがマスタデータ210を保持し、ノード200bがスレーブデータを保持する。ノード200cは、この時点ではUser_001についてはデータを保持せず、待機ノードとして機能する。図示されているように、ノード200cには、User_001のマスタデータまたはスレーブデータのレプリケートに備えてデータ保持領域230が確保されていてもよい。
同様に、User_002については、ノード200bがマスタデータ210を保持し、ノード200cがスレーブデータ220を保持し、ノード200aが待機ノードとして機能する。また、User_003については、ノード200cがマスタデータ210を保持し、ノード200aがスレーブデータ220を保持し、ノード200bが待機ノードとして機能する。このように、3つのノード200があれば、それぞれをマスタノード、スレーブノード、および待機ノードとして機能させることによって、上述したようなデータ移動処理を実行することが可能である。また、このとき、ユーザを3つのグループ(上記の例ではUser_001,User_002,User_003)に分けてそれぞれのマスタデータを異なるノード200に分散して保持させれば、マスタデータへのアクセスによって発生する負荷を分散させることができる。
もちろん、上記の第1の実施形態で説明したように、システムがさらに多くのノード200を含んだり、ノード200の中にいずれのユーザに対しても待機ノードとして機能するノードが含まれたりすることによって、さらに冗長性を高めたシステムを構築することも可能である。
図15は、本開示のさらに他の実施形態に係るデータ処理システムの構成を概略的に示す図である。図15を参照すると、システム30では、3つ以上のノード200によってノード群31が構成され、ルーティングマネージャ100は、複数のノード群31のうちのいずれかを選択してルーティングを実行する。それぞれのノード群31は、例えば、互いに異なる種類のデータを保持するために利用されうる。例えば、あるノード群31には各ユーザのプロフィール情報のデータが保持され、別のノード群31には各ユーザのアクティビティログのデータが保持されてもよい。ルーティングマネージャ100は、どの種類のデータへのアクセスが要求されているかに応じて、適切なノード群31に含まれるノード200へのルーティングを実行する。
また、図示されているように、ノード200は、サーバ装置200sを含んでもよく、クライアント装置200tを含んでもよい。ここで、サーバ装置200sは、ネットワーク上に存在する情報処理装置であって、専ら他の装置にサービスを提供するために利用される装置である。一方、クライアント装置200tは、例えばユーザが所持している端末装置であって、例えばサーバ装置200sによって提供されるサービスをユーザが利用するためのインターフェースとして機能するのに加えて、自らに、または他の装置にサービスを提供するためにも利用されうる装置である。本実施形態におけるノード200は、こうしたサーバ装置200sおよびクライアント装置200tのどちらであってもよい。これはつまり、ユーザのデータが、サーバ装置200sとクライアント装置200tとに分散して格納されうることを意味する。
(5.ハードウェア構成)
次に、図16を参照して、本開示の実施形態に係る情報処理装置のハードウェア構成について説明する。図16は、情報処理装置のハードウェア構成を説明するためのブロック図である。図示された情報処理装置900は、例えば、上記の実施形態におけるルーティングマネージャおよびノードを実現しうる。
情報処理装置900は、CPU(Central Processing unit)901、ROM(Read Only Memory)903、およびRAM(Random Access Memory)905を含む。また、情報処理装置900は、ホストバス907、ブリッジ909、外部バス911、インターフェース913、入力装置915、出力装置917、ストレージ装置919、ドライブ921、接続ポート923、通信装置925を含んでもよい。情報処理装置900は、CPU901に代えて、またはこれとともに、DSP(Digital Signal Processor)またはASIC(Application Specific Integrated Circuit)と呼ばれるような処理回路を有してもよい。
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、情報処理装置900内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータなどを記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一次記憶する。CPU901、ROM903、およびRAM905は、CPUバスなどの内部バスにより構成されるホストバス907により相互に接続されている。さらに、ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置である。入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置900の操作に対応した携帯電話などの外部接続機器929であってもよい。入力装置915は、ユーザが入力した情報に基づいて入力信号を生成してCPU901に出力する入力制御回路を含む。ユーザは、この入力装置915を操作することによって、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりする。
出力装置917は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置917は、例えば、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、有機EL(Electro-Luminescence)ディスプレイなどの表示装置、スピーカおよびヘッドホンなどの音声出力装置、ならびにプリンタ装置などでありうる。出力装置917は、情報処理装置900の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音声として出力したりする。
ストレージ装置919は、情報処理装置900の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
ドライブ921は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体927のためのリーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ921は、装着されているリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されているリムーバブル記録媒体927に記録を書き込む。
接続ポート923は、機器を情報処理装置900に直接接続するためのポートである。接続ポート923は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポートなどでありうる。また、接続ポート923は、RS−232Cポート、光オーディオ端子、HDMI(登録商標)(High-Definition Multimedia Interface)ポートなどであってもよい。接続ポート923に外部接続機器929を接続することで、情報処理装置900と外部接続機器929との間で各種のデータが交換されうる。
通信装置925は、例えば、通信ネットワーク931に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カードなどでありうる。また、通信装置925は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデムなどであってもよい。通信装置925は、例えば、インターネットや他の通信機器との間で、TCP/IPなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置925に接続される通信ネットワーク931は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信などである。
以上、情報処理装置900のハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。かかる構成は、実施する時々の技術レベルに応じて適宜変更されうる。
(6.補足)
本開示の実施形態は、例えば、上記で説明したような情報処理装置(ルーティングマネージャまたはノード)、システム、情報処理装置またはシステムで実行される情報処理方法、情報処理装置を機能させるためのプログラム、およびプログラムが記録された一時的でない有形の媒体を含みうる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)ユーザ群にサービスを提供するためのデータを、前記ユーザ群の一部である1または複数のユーザを単位として保持するノードと、
前記1または複数のユーザからの前記データへのアクセス要求に対応して、前記1または複数のユーザのデータが格納された前記ノードへのルーティングを実行するルーティングマネージャと
を含み、
前記ノードは、前記1または複数のユーザのマスタデータを保持する第1のノードと、前記マスタデータをレプリケートしたスレーブデータを保持する第2のノードと、第3のノードとを含み、
前記ルーティングマネージャは、さらに、前記第2のノードに保持された前記スレーブデータを前記マスタデータに変更するとともに、前記スレーブデータをレプリケートして新たなスレーブデータとして前記第3のノードに保持させるデータ移動処理を実行する
データ処理システム。
(2)前記ルーティングマネージャは、前記第1のノードが利用可能でない場合に前記データ移動処理を実行する、前記(1)に記載のデータ処理システム。
(3)前記ルーティングマネージャは、前記1または複数のユーザからのアクセス要求に対応して前記第1のノードへのルーティングが実行されなかった場合に、代替的に前記第2のノードへのルーティングを実行するとともに前記データ移動処理を実行する、前記(2)に記載のデータ処理システム。
(4)前記ルーティングマネージャは、前記1または複数のユーザからのアクセス要求に対応して前記第1のノードへのルーティングが実行された場合に、前記第2のノードを検証し、該検証によって前記第2のノードが利用可能でないことが発見された場合には前記第1のノードに保持された前記マスタデータをレプリケートして新たなスレーブデータとして前記第3のノードに保持させる処理を実行する、前記(3)に記載のデータ処理システム。
(5)前記ルーティングマネージャは、定期的に前記ノードを検証することによって前記第1のノードが利用可能でないことを発見する、前記(2)〜(4)のいずれか1項に記載のデータ処理システム。
(6)前記ルーティングマネージャは、前記1または複数のユーザが前記ノードに及ぼす負荷に応じて前記データ移動処理を実行する、前記(1)〜(5)のいずれか1項に記載のデータ処理システム。
(7)前記ルーティングマネージャは、前記第1のノードの負荷が前記第2のノードよりも高い場合に前記データ移動処理を実行する、前記(6)に記載のデータ処理システム。
(8)前記第1のノードは、前記1または複数のユーザとは異なる1または複数のユーザについては前記スレーブデータを保持する、前記(1)〜(7)のいずれか1項に記載のデータ処理システム。
(9)前記第2のノードは、前記1または複数のユーザとは異なる1または複数のユーザについては前記マスタデータを保持する、前記(1)〜(8)のいずれか1項に記載のデータ処理システム。
(10)前記第3のノードは、前記1または複数のユーザとは異なる1または複数のユーザについては前記マスタデータまたは前記スレーブデータを保持する、前記(1)〜(9)のいずれか1項に記載のデータ処理システム。
(11)前記第3のノードは、前記ノードの中から前記データ移動処理の実行時に選択される、前記(1)〜(10)のいずれか1項に記載のデータ処理システム。
(12)前記第1のノード、前記第2のノード、および前記第3のノードによってノード群が構成され、
前記データ処理システムは、複数の種類の前記データを保持するために複数の前記ノード群を含み、
前記ルーティングマネージャは、前記データの種類に応じて前記複数のノード群のうちのいずれかを選択してルーティングを実行する、前記(1)〜(11)のいずれか1項に記載のデータ処理システム。
(13)前記ノードは、サーバ装置を含む、前記(1)〜(12)のいずれか1項に記載のデータ処理システム。
(14)前記ノードは、クライアント装置を含む、前記(1)〜(13)のいずれか1項に記載のデータ処理システム。
(15)1または複数のユーザにサービスを提供するためのマスタデータをレプリケートしたスレーブデータを保持する記憶部と、
前記マスタデータへのアクセス要求に対応してルーティングを実行するルーティングマネージャが前記スレーブデータを前記マスタデータに変更したときに、前記変更後のマスタデータへのアクセスを受け付けるとともに、前記変更後のマスタデータをレプリケートして新たなスレーブデータとして外部装置に保持させる制御部と
を備えるデータ処理装置。
(16)前記記憶部は、前記1または複数のユーザとは異なる1または複数のユーザについては前記マスタデータを保持する、前記(15)に記載のデータ処理装置。
(17)前記記憶部は、前記1または複数のユーザとは異なる1または複数のユーザについては前記マスタデータも前記スレーブデータも保持しない、前記(15)に記載のデータ処理装置。
(18)サーバ装置である、前記(15)〜(17)のいずれか1項に記載のデータ処理装置。
(19)クライアント装置である、前記(15)〜(17)のいずれか1項に記載のデータ処理装置。
(20)1または複数のユーザにサービスを提供するためのマスタデータをレプリケートしたスレーブデータを保持する記憶部に接続されるコンピュータに、
前記マスタデータへのアクセス要求に対応してルーティングを実行するルーティングマネージャが前記スレーブデータを前記マスタデータに変更したときに、前記変更後のマスタデータへのアクセスを受け付けるとともに、前記変更後のマスタデータをレプリケートして新たなスレーブデータとして外部装置に保持させる機能
を実現させるためのプログラムが保持された記憶媒体。
10,20,30 システム
31 ノード群
100 ルーティングマネージャ
110,112 ユーザ情報
120,122 ノード情報
200 ノード
210 マスタデータ
220 スレーブデータ
230 データ保持領域

Claims (20)

  1. ユーザ群にサービスを提供するためのデータを、前記ユーザ群の一部である1または複数のユーザを単位として保持するノードと、
    前記1または複数のユーザからの前記データへのアクセス要求に対応して、前記1または複数のユーザのデータが格納された前記ノードへのルーティングを実行するルーティングマネージャと
    を含み、
    前記ノードは、前記1または複数のユーザのマスタデータを保持する第1のノードと、前記マスタデータをレプリケートしたスレーブデータを保持する第2のノードと、第3のノードとを含み、
    前記ルーティングマネージャは、さらに、前記第2のノードに保持された前記スレーブデータを前記マスタデータに変更するとともに、前記スレーブデータをレプリケートして新たなスレーブデータとして前記第3のノードに保持させるデータ移動処理を実行する
    データ処理システム。
  2. 前記ルーティングマネージャは、前記第1のノードが利用可能でない場合に前記データ移動処理を実行する、請求項1に記載のデータ処理システム。
  3. 前記ルーティングマネージャは、前記1または複数のユーザからのアクセス要求に対応して前記第1のノードへのルーティングが実行されなかった場合に、代替的に前記第2のノードへのルーティングを実行するとともに前記データ移動処理を実行する、請求項2に記載のデータ処理システム。
  4. 前記ルーティングマネージャは、前記1または複数のユーザからのアクセス要求に対応して前記第1のノードへのルーティングが実行された場合に、前記第2のノードを検証し、該検証によって前記第2のノードが利用可能でないことが発見された場合には前記第1のノードに保持された前記マスタデータをレプリケートして新たなスレーブデータとして前記第3のノードに保持させる処理を実行する、請求項3に記載のデータ処理システム。
  5. 前記ルーティングマネージャは、定期的に前記ノードを検証することによって前記第1のノードが利用可能でないことを発見する、請求項2に記載のデータ処理システム。
  6. 前記ルーティングマネージャは、前記1または複数のユーザが前記ノードに及ぼす負荷に応じて前記データ移動処理を実行する、請求項1に記載のデータ処理システム。
  7. 前記ルーティングマネージャは、前記第1のノードの負荷が前記第2のノードよりも高い場合に前記データ移動処理を実行する、請求項6に記載のデータ処理システム。
  8. 前記第1のノードは、前記1または複数のユーザとは異なる1または複数のユーザについては前記スレーブデータを保持する、請求項1に記載のデータ処理システム。
  9. 前記第2のノードは、前記1または複数のユーザとは異なる1または複数のユーザについては前記マスタデータを保持する、請求項1に記載のデータ処理システム。
  10. 前記第3のノードは、前記1または複数のユーザとは異なる1または複数のユーザについては前記マスタデータまたは前記スレーブデータを保持する、請求項1に記載のデータ処理システム。
  11. 前記第3のノードは、前記ノードの中から前記データ移動処理の実行時に選択される、請求項1に記載のデータ処理システム。
  12. 前記第1のノード、前記第2のノード、および前記第3のノードによってノード群が構成され、
    前記データ処理システムは、複数の種類の前記データを保持するために複数の前記ノード群を含み、
    前記ルーティングマネージャは、前記データの種類に応じて前記複数のノード群のうちのいずれかを選択してルーティングを実行する、請求項1に記載のデータ処理システム。
  13. 前記ノードは、サーバ装置を含む、請求項1に記載のデータ処理システム。
  14. 前記ノードは、クライアント装置を含む、請求項1に記載のデータ処理システム。
  15. 1または複数のユーザにサービスを提供するためのマスタデータをレプリケートしたスレーブデータを保持する記憶部と、
    前記マスタデータへのアクセス要求に対応してルーティングを実行するルーティングマネージャが前記スレーブデータを前記マスタデータに変更したときに、前記変更後のマスタデータへのアクセスを受け付けるとともに、前記変更後のマスタデータをレプリケートして新たなスレーブデータとして外部装置に保持させる制御部と
    を備えるデータ処理装置。
  16. 前記記憶部は、前記1または複数のユーザとは異なる1または複数のユーザについては前記マスタデータを保持する、請求項15に記載のデータ処理装置。
  17. 前記記憶部は、前記1または複数のユーザとは異なる1または複数のユーザについては前記マスタデータも前記スレーブデータも保持しない、請求項15に記載のデータ処理装置。
  18. サーバ装置である、請求項15に記載のデータ処理装置。
  19. クライアント装置である、請求項15に記載のデータ処理装置。
  20. 1または複数のユーザにサービスを提供するためのマスタデータをレプリケートしたスレーブデータを保持する記憶部に接続されるコンピュータに、
    前記マスタデータへのアクセス要求に対応してルーティングを実行するルーティングマネージャが前記スレーブデータを前記マスタデータに変更したときに、前記変更後のマスタデータへのアクセスを受け付けるとともに、前記変更後のマスタデータをレプリケートして新たなスレーブデータとして外部装置に保持させる機能
    を実現させるためのプログラムが保持された記憶媒体。
JP2013108531A 2013-05-23 2013-05-23 データ処理システム、データ処理装置および記憶媒体 Pending JP2014229088A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013108531A JP2014229088A (ja) 2013-05-23 2013-05-23 データ処理システム、データ処理装置および記憶媒体
CN201410208814.4A CN104182296A (zh) 2013-05-23 2014-05-16 数据处理系统、数据处理设备以及存储介质
US14/279,647 US20140351210A1 (en) 2013-05-23 2014-05-16 Data processing system, data processing apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013108531A JP2014229088A (ja) 2013-05-23 2013-05-23 データ処理システム、データ処理装置および記憶媒体

Publications (1)

Publication Number Publication Date
JP2014229088A true JP2014229088A (ja) 2014-12-08

Family

ID=51936066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013108531A Pending JP2014229088A (ja) 2013-05-23 2013-05-23 データ処理システム、データ処理装置および記憶媒体

Country Status (3)

Country Link
US (1) US20140351210A1 (ja)
JP (1) JP2014229088A (ja)
CN (1) CN104182296A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170201A (ja) * 2014-03-07 2015-09-28 エヌ・ティ・ティ・コミュニケーションズ株式会社 データ格納制御装置、データ格納制御方法、及びプログラム
US11797338B2 (en) 2020-02-05 2023-10-24 Fujitsu Limited Information processing device for reading object from primary device specified by identification, information processing system for reading object from primary device specified by identification, and access control method for reading object from primary device specified by identification

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042722B1 (en) * 2015-06-23 2018-08-07 Juniper Networks, Inc. Service-chain fault tolerance in service virtualized environments
CN112566137A (zh) * 2020-12-06 2021-03-26 广州技象科技有限公司 根据发送数据进行组网方法、装置、设备和存储介质
CN113778744A (zh) * 2021-01-05 2021-12-10 北京沃东天骏信息技术有限公司 任务处理方法、设备、系统以及存储介质

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862348A (en) * 1996-02-09 1999-01-19 Citrix Systems, Inc. Method and apparatus for connecting a client node to a server node based on load levels
JP3609599B2 (ja) * 1998-01-30 2005-01-12 富士通株式会社 ノード代理システム、ノード監視システム、それらの方法、及び記録媒体
US6636982B1 (en) * 2000-03-03 2003-10-21 International Business Machines Corporation Apparatus and method for detecting the reset of a node in a cluster computer system
US6888844B2 (en) * 2000-04-07 2005-05-03 Broadcom Corporation Method for selecting an operating mode for a frame-based communications network
JP4292693B2 (ja) * 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
US7164885B2 (en) * 2000-12-18 2007-01-16 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for selective service access
US7054910B1 (en) * 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
CN1251111C (zh) * 2002-12-31 2006-04-12 联想(北京)有限公司 基于系统级诊断信息的负载衡量方法
ATE333680T1 (de) * 2003-10-08 2006-08-15 Cit Alcatel Schnelle datenbankreplikation
US7873650B1 (en) * 2004-06-11 2011-01-18 Seisint, Inc. System and method for distributing data in a parallel processing system
JP4339763B2 (ja) * 2004-09-07 2009-10-07 株式会社日立製作所 フェイルオーバ方法及び計算機システム
US20060053216A1 (en) * 2004-09-07 2006-03-09 Metamachinix, Inc. Clustered computer system with centralized administration
US7613740B2 (en) * 2005-03-03 2009-11-03 Gravic, Inc. Control of a data replication engine using attributes associated with a transaction
US7523110B2 (en) * 2005-03-03 2009-04-21 Gravic, Inc. High availability designated winner data replication
US7487222B2 (en) * 2005-03-29 2009-02-03 International Business Machines Corporation System management architecture for multi-node computer system
US20080091806A1 (en) * 2006-10-11 2008-04-17 Jinmei Shen Dynamic On-Demand Clustering
KR100926880B1 (ko) * 2007-05-21 2009-11-16 엔에이치엔(주) Dbms에서의 데이터 복제 방법 및 시스템
CN101102176A (zh) * 2007-08-10 2008-01-09 中兴通讯股份有限公司 一种数据备份方法
US7779074B2 (en) * 2007-11-19 2010-08-17 Red Hat, Inc. Dynamic data partitioning of data across a cluster in a distributed-tree structure
US8612385B2 (en) * 2008-10-21 2013-12-17 Tivo Inc. Database replication system
JP5381998B2 (ja) * 2008-12-03 2014-01-08 日本電気株式会社 クラスタ制御システム、クラスタ制御方法、及びプログラム
JP5560561B2 (ja) * 2009-01-15 2014-07-30 ソニー株式会社 コンテンツ提供システム
US8346722B2 (en) * 2009-11-23 2013-01-01 Sap Ag Replica placement strategy for distributed data persistence
WO2012060276A1 (ja) * 2010-11-01 2012-05-10 かもめエンジニアリング株式会社 アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
CN102467508A (zh) * 2010-11-04 2012-05-23 中兴通讯股份有限公司 提供数据库服务的方法及数据库系统
US8473775B1 (en) * 2010-12-14 2013-06-25 Amazon Technologies, Inc. Locality based quorums
US8572031B2 (en) * 2010-12-23 2013-10-29 Mongodb, Inc. Method and apparatus for maintaining replica sets
CN102158540A (zh) * 2011-02-18 2011-08-17 广州从兴电子开发有限公司 分布式数据库实现系统及方法
EP2544107A1 (en) * 2011-07-05 2013-01-09 Murakumo Corporation Method of managing a database
US8977703B2 (en) * 2011-08-08 2015-03-10 Adobe Systems Incorporated Clustering without shared storage
US8762378B2 (en) * 2011-12-23 2014-06-24 Sap Ag Independent table nodes in parallelized database environments
US8930364B1 (en) * 2012-03-29 2015-01-06 Amazon Technologies, Inc. Intelligent data integration
US8850068B2 (en) * 2012-05-03 2014-09-30 Futurewei Technologies, Inc. United router farm setup
CN102857554B (zh) * 2012-07-26 2016-07-06 福建网龙计算机网络信息技术有限公司 基于分布式存储系统进行数据冗余处理方法
JP6056453B2 (ja) * 2012-12-20 2017-01-11 富士通株式会社 プログラム、データ管理方法および情報処理装置
US9270543B1 (en) * 2013-03-09 2016-02-23 Ca, Inc. Application centered network node selection

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170201A (ja) * 2014-03-07 2015-09-28 エヌ・ティ・ティ・コミュニケーションズ株式会社 データ格納制御装置、データ格納制御方法、及びプログラム
US11797338B2 (en) 2020-02-05 2023-10-24 Fujitsu Limited Information processing device for reading object from primary device specified by identification, information processing system for reading object from primary device specified by identification, and access control method for reading object from primary device specified by identification

Also Published As

Publication number Publication date
CN104182296A (zh) 2014-12-03
US20140351210A1 (en) 2014-11-27

Similar Documents

Publication Publication Date Title
JP6670274B2 (ja) 分散計算システムにおける計算クラスタのスケーリング
US20190065316A1 (en) Utilizing request deadlines in a dispersed storage network
US9489270B2 (en) Managing backup operations from a client system to a primary server and secondary server
JP5986577B2 (ja) Aluaの選好および状態遷移のホストによる検出および処理
CN105637481B (zh) 计算会话的管理
US9262323B1 (en) Replication in distributed caching cluster
JP6251390B2 (ja) コンピューティングセッションの管理
WO2012151162A2 (en) Method and system for dynamically creating and servicing master-slave pairs within and across switch fabrics of a portable computing device
JP6028641B2 (ja) 情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法
JP2014229088A (ja) データ処理システム、データ処理装置および記憶媒体
US20190187911A1 (en) Dispersed bloom filter for determining presence of an object
JP2014026529A (ja) ストレージシステムおよびその制御方法
JP2016162389A (ja) シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム
US10019182B2 (en) Management system and management method of computer system
US11275601B2 (en) System and method for auto recovery of deleted virtual machines identified through comparison of virtual machine management application snapshots and having corresponding backups at a storage device
US10481833B2 (en) Transferring data encoding functions in a distributed storage network
JP2013065104A (ja) 負荷分散システム、データアクセス装置、及び負荷分散方法
US20220066879A1 (en) Metadata Based Listing in a Distributed Storage System
US20150088826A1 (en) Enhanced Performance for Data Duplication
US11770448B1 (en) Rotating offline storage units in a dispersed storage network
US9270530B1 (en) Managing imaging of multiple computing devices
US10073638B2 (en) Automatic namespace ordering determination
WO2020086177A1 (en) Managing power request during cluster operations
JP2004013867A (ja) 複製データベースシステム、データベース装置及びそれに用いるデータベース更新方法並びにそのプログラム
US10360107B2 (en) Modifying allocation of storage resources in a dispersed storage network