JP4036661B2 - Replicated data management method, node, program, and recording medium - Google Patents

Replicated data management method, node, program, and recording medium Download PDF

Info

Publication number
JP4036661B2
JP4036661B2 JP2002055757A JP2002055757A JP4036661B2 JP 4036661 B2 JP4036661 B2 JP 4036661B2 JP 2002055757 A JP2002055757 A JP 2002055757A JP 2002055757 A JP2002055757 A JP 2002055757A JP 4036661 B2 JP4036661 B2 JP 4036661B2
Authority
JP
Japan
Prior art keywords
data
node
core
request
exists
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
JP2002055757A
Other languages
Japanese (ja)
Other versions
JP2003256256A (en
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2002055757A priority Critical patent/JP4036661B2/en
Publication of JP2003256256A publication Critical patent/JP2003256256A/en
Application granted granted Critical
Publication of JP4036661B2 publication Critical patent/JP4036661B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、無線インタフェースを有する複数のノードから構成され、一意な識別子で識別されるデータ、および該データの複数が複数のノード内に分配配置されている無線ネットワークにおける複製データ管理方法に関する。
【0002】
【従来の技術】
従来、複製データの管理方法としては、ネットワーク内の一つのマスターデータのみの修正を可能とし、マスターデータの修正内容を通信により逐次複製データにも反映させる、あるいは複製データは必ずしも最新であることを保証しない、などの方法がとられてきた。しかしマスターデータへの負荷集中を避ける目的や、ネットワーク内のトラフィック削減のため、あるいはネットワークトポロジが変更されてマスターデータへのアクセスが不可能となった場合のデータ修正を可能とするためには、複製データ自身を直接修正可能とすることが必要である。
【0003】
このため例えば特開平11−3263号公報に記載の「複製データベース整合装置及び複製データベース整合方法」では、データベースが複数のサイトに分散配置されており、更新の生じたサイトでは不整合が発生しないかどうかを各サイト間のパケットのやりとりにより検証することで、任意のサイトでのデータベースの更新を可能にしている。しかし、通信不可能なサイトとはデータの同期がとれず、また各サイトでデータを更新してから、その情報が他サイトで反映されるまでの間は、データの不整合が生じる可能性がある。
【0004】
また、分散ファイルシステムにおいては、ファイルサービスを利用するクライアント内にファイルの一部をキャッシュとして保存しておき、ファイルの可用性を高めている。例えば「Kistler, J.J., Satyanarayanan, M.著,泥isconnected Operation in the Coda File System in ACM Transactions on Computer Systems, Feb. 1992, Vol.10, No.1, pp.3-25」で述べられている分散ファイルシステムCodaにおける複製管理方法では、クライアントからサーバへアクセスできない切断状態においては、クライアントのキャッシュに対して操作を行うことを許す。その後サーバへ再接続した時には該キャッシュへの更新情報とサーバ内の情報を比較する。比較の結果データの不整合を検出した場合は、ユーザに通知して人手による修復を行う。つまり、一時的なデータの不整合は許している。
【0005】
さらに、移動端末をクライアントとするモバイルデータベースにおいては、クライアントがネットワークから離れた時にも、データの強い一貫性を保ちながらクライアントでのデータの修正を許している。例えば、「Daniel Barbara著,溺obile Computing and Databases - A Survey in IEEE Transactions on Knowledge and Data Engineering, Jan. 1999, Vol.11, No.1, pp.108-117」の114頁で述べられているWangとParisの手法では、あるデータの複製が分散されている時、いずれかの複製に更新を行うには、あらかじめ決められた複製の集合(CSCR)に通知をし、全てのCSCRのメンバから確認を受けた場合に該更新を成功とする。もし一部の複製が確認を返さなかったら、別のレフェリという実体に対して、確認を返してきた複製のみを新しいCSCRとして登録する。この登録が成功したら更新は成功し、登録が失敗したら更新は失敗する。ここで、移動端末がネットワークから離脱する場合には、いずれのCSCRのメンバとも通信不可能となるので、該端末上の複製には更新が不可能となる。そこで、移動端末が離脱する前に、レフェリに対して自分自身のみを新しいCSCRのメンバとして登録することにより、その後の該複製への更新は他のノードと通信せずに可能としている。
【0006】
図18はこのようなレフェリを用いた複製データ管理方法の処理シーケンスの例を示している。クライアント600と複製602は同一ノードである移動端末上に存在し、その他の複製604、複製606、複製608、およびレフェリ610は全て別のノード上に存在するものとする。また、複製602、複製604、複製606、および複製608がCSCRのメンバであるとする。
【0007】
クライアント600があるデータの更新を行う際に、複製602に対して更新要求を送信した場合(ステップ501)、複製602はCSCRのメンバである複製604、複製606、および複製608に更新要求を送信する(ステップ502〜504)。更新要求を受信した各複製604、606、608は自身のデータを更新してからそれぞれ確認応答を複製602へ返送する(ステップ505〜507)。CSCRの全てのメンバから確認応答を受けた複製602は、コミット要求を全てのCSCRのメンバに返すとともに(ステップ508〜510)、確認応答をクライアント600へ返す(ステップ511)。
【0008】
次に、複製608自身あるいは複製608との通信に障害が発生した場合のシーケンスを説明する。クライアント600は複製602に対して更新要求を送信し(ステップ512)、複製602はCSCRのメンバである複製604、複製606、および複製608に更新要求を送信する(ステップ513〜515)。この時、複製604と606はそれぞれ確認応答を返すが(ステップ516,517)、障害により複製602は複製608からの確認応答を受信できない。そこで、確認応答を返した複製604、606、および複製602自身を新しいCSCRとしてレフェリ610に登録するため登録要求を送信する(ステップ518)。レフェリ610はこれを受理すると変更確認応答を複製602に返送する(ステップ519)。これにより、複製602はCSCRの全てのメンバから確認応答を受信したことになるので、複製604および606にコミット要求を送信するとともに(ステップ520)、確認応答をクライアント600へ返す(ステップ522)。このように、あるCSCRのメンバと通信できない状況でも、更新が可能である。
【0009】
次に、クライアント600および複製602が存在する移動端末がネットワークから離脱する場合、まず複製602は自身を唯一のCSCRのメンバとしてレフェリ610に登録する(ステップ523)。レフェリ610がこの変更を受理すると、変更確認応答を複製602に返す(ステップ524)。移動端末がネットワークから離脱(ステップ525)した後、クライアント600が複製602に更新要求を送信しても(ステップ526)、CSCRのメンバが自分自身のみなので、複製602はデータを更新し、確認応答を返すことができる(ステップ527)。
【0010】
【発明が解決しようとする課題】
上述したように、従来の複製データ管理方法では、サーバや全ての複製サイトへの確実なアクセスを仮定していたり、データの可用性を高める代わりに複製間の一時的な不整合を許容していたり、移動端末がネットワークから離脱することが既知であることを前提として複製の更新権利を管理している。よって、トポロジが頻繁に変化し、その変化が予測不可能なネットワークにおいて、一時的な不整合さえも生じないようにデータ間の厳格な整合を保証しつつ、ネットワークから切断されたノードでデータを更新することは不可能である。
【0011】
一方、今後普及が想定される、複数の端末が無線リンクを経由して接続されるようなネットワークを考えると、ある端末の移動や電源断によりネットワークが分断されるなどのトポロジの頻繁な変化が想定される。しかもこのような変化は一般に他のノードからは予測不可能である。このようなネットワーク上で一時的な不整合さえも許されないアプリケーション、例えば電子マネーの流通や著作権保護されて同時アクセスユーザ数が制限されたコンテンツの利用などを考えると、データの厳格な整合を保証しつつ移動端末でのデータ更新が必要である。
【0012】
本発明の目的は、このような従来の問題点を解決し、トポロジが動的に変化してしかもそれが予測不可能なネットワークにおいて、分散されたデータの複製間の厳格な整合をとりつつ、データ更新の可用性の低下を防ぐ、複製データの管理方法および無線ネットワークを提供することにある。
【0013】
【課題を解決するための手段】
上記目的を達成するために、本発明の複製データ管理方法は、
データの生成時には、該データの生成ノードに該データの修正または削除処理である更新処理を実行可能なコアデータを生成配置するとともに、該コアデータが存在するノードと無線リンクで直接通信可能な周辺のノードに該データの参照処理のみが実行可能な複製データを生成、配置し、
アデータが存在するノードは、複製データが存在する全てのノードのアドレスを保持するとともに、コアデータを他のノード移動させる際に、移動前に把握していた複製データが存在する全てのノードに対して移動先のノードのアドレスを通知し、
複製データが存在する各ノードは、コアデータが存在するノードのアドレスを保持するとともに、該コアデータが存在するノードと自ノードとの間の通信状況を管理し、
コアデータが存在するノードで該データへの更新要求あるいは参照要求が発生した場合は、該ノードは、該コアデータに対して該要求を実行し、
複製データが存在するノードでデータへの更新要求が発生した場合は、該ノードは、前記通信状況が良好であれば、該コアデータが存在するノードと協調して自ノードにコアデータを移動させた上で、該コアデータに対して更新処理を実行し前記通信状況が良好でなければ、該コアデータが存在するノードに更新要求を転送し、該更新要求を受信した該コアデータが存在するノードは、該コアデータの更新処理を実行するとともに、その結果を該更新要求が発生したノードに送信し、
複製データが存在するノードでデータへの最新データの参照要求が発生した場合は、該ノードは、該コアデータが存在するノードに最新情報の参照要求を転送し、最新情報の参照要求を受信したコアデータが存在するノードは、該コアデータの最新情報を該最新情報の参照要求が発生したノード送信し、
複製データが存在するノードでデータへの通常の参照要求が発生した場合は、該ノードは、該ノード内のデータの情報を要求元に送信
アデータも複製データも存在しないノードでデータへの参照要求が発生した場合は、該ノードは、該コアデータが存在するノードと協調してノードに複製データを生成、配置した上で、自ノード内のデータの情報を要求元に送信する
【0014】
ここで、「データの生成時・・・」については生成ノードでの以降のデータ更新およびその周辺ノードでのデータの読み出しをローカルに実行するため、「コアデータがノードを移動する際・・・」については複製データが最新のコアデータの存在場所を知るため、「複製データが存在するノードでデータへの更新要求が発生した場合・・・」についてはそのノードで以降データ更新が発生する場合にローカルに実行可能とするため、「複製データが存在するノードでデータへの最新データの参照要求が発生した場合・・・」については、最新データが必要な場合のみこのようにノード間通信が発生し、そうでない場合はローカルにデータ参照可能とするため、というのが主な動作の意味である。つまり、データの生成や更新を行ったノードでは引続きそのデータの更新が発生する可能性が高く、またデータ生成ノードの周辺はデータ読み出しが発生する可能性が高い、という前提の場合に各処理に要するノード間通信の回数を削減するというのが本発明の狙いである。
【0015】
本発明は、各データについて、ネットワーク内にデータの更新が可能なコアデータを1つ配置し、読み出しのみが可能な複製データを複数分散配置することにより、データの一貫性を保持しつつデータの可用性を高め、またコアデータは決まった場所に配置するのではなく、データの利用状況やネットワークの状況に応じて動的に移動させ、トポロジが変化した場合には該コアデータと通信可能な複製データのみを有効とすることにより、一貫性を保つようにしたものである。
【0016】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【0017】
図1は本発明の一実施形態の無線ネットワークの構成図である。
【0018】
本実施形態の無線ネットワークは、それぞれ無線インタフェース(例えば無線LANカード)を有するノード10とノード20とノード30とノード40とノード50から構成される。ノード10はノード20、ノード30、およびノード40と、ノード20はノード10およびノード50と、ノード30およびノード40はノード10のみと、ノード50はノード20のみと、それぞれ無線リンクで直接通信可能である。初期状態では各ノード10,20,30,40,50にはクライアントからのデータ操作要求(データ生成、更新、参照)を受け付けるデータマネージャ13,23,33,43,53が存在し、コアデータ17および複製データ27,37,47,57は存在しない。また、ノード10とノード40とノード50にはデータ操作を要求するクライアント15,45,55が存在する。さらに、各ノード上にはパケットの経路情報を管理するルーティングエージェントが存在する。図1においては、ノード10、ノード40、およびノード50上のルーティングエージェント16,46,56のみが表記されている。
【0019】
本実施形態においては、クライアント15,45,55、データマネージャ13,23,33,43,53、ルーティングエージェント16,46,56、コアデータ17、および複製データ27,37,47,57は互いに通信相手のオブジェクトIDを指定することにより、位置に依存せず非同期にメッセージ通信可能である。
【0020】
さらに、本実施形態においては、各ノードから無線の届く範囲に存在する全てのノードへのブロードキャスト、いくつかのノードへのマルチキャスト、および特定のノードへのユニキャスト通信が可能であるとする。また、いくつかのノードが通信を中継することにより、無線の届かない範囲に存在するノードに対してもユニキャストおよびマルチキャスト通信が可能であるものとする。
【0021】
図2はデータマネージャ13,23,33,43,53(以下、総称してデータマネージャ61と称す)によるデータの実現方法を示している。データマネージャ61は一意な識別子であるデータ名と、該データに対応するデータオブジェクト(以下単にデータと表記)のオブジェクトIDとの対応表であるデータ対応表62、およびノード60上で生成したデータ名を記録した作成済データ表63を管理するものとする。ここで、データ名はノードのIDと任意の文字列から構成されるものとし、オブジェクトIDはノードIDと任意の数字の列から構成されるものとする。また、データマネージャ61は他ノードや自ノード60の他のオブジェクトからデータ生成要求やデータ更新要求やデータ参照要求を受信するものとし、各要求は対応するデータ名を含むものとする。
【0022】
図3はデータマネージャ61の動作を示すフローチャートである。
【0023】
メッセージ受信待ちし(ステップ101)、メッセージを受信すると(ステップ102)、メッセージ種別を判断する(ステップ103)。
【0024】
データ生成要求を受信した際、もし作成済データ表63あるいはデータ対応表62に、該データ生成要求中のデータ名に対応するエントリが存在したら、要求元にエラーを返す(ステップ104〜106)。そうでなければ自ノードにデータ64を生成して該データ生成要求の要求元をデータ64に通知するとともに、該データ生成要求中のデータ名に対応するオブジェクトIDとして、データ64のオブジェクトIDを登録し(ステップ107)、該データ生成要求中のデータ名を作成済データ表63に登録する(ステップ108)。
【0025】
データマネージャ61がデータ更新要求あるいはデータ参照要求を受信した際、もし該データ名を含むエントリがデータ対応表62に存在すれば、対応するオブジェクトIDに対して該要求を転送する(ステップ109,110)。データ更新要求あるいはデータ参照要求を受信した際、もし該データ名を含むエントリがデータ対応表62に存在しなければ、周りのノードにコアデータ検索要求をブロードキャストする(ステップ111)。なお、コアデータ検索要求には検索元オブジェクトIDとシーケンス番号を含める。コアデータ検索要求に対するコアデータ通知を一定時間受信しなかったら、データ更新要求あるいはデータ参照要求の要求元にエラーを返す(ステップ112,114)。もし一定時間内にコアデータ通知を受信した場合、自ノードにデータ64を作成して該コア通知内に含まれるコアデータのオブジェクトID、および該データ更新要求あるいはデータ参照要求の要求元をデータ64に通知する(ステップ112,113)。
【0026】
データマネージャ61がコアデータ検索要求を受信した場合、もし該コアデータ検索要求の検索元オブジェクトIDが自身のオブジェクトIDと一致するか、該コアデータ検索要求の検索元オブジェクトIDとシーケンス番号の組を既に受信済であったら、該コアデータ検索要求を破棄する(ステップ115〜117)。そうでなければ、もし該コアデータ検索要求中のデータ名がデータ対応表62に存在すれば、該当するエントリのオブジェクトIDを該コアデータ検索要求の要求元オブジェクトIDに対して返送する(ステップ118,119)。上記どちらの条件にも当てはまらなければ、該コアデータ検索要求の検索元オブジェクトIDとシーケンス番号の組を記憶し、該コアデータ検索要求を周りのノードにブロードキャストする(ステップ118,120)。
【0027】
データは他ノードや自ノード内の他のオブジェクトからデータ更新要求やデータ参照要求を受信するものとし、各要求は対応するデータ名を含むものとする。
【0028】
図4は図1の無線ネットワークにおいてノード10でデータ生成要求が発生した場合のデータ生成動作のシーケンスを示している。
【0029】
まず、ノード10上のクライアント15がメモリ上のファイルの保存などのため、データ生成要求をノード10上のデータマネージャ13に送信する(ステップ121)。データマネージャ13はノード10上にコアデータ17を生成し(ステップ122)、コアデータ17は自身のローカルデータを生成して(ステップ123)、クライアント15へ生成応答を返すとともに(ステップ124)、自身のローカルデータ情報の複製生成要求をブロードキャストする(ステップ125〜127)。
【0030】
生成要求を受信したデータマネージャ23,33,43は、それぞれのノードに複製データ27,37,47を生成し(ステップ128,129,130)、各複製データ27,37,47はコアデータ17に確認応答をそれぞれ返送する(ステップ131,132,133)。なお、ステップ125〜127および128〜130において、コアデータ17は自身のアドレスであるオブジェクトIDを各ノードのデータマネージャ経由で複製データに生成時に通知する。
【0031】
コアデータ17は確認応答を受信するのに一定時間待機し、その後確認応答を受信した複製データのオブジェクトID(アドレス)を記憶し(ステップ134)、記憶した全ての複製データへデータ生成の実行要求をマルチキャストする(ステップ135〜137)。実行要求を受信した複製データ27,37,47はそれぞれローカルデータを生成する(ステップ138,139,140)。
【0032】
図5は図1のネットワークにおいてノード10でデータ読み出し、および更新要求が発生した場合の動作のシーケンスを示している。
【0033】
ノード10上のクライアント15がデータの読み出しを行う場合、コアデータ17に参照要求を送信する(ステップ141)。コアデータ17はローカルデータを読み出し(ステップ142)、その結果を参照応答としてクライアント15に返す(ステップ143)。
【0034】
クライアント15がデータの更新を行う場合、コアデータ17に更新要求を送信する(ステップ144)。コアデータ17はローカルデータに対して更新を実行し(ステップ145)、その結果に基づいて更新応答をクライアント15に返す(ステップ146)。
【0035】
図6は図1の無線ネットワークにおいてノード40でデータ読み出し、および更新要求が発生した場合の動作のシーケンスを示している。
【0036】
ノード40上のクライアント45が通常のデータ読み出しを行う場合、複製データ47に参照要求を送信する(ステップ151)。複製データ47はローカルデータを読み出し(ステップ152)、その結果を参照応答としてクライアント45に返す(ステップ153)。
【0037】
次に、クライアント45が最新のデータ読み出しを行う場合、複製データ47に参照要求を送信する(ステップ154)。複製データ47は最新データを獲得するため、自身が記憶しているコアデータ17に対して参照要求を送信する(ステップ155)。参照要求を受信したコアデータ17はローカルデータを読み出し(ステップ156)、その結果を参照応答として複製データ47へ返す(ステップ157)。複製データ47はその結果をクライアント45に返す(ステップ158)とともに、ローカルデータとして保存する(ステップ159)。
【0038】
クライアント45がデータの更新を行う場合、複製データ47に更新要求を送信する(ステップ160)。複製データ47は自身が記憶しているコアデータ17に対してコア移動要求を送信する(ステップ161)。コア移動要求を受信したコアデータ17は、自身が複製データとなり(ステップ162)、コア移動応答を複製データ47へ返送する(ステップ163)。この時自身が記憶している複製データのオブジェクトIDも該コア移動応答中に含めて返送する。
【0039】
コア移動応答を受信した複製データ47は自身がコアデータとなり(ステップ164)、自身のローカルデータに対して更新を実行し(ステップ165)、その結果に基づいて更新応答をクライアント45に返す(ステップ166)。さらに、コア移動応答中で通知された複製データに対して、コアが移動したこと、移動後のアドレス、およびデータの更新内容を更新通知に含めてマルチキャストする(ステップ167〜169)。複製データとなったコアデータ17および複製データ27と37は、もし更新通知を受信したらメッセージの内容に従って更新処理を行う(ステップ170,171,172)。
【0040】
図7は図1の無線ネットワークにおいて複製データが存在しないノード50でデータ読み出し要求が発生した場合の動作のシーケンスを示している。
【0041】
ノード50上のクライアント55は該データに対する複製データあるいはコアデータのオブジェクトIDを知らないため、データマネージャ53に対して該データの参照要求を送信する(ステップ181)。データマネージャ53は、該データに対するコアデータを検索するためコア検索要求をブロードキャストする(ステップ182)。本実施形態ではコア検索要求はデータマネージャ23のみが受信する。もしデータマネージャ23がコアデータ17のオブジェクトIDを知らなかったら、コア検索要求を再ブロードキャストする。本実施形態ではデータマネージャ23はコアデータ17のオブジェクトIDを知っているため、コアデータ17のオブジェクトIDをコア通知に含めてデータマネージャ53へ返送する(ステップ183)。
【0042】
コア通知メッセージを受信したデータマネージャ53は、複製データ57を生成し、コアデータ17およびクライアント55のオブジェクトIDを通知する(ステップ184)。複製データ57はコアデータ17に対してデータ要求を送信する(ステップ185)。コアデータ17はローカルデータを読出し(ステップ186)、データの中身をデータ通知に含めて複製データ57へ返送し(ステップ187)、複製データ57を記憶する(ステップ188)。複製データ57は通知された情報からローカルデータを生成し(ステップ189)、クライアント55へ参照応答を返す(ステップ190)。
【0043】
図8は図1の無線ネットワークにおいて複製データが存在しないノード50でデータ更新要求が発生した場合の動作のシーケンスを示している。
【0044】
ノード50上のクライアント55は該データに対する複製データあるいはコアデータのオブジェクトIDを知らないため、データマネージャ53に対して該データの更新要求を送信する(ステップ201)。データマネージャ53は、該データに対するコアデータを検索するためコア検索要求をブロードキャストする(ステップ202)。本実施形態ではコア検索要求はデータマネージャ23のみが受信する。もしデータマネージャ23がコアデータ17のオブジェクトIDを知らなかったら、コア検索要求を再ブロードキャストする。本実施形態ではデータマネージャ23はコアデータ17のオブジェクトIDを知っているため、コアデータ17のオブジェクトIDをコア通知に含めてデータマネージャ53へ返送する(ステップ203)。
【0045】
コア通知メッセージを受信したデータマネージャ53は、複製データ57を生成し、コアデータ17およびクライアント55のオブジェクトIDを通知する(ステップ204)。複製データ57はコアデータ17に対してデータ要求を送信する(ステップ205)。コアデータ17はデータの中身をデータ通知に含めて複製データ57へ返送し(ステップ206)、複製データ57を記憶する(ステップ207)。複製データ57は通知された情報からローカルデータを生成する(ステップ208)。この時点でノード50には複製データが存在する状態となる。
【0046】
次に、複製データ57はデータの更新を実行するため、コア移動要求をコアデータ17へ送信する(ステップ209)。コア移動要求を受信したコアデータ17は、自身が複製データになって(ステップ210)、コア移動応答を複製データ57へ返送する(ステップ211)。この時自身が記憶している複製データのオブジェクトIDも該コア移動応答中に含めて返送する。
【0047】
コア移動応答を受信した複製データ57は自身がコアデータとなり(ステップ212)、更新処理を実行する(ステップ213)。そして、クライアント55へ更新応答を返送するとともに(ステップ214)、コア移動応答中で通知された全ての複製データ17、27、37、47へ更新通知をマルチキャストする(ステップ215〜218)。複製データとなったコアデータ17および複製データ27と37と47は、もし更新通知を受信したらメッセージの内容に従って更新処理を行う(ステップ219〜222)。
【0048】
なお、本実施形態ではコアデータを移動する前に複製データ57がコアデータ17に対してデータ要求を行っているが(ステップ205)、データ要求とコア移動をまとめて一つのメッセージで要求することも可能である。
【0049】
図9は図1の無線ネットワークにおける複製データへのアクセス動作を示すシーケンスを示している。
【0050】
ノード40上の複製データ47は自身が記憶しているコアデータ17に対して通信状況確認メッセージを定期的に送信する(ステップ231)。通信状況確認メッセージを受信したコアデータ17は、通信状況通知メッセージを複製データ47へ返送する(ステップ232)。該通信状況通知メッセージを受信した複製データ47は、通信状況確認メッセージを送信してから通信状況通知メッセージを受信するまでのラウンドトリップタイムがある閾値を超えているかどうかにより、通信状況が良好かどうかを決定する(ステップ233)。本実施形態では通信状況通知の受信によるラウンドトリップタイムがある閾値を超えたため、通信状況を「不良」として決定したものとする。
【0051】
この時ノード40上のクライアント45がデータの更新操作をする場合、複製データ47に更新要求を送信する(ステップ234)。複製データ47は自身が記憶しているコアデータ17との通信状況が「不良」であるので、コアデータ17に対して更新内容とともに更新要求を転送する(ステップ235)。更新要求を受信したコアデータ17は、ローカルデータを更新し(ステップ236)、更新応答を返送する(ステップ237)。複製データ47はその結果を更新応答としてクライアント45に返すとともに(ステップ238)、ローカルデータとして保存する(ステップ239)。
【0052】
次に、複製データ47が定期的な通信状況確認メッセージをコアデータ17へ送信し(ステップ240)、通信状況通知メッセージを受信した時(ステップ241)、ラウンドトリップタイムがある閾値を超えなかったため、通信状況を「良好」と変更したものとする(ステップ242)。この時ノード40上のクライアント45がデータの更新要求を送信すると(ステップ243)、複製データ47はコアデータ17に対してコア移動要求を送信する(ステップ244)。コア移動要求を受信したコアデータ17は、自身が複製データになって(ステップ245)、コア移動応答を複製データ47へ返送する(ステップ246)。この時自身が記憶している複製データのオブジェクトIDも該コア移動応答中に含めて返送する。
【0053】
コア移動応答を受信した複製データ47は自身がコアデータとなり(ステップ247)、自身のローカルデータに対して更新を実行し(ステップ248)、その結果に基づいた更新応答をクライアント45に返すとともに(ステップ249)、コア移動応答中で通知された全ての複製データ17、27、37へ更新通知をマルチキャストする(ステップ250〜252)。複製データとなったコアデータ17および複製データ27と37は、もし更新通知を受信したらメッセージの内容に従って更新処理を行う(ステップ253〜255)。
【0054】
図10は図1の無線ネットワークにおける複製データへのアクセス動作を示すシーケンス図である。
【0055】
ノード40上の複製データ47は自身が記憶しているコアデータ17のオブジェクトIDから存在ノード10のノードIDを抽出し、自ノードのルーティングエージェント46に対して経路情報要求メッセージを送信して(ステップ261)、ノード10への経路のホップ数を獲得する。ルーティングエージェント46は経路情報通知メッセージを複製データ47へ返送する(ステップ262)。経路情報通知メッセージを受信した複製データ47は、獲得したホップ数情報がある閾値を超えるかどうかにより、通信状況が良好かどうかを決定する(ステップ263)。本実施形態では経路情報通知メッセージの受信により獲得したノード10へのホップ数がある閾値を超えたため、通信状況を「不良」として決定したものとする。なお、本実施形態で用いたネットワークではノード40とノード10の間のホップ数は常に1であるが、例えばノード40がノード50のみと通信可能な場所に移動したため、ノード40からノード10への経路のホップ数が3となる場合も考えられる。
【0056】
この時ノード40上のクライアント45がデータの更新操作をする場合、複製データ47に更新要求を送信する(ステップ264)。複製データ47は自身が記憶しているコアデータ17との通信状況が「不良」であるので、コアデータ17に対して更新内容とともに更新要求を転送する(ステップ265)。更新要求を受信したコアデータ17は、ローカルデータを更新し(ステップ266)、更新応答を返送する(ステップ267)。複製データ47はその結果を更新応答としてクライアント45に返すとともに(ステップ268)、ローカルデータとして保存する(ステップ269)。
【0057】
次に、複製データ47が定期的な経路情報要求メッセージをルーティングエージェント46に送信し(ステップ270)、ルーティングエージェント46が経路情報通知メッセージを返送した時(ステップ271)、ノード10へのホップ数がある閾値を下回ったため、通信状況を「良好」と変更したものとする。これは例えばノード40がノード50のみと通信可能な場所から、図1で示された位置に戻ったため、ノード40からノード10への経路のホップ数が1となった場合が考えられる。
【0058】
この時ノード40上のクライアント45がデータの更新要求を送信すると(ステップ273)、複製データ47はコアデータ17に対してコア移動要求を送信する(ステップ274)。コア移動要求を受信したコアデータ17は、自身が複製データになって(ステップ275)、コア移動応答を複製データ47へ返送する(ステップ276)。この時自身が記憶している複製データのオブジェクトIDも該コア移動応答中に含めて返送する。
【0059】
コア移動応答を受信した複製データ47は自身がコアデータとなり(ステップ277)、自身のローカルデータに対して更新を実行し(ステップ278)、その結果に基づいた更新応答をクライアント45に返すとともに(ステップ279)、コア移動応答中で通知された全ての複製データ17、27、37へ更新通知をマルチキャストする(ステップ280〜282)。複製データとなったコアデータ17および複製データ27と37は、もし更新通知を受信したらメッセージの内容に従って更新処理を行う(ステップ283〜285)。
【0060】
図11および図12は図1の無線ネットワークにおける複製データへのアクセス動作を示すシーケンス図である。
【0061】
ノード50上の複製データ57は自身が記憶しているコアデータ17に対して通信状況確認メッセージを定期的に送信する(ステップ301)。通信状況確認メッセージを受信したコアデータ17は、通信状況通知メッセージを複製データ57へ返送する(ステップ302)。通信状況通知メッセージを受信した複製データ57は、通信状況確認メッセージを送信してから通信状況通知メッセージを受信するまでのラウンドトリップタイムを記憶しておく。次に、複製データ57はコアデータ17のオブジェクトIDからその存在ノード10のノードIDを抽出し、自ノードのルーティングエージェント56に対して経路情報要求メッセージを送信して(ステップ303)、ノード10への経路のホップ数を獲得する。ルーティングエージェント56は経路情報通知メッセージを複製データ57へ返送し(ステップ304)、ノード10への経路のホップ数を通知する。経路情報通知メッセージを受信した複製データ57は、獲得したホップ数情報を記憶しておく。さらに、該記憶しておいたラウンドトリップタイムがある閾値を超えるかどうか、および該記憶しておいたラウンドトリップタイムを該記憶しておいたホップ数で割った値がある別の閾値を超えるかどうか、によりコアデータ17との通信状況を決定する(ステップ305)。本実施形態においては、該記憶しておいたラウンドトリップタイムがある閾値を超えたため、通信状況を「不良」として決定したものとする。
【0062】
今、ノード50上のクライアント55が複製データ57に対してデータの更新要求を送信したものとする(ステップ306)。複製データ57は通信状況が「良好」ではないため、まずコアデータ17に対して更新要求を送信する(ステップ307)。更新要求を受信したコアデータ17はローカルデータを更新し(ステップ308)、更新応答を返送する(ステップ309)。更新応答を受信した複製データ57は更新応答をクライアント55へ返すとともに(ステップ310)、自身のローカルデータを更新する(ステップ311)。
【0063】
次に、複製データ57はコアデータ17に対して逐次移動要求を送信する(ステップ312)。逐次移動要求を受信したコアデータ17は、要求元である複製データ57のオブジェクトIDから存在ノード50のノードIDを決定し、自ノードのルーティングエージェント16に経路情報要求を送信して(ステップ313)、ノード50への経路における次ノード情報を要求する。ルーティングエージェント16は経路情報を確認し、経路情報通知を返送して(ステップ314)、次ノードがノード20であることを通知する。経路情報通知を受信したコアデータ17は通知されたノード20上の複製データ27に対して逐次移動要求を送信する(ステップ315)。なお、もしノード20上に複製データが存在しなければ、ノード20上のデータマネージャ23にデータ生成を要求する。
【0064】
逐次移動要求を受信した複製データ27は、コア移動要求をコアデータ17に対して送信する(ステップ316)。コア移動要求を受信したコアデータ17は自身が複製データとなり(ステップ317)、コア移動応答を複製データ27に対して送信する(ステップ318)。この時コア移動応答にはコアデータ17が保持している複製データのオブジェクトID情報が含まれる。コア移動応答を受信した複製データ27は、自身がコアデータとなり(ステップ319)、コア移動応答中で通知された全ての複製データ17、37、47、57へ更新通知をマルチキャストして(ステップ320〜323)、コアデータが移動したことを通知する。更新通知を受信した各複製データ37、47、57は保持するコアデータのオブジェクトIDを更新する(ステップ324〜327)。このようにして、コアデータはノード20上に逐次移動する。なお、この移動はクライアント55で発生した更新要求を処理した後に行われるため、クライアント55からの更新要求の処理時間には影響を与えていない。
【0065】
次に、ノード50上の複製データ57はコアデータ27に対して定期的な通信状況確認メッセージを送信する(ステップ331)。通信状況確認メッセージを受信したコアデータ27は、通信状況通知メッセージを複製データ57へ返送する(ステップ332)。通信状況通知メッセージを受信した複製データ57は、通信状況確認メッセージを送信してから通信状況通知メッセージを受信するまでのラウンドトリップタイムを記憶しておく。次に、複製データ57はコアデータ27のオブジェクトIDから存在ノード20のノードIDを抽出し、自ノードのルーティングエージェント56に対して経路情報要求メッセージを送信して(ステップ333)、ノード20への経路のホップ数を獲得する。ルーティングエージェント56は経路情報通知メッセージを複製データ57へ返送する(ステップ334)。経路情報通知メッセージを受信した複製データ57は、獲得したホップ数情報を記憶しておく。本実施形態では、該記憶しておいたラウンドトリップタイムがある閾値を超えず、該記憶しておいたラウンドトリップタイムを該記憶しておいたホップ数で割った値も別の閾値を超えなかったため、通信状況を「良好」として決定したものとする(ステップ335)。
【0066】
この時ノード50上のクライアント55が再び更新要求を複製データ57に対して送信したものとする(ステップ336)。今度は通信状況が良好なので、複製データ57はコアデータ27に対してコア移動要求を送信する(ステップ337)。コア移動要求を受信したコアデータ27は自身が複製データとなり(ステップ338)、コア移動応答を複製データ57へ返送する(ステップ339)。コア移動応答を受信した複製データ57は自身がコアデータとなり(ステップ340)、ローカルデータを更新して(ステップ341)、更新応答をクライアント55へ返送するとともに(ステップ342)、コア移動応答中で通知された全ての複製データ17、27、37、47へ更新通知をマルチキャストして(ステップ343〜346)、更新したデータ内容およびコアデータが移動したことを通知する。更新通知を受信した各複製データ17、27、37、47は保持するコアデータのオブジェクトIDおよびローカルデータを更新する(ステップ347〜350)。
【0067】
以下の図13以降の実施形態では、図4で示したデータ生成シーケンス中の実行要求(ステップ135〜137)に該データの有効期間情報(最新であることを保証する期間)を含めて通知したものとし、該実行要求を受信した複製データ27、37、および47は該有効期間情報を記憶しているものとする。この場合、コアデータ17は図4のステップ123で、(現在の時刻+あらかじめ決められた一定の時間)を有効情報期間として計算し、記憶する。
【0068】
図13は図1の無線ネットワークにおいてノード10でデータ読み出し、および更新要求が発生した場合の動作のシーケンスを示している。
【0069】
ノード10上のクライアント15がデータの読み出しを行う場合、コアデータ17に参照要求を送信する(ステップ351)。コアデータ17はローカルデータを読み出し(ステップ352)、その結果を参照応答としてクライアント15に返す(ステップ353)。
【0070】
ノード10上のクライアント15がデータの更新を行う場合、コアデータ17に更新要求を送信する(ステップ354)。コアデータ17は自身が記憶する全ての複製データ27、37、47に対して更新要求をマルチキャストする(ステップ355〜357)。更新要求を受信した複製データ27、37、および47は更新実行要求を受信するまでのタイマを設定して確認応答をそれぞれ返送する(ステップ358〜360)。コアデータ17は全ての複製データ27、37、47から確認応答を受信したら、自身のローカルデータに更新を実行するとともに、(現在の時刻+あらかじめ決められた一定の時間)を有効期間情報として新規に記憶し(ステップ361)、クライアント15に更新応答を返送するとともに(ステップ362)、全ての複製データ27、37、47に対して実行要求をマルチキャストするとともに、新規に記憶した有効期間情報を通知する(ステップ363〜365)。実行要求を受信した各複製データ27、37、47は、それぞれ設定した更新実行要求を受信するまでのタイマを解除し、ローカルデータに対して更新処理を実行するとともに、有効期間情報を記憶する(ステップ366〜368)。
【0071】
その後、該データに更新要求が発生しなかった場合、該データの有効期間が過ぎる前にコアデータ17は、データの延長要求を複製データ27、37、47へマルチキャストする(ステップ369〜371)。データの延長を受諾した複製データ27、37、47は延長応答を返送する(ステップ372,373,374)。これを繰り返すことにより、データの有効性を維持する。
【0072】
図14は図1の無線ネットワークにおいてノード40でデータ読み出し要求が発生した場合の動作のシーケンスを示している。
【0073】
ノード40上のクライアント45がデータの読み出しを行う場合、複製データ47に参照要求を送信する(ステップ381)。複製データ47は該データの有効期間内であれば、それが通常のデータ読み出しであっても、最新のデータ読み出しであっても、ローカルデータを読み出し(ステップ382)、その結果を参照応答としてクライアント45に返す(ステップ383)。
【0074】
一方、クライアント45が複製データ47に参照要求を送信した際(ステップ384)、複製データ47が保持するデータの有効期間を過ぎていたら、コアデータ17に対して最新データの参照要求を送信する(ステップ385)。参照要求を受信したコアデータ17は、ローカルデータを参照し(ステップ386)、他の複製データにも通知しているデータの有効期間情報を含んだ参照応答を周辺複製データ47へ返送する(ステップ387)。
【0075】
参照応答を受信した複製データ47は、ローカルデータおよびその有効期間を更新し(ステップ388)、その結果を参照応答としてクライアント45へ返す(ステップ389)。さらに、確認応答をコアデータ17へ返送する(ステップ390)。確認応答を受信したコアデータ17は、該複製データ47のオブジェクトIDを記憶し(ステップ391)、定期的な有効期間の延長通知を複製データ47にも送信するようにする。
【0076】
図15は図1の無線ネットワークにおいてノード40でデータの更新要求が発生した場合の動作のシーケンスを示している。
【0077】
ノード40上のクライアント45がデータの更新を行う場合、複製データ47に更新要求を送信する(ステップ401)。複製データ47はコアデータ17に対してコア移動要求を送信する(ステップ402)。
【0078】
コア移動要求を受信したコアデータ17は、自身が複製データになって(ステップ403)、コア移動応答を複製データ47へ返送する(ステップ404)。該コア移動応答にはコアデータ17が記憶していた複製データのオブジェクトID情報も含まれる。コア移動応答を受信した複製データ47は自身がコアデータとなり(ステップ405)、コア移動応答中に含まれた複製データおよび以前のコアデータ、すなわち複製データ17,27,37に対して更新要求をマルチキャストする(ステップ406〜408)。
【0079】
更新要求を受信した複製データ17,27,37は更新実行要求を受信するまでのタイマを設定して確認応答をそれぞれ返送する(ステップ409〜411)。コアデータ47は全ての複製データ17、27、37から確認応答を受信したら、自身のローカルデータに更新を実行し(ステップ412)、クライアント45に更新応答を返送するとともに(ステップ413)、全ての複製データ17、27、37に対して実行要求をマルチキャストする(ステップ414〜416)。実行要求を受信した各複製データ17,27,37はそれぞれローカルデータに対して更新処理を実行する(ステップ417〜419)。
【0080】
図16は図1の無線ネットワークにおいて複製データが存在しないノード50でデータ更新要求が発生した場合の動作のシーケンスを示している。なお、ノード50でのデータ参照要求については、図7と同じシーケンスとなる。
【0081】
ノード50上のクライアント55は該データに対する複製データあるいはコアデータのオブジェクトIDを知らないため、データマネージャ53に対して該データの更新要求を送信する(ステップ421)。データマネージャ53は、該データに対するコアデータを検索するためコア検索要求をブロードキャストする(ステップ422)。本実施形態ではコア検索要求はデータマネージャ23のみが受信する。もしデータマネージャ23がコアデータ17のオブジェクトIDを知らなかったら、コア検索要求を再ブロードキャストする。本実施形態ではデータマネージャ23はコアデータ17のオブジェクトIDを知っているため、コアデータ17のオブジェクトIDをコア通知に含めてデータマネージャ53へ返送する(ステップ423)。
【0082】
コア通知メッセージを受信したデータマネージャ53は、複製データ57を生成し、コアデータ17およびクライアント55のオブジェクトIDを通知する(ステップ424)。複製データ57はコアデータ17に対してデータ要求を送信する(ステップ425)。コアデータ17はデータの中身をデータ通知に含めて複製データ57へ返送し(ステップ426)、複製データ57を記憶する(ステップ427)。複製データ57は通知された情報からローカルデータを生成する(ステップ428)。この時点でノード50には複製データが存在する状態となる。
【0083】
次に、複製データ57はデータの更新を実行するため、コア移動要求をコアデータ17へ送信する(ステップ429)。コア移動要求を受信したコアデータ17は、自身が複製データになって(ステップ430)、コア移動応答を複製データ57へ返送する(ステップ431)。この時自身が記憶している複製データのオブジェクトIDも該コア移動応答中に含めて返送する。
【0084】
コア移動応答を受信した複製データ57は自身がコアデータとなり(ステップ432)、コア移動応答中に含まれた複製データおよび以前のコアデータ、すなわち複製データ17,27,37,47に対して更新要求を送信する(ステップ433〜436)。
【0085】
更新要求を受信した複製データ17,27,37,および47は更新実行要求を受信するまでのタイマを設定して確認応答をそれぞれ返送する(ステップ437〜440)。コアデータ57は全ての複製データ17、27、37、47から確認応答を受信したら、自身のローカルデータに更新を実行し(ステップ441)、クライアント55に更新応答を返送するとともに(ステップ442)、全ての複製データに対して実行要求を送信する(ステップ443〜446)。実行要求を受信した各複製データ17,27,37,および47はそれぞれローカルデータに対して更新処理を実行する(ステップ447〜450)。
【0086】
なお、本実施形態ではコアデータ17を移動する前に複製データ57がコアデータ17に対してデータ要求を行っているが(ステップ425)、データ要求とコア移動をまとめて一つのメッセージで要求することも可能である。
【0087】
本発明においては、これまで述べてきたシーケンス図のいずれかのメッセージが紛失するなどの障害が発生しても、データの一貫性を保つことができる。以下ではそのような例について図面を用いて説明する。
【0088】
図17は図13で示した動作のシーケンス図において、いくつかのメッセージ通信に障害が発生した場合のシーケンスを示している。
【0089】
ノード10上のクライアント15から更新要求を受信した(ステップ451)コアデータ17は自身が記憶する全ての複製データ27、37、47に対して更新要求をマルチキャストする(ステップ452,453,454)。しかしこの更新要求は障害のため複製データ47には届かなかったものとする。この時更新要求を受信した複製データ27と37は更新実行要求を受信するまでのタイマを設定して確認応答をそれぞれ返送するが(ステップ455,456)、当然複製データ47は確認応答を送信しない。
【0090】
コアデータ17では複製データ47からの確認応答待ちのタイマがタイムアウトするため(ステップ457)、管理している複製データのリストから複製データ47のオブジェクトIDを削除し(ステップ458)、クライアント15に更新の失敗を更新応答で通知するとともに(ステップ459)、確認応答を返してきた複製データ27、37に対して更新取消を送信して(ステップ460,461)、更新要求の取消を通知する。ここで、障害により更新取消は複製データ37によって受信されなかったものとする。
【0091】
更新取消を受信した複製データ27は更新の実行はせずに、以降の参照要求に対応する。一方、複製データ37はコアデータ17からの実行要求待ちタイマがタイムアウトするため(ステップ462)、データを破棄する(ステップ463)。この時点では各ノードのデータは更新されていない情報であるか、全く存在しないかどちらかであり、データの一貫性は保持される。なお、複製データ47が更新要求を受信し、その後送信した確認応答が障害のためコアデータ17に受信されなかった場合も、複製データ37と同様の処理を行う。
【0092】
その後、コアデータ17で該データの有効期間が切れる(ステップ470)前に更新要求が届いた場合(ステップ464)、更新を行おうとしても失敗するため、すぐに更新応答で失敗を通知する(ステップ465)。
【0093】
さらに時間が経過し、複製データ27や47で該データの有効期間を過ぎた場合(ステップ466,467)、該データは無効となるため破棄する(ステップ468,469)。データ破棄後に各複製データへクライアントから参照要求や更新要求があった場合、複製のないノードへのアクセスの場合と同様にコアデータに対して処理を要求する。
【0094】
一方、コアデータで有効期間が切れた場合は(ステップ470)各ノードでの時間の誤差を吸収するため一定時間待ってから、保持している全ての複製データ27、37に対して最新データおよび新たに設定する該データの有効期間を通知する(ステップ471,472)。データ通知を受信した複製データ27および37は、データを新たに生成し(ステップ473,474)、確認応答をそれぞれ返す(ステップ475,476)。もしコアデータ17が一定時間内に確認応答を受信しなければ、該複製データを、保持しているリストから削除する。一方、複製データ47ではデータ破棄後一定時間経過してもコアデータからの通知がなければ、自身が消滅する(ステップ477)。これ以降、クライアントからの要求に対しては通常の処理を行えばよい。
【0095】
なお、コア移動時のコア移動応答メッセージ(例えば図15のステップ404)が紛失した場合、ネットワーク上にコアデータが存在しなくなり、以降データの更新が不可能となるが、該データの有効期間内はデータの更新は行われないため、データの不整合は生じない。また、複数のコアデータが存在することもあり得ない。さらに、コアデータの移動はコアデータとの通信状況が良好な場合のみ実行することにより、コア移動応答メッセージが紛失する可能性は小さい。また、コアデータを逐次的に移動することによっても、コア移動時のコア移動応答メッセージが紛失する可能性を小さくすることが可能である。
【0096】
なお、以上説明したノードは専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスク、CD−ROM等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にプログラムを保持するもの(伝送媒体もしくは伝送波)、その場合のサーバとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。
【0097】
【発明の効果】
以上説明したように、本発明によれば、任意のノードに存在し得るデータごとにネットワーク内で一意なコアデータが更新の権利を持つことにより、ネットワーク全体でのデータの一貫性を保つことが可能である。
【0098】
請求項1に記載の発明では、データの更新時にはコアデータを更新要求発生ノードに移動してから行い、最新のデータ読み出しはコアデータから行うため、データ更新後のデータの不整合は発生しない。本発明はデータ更新後に該更新発生ノードでさらにデータ参照要求が発生し易い場合に、ノード間通信を不要とするため効率的である。特に、トポロジが変化し易くその変化が予測不能なネットワークにおいては、ノード間通信なしにデータの参照が可能であることは、データの可用性を高めることを可能とする。
【0099】
また、請求項2〜請求項6に記載の発明では、コアデータへの通信のラウンドトリップタイムやホップ数やそれらから計算した値を用いてコアデータへのアクセス状況を決定し、データの更新要求発生時において、コアデータへのアクセス状況が悪い場合には、コアデータを移動するのではなくデータの更新要求をコアデータに依頼するため、コア移動時のネットワーク障害により、コアデータが消滅して以降のデータ更新が一切できなくなる、などの障害が発生する可能性を低く抑えることができる。
【0100】
一方、コアデータとデータ更新の要求元の間の経路のホップ数が大きい場合に、長いホップ数を一度にコアが移動すると、メッセージの欠落が生じ易く、コアデータが消滅して以降のデータ更新が一切できなくなる可能性が高い。請求項3に記載の発明では、データ変更のたびに逐次的にデータ更新元に向けてコアデータを移動することにより、このような障害が発生する可能性を低く抑えることができる。
【0101】
請求項7に記載の発明は、データに対して有効期間を設けることにより、複製データの存在するノードでの参照要求をノード間通信なしに実行可能とするため、従来方式では不可能であった、予測不可能なネットワーク切断時のデータの厳格な一貫性の維持が可能となる。
【0102】
また、本発明においては実施形態でも示した通り、データ更新に関するメッセージが紛失しても、データの一貫性を保つことが可能である。また途中でノード間の通信が途絶えても、一定期間経過後にはデータの一貫性を保ったまま通常の更新や参照が可能であるため、データの可用性の低下を抑えている。
【0103】
したがって、本発明は、トポロジが変化し易く、その変化が予測可能なネットワーク内に分散配置されたデータの複製間の整合を頑強に保持しつつ、ノード間通信のコストを削減してデータの可用性の低下を抑えたい場合に効果がある。
【図面の簡単な説明】
【図1】本発明の一実施形態の無線ネットワークの構成図である。
【図2】図1の実施形態におけるデータの実現方法の説明図である。
【図3】データマネージャの動作を示すフローチャートである。
【図4】データ生成動作の例を示すシーケンス図である。
【図5】コアデータへのアクセス動作の例を示すシーケンス図である。
【図6】複製データへのアクセス動作の例を示すシーケンス図である。
【図7】複製の存在しないノードにおける参照動作の例を示すシーケンス図である。
【図8】複製の存在しないノードにおける更新動作の例を示すシーケンス図である。
【図9】複製データへのアクセス動作の例を示すシーケンス図である。
【図10】データへのアクセス動作の例を示すシーケンス図である。
【図11】通信状況が良好でない場合のデータ更新動作の例を示すシーケンス図である。
【図12】通信状況が良好な場合のデータ更新動作の例を示すシーケンス図である。
【図13】コアデータへのアクセス動作の例を示すシーケンス図である。
【図14】複製データでのデータ読み出し動作の例を示すシーケンス図である。
【図15】複製データでのデータ更新動作の例を示すシーケンス図である。
【図16】複製の存在しないノードにおけるデータ更新動作の例を示すシーケンス図である。
【図17】メッセージ紛失時の動作の例を示すシーケンス図である。
【図18】従来方式におけるデータ更新動作の例を示すシーケンス図である。
【符号の説明】
10,20,30,40,50,60 ノード
13,23,33,43,53,61 データマネージャ
15,45,55 クライアント
16,46,56 ルーティングエージェント
17 コアデータ
27,37,47,57 複製データ
62 データ対応表
63 作成済データ表
64 オブジェクトデータ
65 ローカルデータ
101〜120,121〜140,141〜146,151〜172 ステップ
181〜190,201〜222,231〜255,261〜285 ステップ
301〜327,331〜350,351〜374,381〜391 ステップ
401〜419,421〜450,451〜477,501〜527 ステップ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to data configured by a plurality of nodes having a radio interface, identified by a unique identifier, and a duplicate data management method in a radio network in which a plurality of the data is distributed and arranged in the plurality of nodes.
[0002]
[Prior art]
Conventionally, as a method for managing replicated data, it is possible to modify only one master data in the network, and reflect the modified contents of the master data to the replicated data sequentially by communication, or the replicated data is not necessarily the latest. The method of not guaranteeing has been taken. However, in order to avoid load concentration on the master data, to reduce traffic in the network, or to enable data correction when the network topology changes and access to the master data becomes impossible, It is necessary to be able to directly modify the replicated data itself.
[0003]
For this reason, for example, in the “replica database matching apparatus and the replicate database match method” described in Japanese Patent Application Laid-Open No. 11-3263, the database is distributed and distributed at a plurality of sites. It is possible to update the database at an arbitrary site by verifying whether or not the packet is exchanged between the sites. However, data cannot be synchronized with sites that cannot communicate, and data inconsistencies may occur between the time data is updated at each site and the information is reflected at other sites. is there.
[0004]
In the distributed file system, a part of the file is stored as a cache in a client that uses the file service to increase the availability of the file. For example, “Kistler, JJ, Satyanarayanan, M., mud is connected Operation in the Coda File System in ACM Transactions on Computer Systems, Feb. 1992, Vol. 10, No. 1, pp. 3-25” In the replication management method in the distributed file system Coda, in a disconnected state where the client cannot access the server, an operation can be performed on the client cache. Thereafter, when reconnecting to the server, the update information to the cache is compared with the information in the server. When a data mismatch is detected as a result of the comparison, the user is notified and repaired manually. In other words, temporary data inconsistencies are allowed.
[0005]
Furthermore, in a mobile database having a mobile terminal as a client, even when the client leaves the network, data correction at the client is allowed while maintaining strong data consistency. For example, it is described on page 114 of "Daniel Barbara, 溺 obile Computing and Databases-A Survey in IEEE Transactions on Knowledge and Data Engineering, Jan. 1999, Vol.11, No.1, pp.108-117". In the Wang and Paris method, when a copy of a certain data is distributed, in order to update any one of the replicas, a predetermined set of replicas (CSCRs) is notified and all the members of the CSCR are notified. When the confirmation is received, the update is regarded as successful. If some copies do not return confirmation, only the copy that has returned confirmation is registered as a new CSCR to another referee entity. If this registration is successful, the update succeeds, and if registration fails, the update fails. Here, when the mobile terminal leaves the network, it becomes impossible to communicate with any CSCR member, so that the copy on the terminal cannot be updated. Therefore, before the mobile terminal leaves, by registering only itself as a member of the new CSCR with respect to the referee, subsequent updates to the duplicate are possible without communicating with other nodes.
[0006]
FIG. 18 shows an example of a processing sequence of a duplicate data management method using such a referee. Assume that the client 600 and the replica 602 exist on a mobile terminal that is the same node, and the other replicas 604, 606, 608, and referrals 610 all exist on different nodes. Further, it is assumed that the duplicate 602, duplicate 604, duplicate 606, and duplicate 608 are members of the CSCR.
[0007]
When the client 600 updates a certain data, if an update request is transmitted to the replica 602 (step 501), the replica 602 transmits an update request to the replicas 604, 606, and 608 that are members of the CSCR. (Steps 502 to 504). Each of the duplicates 604, 606, and 608 that has received the update request updates its own data, and then returns a confirmation response to the duplicate 602 (steps 505 to 507). Upon receiving confirmation responses from all members of the CSCR, the replica 602 returns a commit request to all members of the CSCR (steps 508 to 510) and returns confirmation responses to the client 600 (step 511).
[0008]
Next, a sequence when a failure occurs in communication with the copy 608 itself or with the copy 608 will be described. The client 600 transmits an update request to the replica 602 (step 512), and the replica 602 transmits an update request to the replicas 604, 606, and 608 that are members of the CSCR (steps 513 to 515). At this time, the replicas 604 and 606 each return a confirmation response (steps 516 and 517), but the replication 602 cannot receive the confirmation response from the replication 608 due to a failure. Accordingly, a registration request is transmitted to register the duplicates 604 and 606 that have returned the confirmation response and the duplicate 602 themselves as new CSCRs in the referral 610 (step 518). Upon receipt of this, the referee 610 returns a change confirmation response to the copy 602 (step 519). As a result, since the copy 602 has received confirmation responses from all members of the CSCR, it transmits a commit request to the copies 604 and 606 (step 520) and returns a confirmation response to the client 600 (step 522). In this way, updating is possible even in a situation where communication with a member of a certain CSCR is not possible.
[0009]
Next, when the mobile terminal in which the client 600 and the replica 602 exist leaves the network, the replica 602 first registers itself with the referee 610 as a member of the only CSCR (step 523). When the referee 610 accepts this change, a change confirmation response is returned to the copy 602 (step 524). After the mobile terminal leaves the network (step 525), even if the client 600 sends an update request to the copy 602 (step 526), the copy 602 updates the data and confirms the response because the member of the CSCR is only itself. Can be returned (step 527).
[0010]
[Problems to be solved by the invention]
As mentioned above, traditional replicated data management methods assume reliable access to servers and all replication sites, or allow temporary inconsistencies between replicas instead of increasing data availability. The update right of the copy is managed on the assumption that the mobile terminal is known to leave the network. Thus, in a network where the topology changes frequently and the change is unpredictable, data can be stored at a node disconnected from the network while ensuring strict alignment between the data to prevent even temporary inconsistencies. It is impossible to update.
[0011]
On the other hand, considering a network in which multiple terminals are expected to be connected in the future and connected via wireless links, there are frequent changes in the topology such as the network being disconnected due to movement of one terminal or power failure. is assumed. Moreover, such changes are generally unpredictable from other nodes. Considering applications that do not allow even temporary inconsistencies on such networks, such as the distribution of electronic money and the use of content that is protected by copyright and has a limited number of concurrent users, data must be strictly aligned. Data must be updated at the mobile terminal while guaranteeing.
[0012]
The object of the present invention is to solve such a conventional problem, and in a network where the topology is dynamically changed and is unpredictable, while maintaining a strict match between the replicates of distributed data, It is an object of the present invention to provide a method for managing replicated data and a wireless network that prevent a decrease in availability of data update.
[0013]
[Means for Solving the Problems]
  In order to achieve the above object, the replication data management method of the present invention comprises:
  At the time of data generation, core data that can execute update processing that is correction or deletion processing of the data is generated at the data generation node,ArrangementAs well as, Peripheral nodes that can directly communicate with the node where the core data exists via a wireless linkTheCreate and place replicated data that can only be referenced by data,
  CoAdataThe node whereReplication dataAll nodes where theKeep the addressAs well as, Core dataThe othernodeInMoveLetWhenIn addition,Know before movingDoubleMade dataAll nodes where theMove againstOf the previous nodeInform the address,
  Each node where the duplicate data exists holds the address of the node where the core data exists, and manages the communication status between the node where the core data exists and the own node,
  If an update request or reference request to the data occurs at the node where the core data exists, the nodeThe coreExecute the request on the data,
  If a data update request occurs on a node with replicated data,If the communication status is good, the node automatically cooperates with the node where the core data exists.After moving the core data to the node,The coreFor dataFurtherNew processingRun,If the communication status is not good, the update request is forwarded to the node where the core data exists, and the node where the core data which received the update request executes the update processing of the core data, and Send the result to the node where the update request occurred,
  If a request to reference the latest data to the data occurs on the node where the replicated data exists,The nodeCore dataTo the node whereRequest for the latest informationtransferAndTheReceived the latest information reference requestTheCore dataThe node where theThe latest information on the dataLatest informationReference requestThe node where the error occurredInSendAnd
  If a normal reference request to the data occurs on the node where the replicated data exists,The nodeData in the nodeInformationTo the requesterSendShi,
  CoIf a data reference request occurs on a node that has no data or duplicate data,The nodeIn cooperation with the node where the core data existsSelfGenerate and place duplicate data on nodesAfter that, the data information in the local node is sent to the request source..
[0014]
Here, “at the time of data generation ...”, since subsequent data update at the generation node and data reading at the peripheral nodes are executed locally, “when core data moves from node to node…” For "", the replicated data knows the location of the latest core data, so for "When a data update request occurs at a node where the replicated data exists ...", when subsequent data updates occur at that node In order to enable local execution, the inter-node communication is performed only when the latest data is necessary for “when a request for referring to the latest data to the data occurs on the node where the replicated data exists”. In order to make it possible to refer to the data locally, it is the main operation meaning. In other words, it is highly probable that the node that generated or updated the data will continue to update the data, and the processing around the data generating node is likely to cause data read. The aim of the present invention is to reduce the number of necessary inter-node communications.
[0015]
In the present invention, for each data, one core data that can be updated is arranged in the network, and a plurality of replicated data that can only be read are arranged in a distributed manner, thereby maintaining the consistency of the data. High availability, and core data is not placed in a fixed location, but is dynamically moved according to data usage and network conditions, and can be communicated with the core data when the topology changes Consistency is maintained by validating only the data.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings.
[0017]
FIG. 1 is a configuration diagram of a wireless network according to an embodiment of the present invention.
[0018]
The wireless network of the present embodiment is composed of a node 10, a node 20, a node 30, a node 40, and a node 50 each having a wireless interface (for example, a wireless LAN card). Node 10 can communicate directly with node 20, node 30, and node 40, node 20 can communicate directly with node 10 and node 50, node 30 and node 40 can only communicate with node 10, and node 50 can communicate directly with only node 20, respectively. It is. In the initial state, each node 10, 20, 30, 40, 50 has a data manager 13, 23, 33, 43, 53 for receiving a data operation request (data generation, update, reference) from the client. The duplicate data 27, 37, 47, 57 does not exist. In addition, the nodes 10, 45, and 55 request the data operation in the node 10, the node 40, and the node 50, respectively. Further, a routing agent that manages packet route information exists on each node. In FIG. 1, only the routing agents 16, 46, and 56 on the node 10, the node 40, and the node 50 are shown.
[0019]
In this embodiment, the clients 15, 45, 55, the data managers 13, 23, 33, 43, 53, the routing agents 16, 46, 56, the core data 17, and the duplicate data 27, 37, 47, 57 communicate with each other. By specifying the object ID of the other party, message communication can be performed asynchronously without depending on the position.
[0020]
Furthermore, in the present embodiment, it is assumed that broadcast to all nodes existing within the radio reach from each node, multicast to several nodes, and unicast communication to a specific node are possible. In addition, it is assumed that unicast and multicast communication can be performed even for nodes existing within a range where radio waves do not reach by relaying communication by some nodes.
[0021]
FIG. 2 shows a data implementation method by the data managers 13, 23, 33, 43, 53 (hereinafter collectively referred to as the data manager 61). The data manager 61 includes a data correspondence table 62 that is a correspondence table between a data name that is a unique identifier and an object ID of a data object (hereinafter simply referred to as data) corresponding to the data, and a data name generated on the node 60. It is assumed that the created data table 63 in which is recorded is managed. Here, it is assumed that the data name is composed of a node ID and an arbitrary character string, and the object ID is composed of a node ID and an arbitrary number string. The data manager 61 receives a data generation request, a data update request, and a data reference request from another object or another object of the own node 60, and each request includes a corresponding data name.
[0022]
FIG. 3 is a flowchart showing the operation of the data manager 61.
[0023]
Waiting for message reception (step 101), receiving a message (step 102), and determining the message type (step 103).
[0024]
When the data generation request is received, if an entry corresponding to the data name in the data generation request exists in the created data table 63 or the data correspondence table 62, an error is returned to the request source (steps 104 to 106). Otherwise, the data 64 is generated in its own node, the request source of the data generation request is notified to the data 64, and the object ID of the data 64 is registered as the object ID corresponding to the data name in the data generation request (Step 107), the data name in the data generation request is registered in the created data table 63 (Step 108).
[0025]
When the data manager 61 receives a data update request or data reference request, if an entry including the data name exists in the data correspondence table 62, the request is transferred to the corresponding object ID (steps 109 and 110). ). When the data update request or the data reference request is received, if there is no entry including the data name in the data correspondence table 62, the core data search request is broadcast to the surrounding nodes (step 111). The core data search request includes the search source object ID and the sequence number. If the core data notification for the core data search request is not received for a predetermined time, an error is returned to the request source of the data update request or data reference request (steps 112 and 114). If the core data notification is received within a predetermined time, the data 64 is created in the own node and the object ID of the core data included in the core notification and the request source of the data update request or data reference request are stored in the data 64. (Steps 112 and 113).
[0026]
When the data manager 61 receives a core data search request, if the search source object ID of the core data search request matches its own object ID, a set of the search source object ID and sequence number of the core data search request is set. If it has already been received, the core data search request is discarded (steps 115 to 117). Otherwise, if the data name in the core data search request exists in the data correspondence table 62, the object ID of the corresponding entry is returned to the request source object ID of the core data search request (step 118). , 119). If neither of the above conditions is satisfied, the set of the search source object ID and sequence number of the core data search request is stored, and the core data search request is broadcast to surrounding nodes (steps 118 and 120).
[0027]
It is assumed that the data receives a data update request or a data reference request from another node or another object in the own node, and each request includes a corresponding data name.
[0028]
FIG. 4 shows a sequence of data generation operation when a data generation request is generated at the node 10 in the wireless network of FIG.
[0029]
First, the client 15 on the node 10 transmits a data generation request to the data manager 13 on the node 10 in order to save a file on the memory (step 121). The data manager 13 generates core data 17 on the node 10 (step 122), the core data 17 generates its own local data (step 123), and returns a generation response to the client 15 (step 124). The local data information replication generation request is broadcast (steps 125 to 127).
[0030]
The data managers 23, 33, and 43 that have received the generation request generate the replicated data 27, 37, and 47 in the respective nodes (steps 128, 129, and 130), and the replicated data 27, 37, and 47 are stored in the core data 17. Confirmation responses are returned (steps 131, 132, 133). In steps 125 to 127 and 128 to 130, the core data 17 notifies the object ID, which is its own address, to the duplicate data via the data manager of each node when it is generated.
[0031]
The core data 17 waits for a predetermined time to receive the confirmation response, and then stores the object ID (address) of the duplicate data that has received the confirmation response (step 134), and requests to execute data generation for all the duplicate data stored. Is multicast (steps 135 to 137). The duplicate data 27, 37, and 47 that have received the execution request generate local data (steps 138, 139, and 140).
[0032]
FIG. 5 shows an operation sequence when a data read and update request is generated in the node 10 in the network of FIG.
[0033]
When the client 15 on the node 10 reads data, a reference request is transmitted to the core data 17 (step 141). The core data 17 reads local data (step 142), and returns the result to the client 15 as a reference response (step 143).
[0034]
When the client 15 updates the data, an update request is transmitted to the core data 17 (step 144). The core data 17 updates the local data (step 145), and returns an update response to the client 15 based on the result (step 146).
[0035]
FIG. 6 shows an operation sequence when a data read and update request is generated in the node 40 in the wireless network of FIG.
[0036]
When the client 45 on the node 40 performs normal data reading, a reference request is transmitted to the duplicated data 47 (step 151). The duplicate data 47 reads local data (step 152) and returns the result to the client 45 as a reference response (step 153).
[0037]
Next, when the client 45 reads the latest data, a reference request is transmitted to the duplicated data 47 (step 154). In order to obtain the latest data, the duplicated data 47 transmits a reference request to the core data 17 stored therein (step 155). The core data 17 that has received the reference request reads the local data (step 156), and returns the result to the duplicate data 47 as a reference response (step 157). The duplicate data 47 returns the result to the client 45 (step 158) and saves it as local data (step 159).
[0038]
When the client 45 updates data, an update request is transmitted to the duplicate data 47 (step 160). The duplicated data 47 transmits a core movement request to the core data 17 stored therein (step 161). The core data 17 that has received the core transfer request is itself duplicated data (step 162), and a core movement response is returned to the duplicated data 47 (step 163). At this time, the object ID of the duplicate data stored by itself is also returned in the core movement response.
[0039]
The replicated data 47 that has received the core movement response becomes itself core data (step 164), updates its own local data (step 165), and returns an update response to the client 45 based on the result (step 165). 166). Further, for the replicated data notified in the core movement response, the fact that the core has moved, the address after the movement, and the update contents of the data are included in the update notification and multicast (steps 167 to 169). The core data 17 and the duplicate data 27 and 37 that have become duplicate data are updated according to the content of the message if an update notification is received (steps 170, 171, and 172).
[0040]
FIG. 7 shows an operation sequence when a data read request is generated in the node 50 in which no duplicate data exists in the wireless network of FIG.
[0041]
Since the client 55 on the node 50 does not know the object ID of the duplicate data or core data for the data, it sends a reference request for the data to the data manager 53 (step 181). The data manager 53 broadcasts a core search request to search for core data for the data (step 182). In this embodiment, only the data manager 23 receives the core search request. If the data manager 23 does not know the object ID of the core data 17, it rebroadcasts the core search request. In this embodiment, since the data manager 23 knows the object ID of the core data 17, the object ID of the core data 17 is included in the core notification and returned to the data manager 53 (step 183).
[0042]
The data manager 53 that has received the core notification message generates the duplicate data 57 and notifies the core data 17 and the object ID of the client 55 (step 184). The duplicate data 57 transmits a data request to the core data 17 (step 185). The core data 17 reads the local data (step 186), includes the data contents in the data notification, returns it to the duplicate data 57 (step 187), and stores the duplicate data 57 (step 188). The duplicate data 57 generates local data from the notified information (step 189), and returns a reference response to the client 55 (step 190).
[0043]
FIG. 8 shows an operation sequence when a data update request is generated in the node 50 in which no duplicate data exists in the wireless network of FIG.
[0044]
Since the client 55 on the node 50 does not know the object ID of the duplicated data or core data for the data, it sends an update request for the data to the data manager 53 (step 201). The data manager 53 broadcasts a core search request to search for core data for the data (step 202). In this embodiment, only the data manager 23 receives the core search request. If the data manager 23 does not know the object ID of the core data 17, it rebroadcasts the core search request. In this embodiment, since the data manager 23 knows the object ID of the core data 17, the object ID of the core data 17 is included in the core notification and returned to the data manager 53 (step 203).
[0045]
The data manager 53 that has received the core notification message generates the duplicate data 57 and notifies the core data 17 and the object ID of the client 55 (step 204). The duplicate data 57 transmits a data request to the core data 17 (step 205). The core data 17 includes the data contents in the data notification and returns it to the duplicate data 57 (step 206), and stores the duplicate data 57 (step 207). The duplicate data 57 generates local data from the notified information (step 208). At this point, the node 50 is in a state where duplicate data exists.
[0046]
Next, the copy data 57 transmits a core movement request to the core data 17 in order to update the data (step 209). The core data 17 that has received the core transfer request becomes copy data (step 210), and returns a core transfer response to the copy data 57 (step 211). At this time, the object ID of the duplicate data stored by itself is also returned in the core movement response.
[0047]
The replicated data 57 that has received the core movement response itself becomes core data (step 212), and the update process is executed (step 213). Then, an update response is returned to the client 55 (step 214), and an update notification is multicast to all the replicated data 17, 27, 37, 47 notified in the core move response (steps 215 to 218). The core data 17 and the duplicate data 27, 37, and 47 that have become duplicate data are updated according to the contents of the message if an update notification is received (steps 219 to 222).
[0048]
In this embodiment, the copy data 57 makes a data request to the core data 17 before moving the core data (step 205), but the data request and the core move are requested together in one message. Is also possible.
[0049]
FIG. 9 shows a sequence showing an operation of accessing the replicated data in the wireless network of FIG.
[0050]
The duplicate data 47 on the node 40 periodically transmits a communication status confirmation message to the core data 17 stored therein (step 231). The core data 17 that has received the communication status confirmation message returns a communication status notification message to the duplicate data 47 (step 232). The duplicate data 47 that has received the communication status notification message determines whether the communication status is good depending on whether the round trip time from the transmission of the communication status confirmation message to the reception of the communication status notification message exceeds a certain threshold. Is determined (step 233). In this embodiment, since the round trip time due to reception of the communication status notification exceeds a certain threshold, it is assumed that the communication status is determined as “bad”.
[0051]
At this time, when the client 45 on the node 40 performs a data update operation, an update request is transmitted to the duplicate data 47 (step 234). Since the replication status of the duplicate data 47 with the core data 17 stored therein is “bad”, an update request is transferred to the core data 17 together with the update contents (step 235). The core data 17 that has received the update request updates the local data (step 236) and returns an update response (step 237). The duplicate data 47 returns the result to the client 45 as an update response (step 238) and saves it as local data (step 239).
[0052]
Next, when the replication data 47 transmits a periodic communication status confirmation message to the core data 17 (step 240) and receives the communication status notification message (step 241), the round trip time does not exceed a certain threshold value. Assume that the communication status is changed to “good” (step 242). At this time, when the client 45 on the node 40 transmits a data update request (step 243), the duplicated data 47 transmits a core movement request to the core data 17 (step 244). The core data 17 that has received the core transfer request becomes copy data itself (step 245), and returns a core transfer response to the copy data 47 (step 246). At this time, the object ID of the duplicate data stored by itself is also returned in the core movement response.
[0053]
The replicated data 47 that has received the core movement response becomes itself core data (step 247), updates its own local data (step 248), and returns an update response based on the result to the client 45 ( Step 249), the update notification is multicast to all the replicated data 17, 27, 37 notified in the core movement response (Steps 250 to 252). The core data 17 and the duplicate data 27 and 37 that have become duplicate data are updated according to the content of the message if an update notification is received (steps 253 to 255).
[0054]
FIG. 10 is a sequence diagram showing an operation of accessing the replicated data in the wireless network of FIG.
[0055]
The replicated data 47 on the node 40 extracts the node ID of the existing node 10 from the object ID of the core data 17 stored by itself, and transmits a route information request message to the routing agent 46 of the own node (step) 261), the number of hops of the route to the node 10 is acquired. The routing agent 46 returns a route information notification message to the duplicate data 47 (step 262). The replicated data 47 that has received the route information notification message determines whether the communication status is good depending on whether the acquired hop count information exceeds a certain threshold (step 263). In this embodiment, it is assumed that the communication status is determined as “bad” because the number of hops to the node 10 acquired by receiving the route information notification message exceeds a certain threshold. In the network used in this embodiment, the number of hops between the node 40 and the node 10 is always 1. However, for example, the node 40 has moved to a place where only the node 50 can communicate, so the node 40 to the node 10 A case where the number of hops of the route is 3 is also conceivable.
[0056]
At this time, when the client 45 on the node 40 performs a data update operation, an update request is transmitted to the duplicate data 47 (step 264). Since the duplicate data 47 has a communication status of “bad” with the core data 17 stored in itself, the update request is transferred to the core data 17 together with the update contents (step 265). The core data 17 that has received the update request updates the local data (step 266) and returns an update response (step 267). The duplicate data 47 returns the result to the client 45 as an update response (step 268) and saves it as local data (step 269).
[0057]
Next, when the replication data 47 sends a periodic route information request message to the routing agent 46 (step 270), and the routing agent 46 returns a route information notification message (step 271), the number of hops to the node 10 is It is assumed that the communication status is changed to “good” because it is below a certain threshold. For example, a case where the number of hops of the path from the node 40 to the node 10 becomes 1 because the node 40 returns to the position shown in FIG.
[0058]
At this time, when the client 45 on the node 40 transmits a data update request (step 273), the duplicated data 47 transmits a core movement request to the core data 17 (step 274). The core data 17 that has received the core move request becomes copy data itself (step 275), and returns a core move response to the copy data 47 (step 276). At this time, the object ID of the duplicate data stored by itself is also returned in the core movement response.
[0059]
The replicated data 47 that has received the core move response itself becomes core data (step 277), updates its own local data (step 278), and returns an update response based on the result to the client 45 ( In step 279), update notification is multicast to all the replicated data 17, 27 and 37 notified in the core movement response (steps 280 to 282). The core data 17 and the duplicate data 27 and 37 that have become duplicate data are updated according to the content of the message if an update notification is received (steps 283 to 285).
[0060]
FIG. 11 and FIG. 12 are sequence diagrams showing an access operation to replicated data in the wireless network of FIG.
[0061]
The duplicate data 57 on the node 50 periodically transmits a communication status confirmation message to the core data 17 stored therein (step 301). The core data 17 that has received the communication status confirmation message returns a communication status notification message to the duplicated data 57 (step 302). The replicated data 57 that has received the communication status notification message stores the round trip time from the transmission of the communication status confirmation message to the reception of the communication status notification message. Next, the duplicated data 57 extracts the node ID of the existing node 10 from the object ID of the core data 17, transmits a route information request message to the routing agent 56 of its own node (step 303), and sends it to the node 10. Get the number of hops for the route. The routing agent 56 returns a route information notification message to the duplicate data 57 (step 304), and notifies the number of hops of the route to the node 10. The duplicate data 57 that has received the route information notification message stores the acquired hop number information. Further, whether the stored round trip time exceeds a certain threshold, and whether the stored round trip time divided by the stored hop count exceeds another threshold Whether or not the communication status with the core data 17 is determined is determined (step 305). In the present embodiment, it is assumed that the communication status is determined as “bad” because the stored round trip time exceeds a certain threshold.
[0062]
Assume that the client 55 on the node 50 has transmitted a data update request to the duplicated data 57 (step 306). Since the replication status of the duplicate data 57 is not “good”, an update request is first transmitted to the core data 17 (step 307). The core data 17 that has received the update request updates the local data (step 308), and returns an update response (step 309). The replicated data 57 that has received the update response returns an update response to the client 55 (step 310) and updates its own local data (step 311).
[0063]
Next, the replicated data 57 transmits a sequential movement request to the core data 17 (step 312). The core data 17 that has received the sequential movement request determines the node ID of the existing node 50 from the object ID of the replication data 57 that is the request source, and transmits a route information request to the routing agent 16 of the own node (step 313). Request next node information on the route to the node 50. The routing agent 16 confirms the route information, returns a route information notification (step 314), and notifies that the next node is the node 20. The core data 17 that has received the route information notification sequentially transmits a movement request to the replicated data 27 on the notified node 20 (step 315). If there is no duplicate data on the node 20, the data manager 23 on the node 20 is requested to generate data.
[0064]
The replicated data 27 that has received the sequential movement request transmits a core movement request to the core data 17 (step 316). The core data 17 that has received the core movement request is itself duplicated data (step 317), and a core movement response is transmitted to the duplicated data 27 (step 318). At this time, the core movement response includes the object ID information of the duplicate data held in the core data 17. The replicated data 27 that has received the core migration response becomes itself core data (step 319), and multicasts an update notification to all the replicated data 17, 37, 47, 57 notified in the core migration response (step 320). ˜323), it is notified that the core data has moved. Each copy data 37, 47, 57 that has received the update notification updates the object ID of the core data held (steps 324 to 327). In this way, the core data sequentially moves on the node 20. Note that this movement is performed after the update request generated by the client 55 is processed, so that the processing time of the update request from the client 55 is not affected.
[0065]
Next, the replicated data 57 on the node 50 transmits a periodic communication status confirmation message to the core data 27 (step 331). The core data 27 that has received the communication status confirmation message returns a communication status notification message to the duplicate data 57 (step 332). The replicated data 57 that has received the communication status notification message stores the round trip time from the transmission of the communication status confirmation message to the reception of the communication status notification message. Next, the duplicated data 57 extracts the node ID of the existing node 20 from the object ID of the core data 27, transmits a route information request message to the routing agent 56 of the own node (step 333), and sends to the node 20 Get the number of hops in the route. The routing agent 56 returns a route information notification message to the duplicate data 57 (step 334). The duplicate data 57 that has received the route information notification message stores the acquired hop number information. In the present embodiment, the stored round trip time does not exceed a certain threshold, and the value obtained by dividing the stored round trip time by the stored number of hops does not exceed another threshold. Therefore, it is assumed that the communication status is determined as “good” (step 335).
[0066]
At this time, it is assumed that the client 55 on the node 50 transmits an update request to the copy data 57 again (step 336). Since the communication status is good this time, the duplicate data 57 transmits a core movement request to the core data 27 (step 337). The core data 27 that has received the core move request itself becomes duplicate data (step 338), and a core move response is returned to the duplicate data 57 (step 339). The replicated data 57 that has received the core move response itself becomes core data (step 340), updates the local data (step 341), returns an update response to the client 55 (step 342), and is in the core move response. An update notification is multicast to all the notified replicated data 17, 27, 37, and 47 (steps 343 to 346) to notify that the updated data contents and core data have moved. Each copy data 17, 27, 37, 47 that has received the update notification updates the object ID and local data of the core data held (steps 347 to 350).
[0067]
In the following embodiments in FIG. 13 and subsequent figures, the execution request (steps 135 to 137) in the data generation sequence shown in FIG. 4 is notified including the validity period information (a period for guaranteeing the latest) of the data. It is assumed that the duplicate data 27, 37, and 47 that have received the execution request store the valid period information. In this case, the core data 17 is calculated and stored in step 123 of FIG. 4 as (the current time + a predetermined time) as the effective information period.
[0068]
FIG. 13 shows a sequence of operations when a data read and update request is generated in the node 10 in the wireless network of FIG.
[0069]
When the client 15 on the node 10 reads data, a reference request is transmitted to the core data 17 (step 351). The core data 17 reads local data (step 352), and returns the result to the client 15 as a reference response (step 353).
[0070]
When the client 15 on the node 10 updates data, an update request is transmitted to the core data 17 (step 354). The core data 17 multicasts an update request to all the duplicate data 27, 37, 47 stored in itself (steps 355 to 357). The copy data 27, 37, and 47 that have received the update request set a timer until the update execution request is received, and return confirmation responses (steps 358 to 360), respectively. When the core data 17 receives confirmation responses from all the replicated data 27, 37, and 47, it updates its own local data and uses (current time + predetermined predetermined time) as new effective period information. (Step 361), an update response is returned to the client 15 (step 362), an execution request is multicast to all the duplicate data 27, 37, and 47, and the newly stored validity period information is notified. (Steps 363 to 365). Each copy data 27, 37, 47 that has received the execution request cancels the timer until the set update execution request is received, executes the update process on the local data, and stores the valid period information ( Steps 366-368).
[0071]
Thereafter, when an update request is not generated for the data, the core data 17 multicasts a data extension request to the replicated data 27, 37, and 47 before the valid period of the data expires (steps 369 to 371). The duplicate data 27, 37, 47 that has accepted the extension of data returns an extension response (steps 372, 373, 374). By repeating this, the validity of the data is maintained.
[0072]
FIG. 14 shows an operation sequence when a data read request is generated at the node 40 in the wireless network of FIG.
[0073]
When the client 45 on the node 40 reads data, a reference request is transmitted to the duplicate data 47 (step 381). If the replicated data 47 is within the valid period of the data, the local data is read (step 382) regardless of whether it is normal data reading or latest data reading, and the result is used as a reference response to the client. It returns to 45 (step 383).
[0074]
On the other hand, when the client 45 transmits a reference request to the replicated data 47 (step 384), if the valid period of the data held by the replicated data 47 has passed, a reference request for the latest data is transmitted to the core data 17 ( Step 385). The core data 17 that has received the reference request refers to the local data (step 386), and returns a reference response including the valid period information of the data that is also notified to other replicated data to the peripheral replicated data 47 (step 386). 387).
[0075]
The replicated data 47 that has received the reference response updates the local data and its valid period (step 388), and returns the result to the client 45 as a reference response (step 389). Further, a confirmation response is returned to the core data 17 (step 390). The core data 17 that has received the confirmation response stores the object ID of the duplicated data 47 (step 391), and transmits a periodic valid period extension notification to the duplicated data 47 as well.
[0076]
FIG. 15 shows an operation sequence when a data update request is generated at the node 40 in the wireless network of FIG.
[0077]
When the client 45 on the node 40 updates data, an update request is transmitted to the duplicate data 47 (step 401). The duplicated data 47 transmits a core movement request to the core data 17 (step 402).
[0078]
The core data 17 that has received the core transfer request becomes copy data itself (step 403), and returns a core transfer response to the copy data 47 (step 404). The core movement response includes object ID information of duplicate data stored in the core data 17. The copy data 47 that has received the core move response itself becomes core data (step 405), and an update request is made to the copy data included in the core move response and the previous core data, that is, the copy data 17, 27, and 37. Multicast (steps 406 to 408).
[0079]
The replicated data 17, 27, 37 that has received the update request sets a timer until the update execution request is received and sends back a confirmation response (steps 409 to 411). When the core data 47 receives confirmation responses from all the replicated data 17, 27, and 37, it updates the local data of itself (step 412), returns an update response to the client 45 (step 413), An execution request is multicast to the duplicated data 17, 27, 37 (steps 414 to 416). Each of the replicated data 17, 27, and 37 that has received the execution request executes update processing on the local data (steps 417 to 419).
[0080]
FIG. 16 shows an operation sequence when a data update request is generated in the node 50 in which no duplicate data exists in the wireless network of FIG. The data reference request at the node 50 is the same sequence as in FIG.
[0081]
Since the client 55 on the node 50 does not know the object ID of the replicated data or core data for the data, it transmits an update request for the data to the data manager 53 (step 421). The data manager 53 broadcasts a core search request to search for core data for the data (step 422). In this embodiment, only the data manager 23 receives the core search request. If the data manager 23 does not know the object ID of the core data 17, it rebroadcasts the core search request. In this embodiment, since the data manager 23 knows the object ID of the core data 17, the object ID of the core data 17 is included in the core notification and returned to the data manager 53 (step 423).
[0082]
The data manager 53 that has received the core notification message generates the duplicate data 57 and notifies the core data 17 and the object ID of the client 55 (step 424). The duplicate data 57 transmits a data request to the core data 17 (step 425). The core data 17 includes the data contents in the data notification and returns it to the duplicate data 57 (step 426), and stores the duplicate data 57 (step 427). The duplicate data 57 generates local data from the notified information (step 428). At this point, the node 50 is in a state where duplicate data exists.
[0083]
Next, the copy data 57 transmits a core movement request to the core data 17 in order to update the data (step 429). The core data 17 that has received the core move request becomes copy data itself (step 430), and returns a core move response to the copy data 57 (step 431). At this time, the object ID of the duplicate data stored by itself is also returned in the core movement response.
[0084]
The duplicate data 57 that has received the core movement response becomes itself core data (step 432), and is updated with respect to the duplicate data included in the core movement response and the previous core data, that is, the duplicate data 17, 27, 37, and 47. The request is transmitted (steps 433 to 436).
[0085]
The replicated data 17, 27, 37, and 47 that have received the update request sets a timer until the update execution request is received and returns an acknowledgment (steps 437 to 440). When the core data 57 receives confirmation responses from all the replicated data 17, 27, 37, 47, it updates its own local data (step 441) and returns an update response to the client 55 (step 442). An execution request is transmitted for all the replicated data (steps 443 to 446). Each of the replicated data 17, 27, 37, and 47 that has received the execution request executes update processing on the local data (steps 447 to 450).
[0086]
In this embodiment, the copy data 57 makes a data request to the core data 17 before moving the core data 17 (step 425), but the data request and the core move are collectively requested in one message. It is also possible.
[0087]
In the present invention, data consistency can be maintained even if a failure such as loss of any message in the sequence diagrams described so far occurs. Hereinafter, such an example will be described with reference to the drawings.
[0088]
FIG. 17 shows a sequence when a failure occurs in some message communication in the sequence diagram of the operation shown in FIG.
[0089]
Receiving the update request from the client 15 on the node 10 (step 451), the core data 17 multicasts the update request to all the duplicate data 27, 37, 47 stored therein (steps 452, 453, 454). However, it is assumed that this update request did not reach the copy data 47 due to a failure. At this time, the replicated data 27 and 37 that have received the update request set a timer until the update execution request is received and return confirmation responses respectively (steps 455 and 456), but the replicated data 47 naturally does not transmit the confirmation response. .
[0090]
In the core data 17, the timer waiting for the confirmation response from the duplicate data 47 times out (step 457), so the object ID of the duplicate data 47 is deleted from the list of duplicate data managed (step 458) and updated to the client 15. Is notified by an update response (step 459), and an update cancellation is transmitted to the duplicate data 27 and 37 that have returned the confirmation response (steps 460 and 461) to notify the cancellation of the update request. Here, it is assumed that the update cancellation is not received by the duplicate data 37 due to a failure.
[0091]
The replicated data 27 that has received the update cancellation does not execute the update and responds to the subsequent reference request. On the other hand, the copy data 37 discards the data (step 463) because the execution request waiting timer from the core data 17 times out (step 462). At this time, the data of each node is either not updated information or does not exist at all, and the data consistency is maintained. Even when the duplicate data 47 receives the update request and the confirmation response transmitted thereafter is not received by the core data 17 due to a failure, the same processing as the duplicate data 37 is performed.
[0092]
Thereafter, if an update request arrives before the validity period of the data in the core data 17 expires (step 470) (step 464), an attempt to update fails, so the failure is immediately notified by an update response ( Step 465).
[0093]
If more time elapses and the valid period of the duplicated data 27 or 47 has passed (steps 466 and 467), the data becomes invalid and is discarded (steps 468 and 469). When there is a reference request or update request from the client to each replicated data after the data is discarded, a process is requested for the core data as in the case of access to a node without a replica.
[0094]
On the other hand, if the valid period expires in the core data (step 470), the newest data and all the duplicate data 27 and 37 held after waiting for a certain time to absorb the time error at each node. The valid period of the data to be newly set is notified (steps 471 and 472). The duplicate data 27 and 37 that have received the data notification generate new data (steps 473 and 474) and return confirmation responses (steps 475 and 476), respectively. If the core data 17 does not receive an acknowledgment within a certain time, the duplicated data is deleted from the held list. On the other hand, in the replicated data 47, if there is no notification from the core data even after a lapse of a certain time after the data is discarded, it disappears (step 477). Thereafter, normal processing may be performed for requests from clients.
[0095]
If the core movement response message at the time of moving the core (for example, step 404 in FIG. 15) is lost, the core data does not exist on the network, and the data cannot be updated thereafter. Since no data is updated, there is no data inconsistency. In addition, a plurality of core data cannot exist. Furthermore, since the core data is moved only when the communication status with the core data is good, the possibility that the core movement response message is lost is small. Further, by sequentially moving the core data, it is possible to reduce the possibility that the core movement response message is lost when moving the core.
[0096]
The node described above is not realized by dedicated hardware, but a program for realizing the function is recorded on a computer-readable recording medium, and the program recorded on the recording medium is recorded on the computer. It may be read by the system and executed. The computer-readable recording medium refers to a recording medium such as a floppy disk, a magneto-optical disk, a CD-ROM, or a storage device such as a hard disk device built in the computer system. Furthermore, a computer-readable recording medium is a server that dynamically holds a program (transmission medium or transmission wave) for a short period of time, as in the case of transmitting a program via the Internet, and a server in that case. Some of them hold programs for a certain period of time, such as volatile memory inside computer systems.
[0097]
【The invention's effect】
As described above, according to the present invention, it is possible to maintain the consistency of data in the entire network by having the right to update unique core data in the network for each data that can exist in an arbitrary node. Is possible.
[0098]
According to the first aspect of the present invention, since the core data is moved to the update request generation node when data is updated, and the latest data is read from the core data, data inconsistency after data update does not occur. The present invention is efficient because communication between nodes is unnecessary when a data reference request is more likely to occur at the update generation node after data update. In particular, in a network in which the topology is likely to change and the change is unpredictable, the ability to refer to data without inter-node communication makes it possible to increase the availability of data.
[0099]
Further, in the inventions according to claims 2 to 6, the access status to the core data is determined by using the round trip time of communication to the core data, the number of hops, and the value calculated from them, and the data update request If the access situation to the core data is bad at the time of occurrence, the core data is not moved, but the data update request is requested to the core data. It is possible to reduce the possibility that a failure such as the subsequent data update becomes impossible.
[0100]
On the other hand, if the number of hops in the path between the core data and the data update request source is large, if the core moves a long number of hops at a time, the message is likely to be lost, and the data update after the core data disappears There is a high possibility that it will not be possible. According to the third aspect of the present invention, the possibility of such a failure occurring can be kept low by sequentially moving the core data toward the data update source each time the data is changed.
[0101]
According to the seventh aspect of the present invention, since a valid period is provided for data, a reference request at a node where duplicate data exists can be executed without inter-node communication. Strict consistency of data in the event of unpredictable network disconnects.
[0102]
In the present invention, as shown in the embodiment, even if a message related to data update is lost, it is possible to maintain data consistency. In addition, even if communication between nodes is interrupted on the way, normal update and reference can be performed while maintaining data consistency after a certain period of time, thus suppressing a decrease in data availability.
[0103]
Therefore, the present invention reduces the cost of inter-node communication and reduces the availability of data while robustly maintaining consistency between replicas of data distributed in a network where the topology is likely to change and the change is predictable. This is effective when it is desired to suppress the deterioration of the image.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a wireless network according to an embodiment of the present invention.
FIG. 2 is an explanatory diagram of a data realization method in the embodiment of FIG. 1;
FIG. 3 is a flowchart showing the operation of the data manager.
FIG. 4 is a sequence diagram illustrating an example of a data generation operation.
FIG. 5 is a sequence diagram illustrating an example of an access operation to core data.
FIG. 6 is a sequence diagram illustrating an example of an access operation to replicated data.
FIG. 7 is a sequence diagram illustrating an example of a reference operation in a node where no copy exists.
FIG. 8 is a sequence diagram showing an example of an update operation in a node where no copy exists.
FIG. 9 is a sequence diagram illustrating an example of an access operation to replicated data.
FIG. 10 is a sequence diagram illustrating an example of an operation of accessing data.
FIG. 11 is a sequence diagram illustrating an example of a data update operation when the communication state is not good.
FIG. 12 is a sequence diagram illustrating an example of a data update operation when the communication state is good.
FIG. 13 is a sequence diagram illustrating an example of an operation of accessing core data.
FIG. 14 is a sequence diagram illustrating an example of a data read operation with replicated data.
FIG. 15 is a sequence diagram illustrating an example of a data update operation with replicated data.
FIG. 16 is a sequence diagram illustrating an example of a data update operation in a node where no copy exists.
FIG. 17 is a sequence diagram illustrating an example of an operation when a message is lost.
FIG. 18 is a sequence diagram showing an example of a data update operation in the conventional method.
[Explanation of symbols]
10, 20, 30, 40, 50, 60 nodes
13, 23, 33, 43, 53, 61 Data manager
15, 45, 55 clients
16, 46, 56 Routing agent
17 Core data
27, 37, 47, 57 Replicated data
62 Data correspondence table
63 Created data table
64 Object data
65 Local data
101-120, 121-140, 141-146, 151-172 steps
181 to 190, 201 to 222, 231 to 255, 261 to 285 steps
301-327, 331-350, 351-374, 381-391 steps
401-419, 421-450, 451-477, 501-527 steps

Claims (13)

無線インタフェースを有する複数のノードから構成され、一意な識別子で識別されるデータおよび該データの複製が複数のノードに分散配置され、ユーザが該識別子を用いて該データへのアクセスを実行すると、該データあるいはいずれかの複製データへのアクセスが可能な無線ネットワークにおいて、
データの生成時には、該データの生成ノードに該データの修正または削除処理である更新処理を実行可能なコアデータを生成配置するとともに、該コアデータが存在するノードと無線リンクで直接通信可能な周辺のノードに該データの参照処理のみが実行可能な複製データを生成、配置し、
アデータが存在するノードは、複製データが存在する全てのノードのアドレスを保持するとともに、コアデータを他のノード移動させる際に、移動前に把握していた複製データが存在する全てのノードに対して移動先のノードのアドレスを通知し、
複製データが存在する各ノードは、コアデータが存在するノードのアドレスを保持するとともに、該コアデータが存在するノードと自ノードとの間の通信状況を管理し、
コアデータが存在するノードで該データへの更新要求あるいは参照要求が発生した場合は、該ノードは、該コアデータに対して更新処理または参照処理を実行し、
複製データが存在するノードでデータへの更新要求が発生した場合は、該ノードは、前記通信状況が良好であれば、該コアデータが存在するノードと協調して自ノードにコアデータを移動させた上で、該コアデータに対して更新処理を実行し前記通信状況が良好でなければ、該コアデータが存在するノードに更新要求を転送し、該更新要求を受信した該コアデータが存在するノードは、該コアデータの更新処理を実行するとともに、その結果を該更新要求が発生したノードに送信し、
複製データが存在するノードでデータへの最新データの参照要求が発生した場合は、該ノードは、該コアデータが存在するノードに最新情報の参照要求を転送し、最新情報の参照要求を受信したコアデータが存在するノードは、該コアデータの最新情報を該最新情報の参照要求が発生したノード送信し、
複製データが存在するノードでデータへの通常の参照要求が発生した場合は、該ノードは、該ノード内のデータの情報を要求元に送信
アデータも複製データも存在しないノードでデータへの参照要求が発生した場合は、該ノードは、該コアデータが存在するノードと協調してノードに複製データを生成、配置した上で、自ノード内のデータの情報を要求元に送信する、複製データ管理方法。
When configured by a plurality of nodes having a wireless interface, data identified by a unique identifier and a copy of the data are distributed to a plurality of nodes, and a user executes access to the data using the identifier, In a wireless network with access to data or any replicated data,
At the time of data generation , core data capable of executing update processing that is correction or deletion processing of the data is generated and arranged at the data generation node, and can be directly communicated with a node where the core data exists through a wireless link. only the reference processing of the data around the node generates an executable copy data, place,
Nodes co Adeta there holds the addresses of all nodes that duplicated data is present, when Before moving the core data to other nodes, all the replicated data that has been grasped before moving there To the node of the destination node address,
Each node where the duplicate data exists holds the address of the node where the core data exists, and manages the communication status between the node where the core data exists and the own node,
When an update request or a reference request to the data occurs in a node where the core data exists, the node executes an update process or a reference process on the core data,
When an update request to data is generated at a node where duplicate data exists, the node moves the core data to its own node in cooperation with the node where the core data exists if the communication status is good. on the, with respect to the core data running update process, if the communication status is not good, then forwards the update request to the node to which the core data is present, the core data received the further new request The existing node executes the update process of the core data and transmits the result to the node where the update request has occurred,
If the reference request for the latest data to the data at the node where the copy data is present occurs, the node forwards the reference request updates to a node to which the core data is present, it receives a reference request of the latest information node the core data exists that sends updates to the core data to the nodes reference request of the newest information is generated,
If the copied data is normal request for reference to data generated in a node that exists, the node transmits the information of the data in the node to the requesting,
Co Adeta even if reference request to the data occurs on a node that does not exist duplicated data, the node generates a copy data to the own node in cooperation with the node in which the core data is present, in terms of the arrangement, the self A replicated data management method that transmits information on data in a node to a request source .
製データが存在するノードで該データへの更新要求が発生した場合は、該ノードは、前記通信状況が良好ではなければ、該コアデータが存在するノードに更新要求を転送するとともに、該コアデータが存在するノードに対して、該コアデータが存在するノードと自ノードとの間の通信経路上の次のノードへのコアデータの移動を要求する逐次移動要求を送信し、
逐次移動要求を受信したコアデータが存在するノードは、自ノードのルーティングエージェントと協調して前記次のノードへコアデータを移動する、請求項に記載の複製データ管理方法。
If an update request for the data at the node where replicated data exists occurs, the node if the communication status is good, transfers the update request to the node to which the core data is present, the core to the node data is present, it transmits a sequential move request for requesting the transfer of the core data to the next node on the communication path between the node and the own node to which the core data is present,
The successive nodes the core data exists that has received the movement request, in cooperation with the routing agent of the node to move the core data to said next node, the duplicated data management method according to claim 1.
製データが存在する各ノード通信状況把握用のパケットをコアデータが存在するノードに対して定期的に送信し、該パケット中にはパケット送信時刻を示すタイムスタンプを含め、
該通信状況把握用のパケットを受信したコアデータが存在するノードは、該パケット中のタイムスタンプを含んだ応答パケットを、該通信状況把握用のパケットの送信元複製データが存在するノード送信し、
該応答パケットを受信した複製データが存在するノードは、該パケット中のタイムスタンプと現在の時刻を比較して、コアデータが存在するノードへの通信のラウンドトリップタイムを測定し、該ラウンドトリップタイムがある閾値より小さければ前記通信状況を良好と判断することにより、前記通信状況を管理する、請求項またはに記載の複製データ管理方法。
Each node replicated data is present, periodically send packets for grasping communication status to the node core data exists, including a time stamp indicating the packet transmission time in said packet,
The nodes core data exists which has received the packet for the communication condition ascertainment may send a response packet containing a timestamp in the packet, the node receive replicated data packets for grasping the communication condition exists And
The node having the duplicate data that has received the response packet compares the time stamp in the packet with the current time, measures the round trip time of communication to the node having the core data, and determines the round trip time. by determining good the communication status is smaller than a certain threshold, to manage the communication status, duplicate data management method according to claim 1 or 2.
製データが存在する各ノード、自ノードのルーティングエージェントと協調してコアデータが存在するノードまでの経路のホップ数を把握し、該ホップ数がある閾値より小さければ前記通信状況を良好と判断することにより、前記通信状況を管理する、請求項またはに記載の複製データ管理方法。 Each node replicated data is present, to grasp the number of hops of the route to the node in which the core data in cooperation with the routing agent of its own node exists, the communication status good smaller than a certain threshold number of the hops by determining, for managing the communication status, duplicate data management method according to claim 1 or 2. 製データが存在する各ノード定期的に通信状況把握用のパケットをコアデータが存在するノードに対して送信し、該パケット中にはパケット送信時刻を示すタイムスタンプを含め、
該通信状況把握用のパケットを受信したコアデータが存在するノードは、該パケット中のタイムスタンプを含んだ応答パケットを、該通信状況把握用のパケットの送信元複製データが存在するノード送信し、
該応答パケットを受信した複製データが存在するノードは、該パケット中のタイムスタンプと現在の時刻を比較して、コアデータが存在するノードへの通信のラウンドトリップタイムを測定し、またノードのルーティングエージェントと協調してコアデータが存在するノードまでの経路のホップ数を把握し、該ラウンドトリップタイムが閾値より小さく、かつ該ラウンドトリップタイムをホップ数で割った値も別の閾値より小さければ、前記通信状況を良好と判断することにより、前記通信状況を管理する、請求項またはに記載の複製データ管理方法。
Each node replicated data is present, transmits a packet for periodically the communication condition ascertainment to the node core data exists, including a time stamp indicating the packet transmission time in said packet,
The nodes core data exists which has received the packet for the communication condition ascertainment may send a response packet containing a timestamp in the packet, the node receive replicated data packets for grasping the communication condition exists And
Node replicated data received the response packet is present, by comparing the time stamp and the current time in the packet, measures the round-trip time of the communication to the node where the core data is present, also the own node If the number of hops of the route to the node where the core data exists is grasped in cooperation with the routing agent, the round trip time is smaller than the threshold value, and the value obtained by dividing the round trip time by the hop number is smaller than another threshold value. , by determining good the communication status, manages the communication status, duplicate data management method according to claim 1 or 2.
コアデータが存在するノードおよび製データが存在する各ノード該データが最新であることを保証する期間である有効期間情報を保持し、
コアデータが存在するノードでデータへの更新要求が発生した場合、該ノード、複製データが存在する全てのノードへ更新内容を通知し、
該コアデータが存在するノードから更新を通知された複製データが存在するノード更新内容を記憶するとともに該コアデータが存在するノードへ了解した旨を通知し、もし該コアデータが存在するノードが該更新の通知を行ってから一定時間内に、製データが存在する全てのノードから了解の通知を受けた場合、更新の実行依頼および新しい有効期間情報を製データが存在する全てのノードへ通知し、
もし該コアデータが存在するノードが該更新の通知を行ってから一定時間内に、了解の通知を受信できない複製データが存在するノードが存在する場合、該コアデータが存在するノードは、自ノードで保持している該了解の通知を受信できなかった複製データが存在するノードのアドレスを削除し、了解の通知を送信してきた、複製データが存在する全てのノードへ更新の失敗を通知し、
コアデータが存在するノードから更新を通知された複製データが存在するノードは、一定時間内に更新の実行依頼を受信した場合、更新を通知された際に記憶した更新内容で該データを更新し、実行依頼で通知された有効期間情報を記憶し一定時間内に更新の実行を依頼されなかった場合、該データを削除し、
複製データが存在するノードで該データへの最新データの参照要求が発生した場合、該ノードは、もし要求発生時刻がノードのデータの有効期間情報が示す期間を過ぎていなければ、ノードのデータを参照し、もし該最新データの参照要求発生時刻がノードのデータの有効期間情報が示す期間を過ぎていたら、コアデータが存在するノードへ最新情報の参照要求を転送する、請求項1からのいずれか1項に記載の複製データ管理方法。
Each node node core data exists and replicated data exists, the data is held valid period information is a period to ensure that the latest,
If the core data update request to the data occurs in the nodes existing, the node notifies the updates to all nodes replicated data exists,
Node replicated data notified updates from nodes that the core data is present is present, notified that stores the updates has been accepted to the node to which the core data is present, if the node to which the core data is present to but within a predetermined time after performing the notification of the updating, when receiving the notification acknowledgment from all nodes which replicated data is present, the execution request and the new validity period information of the update all the replicated data is present Notify the node ,
If in the node of the core data is present the constant update notification after performing time, you can not receive the notification of the approval, if the node duplicated data exists there, node the core data is present, the own held in the node, delete the address of the node that replicated data that could not be notified of the approval is present, has transmitted the notice of acknowledgment, the failure of the update to all nodes replicated data is present Notify
When the update data is notified from the node where the core data exists, and the node where the duplicate data exists receives the update execution request within a certain time, the node updates the data with the update contents stored when the update is notified. The effective period information notified in the execution request is stored, and if the update execution is not requested within a certain time, the data is deleted,
If the reference request for the most recent data to the data at the node where the copy data is present occurs, the node unless if request generation time has passed period indicated by the valid period information of the data of the own node, the local node 2. The data is referenced, and if the latest data reference request occurrence time has passed the period indicated by the data validity period information of the own node , the latest information reference request is transferred to the node where the core data exists. 6. The replication data management method according to any one of items 1 to 5 .
一意な識別子で識別されるデータおよび該データの複製が無線インタフェースを有する複数のノードに分散配置され、ユーザが該識別子を用いて該データへのアクセスを実行すると、該データあるいはいずれかの複製データへのアクセスが可能な無線ネットワークを構成する前記ノードであって、
データが自ノードで生成された場合は、自ノードに、該データの修正または削除処理である更新処理を実行可能なコアデータを配置するとともに、自ノードと無線リンクで直接通信可能な周辺のノードに該データの参照処理のみが実行可能な複製データの生成、配置を要求する複製生成要求を送信し、
コアデータが存在するノードから該複製生成要求を受信した場合は、自ノードに該コアデータの複製データを生成、配置し、
自ノードにコアデータが存在する場合は、複製データが存在する全てのノードのアドレスを保持するとともに、コアデータを他のノードに移動させる際に、移動前に把握していた複製データが存在する全てのノードに対して移動先のノードのアドレスを通知し、
自ノードに複製データが存在する場合は、コアデータが存在するノードのアドレスを保持するとともに、該コアデータが存在するノードと自ノードとの間の通信状況を管理し、
自ノードにコアデータが存在し、かつ自ノードで該データへの更新要求あるいは参照要求が発生した場合は、該コアデータに対して更新処理または参照処理を実行し、
自ノードに複製データが存在し、かつ自ノードでデータへの更新要求が発生した場合は、前記通信状況が良好であれば、コアデータ存在するノードと協調してノードにコアデータを移動させた上で、該コアデータに対して更新処理を実行し、前記通信状況が良好でなければ、コアデータが存在するノードに更新要求を転送し、
自ノードにコアデータが存在し、かつ複製データが存在するノードから該更新要求を受信した場合は、該コアデータの更新処理を実行するとともに、その結果を該更新要求が発生したノードに送信し、
自ノードに複製データが存在し、かつ自ノードでデータへの最新データの参照要求が発生した場合は、該コアデータが存在するノードに最新情報の参照要求を転送し、
自ノードにコアデータが存在し、かつ複製データが存在するノードから該最新情報の参照要求を受信した場合は、該コアデータの最新情報を該最新情報の参照要求が発生したノードに送信し、
自ノードに複製データが存在し、かつ自ノードでデータへの通常の参照要求が発生した場合は、自ノード内のデータの情報を要求元に送信し、
自ノードにコアデータも複製データも存在せず、かつ自ノードでデータへの参照要求が発生した場合は、該コアデータが存在するノードと協調して自ノードに複製データを生成、配置した上で、自ノード内のデータの情報を要求元に送信する、ノード。
When data identified by a unique identifier and a copy of the data are distributed to a plurality of nodes having a radio interface and a user accesses the data using the identifier, the data or any duplicate data a said node access to constitute a wireless network capable,
When the data is generated by the own node, core data capable of executing update processing that is correction or deletion of the data is arranged in the own node, and peripheral nodes that can directly communicate with the own node through a radio link A replication generation request for requesting generation and arrangement of replication data that can be executed only by the data reference processing,
When the copy generation request is received from the node where the core data exists, the copy data of the core data is generated and arranged in the own node,
When the core data exists in the own node, the addresses of all the nodes where the duplicate data exists are held, and when the core data is moved to another node, the duplicate data that was grasped before the move exists Notify all nodes of the address of the destination node,
When duplicate data exists in the own node, the address of the node where the core data exists is held, and the communication status between the node where the core data exists and the own node are managed,
When core data exists in the own node and an update request or reference request to the data occurs in the own node, update processing or reference processing is executed on the core data,
Copy data exists in the own node, and if the update request to the data is generated by the own node, if it is good the communication status, a co Adeta to the own node in cooperation with the node in which the core data is present in terms of the moved, to perform the update processing for the core data, if said communication status is not good, then forwards the update request to the node to which the core data is present,
When core data exists in the local node and the update request is received from a node in which duplicate data exists, the core data is updated, and the result is transmitted to the node where the update request occurs. ,
When duplicate data exists in the own node and a request for referring to the latest data to the data occurs in the own node, the reference request for the latest information is transferred to the node in which the core data exists,
When the core data exists in the own node and the reference request for the latest information is received from the node where the duplicate data exists, the latest information of the core data is transmitted to the node where the request for reference of the latest information has occurred.
When duplicate data exists in the own node and a normal reference request to the data occurs in the own node, the data information in the own node is sent to the request source,
If there is no core data or duplicate data in the own node and a request to reference data occurs in the own node, the duplicate data is generated and arranged in the own node in cooperation with the node in which the core data exists. Then, the node that transmits the data information in the own node to the request source .
自ノードに複製データが存在し、かつ自ノードでデータへの更新要求が発生した場合は、前記通信状況が良好でなければ、コアデータが存在するノードに更新要求を転送するとともに、コアデータが存在するノードに対して、該コアデータが存在するノードと自ノードとの間の通信経路上の次のノードへのコアデータの移動を要求する逐次移動要求を送信し、
自ノードにコアデータが存在し、かつ複製データが存在するノードから該逐次移動要求を受信した場合は、自ノードのルーティングエージェントと協調して前記次のノードへコアデータを移動する、請求項7に記載のノード。
If there replicated data to the own node, and update request to the data in the own node occurs, if the communication status is not good, transfers the update request to the node to which the core data is present, the core to the node data is present, it transmits a sequential move request for requesting the transfer of the core data to the next node on the communication path between the node and the own node to which the core data is present,
The core data is moved to the next node in cooperation with the routing agent of the own node when the sequential movement request is received from a node where the core data exists in the own node and the duplicate data exists. Node described in .
自ノードに複製データが存在する場合は、通信状態把握用のパケットをコアデータが存在するノードに対して送信し、該パケット中にはパケット送信時刻を示すタイムスタンプを含め、
自ノードにコアデータが存在し、かつ複製データが存在するノードから該通信状態把握用のパケットを受信した場合は、該パケット中のタイムスタンプを含んだ応答パケットを、該通信状況把握用のパケットの送信元の複製データが存在するノードに送信し、
自ノードに複製データが存在し、かつコアデータが存在するノードから応答パケットを受信した場合は、該パケット中のタイムスタンプと現在の時刻から前記コアデータが存在するノードへの通信のラウンドタイムを測定し、該ラウンドタイムが閾値を超えていなければ前記通信状況を良好決定する、請求項またはに記載のノード。
If there is duplicate data in its own node, it transmits a packet for grasping the communication state to the node where the core data exists , and the packet includes a time stamp indicating the packet transmission time,
When the communication status grasping packet is received from the node where the core data exists in the own node and the duplicate data exists, the response packet including the time stamp in the packet is changed to the communication status grasping packet. To the node where the duplicate data of the source
There replicated data to the own node, and if the core data receives the response packet from the node that exists, communications from the time stamp and the current time in the packet to the node where the core data is present round time The node according to claim 7 or 8 , wherein the communication status is determined to be good if the round time does not exceed a threshold value.
自ノードに複製データが存在する場合は、自ノードのルーティングエージェントと協調して前記コアデータが存在するノードまでの経路のホップ数を把握し、該ホップ数がある閾値よりも小さければ前記通信状況を良好と決定する、請求項またはに記載のノード。 If replicated data to the own node exists, in cooperation with the routing agent the own node to grasp the number of hops of the route to the node where the core data is present, before Symbol communication is smaller than the threshold value is the number of the hops The node according to claim 7 or 8 , wherein the node determines that the communication status is good. 自ノードに複製データが存在する場合は、通信状態把握用のパケットを前記コアデータが存在するノードに対して定期的に送信し、該パケット中にはパケット送信時刻を示すタイムスタンプを含め、
自ノードにコアデータが存在し、かつ複製データが存在するノードから該通信状態把握 用のパケットを受信した場合は、該パケット中のタイムスタンプを含んだ応答パケットを、該通信状況把握用のパケットの送信元の複製データが存在するノードに送信し、
自ノードに複製データが存在し、かつコアデータが存在するノードから応答パケットを受信した場合は、該パケット中のタイムスタンプと現在の時刻から前記コアデータが存在するノードへの通信のラウンドトリップタイムを測定し、またノードのルーティングエージェントと協調して、前記コアデータが存在するノードまでの経路のホップ数を把握し、前記ラウンドトリップタイムが閾値よりも小さく、かつ前記ラウンドトリップタイムを前記ホップ数で割った値も別の閾値よりも小さければ前記通信状況を良好と決定する、請求項またはに記載のノード。
When duplicate data exists in its own node, a packet for grasping the communication state is periodically transmitted to the node where the core data exists , and the packet includes a time stamp indicating a packet transmission time,
When the communication status grasping packet is received from the node where the core data exists in the own node and the duplicate data exists , the response packet including the time stamp in the packet is changed to the communication status grasping packet. To the node where the duplicate data of the source
There duplicated data to the own node, and if the core data receives the response packet from the node that is present, round-trip communications from the time stamp and the current time in the packet to the node where the core data is present Measuring the time and cooperating with the routing agent of its own node to know the number of hops of the route to the node where the core data exists, the round trip time is smaller than a threshold, and the round trip time is determining a good pre-Symbol communications situation is smaller than another threshold also divided by the number of hops, node according to claim 7 or 8.
請求項から11のいずれか1項に記載のノードの処理をコンピュータに実行させるための情報処理プログラム。An information processing program for causing a computer to execute the processing of the node according to any one of claims 7 to 11 . 請求項から11のいずれか1項に記載のノードの処理をコンピュータに実行させるための情報処理プログラムを記録した記録媒体。The recording medium which recorded the information processing program for making a computer perform the process of the node of any one of Claim 7 to 11 .
JP2002055757A 2002-03-01 2002-03-01 Replicated data management method, node, program, and recording medium Expired - Fee Related JP4036661B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002055757A JP4036661B2 (en) 2002-03-01 2002-03-01 Replicated data management method, node, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002055757A JP4036661B2 (en) 2002-03-01 2002-03-01 Replicated data management method, node, program, and recording medium

Publications (2)

Publication Number Publication Date
JP2003256256A JP2003256256A (en) 2003-09-10
JP4036661B2 true JP4036661B2 (en) 2008-01-23

Family

ID=28666521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002055757A Expired - Fee Related JP4036661B2 (en) 2002-03-01 2002-03-01 Replicated data management method, node, program, and recording medium

Country Status (1)

Country Link
JP (1) JP4036661B2 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4568576B2 (en) * 2004-10-26 2010-10-27 株式会社デンソーアイティーラボラトリ Data sharing system, communication terminal, and data sharing method
US8516137B2 (en) 2009-11-16 2013-08-20 Microsoft Corporation Managing virtual hard drives as blobs
EP2548135B1 (en) * 2010-03-18 2020-05-13 NUODB Inc. Database management system
JP5649457B2 (en) * 2011-01-05 2015-01-07 株式会社東芝 Database system and its clients
US9501363B1 (en) 2013-03-15 2016-11-22 Nuodb, Inc. Distributed database management system with node failure detection
US11176111B2 (en) 2013-03-15 2021-11-16 Nuodb, Inc. Distributed database management system with dynamically split B-tree indexes
US10740323B1 (en) 2013-03-15 2020-08-11 Nuodb, Inc. Global uniqueness checking in distributed databases
WO2014168913A1 (en) 2013-04-08 2014-10-16 Nuodb, Inc. Database management system with database hibernation and bursting
US10884869B2 (en) 2015-04-16 2021-01-05 Nuodb, Inc. Backup and restore in a distributed database utilizing consistent database snapshots
US10180954B2 (en) 2015-05-29 2019-01-15 Nuodb, Inc. Disconnected operation within distributed database systems
US10067969B2 (en) 2015-05-29 2018-09-04 Nuodb, Inc. Table partitioning within distributed database systems
US11573940B2 (en) 2017-08-15 2023-02-07 Nuodb, Inc. Index splitting in distributed databases

Also Published As

Publication number Publication date
JP2003256256A (en) 2003-09-10

Similar Documents

Publication Publication Date Title
CN110458582B (en) Business processing method, device, medium and electronic equipment based on block chain system
JP4036661B2 (en) Replicated data management method, node, program, and recording medium
CA2205725C (en) Preventing conflicts in distributed systems
JP5498594B2 (en) Consistency within the federation infrastructure
JP4465637B2 (en) Proxy server, communication system, communication method, and program
CN107330786B (en) Block chain network node communication method based on weight
EP1807971B1 (en) Dynamic network managaement
JP5537181B2 (en) Message system
US20090292891A1 (en) Memory-mirroring control apparatus and memory-mirroring control method
Mershad et al. SSUM: smart server update mechanism for maintaining cache consistency in mobile environments
JP6183536B2 (en) Node device and communication method used in Description / Delay / Disconnect Tolerant Network
Ratner et al. Roam: a scalable replication system for mobility
JP6197795B2 (en) Information exchange method between communication terminals and communication terminals
JP4224289B2 (en) Data replication management method
CN107196988B (en) Cross-region data transmission method and device
JP4335907B2 (en) Method and apparatus for mobility churn processing for a peer-to-peer lookup system
CA3196325A1 (en) Systems, methods, and media for implementing conflict-free replicated data types in in-memory data structures
US20180132126A1 (en) Information processing system, information processing apparatus, and information processing program medium
JP5865424B2 (en) Message system and data store server
JP4062611B2 (en) Distributed system for transferring management authority, method for transferring management authority in the distributed system, program, and recording medium
Kotsovinos et al. replic8: Location-aware data replication for high availability in ubiquitous environments
Brzeziński et al. K-resilient session guarantees synchronization protocol for mobile ad-hoc networks
Hassan et al. Managing Data Replication in Mobile Ad-Hoc Network Databases Using Content Based Energy Optimization
JP2001101062A (en) Duplication server device
Nogueira Ubiquitous Consistency: opportunistic consistency in ubiquitous computation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040121

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040121

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040121

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070821

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071030

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111109

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121109

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121109

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131109

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees