JP2017162062A - 情報処理装置、情報処理システム、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理システム、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2017162062A JP2017162062A JP2016044187A JP2016044187A JP2017162062A JP 2017162062 A JP2017162062 A JP 2017162062A JP 2016044187 A JP2016044187 A JP 2016044187A JP 2016044187 A JP2016044187 A JP 2016044187A JP 2017162062 A JP2017162062 A JP 2017162062A
- Authority
- JP
- Japan
- Prior art keywords
- data
- hash value
- information processing
- storage unit
- update
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】依存関係を有する複数の更新対象の一部のみが更新されることを防ぐ情報処理装置、システム、方法及びプログラムを提供する。
【解決手段】依存関係を有する複数のデータを更新した他のコンピュータから、更新後の複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の複数のデータのバックアップを生成し、更新後の複数のデータを他のコンピュータから受信することを開始し、受信したデータで、データ格納部に格納されている複数のデータを更新する。他のコンピュータとの通信中に他のコンピュータがダウンした場合、データ格納部に格納されている複数のデータから第2のハッシュ値を生成し、第1のハッシュ値と第2のハッシュ値とが一致しない場合、生成されたバックアップによって、データ格納部に格納された複数のデータをリストアする。
【選択図】図8
【解決手段】依存関係を有する複数のデータを更新した他のコンピュータから、更新後の複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の複数のデータのバックアップを生成し、更新後の複数のデータを他のコンピュータから受信することを開始し、受信したデータで、データ格納部に格納されている複数のデータを更新する。他のコンピュータとの通信中に他のコンピュータがダウンした場合、データ格納部に格納されている複数のデータから第2のハッシュ値を生成し、第1のハッシュ値と第2のハッシュ値とが一致しない場合、生成されたバックアップによって、データ格納部に格納された複数のデータをリストアする。
【選択図】図8
Description
本発明は、レプリケーション技術に関する。
ウェブアプリケーションサーバにおいては、事業継続計画(BCP:Business Continuity Planning)及び災害復旧(DR:Disaster Recovery)の観点からレプリケーションと呼ばれる技術が採用されることがある。レプリケーションとは、マスタのデータと同じ内容のレプリカを生成して常時同期する技術であり、マスタのデータが更新された場合、更新がレプリカにリアルタイムで反映される。
ウェブアプリケーションサーバにおける様々な種類のデータ(例えば、ファイルやテーブルなど)がレプリケーションの対象となるが、その中には、関連性を有する他のデータが存在しなければ機能を実現することができないものが存在する。以下では、データ間のこのような関係を依存関係と呼ぶ。
図1に、依存関係を有するデータの一例を示す。図1においては、セットアップウィザード画面1000を使用してメール設定を変更する例が示されている。管理者等によってSMTP(Simple Mail Transfer Protocol)サーバ名及びポート番号が入力されると、その入力に応じてメール設定1001乃至1003が生成される。メール設定1001は、テナントを管理する機能から送信されるメール設定であり、メール設定1002は、プラットフォームを管理する機能から送信されるメール設定であり、メール設定1003は、利用料金を計算する機能から送信されるメール設定である。メール設定1001乃至1003の各々は、実質的に同じ内容を表す情報を含んでいるが、メール設定1001乃至1003は依存関係を有するため、1つでも失われるとメール機能が正常に動作しない。
図2に、依存関係を有するデータの他の例を示す。図2においては、ポータルサイト2000のレイアウトを変更する例が示されている。ポータルサイト2000内の矩形図形はユーザインタフェースコンポーネントを表し、ユーザインタフェースコンポーネントの配置はウェブサイト上で管理される。図2に示すように、コンポーネント「予定表」がコンポーネント「タスク一覧」に変更され、さらにコンポーネントの配置が変更されたとする。また、コンポーネント「画像表示」によって表示される画像が変更されたとする。この場合、更新されるデータは、ポータルサイト2000のウェブテンプレート、ポータルサイト2000と配置パーツとを関連付けるための情報及び画像ファイルである。このようなデータは依存関係を有するため、いずれかのデータの更新が行われなかった場合にはポータルサイト2000は正常に表示されない。
図3及び図4を用いて、依存関係を有するデータの更新について説明する。図3及び図4においては、マスタサーバにおいてマスタのデータが管理されており、レプリカサーバにおいてレプリカが管理されている。図3に示すように、クライアント装置からのリクエストによって依存関係を有するデータA乃至Cが更新されたとする(更新後のデータをデータAu乃至Cuとする)。この場合、図4に示すように、データAu、データBu及びデータCuの順にレプリカサーバにデータが送信されるが、データCuの送信中にマスタサーバがダウンした場合、データCuのレプリカは不完全な状態である。従って、レプリカサーバにおいては更新後のデータが揃わないため機能が正常に実現されないことになる。
このような問題には、レプリケーションに関する従来技術によっては対処することができない。
本発明の目的は、1つの側面では、依存関係を有する複数の更新対象の一部のみが更新されることを防ぐための技術を提供することである。
本発明に係る情報処理方法は、依存関係を有する複数のデータを更新した他のコンピュータから、更新後の当該複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の複数のデータのバックアップを生成し、更新後の複数のデータを他のコンピュータから受信することを開始し、受信したデータで、データ格納部に格納されている複数のデータを更新し、他のコンピュータとの通信中に他のコンピュータがダウンした場合、データ格納部に格納されている複数のデータから第2のハッシュ値を生成し、第1のハッシュ値と第2のハッシュ値とが一致しない場合、生成されたバックアップによって、データ格納部に格納された複数のデータをリストアする処理を含む。
1つの側面では、依存関係を有する複数の更新対象の一部のみが更新されることを防げるようになる。
図3及び図4に示した例において、更新前のデータであるデータA乃至Cのバックアップを生成しておけば、たとえ更新が不完全であったとしてもバックアップを使用して元の状態に戻すことができる。すなわち、図5に示すように、レプリカサーバがアクセス可能な記憶装置(例えばHDD(Hard Disk Drive)など)にデータのバックアップを保存しておく。そして、データの更新中にマスタサーバがダウンした場合には、記憶装置に保存されたバックアップによってデータを更新前の状態に戻す(すなわちリストアする)ことで、依存関係を有するデータの一部のみが更新された状態になることを防ぐことができる。但し、通常バックアップは定期的に実行され、リアルタイムでは実行されない。そのため、前回のバックアップ時点の状態に戻ることになり、それによって復旧すべきデータ以外のデータまで元に戻ってしまうことがある。
その他の方法として、リワインド機能によってリワインドポイントまで状態を戻すことが考えられる。例えば図6に示すように、データBuの送信後Cuの送信前にマスタサーバがダウンしたとする。この場合、データCuのみが更新されていない状態であるが、リワインドポイントP1乃至P3のうちリワインドポイントP1まで状態を戻せば、データAu乃至Cuが更新されていない状態になる。しかし、データ間の依存関係を把握できていない場合、どのリワインドポイントまで戻せばよいか判断することができない。なお、データの依存関係を、アプリケーションに関係するデータの構造から推定することも考えられるが、推定される依存関係のパターンが多数である場合があり、データの構造だけから推定を行うことは容易ではない。
そこで以下では、データの依存関係を適切に推定し、推定した依存関係に基づいてデータをリストアする方法について説明する。
図7に、本実施の形態におけるシステムの概要を示す。ウェブアプリケーションサーバであるマスタサーバ1と、マスタサーバ1のダウン時にマスタサーバ1の代わりに処理を実行するレプリカサーバ2とが、LAN(Local Area Network)等を介して接続される。クライアント装置3は、例えばインターネット等を介してマスタサーバ1に接続されており、マスタサーバ1にウェブアプリケーションサーバとしての処理を実行させる。なお、クライアント装置3はレプリカサーバ2にも接続されるが、本実施の形態の説明においてはクライアント装置3とレプリカサーバ2との通信は行われないため、クライアント装置3とレプリカサーバ2との接続は図示されていない。
マスタサーバ1は、ウェブアプリケーション部11と、レプリケーション部12と、スレッド監視部13と、ネットワーク監視制御部14と、リスト生成部15と、リスト送信部16と、データ格納部17と、リスト格納部18とを含む。
ウェブアプリケーション部11は、ウェブアプリケーションプログラムによる処理を実行する。レプリケーション部12は、マスタサーバ1のデータ格納部17に格納されているデータと、レプリカサーバ2のデータ格納部27に格納されているデータとを常時同期する処理を実行する。スレッド監視部13は、ウェブアプリケーション部11のスレッドを監視する。ネットワーク監視制御部14は、クライアント装置3からのリクエストの受信を監視する。リスト生成部15は、依存関係を有するデータのリスト(以下、依存関係リストと呼ぶ)を生成する。リスト送信部16は、リスト生成部15により生成された依存関係リストをレプリカサーバ2に送信する。データ格納部17は、マスタサーバ1が処理する種々のデータ(例えばファイル又はテーブルなど)を格納する。リスト格納部18は、依存関係リストを格納する。
レプリカサーバ2は、ウェブアプリケーション部21と、レプリケーション部22と、更新監視部23と、ネットワーク監視制御部24と、リスト受信部25と、バックアップ処理部26と、データ格納部27と、リスト格納部28と、バックアップ格納部29とを含む。
ウェブアプリケーション部21は、ウェブアプリケーションプログラムによる処理を実行する。レプリケーション部22は、マスタサーバ1のデータ格納部17に格納されているデータと、レプリカサーバ2のデータ格納部27に格納されているデータとを常時同期する処理を実行する。更新監視部23は、レプリケーション部22によるデータの更新を監視する。ネットワーク監視制御部24は、マスタサーバ1との通信を監視する。リスト受信部25は、依存関係リストをマスタサーバ1から受信する。バックアップ処理部26は、依存関係リストに基づきデータをバックアップする。データ格納部27は、レプリカサーバ2が処理する種々のデータ(例えばファイル又はテーブルなど)を格納する。リスト格納部28は、依存関係リストを格納する。バックアップ格納部29は、バックアップ処理部26により生成されたバックアップを格納する。
次に、図8乃至図12を用いて、本実施の形態のシステムにおいて実行される処理について説明する。まず、図8乃至図10を用いて、マスタサーバ1が実行する処理について説明する。
マスタサーバ1のスレッド監視部13は、ウェブアプリケーション部11のスレッドの監視を開始する。なお、ウェブアプリケーション部11のスレッドが生成されていない場合には、スレッド監視部13はウェブアプリケーション部11のスレッドが生成されるまで待機する。また、ネットワーク監視制御部14は、クライアント装置3からのリクエストの受信を監視することを開始する。
そして、ウェブアプリケーション部11は、データ格納部17に格納されているデータに対する処理の命令を含むリクエストをクライアント装置3から受信する(図8:ステップS1)。ステップS1においてウェブアプリケーション部11のスレッドが生成されるので、スレッド監視部13は、ウェブアプリケーション部11のスレッドの監視を開始する。スレッド監視部13による監視は、スレッドが終了するまで続く。
スレッド監視部13は、ウェブアプリケーション部11のスレッドにて実行される、データ格納部17に格納されているデータの更新を監視し、更新されたデータ(以下では、更新データと呼ぶ)を特定する(ステップS3)。本実施の形態においては、依存関係を有するデータは同じスレッド内で処理されると仮定して以降の処理が実行される。よって、ステップS3においてデータA乃至Cがスレッド監視部13によって特定された場合、データA乃至Cは依存関係を有するデータであるとして取り扱われる。
スレッド監視部13は、ウェブアプリケーション部11のスレッドが終了したか判定する(ステップS5)。ウェブアプリケーション部11のスレッドが終了していない場合(ステップS5:Noルート)、リクエストに含まれる命令に従ったデータ更新が続いているので、ステップS3の処理に戻る。
一方、ウェブアプリケーション部11のスレッドが終了した場合(ステップS5:Yesルート)、スレッド監視部13は、データ格納部17から更新データを読み出し、読み出した更新データをリスト生成部15に出力する。
リスト生成部15は、更新データからハッシュ値を算出する(ステップS7)。例えば更新データがデータA乃至Cである場合、データAからハッシュ値が算出され、データBからハッシュ値が算出され、データCからハッシュ値が算出される。
リスト生成部15は、ステップS7において算出されたハッシュ値と、更新データの識別情報とを含む依存関係リストを生成し(ステップS9)、生成した依存関係リストをリスト格納部18に格納する。
図9を用いて、スレッドの監視および依存関係リストについて説明する。マスタサーバ1においては、クライアント装置3からリクエストを受信すると、ウェブアプリケーション部11のスレッドが生成される。スレッド監視部13は、スレッドが生成されてから、実行可能状態に遷移し、更新を実行中の状態に遷移し、そして終了するまでのライフサイクルを監視する。スレッドが終了する際には、クライアント装置3にレスポンスが送信される。スレッド監視部13は、スレッドによって更新されたデータ(すなわち更新データ)をリスト生成部15に出力する。これに応じ、リスト生成部15は、依存関係リストを生成する。
図10に、依存関係リストの一例を示す。図10の例では、依存関係リストは、データから生成されたハッシュ値と、データの識別情報(図10の例では、ファイル名)とを含む。
リスト送信部16は、ステップS9において生成された依存関係リストをリスト格納部18から読み出し、読み出した依存関係リストをレプリカサーバ2に送信する(ステップS11)。
その後、レプリケーション部12は、データ格納部17に格納されている更新データを読み出し、読み出した更新データをレプリカサーバ2に送信する(ステップS13)。すなわち、更新データについてのレプリケーションが実行される。そして処理は終了する。
以上のような処理を実行すれば、データの依存関係が特定されるので、特定された依存関係に基づいたリストアをレプリカサーバ2が実行することができるようになる。
次に、図11及び図12を用いて、レプリカサーバ2が実行する処理について説明する。
まず、レプリカサーバ2の更新監視部23は、レプリケーション部22による、データ格納部27に格納されたデータの更新を監視することを開始する。また、ネットワーク監視制御部24は、マスタサーバ1からの依存関係リストの受信を監視することを開始する。
そして、レプリカサーバ2におけるリスト受信部25は、依存関係リストをマスタサーバ1から受信し(図11:ステップS21)、受信した依存関係リストをリスト格納部28に格納する。
これに応じ、ネットワーク監視制御部24は、今回受信した依存関係リストとは別の依存関係リスト(すなわち、前回の依存関係リスト)がリスト格納部28に残っているか判定する(ステップS23)。
前回の依存関係リストがリスト格納部28に残っている場合(ステップS23:Yesルート)、前回の更新がまだ終了していないので、ステップS23の処理に戻る。前回の依存関係リストがリスト格納部28に残っていない場合(ステップS23:Noルート)、ネットワーク監視制御部24は、更新が開始することをバックアップ処理部26に通知する。
これに応じ、バックアップ処理部26は、依存関係リストをリスト格納部28から読み出し、依存関係リストによって特定される更新データに対応する、更新前のデータをデータ格納部27から特定する。そして、バックアップ処理部26は、特定した更新前のデータのバックアップを生成し(ステップS25)、生成したバックアップをバックアップ格納部29に格納する。例えば、データA乃至CがデータAu乃至Cuに更新される場合、ステップS25においてはデータA乃至Cがデータ格納部27から特定される。バックアップの生成が完了すると、バックアップ処理部26は、バックアップの生成が完了したことをレプリケーション部22に通知する。
これに応じ、レプリケーション部22は、マスタサーバ1からの更新データの受信を開始し(ステップS27)、データ格納部27に格納する。例えば更新前のデータであるデータA乃至Cがデータ格納部27に格納されており、更新データがデータAu乃至Cuである場合、データA乃至CはデータAu乃至Cuで置換される。
なお、更新データは所定のサイズを有するパケットの形で送信されるため、データA乃至Cの更新は徐々に進むことになる。従って、データA乃至Cの更新が完了する前にマスタサーバ1がダウンすると、一部のデータのみが更新された状態になる。
レプリケーション部22による更新が開始すると、更新監視部23は、更新データの受信を監視する。一方で、レプリケーション部22は、マスタサーバ1との通信が停止した場合、マスタサーバ1との通信が停止したことを更新監視部23に通知する。そして、更新監視部23は、マスタサーバ1との通信が停止した場合又は更新データの受信が完了した場合、データ格納部27に格納されている、更新対象のデータからハッシュ値を計算する(ステップS29)。例えばデータA乃至CがデータAu乃至Cuに更新されるケースにおいて、更新データの受信が完了した場合には、データAu乃至Cuからハッシュ値が生成される。これに対し、更新データの受信が完了せず更新が不完全である場合又は更新の途中でマスタサーバ1がダウンした場合には、データA乃至Cの一部のみが更新された状態でハッシュ値が算出されることになる。この場合、算出されるハッシュ値は、データAu乃至Cuから算出されたハッシュ値とは異なる。
更新監視部23は、リスト格納部28に格納されている依存関係リストからハッシュ値を読み出す。そして、更新監視部23は、読み出したハッシュ値と、ステップS29において算出したハッシュ値とを比較し(ステップS31)、読み出したハッシュ値と、ステップS29において算出したハッシュ値とが一致するか判定する(ステップS33)。
読み出したハッシュ値と、ステップS29において算出したハッシュ値とが一致する場合(ステップS33:Yesルート)、データの更新は完了したので、ステップS37の処理に移行する。一方、読み出したハッシュ値と、ステップS29において算出したハッシュ値とが一致しない場合(ステップS33:Noルート)、更新監視部23は、更新対象のデータのバックアップをバックアップ格納部29から読み出す。そして、更新監視部23は、更新対象のデータをバックアップによってリストアする(ステップS35)。ステップS35の処理により、更新対象のデータは更新前の状態に戻る。よって、一部のみが更新された状態になることを防げる。
なお、たとえマスタサーバ1との通信が停止したとしても、必ずしもデータの更新が未完了であるわけではない。マスタサーバ1との通信においては、更新データ以外のデータの転送等も行われるので、マスタサーバ1との通信中であってもデータの更新が既に完了している場合が有る。よって、上で述べたように、マスタサーバ1との通信が停止した場合においてもハッシュ値の比較を行うことで、リストアを実行すべきか否かを適切に判断することができるようになる。
更新監視部23は、今回の依存関係リストをリスト格納部28から削除する(ステップS37)。また、バックアップ処理部26は、今回のバックアップをバックアップ格納部29から削除する(ステップS39)。そして処理は終了する。
図12を用いて、本実施の形態の処理について説明を追加する。図12においては、更新前のデータはデータA乃至Cであり、更新データはデータAu乃至Cuである。上で述べたように、マスタサーバ1において生成された依存関係リストはレプリカサーバ2に送信される。この依存関係リストはデータAu乃至Cuから算出されたハッシュ値を含むので、このハッシュ値と一致するハッシュ値をレプリカサーバ2において算出されない場合には、データA乃至Cの一部のみが更新された状態である。そして、一部のデータのみが更新された状態である場合には、データは更新前の状態に戻される。これにより、依存関係を有するデータが機能を実現できない状態になることを防げるので、正常な状態のレプリカサーバ2がマスタサーバ1の処理を引き継げるようになる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したマスタサーバ1及びレプリカサーバ2の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明したデータ構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、上で述べた例において、データAのバックアップが終了した段階でデータAuの受信を開始し、データBのバックアップが終了した段階でデータBuの受信を開始し、・・・、というように、バックアップとデータの更新とを交互に行うようにしてもよい。
また、データを一意に識別可能な情報としてハッシュ値以外の情報を使用してもよい。
なお、上で述べたマスタサーバ1及びレプリカサーバ2は、コンピュータ装置であって、図13に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態の第1の態様に係る情報処理方法はコンピュータにより実行される。そして、本情報処理方法は、(A)依存関係を有する複数のデータブロックを更新した他のコンピュータから、更新後の当該複数のデータブロックから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の複数のデータブロックのバックアップを生成し、(B)更新後の複数のデータブロックを他のコンピュータから受信することを開始し、受信したデータブロックで、データ格納部に格納されている複数のデータブロックを更新し、(C)他のコンピュータとの通信中に他のコンピュータがダウンした場合、データ格納部に格納されている複数のデータブロックから第2のハッシュ値を生成し、(D)第1のハッシュ値と第2のハッシュ値とが一致しない場合、生成されたバックアップによって、データ格納部に格納された複数のデータブロックをリストアする処理を含む。
これにより、複数のデータブロックの更新が完了していないにも関わらず他のコンピュータがダウンした場合には、バックアップされた更新前の複数のデータブロックでリストアが行われるので、複数のデータブロックの一部のみが更新されることを防げるようになる。
また、本情報処理方法は、(E)コンピュータが管理するデータブロックの中から複数のデータブロックを特定するための情報を、他のコンピュータから受信する処理をさらに含んでもよい。これにより、依存関係を有する複数のデータブロックをコンピュータが特定することができるようになる。
本実施の形態の第2の態様に係る情報処理システムは、(F)第1の情報処理装置と、(G)第2の情報処理装置とを有する。そして、第1の情報処理装置は、(f1)依存関係を有する複数のデータブロックを更新する更新部と、(f2)更新後の複数のデータブロックから第1のハッシュ値を生成する生成部と、(f3)第1のハッシュ値を第2の情報処理装置に送信する第1送信部と、(f4)第1のハッシュ値が第2の情報処理装置に送信された後、更新後の複数のデータブロックを第2の情報処理装置に送信する第2送信部とを有する。そして、第2の情報処理装置は、(g1)第1の情報処理装置から第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の複数のデータブロックのバックアップを生成する生成部と、(g2)更新後の複数のデータブロックを第1の情報処理装置から受信することを開始し、受信したデータブロックで、データ格納部に格納されている複数のデータブロックを更新する更新部と、(g3)第1の情報処理装置との通信中に第1の情報処理装置がダウンした場合、データ格納部に格納されている複数のデータブロックから第2のハッシュ値を生成し、第1のハッシュ値と第2のハッシュ値とが一致しない場合、生成されたバックアップによって、データ格納部に格納された複数のデータブロックをリストアする復元部とを有する。
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
依存関係を有する複数のデータを更新した他のコンピュータから、更新後の当該複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成し、
更新後の前記複数のデータを前記他のコンピュータから受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新し、
前記他のコンピュータとの通信中に前記他のコンピュータがダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、
前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする、
処理を実行させるプログラム。
コンピュータに、
依存関係を有する複数のデータを更新した他のコンピュータから、更新後の当該複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成し、
更新後の前記複数のデータを前記他のコンピュータから受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新し、
前記他のコンピュータとの通信中に前記他のコンピュータがダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、
前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする、
処理を実行させるプログラム。
(付記2)
前記コンピュータに、
前記コンピュータが管理するデータの中から前記複数のデータを特定するための情報を、前記他のコンピュータから受信する、
処理をさらに実行させる付記1記載のプログラム。
前記コンピュータに、
前記コンピュータが管理するデータの中から前記複数のデータを特定するための情報を、前記他のコンピュータから受信する、
処理をさらに実行させる付記1記載のプログラム。
(付記3)
コンピュータが、
依存関係を有する複数のデータを更新した他のコンピュータから、更新後の当該複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成し、
更新後の前記複数のデータを前記他のコンピュータから受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新し、
前記他のコンピュータとの通信中に前記他のコンピュータがダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、
前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする、
処理を実行する情報処理方法。
コンピュータが、
依存関係を有する複数のデータを更新した他のコンピュータから、更新後の当該複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成し、
更新後の前記複数のデータを前記他のコンピュータから受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新し、
前記他のコンピュータとの通信中に前記他のコンピュータがダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、
前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする、
処理を実行する情報処理方法。
(付記4)
依存関係を有する複数のデータを更新した他の情報処理装置から、更新後の当該複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成する生成部と、
前記生成部により前記複数のデータのバックアップが生成された後、更新後の前記複数のデータを前記他の情報処理装置から受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新する更新部と、
前記他の情報処理装置との通信中に前記他の情報処理装置がダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする復元部と、
を有する情報処理装置。
依存関係を有する複数のデータを更新した他の情報処理装置から、更新後の当該複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成する生成部と、
前記生成部により前記複数のデータのバックアップが生成された後、更新後の前記複数のデータを前記他の情報処理装置から受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新する更新部と、
前記他の情報処理装置との通信中に前記他の情報処理装置がダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする復元部と、
を有する情報処理装置。
(付記5)
第1の情報処理装置と、
第2の情報処理装置と、
を有し、
前記第1の情報処理装置は、
依存関係を有する複数のデータを更新する更新部と、
更新後の前記複数のデータから第1のハッシュ値を生成する生成部と、
前記第1のハッシュ値を前記第2の情報処理装置に送信する第1送信部と、
前記第1のハッシュ値が前記第2の情報処理装置に送信された後、更新後の前記複数のデータを前記第2の情報処理装置に送信する第2送信部と、
を有し、
前記第2の情報処理装置は、
前記第1の情報処理装置から前記第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成する生成部と、
更新後の前記複数のデータを前記第1の情報処理装置から受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新する更新部と、
前記第1の情報処理装置との通信中に前記第1の情報処理装置がダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする復元部と、
を有する情報処理システム。
第1の情報処理装置と、
第2の情報処理装置と、
を有し、
前記第1の情報処理装置は、
依存関係を有する複数のデータを更新する更新部と、
更新後の前記複数のデータから第1のハッシュ値を生成する生成部と、
前記第1のハッシュ値を前記第2の情報処理装置に送信する第1送信部と、
前記第1のハッシュ値が前記第2の情報処理装置に送信された後、更新後の前記複数のデータを前記第2の情報処理装置に送信する第2送信部と、
を有し、
前記第2の情報処理装置は、
前記第1の情報処理装置から前記第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成する生成部と、
更新後の前記複数のデータを前記第1の情報処理装置から受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新する更新部と、
前記第1の情報処理装置との通信中に前記第1の情報処理装置がダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする復元部と、
を有する情報処理システム。
1 マスタサーバ 11 ウェブアプリケーション部
12 レプリケーション部 13 スレッド監視部
14 ネットワーク監視制御部 15 リスト生成部
16 リスト送信部 17 データ格納部
18 リスト格納部
2 レプリカサーバ 21 ウェブアプリケーション部
22 レプリケーション部 23 更新監視部
24 ネットワーク監視制御部 25 リスト受信部
26 バックアップ処理部 27 データ格納部
28 リスト格納部 29 バックアップ格納部
3 クライアント装置
12 レプリケーション部 13 スレッド監視部
14 ネットワーク監視制御部 15 リスト生成部
16 リスト送信部 17 データ格納部
18 リスト格納部
2 レプリカサーバ 21 ウェブアプリケーション部
22 レプリケーション部 23 更新監視部
24 ネットワーク監視制御部 25 リスト受信部
26 バックアップ処理部 27 データ格納部
28 リスト格納部 29 バックアップ格納部
3 クライアント装置
Claims (5)
- コンピュータに、
依存関係を有する複数のデータを更新した他のコンピュータから、更新後の当該複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成し、
更新後の前記複数のデータを前記他のコンピュータから受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新し、
前記他のコンピュータとの通信中に前記他のコンピュータがダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、
前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする、
処理を実行させるプログラム。 - 前記コンピュータに、
前記コンピュータが管理するデータの中から前記複数のデータを特定するための情報を、前記他のコンピュータから受信する、
処理をさらに実行させる請求項1記載のプログラム。 - コンピュータが、
依存関係を有する複数のデータを更新した他のコンピュータから、更新後の当該複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成し、
更新後の前記複数のデータを前記他のコンピュータから受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新し、
前記他のコンピュータとの通信中に前記他のコンピュータがダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、
前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする、
処理を実行する情報処理方法。 - 依存関係を有する複数のデータを更新した他の情報処理装置から、更新後の当該複数のデータから生成された第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成する生成部と、
前記生成部により前記複数のデータのバックアップが生成された後、更新後の前記複数のデータを前記他の情報処理装置から受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新する更新部と、
前記他の情報処理装置との通信中に前記他の情報処理装置がダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする復元部と、
を有する情報処理装置。 - 第1の情報処理装置と、
第2の情報処理装置と、
を有し、
前記第1の情報処理装置は、
依存関係を有する複数のデータを更新する更新部と、
更新後の前記複数のデータから第1のハッシュ値を生成する生成部と、
前記第1のハッシュ値を前記第2の情報処理装置に送信する第1送信部と、
前記第1のハッシュ値が前記第2の情報処理装置に送信された後、更新後の前記複数のデータを前記第2の情報処理装置に送信する第2送信部と、
を有し、
前記第2の情報処理装置は、
前記第1の情報処理装置から前記第1のハッシュ値を受信した場合、データ格納部に格納された、更新前の前記複数のデータのバックアップを生成する生成部と、
更新後の前記複数のデータを前記第1の情報処理装置から受信することを開始し、受信したデータで、前記データ格納部に格納されている前記複数のデータを更新する更新部と、
前記第1の情報処理装置との通信中に前記第1の情報処理装置がダウンした場合、前記データ格納部に格納されている前記複数のデータから第2のハッシュ値を生成し、前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合、生成された前記バックアップによって、前記データ格納部に格納された前記複数のデータをリストアする復元部と、
を有する情報処理システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016044187A JP2017162062A (ja) | 2016-03-08 | 2016-03-08 | 情報処理装置、情報処理システム、情報処理方法及びプログラム |
US15/412,639 US20170262201A1 (en) | 2016-03-08 | 2017-01-23 | Information processing apparatus, information processing system and program medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016044187A JP2017162062A (ja) | 2016-03-08 | 2016-03-08 | 情報処理装置、情報処理システム、情報処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017162062A true JP2017162062A (ja) | 2017-09-14 |
Family
ID=59788600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016044187A Pending JP2017162062A (ja) | 2016-03-08 | 2016-03-08 | 情報処理装置、情報処理システム、情報処理方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170262201A1 (ja) |
JP (1) | JP2017162062A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108306740B (zh) * | 2018-01-22 | 2020-07-31 | 华中科技大学 | 一种Intel SGX状态一致保护方法和系统 |
CN111367929B (zh) * | 2020-03-03 | 2023-03-28 | 腾讯科技(深圳)有限公司 | 数据管理方法和装置及存储介质 |
-
2016
- 2016-03-08 JP JP2016044187A patent/JP2017162062A/ja active Pending
-
2017
- 2017-01-23 US US15/412,639 patent/US20170262201A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20170262201A1 (en) | 2017-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11740975B2 (en) | System and method for managing blockchain nodes | |
US10055300B2 (en) | Disk group based backup | |
US11829263B2 (en) | In-place cloud instance restore | |
KR101970839B1 (ko) | 서비스의 2차 위치에서의 작업의 재생 기법 | |
CN106951559B (zh) | 分布式文件系统中数据恢复方法及电子设备 | |
US20090177856A1 (en) | Method and apparatus for automated backup process | |
WO2016107042A1 (zh) | 数据增量备份方法、装置及nas设备 | |
US20170286259A1 (en) | Information processing apparatus, information processing system, and computer-readable recording medium | |
US20120324279A1 (en) | Method and Apparatus of Backing up Subversion Repository | |
CN104793981A (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
EP3037966A1 (en) | System backup device and backup method | |
JP2017162062A (ja) | 情報処理装置、情報処理システム、情報処理方法及びプログラム | |
CN111858143A (zh) | 用于管理存储系统的方法、设备和计算机可读存储介质 | |
CN112035062B (zh) | 云计算的本地存储的迁移方法、计算机设备及存储介质 | |
WO2013065135A1 (ja) | データ共有システム | |
CN107783826B (zh) | 一种虚拟机迁移方法、装置及系统 | |
JP2006209490A (ja) | 設定情報同期プログラム | |
CN114930313A (zh) | 用于管理区块链节点的系统和方法 | |
KR101571801B1 (ko) | 관리 장비의 설정을 제어하는 통합 관리 장치 및 그것의 제어 방법 | |
CN111125001A (zh) | 快照复制方法、电子设备和计算机程序产品 | |
CN112087337A (zh) | 一种交换机配置方法和交换机配置系统 | |
JP2015191344A (ja) | インストール装置及びインストール方法 | |
JP5781652B1 (ja) | スタック管理装置、スタック管理方法、および、スタック管理プログラム | |
JP2019152947A (ja) | システム管理装置、システム管理方法、およびプログラム | |
JP2008192058A (ja) | ファイルのリモートコピー装置、方法およびプログラム |