JP4036661B2 - Replicated data management method, node, program, and recording medium - Google Patents
Replicated data management method, node, program, and recording medium Download PDFInfo
- 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
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
[0007]
When the
[0008]
Next, a sequence when a failure occurs in communication with the
[0009]
Next, when the mobile terminal in which the
[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
[0019]
In this embodiment, the
[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
[0022]
FIG. 3 is a flowchart showing the operation of the
[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 (
[0025]
When the
[0026]
When the
[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
[0030]
The
[0031]
The
[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
[0034]
When the
[0035]
FIG. 6 shows an operation sequence when a data read and update request is generated in the
[0036]
When the
[0037]
Next, when the
[0038]
When the
[0039]
The replicated
[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
[0042]
The
[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
[0045]
The
[0046]
Next, the
[0047]
The replicated
[0048]
In this embodiment, the
[0049]
FIG. 9 shows a sequence showing an operation of accessing the replicated data in the wireless network of FIG.
[0050]
The
[0051]
At this time, when the
[0052]
Next, when the
[0053]
The replicated
[0054]
FIG. 10 is a sequence diagram showing an operation of accessing the replicated data in the wireless network of FIG.
[0055]
The replicated
[0056]
At this time, when the
[0057]
Next, when the
[0058]
At this time, when the
[0059]
The replicated
[0060]
FIG. 11 and FIG. 12 are sequence diagrams showing an access operation to replicated data in the wireless network of FIG.
[0061]
The
[0062]
Assume that the
[0063]
Next, the replicated
[0064]
The replicated
[0065]
Next, the replicated
[0066]
At this time, it is assumed that the
[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
[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
[0070]
When the
[0071]
Thereafter, when an update request is not generated for the data, the
[0072]
FIG. 14 shows an operation sequence when a data read request is generated at the
[0073]
When the
[0074]
On the other hand, when the
[0075]
The replicated
[0076]
FIG. 15 shows an operation sequence when a data update request is generated at the
[0077]
When the
[0078]
The
[0079]
The replicated
[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
[0082]
The
[0083]
Next, the
[0084]
The
[0085]
The replicated
[0086]
In this embodiment, the
[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
[0090]
In the
[0091]
The replicated
[0092]
Thereafter, if an update request arrives before the validity period of the data in the
[0093]
If more time elapses and the valid period of the duplicated
[0094]
On the other hand, if the valid period expires in the core data (step 470), the newest data and all the
[0095]
If the core movement response message at the time of moving the core (for example,
[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
[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 .
該逐次移動要求を受信した該コアデータが存在するノードは、自ノードのルーティングエージェントと協調して前記次のノードへコアデータを移動する、請求項1に記載の複製データ管理方法。 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.
該通信状況把握用のパケットを受信したコアデータが存在するノードは、該パケット中のタイムスタンプを含んだ応答パケットを、該通信状況把握用のパケットの送信元の複製データが存在するノードに送信し、
該応答パケットを受信した複製データが存在するノードは、該パケット中のタイムスタンプと現在の時刻を比較して、コアデータが存在するノードへの通信のラウンドトリップタイムを測定し、該ラウンドトリップタイムがある閾値より小さければ前記通信状況を良好と判断することにより、前記通信状況を管理する、請求項1または2に記載の複製データ管理方法。 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.
該通信状況把握用のパケットを受信したコアデータが存在するノードは、該パケット中のタイムスタンプを含んだ応答パケットを、該通信状況把握用のパケットの送信元の複製データが存在するノードに送信し、
該応答パケットを受信した複製データが存在するノードは、該パケット中のタイムスタンプと現在の時刻を比較して、コアデータが存在するノードへの通信のラウンドトリップタイムを測定し、また自ノードのルーティングエージェントと協調してコアデータが存在するノードまでの経路のホップ数を把握し、該ラウンドトリップタイムが閾値より小さく、かつ該ラウンドトリップタイムをホップ数で割った値も別の閾値より小さければ、前記通信状況を良好と判断することにより、前記通信状況を管理する、請求項1または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から5のいずれか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 .
自ノードにコアデータが存在し、かつ複製データが存在するノードから該通信状態把握用のパケットを受信した場合は、該パケット中のタイムスタンプを含んだ応答パケットを、該通信状況把握用のパケットの送信元の複製データが存在するノードに送信し、
自ノードに複製データが存在し、かつコアデータが存在するノードから該応答パケットを受信した場合は、該パケット中のタイムスタンプと現在の時刻から前記コアデータが存在するノードへの通信のラウンドタイムを測定し、該ラウンドタイムが閾値を超えていなければ前記通信状況を良好と決定する、請求項7または8に記載のノード。 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.
自ノードにコアデータが存在し、かつ複製データが存在するノードから該通信状態把握 用のパケットを受信した場合は、該パケット中のタイムスタンプを含んだ応答パケットを、該通信状況把握用のパケットの送信元の複製データが存在するノードに送信し、
自ノードに複製データが存在し、かつコアデータが存在するノードから該応答パケットを受信した場合は、該パケット中のタイムスタンプと現在の時刻から前記コアデータが存在するノードへの通信のラウンドトリップタイムを測定し、また自ノードのルーティングエージェントと協調して、前記コアデータが存在するノードまでの経路のホップ数を把握し、前記ラウンドトリップタイムが閾値よりも小さく、かつ前記ラウンドトリップタイムを前記ホップ数で割った値も別の閾値よりも小さければ前記通信状況を良好と決定する、請求項7または8に記載のノード。 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.
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)
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 |
-
2002
- 2002-03-01 JP JP2002055757A patent/JP4036661B2/en not_active Expired - Fee Related
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 |