JP2015108927A - 情報処理装置、データ同期方法及びプログラム - Google Patents

情報処理装置、データ同期方法及びプログラム Download PDF

Info

Publication number
JP2015108927A
JP2015108927A JP2013250922A JP2013250922A JP2015108927A JP 2015108927 A JP2015108927 A JP 2015108927A JP 2013250922 A JP2013250922 A JP 2013250922A JP 2013250922 A JP2013250922 A JP 2013250922A JP 2015108927 A JP2015108927 A JP 2015108927A
Authority
JP
Japan
Prior art keywords
data
shared
feature amount
node
data set
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
JP2013250922A
Other languages
English (en)
Inventor
正臣 波多
Masaomi Hata
正臣 波多
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2013250922A priority Critical patent/JP2015108927A/ja
Publication of JP2015108927A publication Critical patent/JP2015108927A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ノード間にて共有されるデータを、短時間で同期させる。【解決手段】情報処理装置は、記憶部と、算出部と、検証部と、同期部と、を含んで構成される。記憶部は、他装置と共有する共有データを構成する複数のデータからなるデータ集合を、階層的に記憶する。算出部は、複数のデータのそれぞれに対応する第1の特徴量、各階層に属するデータ集合のそれぞれに対応する第2の特徴量、を算出する。検証部は、各階層のデータ集合に対応する第2の特徴量が異なるデータ集合の特定を、上位層から下位層に向けて、自装置と前記他装置との間で交互に繰り返し、共有データのうちの更新データを含むデータ集合を特定し、特定されたデータ集合に含まれるデータに対応し、自装置と他装置の間で第1の特徴量が異なるデータを特定することで、共有データにおける更新データの有無を検証する。同期部は、更新データを、他装置との間で同期する。【選択図】図1

Description

本発明は、情報処理装置、データ同期方法及びプログラムに関する。特に、ネットワークにて接続されたノード間にてデータを共有する情報処理装置、データ同期方法及びプログラムに関する。
近年、ネットワークの信頼性、可用性を高めるために、経路や装置の冗長化が行われることが多い。あるいは、ノード間に親と子のような関係を持たせ、子ノードが収集したデータを親ノードが処理するネットワークシステムが構築されることもある。このようなネットワークシステムでは、ネットワークを構成するノードのそれぞれが保持するデータの整合性を確保する必要がある。具体的には、現用系と待機系の関係にあるノード間や、親ノードと子ノードの関係にあるノードにて、データの共有が行われる。このようなノード間にて、互いにデータ同期処理を実行することで、共有データの整合がなされている。
ここで、一方のノードにおいて軽度な障害(例えば、装置の稼働には影響がない程度の障害)が発生した場合や、オペレータがネットワーク構成の変更操作を行いノードの動作モードが変わった場合に、一時的にシステムの運用が中断されることがある。このような場合、中断要因が生じていないノードと、中断要因が生じたノードと、の間で、それぞれが保持するデータが一致しない可能性がある。例えば、現用系のノードと待機系のノード間において、待機系のノードに軽度な障害が生じ、当該障害を回復させて、システムの運用を続行する場合を考える。この場合、待機系のノードは、自らの障害が発生した時間帯にて変更され、且つ、ノード間にて共有されるべきデータを保持していない。そのため、このような更新データは、ノード間にて同期させる必要がある。
あるいは、親ノードと子ノードの関係にあるノード間において、親ノードの動作モード切り替え期間にて、子ノードが保持するデータに変化があった場合にも、共有データを同期させる必要がある。以上の事例のように、ノード間にて同期を図る必要がある更新データは、共有データの一部であることが多い。そのため、ノード間で共有しているデータにおいて、差異が生じたデータ(即ち、更新データ)の検知が行われる。
更新データを検知する手法としては、ノード間にて共有データを1つずつ確認し、更新データを見つけ出す手法が考えられる。しかし、このような方法では、実際に各ノードが保持する共有データに差異が生じていなくとも、共有データの全体に渡って、逐次、データを比較する必要があり、ノード間にて送受信するデータ量が増加する。このような手法では、共有データの同期に要する時間が長期化するため、非効率的な更新データの検知手法といえる。そのため、このような手法を共有データの同期に採用すれば、ネットワークを介して提供されるサービスの品質に影響を与えかねない。
特許文献1において、更新データの検知効率を改善するためのシステムが開示されている。特許文献1が開示するシステムでは、個々のデータベースを代表する、データベースごとのハッシュ値を比較し、当該ハッシュ値が相違していれば、デバイスが保持する個々のデータごとにハッシュ値を生成し、生成されたハッシュ値の比較を行っている。つまり、特許文献1のシステムでは、全共有データのハッシュ値が各デバイス間で異なることを契機として、共有データを構成する各データに対応するハッシュ値を比較している。
特表2009−510566号公報
なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
上述のように、特許文献1が開示する技術は、共有データに差異が生じているか否かをデータベースごとのハッシュ値を比較する検知と、共有データを構成する個々のデータごとのハッシュ値を比較する検知と、を実行している。特許文献1が開示する技術では、データベースを代表するハッシュ値に相違する箇所が存在すれば、当該データベースに含まれる全データのハッシュ値を、データを共有する装置間で比較することで、データ同期の対象となるデータを特定している。
特許文献1が開示する技術では、共有データを構成する全データに対応するハッシュ値を送受するため、ノード間で共有データの整合性を図るために長い時間を要するという問題がある。
本発明は、ノード間にて共有されるデータを、短時間で同期させることに寄与する情報処理装置、データ同期方法及びプログラムを提供することを目的とする。
本発明の第1の視点によれば、他装置と共有する共有データを構成する複数のデータからなるデータ集合を、階層的に記憶する記憶部と、前記複数のデータのそれぞれに対応する第1の特徴量、各階層に属するデータ集合のそれぞれに対応する第2の特徴量、を算出する算出部と、各階層のデータ集合に対応する前記第2の特徴量が異なるデータ集合の特定を、上位層から下位層に向けて、自装置と前記他装置との間で交互に繰り返し、前記共有データのうちの更新データを含むデータ集合を特定し、前記特定されたデータ集合に含まれるデータに対応し、自装置と前記他装置の間で前記第1の特徴量が異なるデータを特定することで、前記共有データにおける更新データの有無を検証する検証部と、前記更新データを、前記他装置との間で同期する同期部と、を備える、情報処理装置が提供される。
本発明の第2の視点によれば、他装置と共有する共有データを構成する複数のデータからなるデータ集合を、階層的に記憶する工程と、前記複数のデータのそれぞれに対応する第1の特徴量、各階層に属するデータ集合のそれぞれに対応する第2の特徴量、を算出する工程と、各階層のデータ集合に対応する前記第2の特徴量が異なるデータ集合の特定を、上位層から下位層に向けて、自装置と前記他装置との間で交互に繰り返し、前記共有データのうちの更新データを含むデータ集合を特定し、前記特定されたデータ集合に含まれるデータに対応し、自装置と前記他装置の間で前記第1の特徴量が異なるデータを特定することで、前記共有データにおける更新データの有無を検証する工程と、前記更新データを、前記他装置との間で同期する工程と、を含む、データ同期方法が提供される。
なお、本方法は、他装置とデータを共有する装置という、特定の機械に結びつけられている。
本発明の第3の視点によれば、他装置と共有する共有データを構成する複数のデータからなるデータ集合を、階層的に記憶する記憶部を備える情報処理装置を制御するコンピュータに実行させるプログラムであって、前記複数のデータのそれぞれに対応する第1の特徴量、各階層に属するデータ集合のそれぞれに対応する第2の特徴量、を算出する処理と、各階層のデータ集合に対応する前記第2の特徴量が異なるデータ集合の特定を、上位層から下位層に向けて、自装置と前記他装置との間で交互に繰り返し、前記共有データのうちの更新データを含むデータ集合を特定し、前記特定されたデータ集合に含まれるデータに対応し、自装置と前記他装置の間で前記第1の特徴量が異なるデータを特定することで、前記共有データにおける更新データの有無を検証する処理と、前記更新データを、前記他装置との間で同期する処理と、を実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non−transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明の各視点によれば、ノード間にて共有されるデータを、短時間で同期させることに寄与する情報処理装置、データ同期方法及びプログラムが、提供される。
一実施形態の概要を説明するための図である。 第1の実施形態に係るデータ同期システムの一例を示す図である。 ノードの内部構成の一例を示す図である。 記憶部が記憶する共有データの構成例を示す図である。 グループのデータ管理構成の一例を示す図である。 カテゴリのデータ管理構成の一例を示す図である。 カテゴリのデータ管理構成の一例を示す図である。 親ノードと子ノードのデータ管理構成の一例を示す図である。 第1の実施形態に係るデータ同期システムの動作の一例を示すシーケンス図である。
初めに、図1を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
上述のように、ノード間にて共有されるデータを、短時間で同期させることが望まれている。
そこで、一例として図1に示す情報処理装置100を提供する。情報処理装置100は、記憶部101と、算出部102と、検証部103と、同期部104と、を含んで構成される。記憶部101は、他装置と共有する共有データを構成する複数のデータからなるデータ集合を、階層的に記憶する。算出部102は、複数のデータのそれぞれに対応する第1の特徴量、各階層に属するデータ集合のそれぞれに対応する第2の特徴量、を算出する。検証部103は、各階層のデータ集合に対応する第2の特徴量が異なるデータ集合の特定を、上位層から下位層に向けて、自装置と前記他装置との間で交互に繰り返し、共有データのうちの更新データを含むデータ集合を特定し、特定されたデータ集合に含まれるデータに対応し、自装置と他装置の間で第1の特徴量が異なるデータを特定することで、共有データにおける更新データの有無を検証する。同期部104は、更新データを、他装置との間で同期する。
情報処理装置100は、共有データにおける更新データの有無に関する検証を、他の情報処理装置と協働して行う。具体的には、共有データを管理するフォーマットを予め定め、他の情報処理装置との間で、共通した形式により共有データを記憶する。情報処理装置100は、共有データを構成する複数のデータを、複数のデータ集合に割り振り、且つ、当該データ集合を階層的に管理する。また、情報処理装置100は、各データと階層化されたデータ集合のそれぞれに対して、データの変更に伴い値が変化する特徴量を算出する。そして、他の情報処理装置との間で、データの同期を図る必要がある場合には、階層化されたデータ集合のそれぞれに対応する特徴量を、自装置及び他装置の間で、交互に比較する等により、更新データを含むデータ集合を、順次特定していく。その後、更新データが特定されれば、他の情報処理装置100との間でデータの同期を行う。
以上のように、情報処理装置100は、共有データを構成する全データに関して行うのではなく、階層化されたデータ集合の特徴量の比較を、上位の階層から下位の階層に向けて行うことで、装置間で異なっている更新データを検知する。そのため、情報処理装置100はでは、効率よく更新データを検知可能であり、ノード間にて共有されるデータを、短時間で同期できる。
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
[第1の実施形態]
第1の実施形態について、図面を用いてより詳細に説明する。
図2は、第1の実施形態に係るデータ同期システムの一例を示す図である。図2を参照すると、データ同期システムには、ネットワーク20により接続された複数のノード10−1〜10−3が含まれている。図2に示すデータ同期システムでは、ノード10−1とノード10−2が冗長化されているものとする。また、ノード10−1及びノード10−2のいずれかは、ノード10−3に対する親ノードとして動作する。つまり、親ノードであるノード10−1又は10−2は、子ノードであるノード10−3を制御し、管理する機能を有する。
ノード10−1〜10−3は、ノード間にてデータを共有する。例えば、ノード10−1を現用系のノード、ノード10−2を待機系のノードとすれば、これらのノード間にてデータを共有する。あるいは、ノード10−1が現用系のノードであれば、ノード10−1は子ノードであるノード10−3との間で、データを共有する。
ノード間にて共有するデータには、それぞれのノードにて書き換え可能なデータが含まれる。例えば、親ノードにて、データAを書き換えたとしたならば、子ノードにおいても自らが保持するデータAを、親ノードのデータAと同じ値に書き換える必要がある。このように、データを共有するノード間では、共有データを整合する処理、即ち、データの同期処理が必要となる。
そこで、第1の実施形態に係るデータ同期システムでは、共有データの同期を図る必要があるイベントが生じると、データを共有するノード間にて、共有データの同期処理を行う。例えば、冗長化されたノード間にて、現用系のノードと待機系のノードとが入れ替わる系切り替えに係るイベントが生じた際に、新たに現用系となったノードと待機系のノードとの間で、共有データの同期処理が行われる。あるいは、新たに現用系となったノードが、同時に親ノードでもあれば、親ノードと子ノードの間で、共有データの同期処理が行われる。その際、共有データの同期を図る必要があるイベントの生じたノードから、共有データを共有する他のノードに対して、後述するカテゴリ管理データを、同期起動通知として送信する。なお、以降の説明において、同期起動通知を発するノードを同期要求ノード、同期起動通知を受けるノードを同期受諾ノードと、表記する。
ここで、ノード10−1〜10−3は、共有データの同期を図る点で同じ構成及び機能を有するものとする。そのため、以降の説明において、ノード10−1〜10−3を区別する特段の理由がない場合には、単に「ノード10」と表記する。なお、図2に示すデータ同期システムは例示であって、システム構成を限定する趣旨ではない。例えば、ネットワーク20に接続されるノードが必ずしも、共有データの同期機能を備えている必要はなく、共有データの同期機能を備えるノードと備えないノードが混在していてもよい。
図3は、ノード10の内部構成の一例を示す図である。図3を参照すると、ノード10は、通信部30と、記憶部40と、制御部50と、を含んで構成される。
通信部30は、ネットワーク20を介して、他のノード10と相互に通信するための手段である。記憶部40は、ノード10の動作に必要な各種データを記憶する手段である。記憶部40が記憶するデータには、他のノード10との間で共有する共有データが含まれる。制御部50は、ノード10の全体を制御する手段である。具体的には、制御部50は、通信部30を介して他のノード10と通信を行い、記憶部40が記憶する共有データに対する制御及び管理を行う。
制御部50は、特徴量算出部201と、データ検証部202と、データ同期部203と、を含んで構成される。これら各部に関する詳細は後述する。
記憶部40が共有データを記憶する際のデータ管理構成について説明する。
図4は、記憶部40が記憶する共有データの構成例を示す図である。図4に示すように、共有データは複数のデータから構成されている。さらに、各データは複数のグループに分けられている。第1の実施形態に係るノード10では、各データの使用用途に着目して、各データをグループ分けしている。即ち、各データを用いて実現される機能ごとに、データをグループ分けしている。但し、データのグループ分けを機能グループごとに行うことに限定する趣旨ではない。データのグループ分けは、ノード10の構成や実装に応じて、適宜選択される事項である。
図4を参照すると、データ300a〜300xはグループ400aに割り振られ、データ301a〜301xはグループ400bに割り振られている。さらに、記憶部40は、複数のグループを構成要素とするカテゴリにより、グループの管理を行う。例えば、図4を参照すると、カテゴリ500aは、グループ400a〜400yを構成要素とする。
このように、記憶部40は、他のノードと共有する共有データを構成する複数のデータを、複数のデータ集合に割り振り、且つ、複数のデータ集合を階層的に記憶する。第1の実施形態では、最上位のデータ集合をカテゴリと表記し、その下位のデータ集合をグループと表記する。但し、データ集合の管理を2階層に限定する趣旨ではなく、3階層以上であってもよい。例えば、3階層にて共有データを管理する場合には、クラス、カテゴリ、グループのような名称により、複数のデータを管理する。
上述のように、制御部50には特徴量算出部201が含まれている。特徴量算出部201は、他のノードとの間で共有しているデータに更新データが含まれるか否かを容易に検知可能とするための特徴量を算出する手段である。例えば、特徴量算出部201は、共有データを構成する各データと、各データのデータ集合(第1の実施形態では、グループ、カテゴリ)のそれぞれについて特徴量を算出する。算出された各特徴量は、対応するデータ等に対応付けられて記憶部40に格納される。
初めに、共有データを構成する各データに対応する第1の特徴量について説明する。
図5は、グループ400aのデータ管理構成の一例を示す図である。図5を参照すると、特徴量算出部201は、グループ400aに含まれるデータのそれぞれに対して、シーケンス番号(SeqNo;Sequence Number)を算出する。なお、シーケンス番号とは、データを書き換えた場合にインクリメントする値である。例えば、図5を参照すると、特徴量算出部201は、データ300aが書き換えられた場合には、対応するシーケンス番号SeqNo_300aをインクリメントする。特徴量算出部201は、共有データを構成する各データに対応する特徴量として、当該データが書き換えられるたびに更新されるシーケンス番号を算出する。
次に、階層化されたデータ集合に対応する第2の特徴量について説明する。
特徴量算出部201は、各グループに含まれる各データに対応する特徴量(シーケンス番号)から、当該グループに対応する特徴量を算出する。第1の実施形態では、特徴量算出部201は、グループに対応する特徴量として、シーケンス番号の総和からハッシュ値を算出する。より具体的には、グループに対応するハッシュ値の算出は以下の式(1)に基づき行う。

Figure 2015108927

なお、Hはグループに対応するハッシュ値、h()はハッシュ関数を示す。
例えば、図5に示す例では、グループ400aに対応する特徴量として、特徴量算出部201は、シーケンス番号SeqNo_300a〜300xの総和を、ハッシュ関数に入力し、ハッシュ値Hash_400aを得る。なお、グループに含まれるデータの一部が更新されるとシーケンス番号も更新され、更新されたシーケンス番号に基づいて算出されたハッシュ値は、ハッシュ値及びハッシュ関数の性質から、データ更新前のハッシュ値とは異なる値となる。従って、グループに対応するハッシュ値に変化がなければ、当該グループに含まれるデータの更新はないことを意味し、ハッシュ値が変化していれば、当該グループに含まれるデータの一部又は全部が更新されたことを意味する。
図6は、カテゴリ500aのデータ管理構成の一例を示す図である。上述のように、カテゴリに含まれる複数のグループそれぞれには、当該グループに対応するハッシュ値が算出されている。図6を参照すると、グループ400aに対応するハッシュ値はHash_400aであり、グループ400bに対応するハッシュ値はHash_400bと算出されている。
特徴量算出部201は、カテゴリに含まれるそれぞれのグループに対応する特徴量から、当該カテゴリに対応する特徴量を算出する。例えば、特徴量算出部201は、カテゴリに対応する特徴量として、各グループに対応するハッシュ値の総和からハッシュ値を算出する。より具体的には、カテゴリに対応するハッシュ値の算出は以下の式(2)に基づき行う。

Figure 2015108927

なお、Hはカテゴリに対応するハッシュ値を示す。
図6では、カテゴリ500aに対応するハッシュ値は、Hash_500aとして算出されている。また、カテゴリに含まれるグループのハッシュ値が更新されると、カテゴリに対応するハッシュ値もまた変化するため、ハッシュ値の比較により、当該カテゴリ内に含まれるグループのデータが更新されたか否かが容易に確認できる。
以上のように、特徴量算出部201は、共有データを構成する複数のデータに対応する第1の特徴量としてシーケンス番号を算出し、階層ごとのデータ集合のそれぞれに対応する第2の特徴量としてハッシュ値を算出する。
図7は、カテゴリのデータ管理構成の一例を示す図である。図7を参照すると、カテゴリごとに算出されたハッシュ値は、カテゴリの識別子と対応付けられて管理されている(記憶部40に記憶されている)。このように、ノード10では、自らが保持している共有データに関し、各カテゴリの識別子と、各カテゴリに対応する特徴量(例えば、ハッシュ値)を連結して管理し、記憶する。なお、以降の説明において、図7に示す情報をカテゴリ管理データと表記する。
また、記憶部40は、カテゴリとグループの対応関係、グループとデータの対応関係に関しても、各識別子(カテゴリ識別子、グループ識別子、データ識別子)を用いて管理し、記憶する。その結果、制御部50は、記憶部40にアクセスすることで、所望のカテゴリ、グループ、データにアクセスできる。
なお、第1の実施形態では、1つのカテゴリに複数のグループが含まれる構成に関して説明したが、グループの管理形態を限定する趣旨ではない。例えば、1つのカテゴリに1つのグループが含まれていてもよい。
次に、データ検証部202について説明する。データ検証部202は、データを共有する相手のノードに含まれるデータ検証部202と協働して、それぞれのノードで保持する共有データにおける更新データの有無を検証する手段である。より具体的には、同期要求ノードと同期受諾ノードそれぞれのデータ検証部202は、互いに協調動作することで、更新データが含まれるカテゴリ、更新データが含まれるグループを順次、特定し、最終的に更新データを特定する。
初めに、同期要求ノードに含まれるデータ検証部202は、共有データの同期を図る必要があるイベントが生じると、通信部30を介して、同期受諾ノードに対し、自ノードで管理するカテゴリ管理データを送信する。なお、制御部50は、例えば、自身の装置の一部に障害を検出した場合や、ネットワーク20との接続経路での障害を検出した場合に、共有データの同期を図る必要があるイベントが生じたものとして、データ検証部202を起動する。
同期受諾ノードのデータ検証部202は、同期要求ノードが送信するカテゴリ管理データを受信すると、同期受諾ノード(即ち、自ノード)で管理しているカテゴリ管理データを利用して、更新データを含むカテゴリの有無を検証する。具体的には、データ検証部202は、同期要求ノードが送信したカテゴリ管理データの各カテゴリに対応するハッシュ値と、自ノードで管理しているカテゴリ管理データの各カテゴリに対応するハッシュ値と、を比較する。比較した結果、差異がなければ、データ検証部202は、特段の処理は行わない。カテゴリ管理データのハッシュ値に差異が生じていないということは、共有データを構成するデータは更新されていないことを意味するため、共有データの同期処理は不要だからである。
しかし、比較した結果、差異が生じていれば、データ検証部202は、当該差異が生じているカテゴリを、更新データを含むカテゴリとして特定する。このように、カテゴリ管理データを受信した同期受諾ノードのデータ検証部202は、共有データを管理する最上位のデータ集合(ここでは、カテゴリ)のいずれに、更新データが含まれるかを検証する。
その後、同期受諾ノードのデータ検証部202は、通信部30を介して、特定されたカテゴリの識別子と、当該カテゴリに含まれるグループに対応するハッシュ値と、を同期要求ノードに送信する。例えば、図7において、同期受諾ノードのデータ検証部202は、カテゴリ500aに対応するハッシュ値Hash_500aが、同期要求ノードが送信してきたカテゴリ管理データから得られるハッシュ値Hash_500aと異なる値の場合に、カテゴリ500aに含まれるグループ400a〜400y(図6参照)のそれぞれに対応するハッシュ値(Hash_400a〜Hash_400y)を同期要求ノードに送信する。
次に、同期要求ノードのデータ検証部202は、通信部30を介して受け取った各グループに対応するハッシュ値に基づき、更新データを含むグループの有無を検証する。具体的には、データ検証部202は、受信した各グループのハッシュ値と、受信したカテゴリ識別子に対応するカテゴリ内のグループに対応するハッシュ値と、を比較し、更新データを含むグループを特定する。このように、同期要求ノードのデータ検証部202は、階層化されたデータ集合の最上位(ここでは、カテゴリ)から一段下のデータ集合(ここでは、グループ)のいずれに、更新データが含まれるかを検証する。
その後、同期要求ノードのデータ検証部202は、通信部30を介して、特定されたグループ識別子と、当該グループに含まれるデータに対応するシーケンス番号と、を同期受諾ノードに送信する。例えば、図4において、同期要求ノードのデータ検証部202は、グループ400aに更新データが含まれると特定した場合には、当該グループに含まれるデータに対応するシーケンス番号SeqNo_300a〜SeqNo_300x(図5参照)を、同期受諾ノードに送信する。
次に、同期受諾ノードのデータ検証部202は、同期要求ノードが送信する各データのシーケンス番号と、受け取ったグループ識別子が示すグループ内のデータに対応するシーケンス番号と、を比較し、シーケンス番号に差異が存在するか否かを検証する。検証の結果、差異が生じていれば、データ検証部202は、当該データを更新データとして特定する。
その後、同期受諾ノードのデータ検証部202は、通信部30を介して、更新データの詳細を、同期要求ノードに送信する。送信される更新データの詳細には、データ識別子、更新データの値、更新データの更新時刻、シーケンス番号、更新データが含まれるカテゴリ識別子及びグループ識別子、等が含まれる。
以上のように、データ検証部202は、各階層のデータ集合に対応する第2の特徴量(第1の実施形態ではハッシュ値)が異なるデータ集合の特定を、上位層から下位層に向けて、自ノードと他ノードとの間で交互に繰り返し、更新データを含むデータ集合を特定する。さらに、データ検証部202は、特定されたデータ集合に含まれるデータに対応し、且つ、自ノードと他ノードの間で第1の特徴量(第1の実施形態ではシーケンス番号)が異なるデータを特定することで、共有データにおける更新データの有無を検証する。
なお、上記の説明は、データ集合は2階層に階層化されて管理されている場合の動作であって、階層化された数が異なれば、同期要求ノードと同期受諾ノードそれぞれのデータ検証部202の動作が異なる。例えば、データ集合を、クラス、カテゴリ、グループの3階層で管理する場合を考える。この場合には、同期要求ノードから、クラスの識別子とクラスに対応する特徴量を、同期受諾ノードに送信する。同期受諾ノードでは、受信したデータから、更新データを含むクラスを特定する。その後、同期受諾ノードから、特定されたクラスの識別子と、対応する特徴量が同期要求ノードに送信される。このようなデータの送受信をノード間で繰り返すことで、最終的に、同期受諾ノードは、更新データを含むグループを特定し、同期要求ノードは特定されたグループに含まれる更新データを特定する。
次に、データ同期部203について説明する。データ同期部203は、共有データにおける更新データを、他のノードとの間で同期する手段である。その際、データ同期部203は、他のノードに含まれるデータ同期部203と協働して、共有データを同期する。更新データが特定された後のデータの同期には種々の方法を用いることができるが、例えば、更新データの更新日時が新しいデータを用いて、ノード間の共有データを同期してもよい。あるいは、同期要求ノード又は同期受諾ノードのいずれかが保持するデータを優先して採用する方法であってもよい。いずれの方法であっても、最終的にノード間で共有するデータに齟齬が生じていなければよい。
なお、制御部50は、ノード10に搭載されたコンピュータに、そのハードウェアを用いて、特徴量算出部201、データ検証部202、データ同期部203の各処理を実行させるコンピュータプログラムにより実現することもできる。
次に、第1の実施形態に係るデータ同期システムの動作について、図8及び図9を参照しつつ説明する。
ここでは、ノード10−1が現用系のノード且つ親ノード、ノード10−2が待機系のノード且つ親ノード、ノード10−3が子ノード、としてそれぞれ動作している状況から、親ノードでの待機系と現用系が入れ替わるイベントが発生した際の動作を説明する。また、親ノードと子ノードが共有するデータの構成は図8のとおりとし、図8(b)の灰色の領域が更新されるものとする。
なお、親ノードでの系切り替え前に、現用系のノードと待機系のノード間、親ノードと子ノード間のデータ同期は完了しているものとする。さらに、冗長化されたノードの系切り替え処理が行われている最中に、子ノードにおいて共有データの一部が更新されたものとする。
図9は、データ同期システムの動作の一例を示すシーケンス図である。
ステップS01において、ノード10−1とノード10−2の間で系切り替え処理が実行され、ノード10−1が待機系のノード、ノード10−2が現用系のノードにそれぞれ切り替わる。また、子ノードであるノード10−3において、共有データの一部が更新される(ステップS02)。
ステップS03において、新たな親ノードであるノード10−2から、ノード10−3に向けて、カテゴリ管理データが送信される。その後、ノード10−3では、受信したカテゴリ管理データから、更新データを含むカテゴリを特定し、当該カテゴリに含まれる各グループのハッシュ値をノード10−2に送信する(ステップS04)。
その後、ノード10−2では、受信したグループのハッシュ値と、自らが保持するグループのハッシュ値と、を比較し、更新データを含むグループを特定し、当該グループに含まれる各データのシーケンス番号をノード10−3に送信する(ステップS05)。
その後、ノード10−3では、受信したシーケンス番号から更新データを特定し、ノード10−2との間で共有データの同期を行う(ステップS06)。
以上のように、親ノードと子ノードの間は、ステップS03〜S06の処理により、共有データの同期が行われる。また、親ノードの現用系と待機系のノード間においても、ステップS03〜S06と同様の処理を実行することで、共有データの同期が行われる(ステップS07)。
なお、第1の実施形態では、共有データを構成するデータに対応する第1の特徴量としてシーケンス番号を、階層化されたデータ集合のそれぞれに対応する第2の特徴量としてハッシュ値を、それぞれ算出しているが、特徴量の形式を限定する趣旨ではない。例えば、第1の特徴量は、シーケンス番号に代えて、ハッシュ値であってもよい。
以上のように、第1の実施形態に係るデータ同期システムでは、異なるノード間で保持する共有データにおいて更新データの有無を検証する。その際、自ノードと他のノードのカテゴリ管理データを比較し、差異があれば両ノード間にて保持する共有データに不一致が生じていることが分かり、共有データの同期が必要であることを認識する。また、自ノードと他のノードで保持する共有データの全てに関し、差異を確認するのではなく、カテゴリごとに対応する特徴量(例えば、ハッシュ値)を比較し、特徴量が異なるカテゴリ内のデータをデータ同期処理の対象とする。カテゴリが特定されれば、カテゴリより下位のデータ集合であるグループについて、対応する特徴量(例えば、ハッシュ値)を比較することで、特徴量が異なるグループ内のデータがデータ同期処理の対象に特定される。グループが特定されれば、各データに付与された特徴量(例えば、シーケンス番号)を比較することで、データ同期処理の対象となる更新データが最終的に特定される。
第1の実施形態に係るデータ同期システムでは、共有すべきデータを階層的且つグループ分けして管理すると共に、上位のデータ集合(例えば、カテゴリ、グループ)から順に、同期すべきデータを絞り込んでいくため、共有データの同期に要する時間を短縮できる。同時に、ノード間にて送受信されるデータは各データ集合の特徴量であるので、ノード間にて転送されるデータ量が削減され、データ同期処理の効率化が実現できる。また、第1の実施形態に係るデータ同期システムを、冗長化されたノード間や親子の関係にあるノード間に適用すると、迅速な共有データの同期が図れ、システムに障害が発生したとしてもその回復に要する時間を短縮できる。即ち、システムから影響されるサービスに与える影響を小さくできる。
上記の実施形態の一部又は全部は、以下のようにも記載され得るが、以下には限られない。
[形態1]
上記第1の視点に係る情報処理装置のとおりである。
[形態2]
前記他装置との間で、少なくとも前記第1及び第2の特徴量を送受信する通信部をさらに備える形態1の情報処理装置。
[形態3]
前記検証部は、自装置で記憶している前記共有データから算出した前記第2の特徴量と、前記他装置から受信した前記第2の特徴量を比較し、前記更新データを含むデータ集合を特定する形態2の情報処理装置。
[形態4]
前記検証部は、自装置で記憶し、前記更新データを含むデータ集合と特定されたデータ集合に対応する前記第1の特徴量と、前記他装置から受信した前記第1の特徴量を比較し、前記更新データを特定する形態2又は3の情報処理装置。
[形態5]
前記算出部は、最下位のデータ集合に含まれる複数のデータのそれぞれに対応する前記第1の特徴量に基づいて、前記最下位のデータ集合に対応する前記第2の特徴量を算出する形態1乃至4のいずれか一に記載の情報処理装置。
[形態6]
前記算出部は、1つ下の階層に属するデータ集合に対応する複数の前記第2の特徴量から、各階層のデータ集合に対応する前記第2の特徴量を算出する形態1乃至5のいずれか一に記載の情報処理装置。
[形態7]
前記第1の特徴量は、前記共有データを構成するデータが更新されるたびにインクリメントされる値であり、前記第2の特徴量はハッシュ関数により生成される値である、形態1乃至6のいずれか一に記載の情報処理装置。
[形態8]
前記検証部は、前記共有データの同期が必要なイベントの発生に応じて、自装置で記憶するデータ集合に対応する前記第2の特徴量を、前記他装置に送信する形態1乃至7のいずれか一に記載の情報処理装置。
[形態9]
上記第2の視点に係るデータ同期方法のとおりである。
[形態10]
上記第3の視点に係るプログラムのとおりである。
[形態11]
上記情報処理装置を複数含むデータ同期システム。
なお、上記第9〜第11の形態は、第1の形態と同様に、第2〜第8の形態に展開することが可能である。
なお、引用した上記の特許文献の開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10、10−1〜10−3 ノード
20 ネットワーク
30 通信部
40、101 記憶部
50 制御部
100 情報処理装置
102 算出部
103 検証部
104 同期部
201 特徴量算出部
202 データ検証部
203 データ同期部
300a〜300x、301a〜301x、302a〜300x データ
400a〜400y グループ
500a〜500z カテゴリ

Claims (10)

  1. 他装置と共有する共有データを構成する複数のデータからなるデータ集合を、階層的に記憶する記憶部と、
    前記複数のデータのそれぞれに対応する第1の特徴量、各階層に属するデータ集合のそれぞれに対応する第2の特徴量、を算出する算出部と、
    各階層のデータ集合に対応する前記第2の特徴量が異なるデータ集合の特定を、上位層から下位層に向けて、自装置と前記他装置との間で交互に繰り返し、前記共有データのうちの更新データを含むデータ集合を特定し、前記特定されたデータ集合に含まれるデータに対応し、自装置と前記他装置の間で前記第1の特徴量が異なるデータを特定することで、前記共有データにおける更新データの有無を検証する検証部と、
    前記更新データを、前記他装置との間で同期する同期部と、
    を備える、情報処理装置。
  2. 前記他装置との間で、少なくとも前記第1及び第2の特徴量を送受信する通信部をさらに備える請求項1の情報処理装置。
  3. 前記検証部は、自装置で記憶している前記共有データから算出した前記第2の特徴量と、前記他装置から受信した前記第2の特徴量を比較し、前記更新データを含むデータ集合を特定する請求項2の情報処理装置。
  4. 前記検証部は、自装置で記憶し、前記更新データを含むデータ集合と特定されたデータ集合に対応する前記第1の特徴量と、前記他装置から受信した前記第1の特徴量を比較し、前記更新データを特定する請求項2又は3の情報処理装置。
  5. 前記算出部は、最下位のデータ集合に含まれる複数のデータのそれぞれに対応する前記第1の特徴量に基づいて、前記最下位のデータ集合に対応する前記第2の特徴量を算出する請求項1乃至4のいずれか一項に記載の情報処理装置。
  6. 前記算出部は、1つ下の階層に属するデータ集合に対応する複数の前記第2の特徴量から、各階層のデータ集合に対応する前記第2の特徴量を算出する請求項1乃至5のいずれか一項に記載の情報処理装置。
  7. 前記第1の特徴量は、前記共有データを構成するデータが更新されるたびにインクリメントされる値であり、前記第2の特徴量はハッシュ関数により生成される値である、請求項1乃至6のいずれか一項に記載の情報処理装置。
  8. 前記検証部は、前記共有データの同期が必要なイベントの発生に応じて、自装置で記憶するデータ集合に対応する前記第2の特徴量を、前記他装置に送信する請求項1乃至7のいずれか一項に記載の情報処理装置。
  9. 他装置と共有する共有データを構成する複数のデータからなるデータ集合を、階層的に記憶する工程と、
    前記複数のデータのそれぞれに対応する第1の特徴量、各階層に属するデータ集合のそれぞれに対応する第2の特徴量、を算出する工程と、
    各階層のデータ集合に対応する前記第2の特徴量が異なるデータ集合の特定を、上位層から下位層に向けて、自装置と前記他装置との間で交互に繰り返し、前記共有データのうちの更新データを含むデータ集合を特定し、前記特定されたデータ集合に含まれるデータに対応し、自装置と前記他装置の間で前記第1の特徴量が異なるデータを特定することで、前記共有データにおける更新データの有無を検証する工程と、
    前記更新データを、前記他装置との間で同期する工程と、
    を含む、データ同期方法。
  10. 他装置と共有する共有データを構成する複数のデータからなるデータ集合を、階層的に記憶する記憶部を備える情報処理装置を制御するコンピュータに実行させるプログラムであって、
    前記複数のデータのそれぞれに対応する第1の特徴量、各階層に属するデータ集合のそれぞれに対応する第2の特徴量、を算出する処理と、
    各階層のデータ集合に対応する前記第2の特徴量が異なるデータ集合の特定を、上位層から下位層に向けて、自装置と前記他装置との間で交互に繰り返し、前記共有データのうちの更新データを含むデータ集合を特定し、前記特定されたデータ集合に含まれるデータに対応し、自装置と前記他装置の間で前記第1の特徴量が異なるデータを特定することで、前記共有データにおける更新データの有無を検証する処理と、
    前記更新データを、前記他装置との間で同期する処理と、
    を実行させるプログラム。
JP2013250922A 2013-12-04 2013-12-04 情報処理装置、データ同期方法及びプログラム Pending JP2015108927A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013250922A JP2015108927A (ja) 2013-12-04 2013-12-04 情報処理装置、データ同期方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013250922A JP2015108927A (ja) 2013-12-04 2013-12-04 情報処理装置、データ同期方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2015108927A true JP2015108927A (ja) 2015-06-11

Family

ID=53439240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013250922A Pending JP2015108927A (ja) 2013-12-04 2013-12-04 情報処理装置、データ同期方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2015108927A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021014550A1 (ja) * 2019-07-23 2021-01-28 三菱電機株式会社 データ処理装置、方法、及びプログラム
JP7479427B2 (ja) 2018-04-10 2024-05-08 華為技術有限公司 トランスポートプロトコル上でのポイント・ツー・ポイント・データベース同期

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008250903A (ja) * 2007-03-30 2008-10-16 Toshiba Corp ファイル更新装置、プログラム及び方法
JP2010501942A (ja) * 2006-08-22 2010-01-21 アマゾン テクノロジーズ インコーポレイテッド 高可用性データを提供するためのシステム及び方法
US20100030840A1 (en) * 2008-07-31 2010-02-04 Microsoft Corporation Content Discovery and Transfer Between Mobile Communications Nodes
JP2010152591A (ja) * 2008-12-25 2010-07-08 Nec Corp データベースシステム、データ処理方法及びデータ処理プログラム
US20100257149A1 (en) * 2009-04-03 2010-10-07 International Business Machines Corporation Data synchronization and consistency across distributed repositories
JP2012531644A (ja) * 2009-06-30 2012-12-10 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・メディア・デバイス上の求められているコンテンツ項目にマーク付けするためのシステム、方法及びコンピュータ・プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010501942A (ja) * 2006-08-22 2010-01-21 アマゾン テクノロジーズ インコーポレイテッド 高可用性データを提供するためのシステム及び方法
JP2008250903A (ja) * 2007-03-30 2008-10-16 Toshiba Corp ファイル更新装置、プログラム及び方法
US20100030840A1 (en) * 2008-07-31 2010-02-04 Microsoft Corporation Content Discovery and Transfer Between Mobile Communications Nodes
JP2010152591A (ja) * 2008-12-25 2010-07-08 Nec Corp データベースシステム、データ処理方法及びデータ処理プログラム
US20100257149A1 (en) * 2009-04-03 2010-10-07 International Business Machines Corporation Data synchronization and consistency across distributed repositories
JP2012531644A (ja) * 2009-06-30 2012-12-10 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・メディア・デバイス上の求められているコンテンツ項目にマーク付けするためのシステム、方法及びコンピュータ・プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7479427B2 (ja) 2018-04-10 2024-05-08 華為技術有限公司 トランスポートプロトコル上でのポイント・ツー・ポイント・データベース同期
WO2021014550A1 (ja) * 2019-07-23 2021-01-28 三菱電機株式会社 データ処理装置、方法、及びプログラム
US11474985B2 (en) 2019-07-23 2022-10-18 Mitsubishi Electric Corporation Data processing apparatus, method, and recording medium

Similar Documents

Publication Publication Date Title
CN110535969B (zh) 基于区块链网络的数据存储方法、装置、存储介质和设备
US9317555B2 (en) Query method for a distributed database system and query apparatus
CN104679717B (zh) 集群弹性部署的方法和管理系统
US9286162B2 (en) System and method for guaranteeing consistent data synchronization from a volatile data source
US8671151B2 (en) Maintaining item-to-node mapping information in a distributed system
CN105052111B (zh) 跨群集边界的服务迁移
JP2013061739A (ja) データ管理装置、データ管理システム、データ管理方法、及びプログラム
CN106605217B (zh) 用于将应用从一个站点移动到另一站点的方法和系统
EP3442201A1 (en) Cloud platform construction method and cloud platform
US10761869B2 (en) Cloud platform construction method and cloud platform storing image files in storage backend cluster according to image file type
CN106909429A (zh) 一种同步升级方法及装置
CN111596932B (zh) 一种镜像文件生成方法、装置和计算机可读存储介质
CN106663023A (zh) 对云应用中的虚拟机进行分组
TW201443674A (zh) 對遠端分散式資料庫伺服器之選擇性資料同步及傳送
CN110597673B (zh) 存储系统的容灾方法、装置、设备及计算机可读存储介质
CN106909197B (zh) 一种虚拟化主机时间管理方法及虚拟化主机系统
CN104301990A (zh) 一种数据同步的方法及装置
CN110012111B (zh) 一种数据服务集群系统及数据处理方法
JP2015108927A (ja) 情報処理装置、データ同期方法及びプログラム
CN102412985A (zh) 一种基于操作分离的网管系统对象管理方法
CN108206843B (zh) 一种集群访问方法及装置
CN108809680A (zh) 一种设备管理的方法及设备
CN107547622B (zh) 一种资源调整方法及装置
CN113542013B (zh) 虚拟化网络功能管理消息分配方法、装置及设备
CN110933184B (zh) 一种资源发布平台和资源发布方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170912

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180306