(57)【要約】      （修正有）【課題】削除されたインデックスの識別子を通知するための伝送負荷を軽減する。【解決手段】分散データ管理方法は、ネットワークシステムにおいて分散するデータの格納位置を特定するインデックスを複数保持するための分散データ管理装置に、保持しているインデックスのいずれかが削除された場合に、当該削除されたインデックスの識別子を、自ら保持する第１無効リストに加え、情報処理装置から要求されたインデックスを保持していないと判定した場合に、第１無効リストを当該情報処理装置へ送信する処理を含む。【選択図】図３３
2018197903.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークシステムにおいて分散するデータの格納位置を特定するインデックスを複数保持するための分散データ管理装置に、
保持している前記インデックスのいずれかが削除された場合に、当該削除されたインデックスの識別子を、自ら保持する第１無効リストに加え、
情報処理装置から要求されたインデックスを保持していないと判定した場合に、前記第１無効リストを当該情報処理装置へ送信する
処理を実行させる分散データ管理プログラム。
【請求項２】
更に、
他の分散データ管理装置において削除されたインデックスの識別子を含む第２無効リストを受信した場合に、前記第２無効リストに含まれるインデックスの識別子が設定されている参照ポインタを無効化する
処理を実行させる請求項１記載の分散データ管理プログラム。
【請求項３】
更に、
前記第１無効リストと前記第２無効リストとのマージによって、前記第１無効リストを更新する
処理を実行させる請求項２記載の分散データ管理プログラム。
【請求項４】
前記マージにおいて、前記第１無効リストに含まれる前記識別子と前記第２無効リストに含まれる前記識別子との排他的論理和によって、更新後の第１無効リストに含める識別子を特定する
請求項３記載の分散データ管理プログラム。
【請求項５】
更に、
前記第１無効リストを送信する度に送信先を記憶し、
所定回まで遡った前記送信先に該当する前記情報処理装置への前記第１無効リストの送信を省く
処理を実行させる請求項１乃至４のいずれか１つ記載の分散データ管理プログラム。
【請求項６】
更に、
同一のインデックスに関する取得要求の回数が所定値を超えた情報処理装置から当該情報処理装置の登録要求を受信した場合に、当該インデックスと対応付けて当該情報処理装置の識別子を記憶し、
保持している前記インデックスのいずれかが削除された場合に、当該削除されたインデックスに対応する前記情報処理装置の識別子によって特定される宛先へ、当該削除されたインデックスの識別子の通知を送信する
処理を実行させる請求項１乃至５のいずれか１つ記載の分散データ管理プログラム。
【請求項７】
ネットワークシステムにおいて分散するデータの格納位置を特定するインデックスを複数保持するための分散データ管理装置により実行される分散データ管理方法であって、
保持している前記インデックスのいずれかが削除された場合に、当該削除されたインデックスの識別子を、自ら保持する第１無効リストに加え、
情報処理装置から要求されたインデックスを保持していないと判定した場合に、前記第１無効リストを当該情報処理装置へ送信する
処理を含む分散データ管理方法。
【請求項８】
ネットワークシステムにおいて分散するデータの格納位置を特定するインデックスを複数保持するための分散データ管理装置であって、
保持している前記インデックスのいずれかが削除された場合に、当該削除されたインデックスの識別子を、自ら保持する第１無効リストに加える追加部と、
情報処理装置から要求されたインデックスを保持していないと判定した場合に、前記第１無効リストを当該情報処理装置へ送信する送信部と
を有する分散データ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インデックスによって分散データを管理する技術に関する。
【背景技術】
【０００２】
例えばエッジコンピューティングで分散データを管理するネットワークシステムにおいて、分散する実データのインデックスを複数のノード装置で分担して保持することがある。
【０００３】
このようなネットワークシステムにおいて、或るノード装置でインデックスを削除した場合に、他のノード装置宛に当該削除されたインデックスの識別子を通知すれば、他のノード装置における無駄な動作を減らせる。
【０００４】
但し、インデックスを削除する度に通知を行うと、伝送負荷が大きくなるという問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１１８９５０号公報
【特許文献２】特開平９−６６６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、一側面では、削除されたインデックスの識別子を通知するための伝送負荷を軽減することである。
【課題を解決するための手段】
【０００７】
一態様に係る分散データ管理方法は、ネットワークシステムにおいて分散するデータの格納位置を特定するインデックスを複数保持するための分散データ管理装置に、（Ａ）保持しているインデックスのいずれかが削除された場合に、当該削除されたインデックスの識別子を、自ら保持する第１無効リストに加え、（Ｂ）情報処理装置から要求されたインデックスを保持していないと判定した場合に、第１無効リストを当該情報処理装置へ送信する処理を含む。
【発明の効果】
【０００８】
一側面としては、削除されたインデックスの識別子を通知するための伝送負荷を軽減できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、ネットワークシステムの構成例を示す図である。
【図２】図２は、エッジノードのモジュール構成例を示す図である。
【図３】図３は、エッジノードのモジュール構成例を示す図である。
【図４】図４は、インデックス管理部のモジュール構成例を示す図である。
【図５】図５は、インデックス収集のシーケンスを示す図である。
【図６】図６は、生データのテーブルの構成例を示す図である。
【図７】図７は、インデックステーブルの構成例を示す図である。
【図８】図８は、インデックス登録処理（Ａ）フローを示す図である。
【図９】図９は、インデックステーブルの構成例を示す図である。
【図１０】図１０は、一次加工のシーケンスを示す図である。
【図１１】図１１は、一次加工のシーケンスを示す図である。
【図１２】図１２は、一次加工データのテーブルの構成例を示す図である。
【図１３】図１３は、インデックステーブルの構成例を示す図である。
【図１４】図１４は、インデックス登録処理（Ｂ）フローを示す図である。
【図１５】図１５は、一次加工データのテーブルの構成例を示す図である。
【図１６】図１６は、二次加工のシーケンスを示す図である。
【図１７】図１７は、二次加工のシーケンスを示す図である。
【図１８Ａ】図１８Ａは、二次加工のシーケンスを示す図である。
【図１８Ｂ】図１８Ｂは、二次加工のシーケンスを示す図である。
【図１９】図１９は、二次加工のシーケンスを示す図である。
【図２０】図２０は、二次加工データのテーブルの構成例を示す図である。
【図２１】図２１は、インデックステーブルの構成例を示す図である。
【図２２】図２２は、インデックステーブルの構成例を示す図である。
【図２３】図２３は、解析のシーケンスを示す図である。
【図２４】図２４は、インデックステーブルの構成例を示す図である。
【図２５】図２５は、インデックス削除のシーケンスを示す図である。
【図２６】図２６は、インデックステーブルの構成例を示す図である。
【図２７】図２７は、無効インデックスリストの例を示す図である。
【図２８】図２８は、インデックス削除処理フローを示す図である。
【図２９】図２９は、無効インデックスリストのマージ例を示す図である。
【図３０】図３０は、送信先リストの遷移例を示す図である。
【図３１】図３１は、仲介処理フローを示す図である。
【図３２】図３２は、仲介処理フローを示す図である。
【図３３】図３３は、インデックス提供処理フローを示す図である。
【図３４】図３４は、参照カウンタテーブルの例を示す図である。
【図３５】図３５は、実施の形態２に係るインデックステーブルの構成例を示す図である。
【図３６】図３６は、実施の形態２に係る仲介処理フローを示す図である。
【図３７】図３７は、参照元の登録処理フローを示す図である。
【図３８】図３８は、実施の形態２に係るインデックス削除処理フローを示す図である。
【図３９】図３９は、ポインタ無効化処理フローを示す図である。
【図４０】図４０は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
図１に、ネットワークシステムの構成例を示す。この例におけるネットワークシステムは、エッジコンピューティングにおいて分散データを管理する。具体的には、フィールド端末１０１は、計測デバイス１０３で計測されたデータ、つまり生データを保持する。また、生データに関するインデックスが、フィールド端末１０１からエッジノード１０５へ送られる。インデックスは、例えば生データの種類や格納位置に関する情報を含む。
【００１１】
エッジノード１０５は、受け付けたインデックスを、テーブル（以下インデックステーブルという。）を用いて管理する。このインデックステーブルを参照すれば、どのようなデータがどこにあるかを知ることができるようになっている。本実施の形態は、エッジノード１０５でインデックスを管理する点に着目する。
【００１２】
尚、センターサーバ１０９は、ゲートウェイ１０７を介してエッジノード１０５と接続している。センターサーバ１０９は、エッジノード１０５からインデックスを収集して、ディレクトリテーブルを用いて全体のインデックスを管理する。但し、本実施の形態では、ディレクトリテーブルには着目しない。
【００１３】
この例では、計測デバイス１０３ｓ（識別子：ＤＶ＿Ｓ）で１時間おきに計測された温度と湿度とが、生データとしてフィールド端末１０１ｓに保持されるものとする。同様に計測デバイス１０３ｔ（識別子：ＤＶ＿Ｔ）で１時間おきに計測された温度と湿度とが、生データとしてフィールド端末１０１ｔに保持されるものとする。
【００１４】
図２に、エッジノード１０５ａのモジュール構成例を示す。エッジノード１０５ａは、インデックス管理部２０１ａ、一次加工アプリケーション２０３ａ、二次加工アプリケーション２０５ａ、解析アプリケーション２０７ａ、一次加工データ記憶部２１１ａ及び二次加工データ記憶部２１３ａを有する。
【００１５】
インデックス管理部２０１ａは、配下の生データに関するインデックスを管理する。一次加工アプリケーション２０３ａは、生データを収集して、収集された生データを加工し、一次加工データを生成する。この例では、温度と湿度との計測データを収集して、６時間の期間における平均気温と平均湿度を算出する。つまり、一次加工データは、生データを参照して生成される。
【００１６】
二次加工アプリケーション２０５ａは、エッジノード１０５ａ及びエッジノード１０５ｂで生成された一次加工データに基づいて、１日の平均気温を算出する。つまり、二次加工データは、一次加工データを参照して生成される。
【００１７】
解析アプリケーション２０７ａは、着目する二次加工データの基礎となった一次加工データを収集して、平均温度に関する解析を行う。一次加工データ記憶部２１１ａは、一次加工アプリケーション２０３ａで生成された一次加工データを記憶する。二次加工データ記憶部２１３ａは、二次加工アプリケーション２０５ａで生成された二次加工データを記憶する。
【００１８】
上述したインデックス管理部２０１ａは、ハードウエア資源（例えば、図４０）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００１９】
上述した一次加工データ記憶部２１１ａ及び二次加工データ記憶部２１３ａは、ハードウエア資源（例えば、図４０）を用いて実現される。
【００２０】
続いて、図３を用いて、エッジノード１０５ｂのモジュール構成例について説明する。エッジノード１０５ｂは、インデックス管理部２０１ｂ、一次加工アプリケーション２０３ｂ、二次加工アプリケーション２０５ｂ、解析アプリケーション２０７ｂ、一次加工データ記憶部２１１ｂ及び二次加工データ記憶部２１３ｂを有する。
【００２１】
インデックス管理部２０１ｂは、インデックス管理部２０１ａと同様である。一次加工アプリケーション２０３ｂは、一次加工アプリケーション２０３ａと同様である。
【００２２】
二次加工アプリケーション２０５ｂは、エッジノード１０５ａ及びエッジノード１０５ｂで生成された一次加工データに基づいて、１日の平均湿度を算出する。解析アプリケーション２０７ｂは、着目する二次加工データの基礎となった一次加工データを収集して、平均湿度に関する解析を行う。
【００２３】
一次加工データ記憶部２１１ｂは、一次加工アプリケーション２０３ｂで生成された一次加工データを記憶する。二次加工データ記憶部２１３ｂは、二次加工アプリケーション２０５ｂで生成された二次加工データを記憶する。
【００２４】
上述したインデックス管理部２０１ｂは、ハードウエア資源（例えば、図４０）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００２５】
上述した一次加工データ記憶部２１１ｂ及び二次加工データ記憶部２１３ｂは、ハードウエア資源（例えば、図４０）を用いて実現される。
【００２６】
図４に、インデックス管理部２０１のモジュール構成例を示す。尚、ここでは各モジュールの簡単な説明に留める。詳細については、後述する。インデックス管理部２０１は、第１受信部４０１、第１登録部４０３、受付部４０５、第１探索部４０７、第１提供部４０９、及び第２登録部４１１を有する。
【００２７】
第１受信部４０１は、インデックスの登録要求を受信する。第１登録部４０３は、インデックス登録処理（Ａ）を実行する。受付部４０５は、例えばエッジノード１０５内のアプリケーションからの要求を受け付ける。第１探索部４０７は、エッジノード１０５の内部からの要求に応じて探索条件に合致するインデックスレコードを探索する。第１提供部４０９は、エッジノード１０５の内部からの取得要求に応じてインデックスを提供する。第２登録部４１１は、インデックス登録処理（Ｂ）を実行する。
【００２８】
上述した第１受信部４０１、第１登録部４０３、受付部４０５、第１探索部４０７、第１提供部４０９、及び第２登録部４１１は、ハードウエア資源（例えば、図４０）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００２９】
インデックス管理部２０１は、更に第１転送部４１３、第２受信部４１５、第２探索部４１７、第２提供部４１９、第２転送部４２１、削除部４２３、無効化部４２５、追加部４２７、マージ部４２９及びリスト送信部４３１を有する。
【００３０】
第１転送部４１３は、インデックスの探索条件を転送する。第２受信部４１５は、他のエッジノード１０５におけるインデックス管理部２０１から各種データを受信する。第２探索部４１７は、外部の装置からの要求に応じて探索条件に合致するインデックスを探索する。第２提供部４１９は、外部の装置からの取得要求に応じてインデックスを提供する。第２転送部４２１は、例えばインデックスの取得要求を転送する。削除部４２３は、インデックスを削除する。無効化部４２５は、参照ポインタに設定されているインデックスＩＤ及びそれに対応するノードＩＤを無効化する。追加部４２７は、無効インデックスリストにインデックスＩＤを追加する。マージ部４２９は、２つの無効インデックスリストをマージする。リスト送信部４３１は、無効インデックスリストを送信する。
【００３１】
上述した第１転送部４１３、第２受信部４１５、第２探索部４１７、第２提供部４１９、第２転送部４２１、削除部４２３、無効化部４２５、追加部４２７、マージ部４２９及びリスト送信部４３１は、ハードウエア資源（例えば、図４０）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００３２】
インデックス管理部２０１は、更に計数部４３３、要求送信部４３５、登録部４３７及び通知送信部４３９を有する。
【００３３】
計数部４３３は、インデックスの参照回数を計数する。要求送信部４３５は、参照元の登録要求を送信する。登録部４３７は、インデックスの参照元を登録する。通知送信部４３９は、無効インデックス通知を送信する。
【００３４】
上述した計数部４３３、要求送信部４３５、登録部４３７及び通知送信部４３９は、ハードウエア資源（例えば、図４０）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００３５】
インデックス管理部２０１は、更にインデックステーブル記憶部４５１、無効インデックス記憶部４５３、送信先記憶部４５５及び参照カウンタ記憶部４５７を有する。
【００３６】
インデックステーブル記憶部４５１は、インデックステーブルを記憶する。無効インデックス記憶部４５３は、無効インデックスリストを記憶する。送信先記憶部４５５は、送信先リストを記憶する。参照カウンタ記憶部４５７は、参照カウンタテーブルを記憶する。
【００３７】
上述したインデックステーブル記憶部４５１、無効インデックス記憶部４５３、送信先記憶部４５５及び参照カウンタ記憶部４５７は、ハードウエア資源（例えば、図４０）を用いて実現される。
【００３８】
まず、図５を用いて、インデックス収集のシーケンスについて説明する。フィールド端末１０１ｓは、所定のタイミング（この例では、１時間の間隔）で、計測デバイス１０３ｓを用いて気温及び湿度を計測し（Ｓ５０１）、計測された生データを自らの記憶部に格納する（Ｓ５０３）。
【００３９】
図６に、生データのテーブルの構成例を示す。フィールド端末１０１ｓにおける生データのテーブルの位置は、アドレスＡＤＲ＿Ｓで特定されるものとする。この例における生データのテーブルは、計測タイミングに対応するレコードを有している。
【００４０】
この例における生データのテーブルにおけるレコードは、気温が格納されるフィールドと、湿度が格納されるフィールドと、日付時刻が格納されるフィールドとを有している。日付時刻は、計測した時点を特定する。
【００４１】
図５の説明に戻る。フィールド端末１０１ｓは、格納した生データに関するインデックスを生成する（Ｓ５０５）。この例で生成されるインデックスＳは、｛データ項目名：［気温，湿度，日付時刻］，間隔：１時間，データ特性：計測値｝である。そして、フィールド端末１０１ｓは、エッジノード１０５ａ宛にインデックスの登録要求を送信する（Ｓ５０７）。インデックスの登録要求は、インデックス及び生データの格納位置を含んでいる。
【００４２】
エッジノード１０５ａのインデックス管理部２０１ａにおける第１受信部４０１がインデックスの登録要求を受信すると（Ｓ５０９）、エッジノード１０５ａのインデックス管理部２０１ａにおける第１登録部４０３は、インデックス登録処理（Ａ）を実行する（Ｓ５１１）。
【００４３】
インデックス登録処理（Ａ）では、インデックステーブルにインデックスが登録される。図７を用いて、インデックステーブルの構成例について説明する。図７は、ノードＩＤがＥＮ＿Ａであるエッジノード１０５ａに格納されているインデックステーブルの例を示している。
【００４４】
この例におけるインデックステーブルは、インデックスに対応するレコード（以下、インデックスレコードという。）を有している。インデックスレコードは、インデックスＩＤが格納されるフィールドと、インデックスが格納されるフィールドと、タイムスタンプが格納されるフィールドと、格納位置が格納されるフィールドと、参照ポインタが格納されるフィールドと、ノードＩＤが格納されるフィールドとを有している。
【００４５】
インデックスＩＤは、インデックスを識別する。タイムスタンプは、インデックスを登録した時点を特定する。格納位置は、生データが格納されている場所を特定する。参照ポインタには、生データに代えて加工データの格納位置を示すインデックスにおいて、加工の基礎となったデータのインデックスのＩＤが設定される。ノードＩＤは、参照ポインタで特定されるインデックスを保持しているノード装置を特定する。
【００４６】
続いて、図８を用いて、インデックス登録処理（Ａ）について説明する。例えばエッジノード１０５ａのインデックス管理部２０１ａにおける第１登録部４０３は、このフローに沿って処理を実行する。第１登録部４０３は、インデックステーブルに新たなレコードを設ける（Ｓ８０１）。第１登録部４０３は、新たなインデックスＩＤを当該レコードに設定する（Ｓ８０３）。第１登録部４０３は、インデックスの登録要求に含まれるインデックスを当該レコードに設定する（Ｓ８０５）。
【００４７】
第１登録部４０３は、当該レコードのタイムスタンプのフィールドに当日日付及び現在時刻を設定する（Ｓ８０７）。そして、第１登録部４０３は、インデックスの登録要求に含まれる格納位置を当該レコードに設定する（Ｓ８０９）。インデックス登録処理（Ａ）を終えると、呼び出し元の処理に復帰する。
【００４８】
図５の説明に戻る。インデックス登録処理（Ａ）を終えると、エッジノード１０５ａのインデックス管理部２０１ａにおける第１登録部４０３は、要求元であるフィールド端末１０１ｓ宛に成功通知を送信する（Ｓ５１３）。
【００４９】
フィールド端末１０１ｓが成功通知を受信して（Ｓ５１５）、一連の処理が終わる。
【００５０】
フィールド端末１０１ｔにおいても、フィールド端末１０１ｓの場合と同様に気温及び湿度を計測して、計測データ、つまり生データを保持する。そして、エッジノード１０５ｂは、フィールド端末１０１ｔから送られたインデックスをインデックステーブルに登録する。
【００５１】
図９に、エッジノード１０５ｂにおけるインデックステーブルの構成例を示す。図９は、ノードＩＤがＥＮ＿Ｂであるエッジノード１０５ｂに格納されているインデックステーブルの例を示している。図９に示したインデックステーブルの構成は、図７の場合と同様である。フィールド端末１０１ｔから送られたインデックスＴは、インデックスＳの場合と同様に、｛データ項目名：［気温，湿度，日付時刻］，間隔：１時間，データ特性：計測値｝である。
【００５２】
次に、エッジノード１０５ａの一次加工アプリケーション２０３ａにおいてデータの一次加工を行なう場合のシーケンスについて説明する。図１０に、一次加工のシーケンスを示す。
【００５３】
まず、エッジノード１０５ａの一次加工アプリケーション２０３ａは、エッジノード１０５ａのインデックス管理部２０１ａへインデックスの探索条件を送る（Ｓ１００１）。この例におけるインデックスの探索条件は、データ項目名に「気温」及び「湿度」を含むこと、データ特性が「計測値」であること、且つタイムスタンプが対象期間（例えば、２０１７／４／１の００：００：００から同日の０６：００：００までの期間）に含まれるインデックスであることである。
【００５４】
エッジノード１０５ａのインデックス管理部２０１ａにおける受付部４０５がインデックスの探索条件を受けると（Ｓ１００３）、エッジノード１０５ａのインデックス管理部２０１ａにおける第１探索部４０７は、探索条件に合致するインデックスレコードを探索する（Ｓ１００５）。そして、エッジノード１０５ａのインデックス管理部２０１ａにおける第１探索部４０７は、要求元であるエッジノード１０５ａの一次加工アプリケーション２０３ａへ探索結果を返す（Ｓ１００７）。探索結果には、探索によって見つけ出されたインデックスのＩＤが含まれている。つまり、複数のインデックスが見つけ出された場合には、インデックスＩＤの集合が含まれるようになる。
【００５５】
エッジノード１０５ａの一次加工アプリケーション２０３ａが探索結果を受けると、（Ｓ１００９）。内部インデックスの取得シーケンスに移る。
【００５６】
内部インデックスの取得シーケンスでは、まず、エッジノード１０５ａの一次加工アプリケーション２０３ａがインデックスの取得要求をインデックス管理部２０１ａへ送る（Ｓ１０１１）。インデックスの取得要求には、探索結果で特定されたインデックスＩＤが１つ含まれる。つまり、この例では、インデックスを１つずつ取得する。但し、複数のインデックスまとめて取得するようにしてもよい。
【００５７】
エッジノード１０５ａのインデックス管理部２０１ａにおける受付部４０５がインデックスの取得要求を受けると（Ｓ１０１３）、エッジノード１０５ａのインデックス管理部２０１ａにおける第１提供部４０９は、インデックスの取得要求に含まれるインデックスＩＤに対応するインデックスレコードを特定する（Ｓ１０１５）。エッジノード１０５ａのインデックス管理部２０１ａにおける第１提供部４０９は、要求元である一次加工アプリケーション２０３ａへインデックスレコードを返す（Ｓ１０１７）。
【００５８】
そして、エッジノード１０５ａの一次加工アプリケーション２０３ａは、インデックスレコードを受ける（Ｓ１０１９）。
【００５９】
このような内部インデックスの取得シーケンスが、探索結果に含まれる各インデックスＩＤに関して繰り返される（Ｓ１０２１乃至Ｓ１０２５）。
【００６０】
この後、エッジノード１０５ａの一次加工アプリケーション２０３ａは、取得したインデックスから生データの格納位置を読み出して、格納位置にアクセスして生データを読み取る。この例では、フィールド端末１０１ｓから生データが読み取られる。
【００６１】
図１１に、生データ取得後のシーケンスを示す。エッジノード１０５ａの一次加工アプリケーション２０３ａは、取得した生データに基づいて、６時間の平均気温及び平均湿度を算出する（Ｓ１１０１）。エッジノード１０５ａの一次加工アプリケーション２０３ａは、エッジノード１０５ａの一次加工データ記憶部２１１ａに設けられているテーブルに、一次加工データを格納する（Ｓ１１０３）。
【００６２】
図１２に、一次加工データのテーブルの構成例を示す。一次加工データのテーブルは、一次加工データ記憶部２１１ａに記憶される。一次加工データのテーブルの格納位置は、アドレスＡＤＲ＿Ａ１で特定されるものとする。  
【００６３】
この例における一次加工データのテーブルは、一次加工データに対応するレコードを有している。一次加工データのテーブルにおけるレコードは、気温が格納されるフィールドと、湿度が格納されるフィールドと、日付時刻が格納されるフィールドとを有している。気温のフィールドには、平均気温が格納される。湿度のフィールドには、平均湿度が格納される。日付時刻は、対象期間の中央時点を特定する。
【００６４】
図１１の説明に戻る。エッジノード１０５ａの一次加工アプリケーション２０３ａは、一次加工データのインデックスを生成する（Ｓ１１０５）。この例で生成されるインデックスＡ１は、｛データ項目名：［気温，湿度，日付時刻］，間隔：６時間，データ特性：平均値｝である。エッジノード１０５ａの一次加工アプリケーション２０３ａは、エッジノード１０５ａのインデックス管理部２０１ａ宛にインデックスの登録要求を送る（Ｓ１１０７）。このとき送られるインデックスの登録要求には、インデックス、一次加工データの格納位置、参照ポインタ及びノードＩＤが含まれる。参照ポインタは、一次加工データを生成する基礎となった生データに関するインデックスのＩＤである。ノードＩＤは、当該インデックスＩＤに係るインデックスを含むインデックステーブルを保持しているノード（この例では、エッジノード１０５）を特定する。
【００６５】
エッジノード１０５ａのインデックス管理部２０１ａにおける受付部４０５がインデックスの登録要求を受けると（Ｓ１１０９）、エッジノード１０５ａのインデックス管理部２０１ａにおける第２登録部４１１は、インデックス登録処理（Ｂ）を実行する（Ｓ１１１１）。
【００６６】
インデックス登録処理（Ｂ）によって、レコードが追加されたインデックステーブルの例を図１３に示す。この例では、インデックスＩＤがＡ０２５乃至Ａ０２８であるレコードが追加される。尚、同じ順番に係る参照ポインタとノードＩＤとが対応している。つまり、Ｎ番目の参照ポインタとＮ番目のノードＩＤとが組み合わされている。
【００６７】
続いて、図１４を用いて、インデックス登録処理（Ｂ）について説明する。エッジノード１０５ａのインデックス管理部２０１ａにおける第２登録部４１１は、このフローに沿って処理を実行する。第２登録部４１１は、インデックステーブルに新たなレコードを設ける（Ｓ１４０１）。第２登録部４１１は、新たなインデックスＩＤを当該レコードに設定する（Ｓ１４０３）。第２登録部４１１は、インデックスの登録要求に含まれるインデックスを当該レコードに設定する（Ｓ１４０５）。
【００６８】
第２登録部４１１は、当該レコードのタイムスタンプのフィールドに当日日付及び現在時刻を設定する（Ｓ１４０７）。第２登録部４１１は、インデックスの登録要求に含まれる格納位置を当該レコードに設定する（Ｓ１４０９）。
【００６９】
第２登録部４１１は、更にインデックスの登録要求に含まれる参照ポインタ及びノードＩＤを当該レコードに設定する（Ｓ１４１１）。インデックス登録処理（Ｂ）を終えると、呼び出し元の処理に復帰する。
【００７０】
図１１の説明に戻る。エッジノード１０５ａのインデックス管理部２０１ａにおける第２登録部４１１は、要求元であるエッジノード１０５ａの一次加工アプリケーション２０３ａへ成功通知を送る（Ｓ１１１３）。
【００７１】
エッジノード１０５ａの一次加工アプリケーション２０３ａが成功通知を受けると（Ｓ１１１５）、一連の処理が終わる。
【００７２】
エッジノード１０５ｂにおいても、同様の一次加工のシーケンスに従って、フィールド端末１０１ｔに保持されている生データを対象として、一次加工データ（この例では、平均気温及び平均湿度）を算出する。
【００７３】
エッジノード１０５ｂにおける一次加工データのテーブルは、一次加工データ記憶部２１１ｂに記憶される。一次加工データのテーブルの格納位置は、アドレスＡＤＲ＿Ｂ１で特定されるものとする。
【００７４】
また、エッジノード１０５ｂにおいて、図１５に示すように一次加工データに関するインデックスレコードが追加される。この例では、インデックスＩＤがＢ０２５乃至Ｂ０２８であるレコードが追加される。
【００７５】
次に、エッジノード１０５ａの二次加工アプリケーション２０５ａにおいてデータの二次加工を行なう場合のシーケンスについて説明する。図１６に、二次加工のシーケンスを示す。
【００７６】
エッジノード１０５ａの二次加工アプリケーション２０５ａは、エッジノード１０５ａのインデックス管理部２０１ａへインデックスの探索条件を送る（Ｓ１６０１）。この例におけるインデックスの探索条件は、データ項目名に「気温」を含むこと、間隔が「６時間」であること、データ特性が「平均値」であること、且つタイムスタンプが対象期間（例えば、２０１７／４／１の００：００：００から２０１７／４／２の００：００：００までの期間）に含まれるインデックスであることである。
【００７７】
エッジノード１０５ａのインデックス管理部２０１ａにおける受付部４０５がインデックスの探索条件を受けると（Ｓ１６０３）。エッジノード１０５ａのインデックス管理部２０１ａにおける第１探索部４０７は、探索条件に合致するインデックスレコードを探索する（Ｓ１６０５）。そして、エッジノード１０５ａのインデックス管理部２０１ａにおける第１探索部４０７は、要求元であるエッジノード１０５ａの二次加工アプリケーション２０５ａへ探索結果を返す（Ｓ１６０７）。探索結果には、内部で保持しているインデックスのＩＤが含まれている。
【００７８】
エッジノード１０５ａの一次加工アプリケーション２０３ａが探索結果を受けると（Ｓ１６０９）、内部インデックスの取得シーケンスに移る。
【００７９】
内部インデックスの取得シーケンスでは、まず、エッジノード１０５ａの二次加工アプリケーション２０５ａがインデックスの取得要求をインデックス管理部２０１ａへ送る（Ｓ１６１１）。インデックスの取得要求には、探索結果で特定されたインデックスＩＤが含まれる。
【００８０】
エッジノード１０５ａのインデックス管理部２０１ａにおける受付部４０５がインデックスの取得要求を受けると（Ｓ１６１３）、エッジノード１０５ａのインデックス管理部２０１ａにおける第１提供部４０９は、インデックスの取得要求に含まれるインデックスＩＤに対応するインデックスレコードを特定する（Ｓ１６１５）。エッジノード１０５ａのインデックス管理部２０１ａにおける第１提供部４０９は、要求元である二次加工アプリケーション２０５ａへインデックスレコードを返す（Ｓ１６１７）。
【００８１】
そして、エッジノード１０５ａの二次加工アプリケーション２０５ａは、インデックスレコードを受ける（Ｓ１６１９）。このような内部インデックスの取得シーケンスが、探索結果に含まれる各インデックスＩＤに関して繰り返される（Ｓ１６２１乃至Ｓ１６２５）。
【００８２】
続けて、エッジノード１０５ａの二次加工アプリケーション２０５ａは、取得した各インデックスから一次加工データの格納位置を読み出して、格納位置にアクセスして順次一次加工データを読み取る。この例では、エッジノード１０５ａの一次加工データ記憶部２１１ａから一次加工データが読み取られる。
【００８３】
その後、図１７に示すように、エッジノード１０５ａの二次加工アプリケーション２０５ａは、エッジノード１０５ｂのインデックス管理部２０１ｂで保持されているインデックスを取得するための処理に移る。
【００８４】
エッジノード１０５ａの二次加工アプリケーション２０５ａは、エッジノード１０５ａのインデックス管理部２０１ａにインデックスの探索条件の転送を依頼する（Ｓ１７０１）。インデックスの探索条件は、図１６の場合と同様である。このとき、転送先を特定するノードＩＤもエッジノード１０５ａのインデックス管理部２０１ａに渡される。この例では、エッジノード１０５ｂのノードＩＤである「ＥＮ＿Ｂ」が渡される。
【００８５】
エッジノード１０５ａのインデックス管理部２０１ａにおける受付部４０５がインデックスの探索条件及びノードＩＤを受けると（Ｓ１７０３）、エッジノード１０５ａのインデックス管理部２０１ａにおける第１転送部４１３は、当該インデックスの探索条件を当該ノードＩＤで特定されるノードのインデックス管理部２０１宛に送信する（Ｓ１７０５）。この例における送信先は、エッジノード１０５ｂのインデックス管理部２０１ｂである。
【００８６】
エッジノード１０５ｂのインデックス管理部２０１ｂにおける第２受信部４１５がインデックスの探索条件を受信すると（Ｓ１７０７）、エッジノード１０５ｂのインデックス管理部２０１ｂにおける第２探索部４１７は、探索条件に合致するインデックスレコードを探索する（Ｓ１７０９）。そして、エッジノード１０５ｂのインデックス管理部２０１ｂにおける第２探索部４１７は、探索結果をエッジノード１０５ａのインデックス管理部２０１ａへ送信する（Ｓ１７１１）。上述したように、探索結果は、探索によって見つけ出されたインデックスのＩＤが含まれている。
【００８７】
エッジノード１０５ａのインデックス管理部２０１ａにおける第２受信部４１５が探索結果を受信すると、（Ｓ１７１３）。エッジノード１０５ａのインデックス管理部２０１ａにおける第１転送部４１３は、依頼元であるエッジノード１０５ａの二次加工アプリケーション２０５ａへ探索結果を返す（Ｓ１７１５）。
【００８８】
エッジノード１０５ａの二次加工アプリケーション２０５ａが探索結果を受けると、（Ｓ１７１７）。図１８Ａに示した外部インデックスの取得シーケンスに移る。
【００８９】
外部インデックスの取得シーケンスで、エッジノード１０５ａの二次加工アプリケーション２０５ａは、エッジノード１０５ａのインデックス管理部２０１ａ宛に、インデックスの取得要求の転送を依頼する（Ｓ１８０１）。このとき、インデックスＩＤを含むインデックスの取得要求と、転送先を特定するノードＩＤがエッジノード１０５ａのインデックス管理部２０１ａに渡される。この例では、エッジノード１０５ｂのノードＩＤである「ＥＮ＿Ｂ」が渡される。
【００９０】
エッジノード１０５ａのインデックス管理部２０１ａにおける受付部４０５がインデックスの取得要求及びノードＩＤを受けると（Ｓ１８０３）、エッジノード１０５ａのインデックス管理部２０１ａにおける第２転送部４２１は、インデックスの取得要求を当該ノードＩＤで特定されるノードのインデックス管理部２０１宛に送信する（Ｓ１８０５）。
【００９１】
エッジノード１０５ｂのインデックス管理部２０１ｂにおける第２受信部４１５がインデックスの取得要求を受信すると（Ｓ１８０７）、エッジノード１０５ｂのインデックス管理部２０１ｂにおける第２提供部４１９は、インデックスの取得要求に含まれるインデックスＩＤが設定されているインデックスレコードを特定する（Ｓ１８０９）。そして、エッジノード１０５ｂのインデックス管理部２０１ｂにおける第２提供部４１９は、特定したインデックスレコードを要求元であるエッジノード１０５ａのインデックス管理部２０１ａ宛に送信する（Ｓ１８１１）。
【００９２】
エッジノード１０５ａのインデックス管理部２０１ａにおける第２受信部４１５がインデックスレコードを受信すると（Ｓ１８１３）。エッジノード１０５ａのインデックス管理部２０１ａにおける第２転送部４２１は、依頼元であるエッジノード１０５ａの二次加工アプリケーション２０５ａへインデックスレコードを返す（Ｓ１８１５）。
【００９３】
そして、エッジノード１０５ａの二次加工アプリケーション２０５ａがインデックスレコードを受ける（Ｓ１８１７）。この後、端子Ａ、端子Ｂ及び端子Ｃを介して図１８Ｂへ移る。
【００９４】
このような外部インデックスの取得シーケンスが、探索結果に含まれる各インデックスＩＤに関して繰り返される（Ｓ１８１９乃至Ｓ１８２３）。
【００９５】
この後、エッジノード１０５ａの二次加工アプリケーション２０５ａは、取得したインデックスから一次加工データの格納位置を読み出して、格納位置にアクセスして一次加工データを読み取る。この例では、エッジノード１０５ｂの一次加工データ記憶部２１１ｂから一次加工データが読み取られる。
【００９６】
図１９に、その後のシーケンスを示す。エッジノード１０５ａの二次加工アプリケーション２０５ａは、取得した一次加工データに基づいて、一日の平均気温を算出する（Ｓ１９０１）。エッジノード１０５ａの二次加工アプリケーション２０５ａは、エッジノード１０５ａの二次加工データ記憶部２１３ａに設けられているテーブルに、二次加工データを格納する（Ｓ１９０３）。
【００９７】
図２０に、二次加工データのテーブルの構成例を示す。二次加工データのテーブルは、二次加工データ記憶部２１３ａに記憶される。二次加工データのテーブルの格納位置は、アドレスＡＤＲ＿Ａ２で特定されるものとする。
【００９８】
この例における二次加工データのテーブルは、二次加工データのテーブルに対応するレコードを有している。二次加工データのテーブルにおけるレコードは、気温が格納されるフィールドと、日付時刻が格納されるフィールドとを有している。気温が格納されるフィールドには、１日の平均気温が格納される。日付時刻は、対象期間の中央時点を特定する。
【００９９】
図１９の説明に戻る。エッジノード１０５ａの二次加工アプリケーション２０５ａは、インデックスを生成する（Ｓ１９０５）。この例で生成されるインデックスＡ２は、｛データ項目名：［気温，日付時刻］，間隔：１日，データ特性：平均値｝である。エッジノード１０５ａの二次加工アプリケーション２０５ａは、エッジノード１０５ａのインデックス管理部２０１ａ宛にインデックスの登録要求を送る（Ｓ１９０７）。このとき送られるインデックスの登録要求には、インデックス、格納位置、参照ポインタ及びノードＩＤが含まれる。
【０１００】
エッジノード１０５ａのインデックス管理部２０１ａにおける受付部４０５がインデックスの登録要求を受けると（Ｓ１９０９）、エッジノード１０５ａのインデックス管理部２０１ａにおける第２登録部４１１は、インデックス登録処理（Ｂ）を実行する（Ｓ１９１１）。
【０１０１】
インデックス登録処理（Ｂ）によって、レコードが追加されたインデックステーブルの例を図２１に示す。インデックスＩＤがＡ０２９であるレコードが追加される。
【０１０２】
図１９の説明に戻る。エッジノード１０５ａのインデックス管理部２０１ａにおける第２登録部４１１は、要求元であるエッジノード１０５ａの二次加工アプリケーション２０５ａへ成功通知を送る（Ｓ１９１３）。
【０１０３】
エッジノード１０５ａの二次加工アプリケーション２０５ａが成功通知を受けると（Ｓ１９１５）、一連の処理が終わる。
【０１０４】
エッジノード１０５ｂの二次加工アプリケーション２０５ｂは、平均気温に代えて平均湿度に関して、二次加工アプリケーション２０５ａの場合と同様の処理を行う。つまり、二次加工アプリケーション２０５ｂにおける二次加工データは、１日の平均湿度である。図２２に、エッジノード１０５ｂの二次加工アプリケーション２０５ｂが二次加工データを生成した時点におけるインデックステーブルの構成例を示す。インデックスＩＤがＢ０２９であるレコードが追加される。
【０１０５】
続いて、解析アプリケーション２０７ａにおいて温度について解析を行う場合のシーケンスについて説明する。図２３に、解析のシーケンスを示す。エッジノード１０５ａの解析アプリケーション２０７ａは、エッジノード１０５ａのインデックス管理部２０１ａへインデックスの探索条件を送る（Ｓ２３０１）。この例におけるインデックスの探索条件は、データ項目名に「気温」を含むこと、間隔が「１日」であること、且つデータ特性が「平均値」であること、且つタイムスタンプが所定の日付（例えば、２０１７／４／１）に含まれるインデックスであることである。
【０１０６】
エッジノード１０５ａのインデックス管理部２０１ａにおける受付部４０５がインデックスの探索条件を受けると（Ｓ２３０３）、エッジノード１０５ａのインデックス管理部２０１ａにおける第１探索部４０７は、探索条件に合致するインデックスレコードを探索する（Ｓ２３０５）。エッジノード１０５ａのインデックス管理部２０１ａにおける第１探索部４０７は、探索結果を送る（Ｓ２３０７）。この例では、探索結果にインデックスＩＤの「Ａ０２９」が含まれているものとする。
【０１０７】
エッジノード１０５ａの解析アプリケーション２０７ａが探索結果を受けると（Ｓ２３０９）、内部インデックスの取得シーケンスへ移る（Ｓ２３１１）。このときの内部インデックスの取得シーケンスで、エッジノード１０５ａの解析アプリケーション２０７ａは、インデックスＩＤの「Ａ０２９」で識別されるインデックスレコードを取得する。
【０１０８】
取得したインデックスレコードには、参照ポインタとノードＩＤとの組が８つ設定されている。前半の４つの組は、二次加工において自ら保持するインデックスが参照されたことを示している。以下では、自ら保持するインデックスを参照する形態を内部参照という。後半の４つの組は、二次加工において外部のノードが保持するインデックスが参照されたことを示している。以下では、外部のノードが保持するインデックスを参照する形態を外部参照という。尚、以下で説明する解析においても内部参照と外部参照とを行う。
【０１０９】
エッジノード１０５ａの解析アプリケーション２０７ａは、内部参照に係る参照ポインタとノードＩＤとの組を１つ特定する（Ｓ２３１３）。つまり、ノードＩＤが、自らのノードＩＤと一致する組を順次特定する。そして、エッジノード１０５ａは、内部インデックスの取得シーケンスにおいて、当該参照ポインタとノードＩＤの組で特定されるインデックスレコードを取得する（Ｓ２３１５）。
【０１１０】
同様に、他の内部参照に係る参照ポインタとノードＩＤとの組についても、内部インデックスの取得シーケンスにおいて、当該参照ポインタとノードＩＤとの組で特定されるインデックスレコードを取得する。
【０１１１】
続いて、エッジノード１０５ａの解析アプリケーション２０７ａは、外部参照に係る参照ポインタとノードＩＤの組を１つ特定する（Ｓ２３１７）。つまり、ノードＩＤが、自らのノードＩＤと一致しない組を順次特定する。そして、エッジノード１０５ａは、外部インデックスの取得シーケンスにおいて、当該参照ポインタとノードＩＤとの組で特定されるインデックスレコードを取得する（Ｓ２３１９）。
【０１１２】
同様に、他の外部参照に係る参照ポインタとノードＩＤとの組についても、外部インデックスの取得シーケンスにおいて、当該参照ポインタとノードＩＤとの組で特定されるインデックスレコードを取得する。
【０１１３】
このように、或るインデックスで特定される二次加工データを生成する際に参照された一次データを収集して解析が行われる。解析の内容については、省略する。
【０１１４】
エッジノード１０５ｂの解析アプリケーション２０７ｂも同様に、平均気温に代えて平均湿度に関する解析を行う。
【０１１５】
以上説明したネットワークシステムにおいて、インデックスが削除されることがある。ここでは、一次加工データとそのインデックスが削除される例について説明する。
【０１１６】
図２４に、一次加工データが削除されたインデックステーブルの構成例を示す。図２４は、エッジノード１０５ａの一次加工データ記憶部２１１ａに格納されているインデックステーブルにおいて、インデックスＩＤがＡ０２５乃至Ａ０２８のインデックスが削除された状態を示している。つまり、当該インデックスＩＤのレコードは削除されている。また、参照ポインタに設定されていた当該インデックスＩＤ及びそれらに対応するノードＩＤは、無効コードに置き換えられている。
【０１１７】
図２５に、インデックス削除のシーケンスを示す。エッジノード１０５ａの一次加工アプリケーション２０３ａが一次加工データを削除すると（Ｓ２５０１）、エッジノード１０５ａの一次加工アプリケーション２０３ａは、一次加工データのインデックスが保持されているエッジノード１０５ａのインデックス管理部２０１ａへインデックスの削除要求を送る（Ｓ２５０３）。インデックスの削除要求には、削除対象のインデックスＩＤが含まれる。
【０１１８】
エッジノード１０５ａのインデックス管理部２０１ａにおける受付部４０５がインデックスの削除要求を受けると（Ｓ２５０５）、エッジノード１０５ａのインデックス管理部２０１ａにおける削除部４２３は、インデックスの削除要求に含まれるインデックスＩＤのインデックスレコードを特定する（Ｓ２５０７）。そして、エッジノード１０５ａのインデックス管理部２０１ａにおける削除部４２３は、当該インデックスレコードを削除する（Ｓ２５０９）。
【０１１９】
また、エッジノード１０５ａのインデックス管理部２０１ａにおける無効化部４２５は、各インデックスレコードの参照ポインタのフィールドに設定されている当該インデックスＩＤ及び当該インデックスＩＤに対応するノードＩＤを無効コードに置き換える（Ｓ２５１１）。そして、エッジノード１０５ａのインデックス管理部２０１ａにおける削除部４２３は、要求元であるエッジノード１０５ａの一次加工アプリケーション２０３ａへ成功通知を返す（Ｓ２５１３）。
【０１２０】
エッジノード１０５ａの一次加工アプリケーション２０３ａが成功通知を受けると（Ｓ２５１５）、一連の処理が終わる。
【０１２１】
このように、参照ポインタに設定されているインデックスＩＤが存在しなくなった場合に、当該参照ポインタを無効コードに置き換えれば、実在しないＩＤを参照する処理を省くようにできる。
【０１２２】
但し、削除されたインデックステーブル以外のインデックステーブル（この例ではエッジノード１０５ｂのインデックス管理部２０１ｂにおけるインデックステーブル）に設定されている参照ポインタは、書き換えられていない。つまり、存在しなくなったインデックスＩＤが、参照ポインタのフィールドに残っている。
【０１２３】
図２６に示すように、エッジノード１０５ｂのインデックス管理部２０１ｂにおけるインデックステーブルに関しても、存在しなくなったインデックスＩＤ及びノードＩＤを無効コードに置き換えるようにすることが望ましい。このようにすれば、例えばインデックスＩＤ：Ｂ０２９に基づいて一次加工データを収集する解析アプリケーション２０７ｂにおいて、無用なインデックス取得の処理を省くことができる。
【０１２４】
或る方法では、インデックス管理部２０１においてインデックスを削除した際に、他のノードにおけるインデックス管理部２０１へ無効なインデックスＩＤを通知すれば、他のノードにおけるインデックス管理部２０１において参照ポインタ及びノードＩＤを書き換えるようにできる。但し、この方法の場合には、伝送負荷が大きいという問題がある。
【０１２５】
そこで、本実施の形態では、削除されたインデックスのＩＤをリストとしてまとめて保持し、他のノード装置のインデックス管理部２０１からインデックスの取得要求を受け、当該インデックスが存在しない場合に、当該インデックスのＩＤと他のインデックスＩＤとを併せてリストとして送るようにする。このようにすれば、通知機会が減るので伝送付加が削減される。
【０１２６】
図２７に、無効インデックスリストの例を示す。無効インデックスリストには、削除されたインデックスのＩＤつまり、無効なインデックスＩＤが格納される。この例では、インデックス管理部２０１ａにおいて削除されたインデックスのＩＤであるＡ０２５、Ａ０２６、Ａ０２７及びＡ０２８が登録されている。
【０１２７】
本実施の形態では、図２５のＳ２５０５乃至Ｓ２５１３に示した処理に相当するインデックス削除処理において、無効インデックステーブルを生成するようにする。
【０１２８】
図２８に、本実施の形態におけるインデックス削除処理フローを示す。受付部４０５がインデックスの削除要求（インデックスＩＤを含む）を受けると（Ｓ２８０１）、削除部４２３は、当該インデックスＩＤが設定されているインデックスレコードを特定する（Ｓ２８０３）。そして、削除部４２３は、特定したインデックスレコードを削除する（Ｓ２８０５）。
【０１２９】
無効化部４２５は、インデックステーブルにおける各インデックスレコードを対象として、参照ポインタに当該インデックスＩＤが設定されている場合に、当該インデックスＩＤ及び当該インデックスＩＤに対応するノードＩＤを無効コードに置き換える（Ｓ２８０７）。
【０１３０】
追加部４２７は、当該インデックスＩＤを無効インデックスリストに追加し（Ｓ２８０９）、削除部４２３は成功通知を要求元へ返す（Ｓ２８１１）。
【０１３１】
また、本実施の形態では、インデックス管理部２０１において他のノード装置におけるインデックス管理部２０１から無効インデックスリストを受け取った場合に、自身が保持している無効インデックスリストを更新する。具体的には、受け取った無効インデックスリストと自身が保持している無効インデックスリストとをマージする。
【０１３２】
この例で、インデックス管理部２０１は、ＸＯＲ（排他的論理和）によって存続させるインデックスＩＤを特定する。つまり、自身が保持している無効インデックスリスト或いは受け取った無効インデックスリストのいずれか一方のみに設定されているインデックスＩＤを残す。つまり、両方の無効インデックスリストに含まれるインデックスＩＤは残さない。但し、インデックス管理部２０１は、ＯＲ（論理和）によって存続させるインデックスＩＤを特定するようにしてもよい。
【０１３３】
図２９に、無効インデックスリストのマージ例を示す。当初、エッジノード１０５ｂのインデックス管理部２０１ｂにおいて空の無効インデックスリスト２９０１を保持している。このとき、エッジノード１０５ｂのインデックス管理部２０１ｂが、インデックスＩＤ：Ａ０２５を含むインデックスの取得要求をエッジノード１０５ａのインデックス管理部２０１ａに送ると想定する。
【０１３４】
一方、エッジノード１０５ａのインデックス管理部２０１ａが保持するインデックステーブルにおいて、インデックスＩＤ：Ａ０２５及びインデックスＩＤ：Ａ０２６のインデックスが既に削除されているものとする。従って、エッジノード１０５ｂのインデックス管理部２０１ｂは、Ａ０２５及びＡ０２６のインデックスＩＤが設定されている無効インデックスリスト２９０３を受け取る。
【０１３５】
エッジノード１０５ｂのインデックス管理部２０１ｂは、自ら保持するインデックステーブルにおける参照ポインタのフィールドを探索して、Ａ０２５及びＡ０２６を無効コードに置き換える、また、当該参照ポインタに対応するノードＩＤも無効コードに置き換えられる。
【０１３６】
更に、エッジノード１０５ｂのインデックス管理部２０１ｂにおいて、無効インデックスリスト２９０１と無効インデックスリスト２９０３とをマージして、新たな無効インデックスリスト２９０５が生成される。このとき、無効インデックスリスト２９０３にのみ含まれるＡ０２５及びＡ０２６のインデックスＩＤが、無効インデックスリスト２９０５に設定される。そして、無効インデックスリスト２９０５は、エッジノード１０５ｂのインデックス管理部２０１ｂにおいて保持される。
【０１３７】
続いて、エッジノード１０５ｂのインデックス管理部２０１ｂにおいて、Ｂ０２５、Ｂ０２６、Ｂ０２７及びＢ０２８で特定されるインデックスが削除されたものと想定する。エッジノード１０５ｂのインデックス管理部２０１ｂは、自ら保持するインデックステーブルにおける参照ポインタのフィールドを探索して、Ｂ０２５、Ｂ０２６、Ｂ０２７及びＢ０２８のインデックスＩＤを無効コードに置き換える、また、当該参照ポインタに対応するノードＩＤも無効コードに置き換えられる。
【０１３８】
このとき、エッジノード１０５ａのインデックス管理部２０１ａにおける無効インデックスリストに、Ｂ０２５、Ｂ０２６、Ｂ０２７及びＢ０２８のインデックスＩＤが追加される。
【０１３９】
次に、エッジノード１０５ｂのインデックス管理部２０１ｂから、インデックスＩＤのＡ０２７を含むインデックスの取得要求が、エッジノード１０５ａのインデックス管理部２０１ａへ送られるものとする。
【０１４０】
このとき、エッジノード１０５ｂのインデックス管理部２０１ｂにおいて、Ａ０２７及びＡ０２８のインデックスが既に削除されていれば、エッジノード１０５ｂのインデックス管理部２０１ｂは、Ａ０２５乃至Ａ０２８のインデックスＩＤが設定されている無効インデックスリスト２９０３を受け取る。
【０１４１】
エッジノード１０５ｂのインデックス管理部２０１ｂは、自ら保持するインデックステーブルにおける参照ポインタのフィールドを探索して、Ａ０２７及びＡ０２８を無効コードに置き換える、また、当該参照ポインタに対応するノードＩＤも無効コードに置き換えられる。
【０１４２】
更に、エッジノード１０５ｂのインデックス管理部２０１ｂにおいて、無効インデックスリスト２９０７と無効インデックスリスト２９０９とをマージして、新たな無効インデックスリスト２９１１が生成される。
【０１４３】
このとき、無効インデックスリスト２９０７と無効インデックスリスト２９０９との両方に含まれるＡ０２５及びＡ０２６のインデックスＩＤは、無効インデックスリスト２９１１に設定されない。Ｂ０２５、Ｂ０２６、Ｂ０２７及びＢ０２８は、無効インデックスリスト２９０７のみに含まれるので、無効インデックスリスト２９１１に設定される。また、新たに受け取ったＡ０２７及びＡ０２８は、無効インデックスリスト２９０７に含まれないので、無効インデックスリスト２９１１に設定される。
【０１４４】
このようにすれば、無効インデックスリストの肥大化を防ぐことができる。
【０１４５】
この例におけるインデックスＩＤのＡ０２５及びＡ０２６に関して、一回目の無効インデックスリストを受け取った時点で、参照ポインタ及びノードＩＤの無効化が済んでいる。従って、２回目の無効インデックスリストを受け取った時点でこれらを残さなくても問題はない。
【０１４６】
但し、一旦排除されたインデックスＩＤ（例えば、Ａ０２５及びＡ０２６）が復活することがある。図２９の無効インデックスリスト２９１１を保持している状態で、Ａ０２５及びＡ０２６を含む無効インデックスリストを再び受け取ると、Ａ０２５及びＡ０２６がまた設定されることになる。
【０１４７】
そこで、本実施の形態では、無効インデックスリストの送信側で、同じ相手に頻繁に無効インデックスリストを送らないように制御する。具体的には、最近送った先のノード装置のＩＤを所定数保持し、その装置には無効インデックスリストを再送しないようにする。
【０１４８】
図３０を用いて、送信先リストに基づく制御について説明する。送信先リストには、無効インデックスリストの送信先に相当するノード装置を特定するノードＩＤが格納される。図３０は、エッジノード１０５ａにおける送信先リストである。
【０１４９】
当初の送信先リスト３００１は、ノードＩＤがＥＮ＿Ｂであるエッジノード１０５ｂに無効インデックスリストを送信した後の状態を示している。
【０１５０】
このあと、ノードＩＤがＥＮ＿Ｃであるエッジノード１０５ｃに無効インデックスリストを送信すると、送信先リスト３００３にはＥＮ＿Ｃが追加される。
【０１５１】
次に、ノードＩＤがＥＮ＿Ｄであるエッジノード１０５ｄに無効インデックスリストを送信すると、送信先リスト３００５にはＥＮ＿Ｄが追加される。
【０１５２】
次に、ノードＩＤがＥＮ＿Ｅであるエッジノード１０５ｅに無効インデックスリストを送信すると、送信先リスト３００７にはＥＮ＿Ｅが追加される。このとき、最古のノードＩＤ：ＥＮ＿Ｂが削除される。
【０１５３】
次に、ノードＩＤがＥＮ＿Ｂであるエッジノード１０５ｂに無効インデックスリストを送信すると、送信先リスト３００９にはＥＮ＿Ｂが追加される。このとき、最古のノードＩＤ：ＥＮ＿Ｃが削除される。
【０１５４】
このように、所定回まで遡った送信先だけが保持されるようにする。
【０１５５】
続いて、図１８に示したＳ１８０３、Ｓ１８０５、Ｓ１８１３及びＳ１８１５の処理に相当する仲介処理について説明する。図３１に、仲介処理フローを示す。
【０１５６】
受付部４０５がアプリケーションからインデックスの取得要求（インデックスＩＤを含む）及びノードＩＤを受けると（Ｓ３１０１）、第２転送部４２１は、ノードＩＤで特定されるノード装置のインデックス管理部２０１宛に、インデックスの取得要求を送信する（Ｓ３１０３）。
【０１５７】
その後、第２受信部４１５は、インデックスＩＤで特定されるノード装置のインデックス管理部２０１における処理の結果として、インデックスレコードを受信したか否かを判定する（Ｓ３１０５）。
【０１５８】
インデックスレコードを受信したと判定した場合には、第２転送部４２１は、受信したインデックスレコードを要求元のアプリケーションへ返す（Ｓ３１０７）。そして、Ｓ３１０１に示した処理に戻って、上述した処理を繰り返す。
【０１５９】
一方、インデックスレコードを受信していないと判定した場合には、第２受信部４１５は、インデックスＩＤで特定されるノード装置のインデックス管理部２０１における処理の結果として、失敗通知を受信したか否かを判定する（Ｓ３１０９）。
【０１６０】
失敗通知を受信したと判定した場合には、第２転送部４２１は、失敗通知を要求元のアプリケーションへ送る（Ｓ３１１１）。
【０１６１】
一方、失敗通知を受信していないと判定した場合には、第２受信部４１５は、インデックスＩＤで特定されるノード装置のインデックス管理部２０１における処理の結果として、無効インデックスリストを受信したか否かを判定する（Ｓ３１１３）。
【０１６２】
無効インデックスリストを受信していないと判定した場合には、Ｓ３１０５に示した処理に戻って、上述した処理を繰り返す。
【０１６３】
一方、無効インデックスリストを受信したと判定した場合には、端子Ｄを介して、図３２に示したＳ３２０１の処理に移る。
【０１６４】
無効化部４２５は、無効インデックスリストに含まれるインデックスＩＤを１つ特定する（Ｓ３２０１）。無効化部４２５は、インデックステーブルにおける参照ポインタのフィールドのうち、特定されたインデックスＩＤが設定されているフィールドに無効コードを設定する。つまり、参照ポインタに設定されているインデックスＩＤが削除されたものであれば、無効コードに置き換える。無効化部４２５は、置換された参照ポインタに対応するノードＩＤも無効コードに置き換える（Ｓ３２０３）。
【０１６５】
無効化部４２５は、無効インデックスリストに含まれるインデックスＩＤのうち、未特定のインデックスＩＤがあるか否かを判定する（Ｓ３２０５）。未特定のインデックスＩＤがあると判定した場合には、Ｓ３２０１に示した処理に戻って、上述した処理を繰り返す。
【０１６６】
一方、未特定のインデックスＩＤがないと判定した場合には、マージ部４２９は、上述したように、ＸＯＲで２つの無効インデックスリストをマージする（Ｓ３２０７）。そして、第２転送部４２１は、失敗通知を要求元のアプリケーションへ送る（Ｓ３２０９）。
【０１６７】
その後、端子Ｅを介して、図３１に示したＳ３１０１に示した処理に戻って、上述した処理を繰り返す。
【０１６８】
続いて、図１８に示したＳ１８０７乃至Ｓ１８１１の処理に相当するインデックス提供処理について説明する。図３３に、インデックス提供処理フローを示す。
【０１６９】
第２受信部４１５が、外部のインデックス管理部２０１からインデックスの取得要求（インデックスＩＤを含む）を受信すると（Ｓ３３０１）、第２提供部４１９は、インデックスの取得要求に含まれるインデックスＩＤが設定されているインデックスレコードを探索する（Ｓ３３０３）。
【０１７０】
第２提供部４１９は、当該インデックスＩＤが設定されているインデックスレコードが有ったか否かによって処理を分岐させる（Ｓ３３０５）。当該インデックスＩＤが設定されているインデックスレコードが有った場合には、第２提供部４１９は、インデックスレコードを要求元のインデックス管理部２０１へ送信する（Ｓ３３０７）。
【０１７１】
一方、当該インデックスＩＤが設定されているインデックスレコードが無かった場合には、リスト送信部４３１は、インデックス取得の要求元であるノード装置のＩＤが送信先リストに含まれるか否かを判定する（Ｓ３３０９）。要求元ノード装置のＩＤが送信先リストに含まれると判定した場合には、リスト送信部４３１は、失敗通知を要求元のインデックス管理部２０１へ送信する（Ｓ３３１１）。つまり、無効インデックスリストの送信が省かれる。
【０１７２】
一方、要求元ノード装置のＩＤが送信先リストに含まれないと判定した場合には、リスト送信部４３１は、要求元のインデックス管理部２０１へ無効インデックスリストを送信する（Ｓ３３１３）。
【０１７３】
リスト送信部４３１は、送信先リストに空きが無ければ、送信先リストのうち最古のノードＩＤを削除する（Ｓ３３１５）。そして、リスト送信部４３１は、送信先リストに要求元のノードＩＤを加える（Ｓ３３１７）。Ｓ３３０１の処理に戻って上述した処理を繰り返す。
【０１７４】
本実施の形態によれば、削除されたインデックスの識別子を通知するための伝送負荷を軽減できる。
【０１７５】
更に、無効インデックスリストに基づいて参照ポインタを無効化するので、無駄なインデックス参照を行わないようにできる。
【０１７６】
更に、受信した無効インデックスリストとマージして保持する無効インデックスリストを更新するので、受信した無効インデックスリストの内容を間接的に広めることができる。
【０１７７】
更に、排他的論理和によってインデックスＩＤを選別するので、保持する無効インデックスリストの肥大化を防ぐことができる。
【０１７８】
更に、送信先リストにあるノード装置には無効インデックスリストを送らないので、無用な再送信が減る。
【０１７９】
［実施の形態２］
本実施の形態では、頻度の高い参照関係について双方向ポインタを設けて、頻繁に参照されるインデックスが削除された場合に、参照する側のノード装置に当該インデックスが無効である旨の通知（以下、無効インデックス通知という）を送る。そして、参照する側のノード装置において参照ポインタ及びノードＩＤを無効とする。
【０１８０】
まず、参照回数をカウントするために用いられる参照カウンタテーブルについて説明する。図３４に、参照カウンタテーブルの例を示す。この例における参照カウンタテーブルは参照したインデックスに対応するレコードを有している。参照カウンタテーブルのレコードは、インデックスＩＤが格納されるフィールドと、ノードＩＤが格納されるフィールドと、参照回数が格納されるフィールドとを有している。インデックスＩＤとノードＩＤは、参照されたインデックスを特定する。
【０１８１】
図３５に、実施の形態２に係るインデックステーブルの構成例を示す。実施の形態２に係るインデックスレコードは、参照元ノードＩＤを格納するためのフィールドを有している。参照元ノードＩＤは、当該インデックスを頻繁に参照したノード装置を特定する。
【０１８２】
図３６に、実施の形態２に係る仲介処理フローを示す。図３１に示した仲介処理の場合と異なる点について説明する。仲介処理は、インデックスを参照する側のノード装置、つまり参照元における処理である。
【０１８３】
Ｓ３１０１の処理は、図３１の場合と同様である。計数部４３３は、インデックスの取得要求に含まれるインデックスＩＤと、当該要求に付加されているノードＩＤとの組合せのレコードが参照カウンタテーブルにあるか否かを判定する（Ｓ３６０１）。
【０１８４】
当該インデックスＩＤと当該ノードＩＤとの組合せのレコードが参照カウンタテーブルにない場合には、計数部４３３は、当該インデックスＩＤと当該ノードＩＤとの組合せのレコードを設ける（Ｓ３６０３）。そして、計数部４３３は、当該レコードの参照回数に１を設定する（Ｓ３６０５）。
【０１８５】
一方、当該インデックスＩＤと当該ノードＩＤとの組合せのレコードが参照カウンタテーブルにある場合には、計数部４３３は、当該レコードの参照回数に１を加算する（Ｓ３６０７）。
【０１８６】
要求送信部４３５は、参照回数が閾値を超えたか否かを判定する（Ｓ３６０９）。参照回数が閾値を超えていないと判定した場合には、そのまま図３１のＳ３１０３に示した処理に移る。Ｓ３１０３以降の処理は、図３１及び図３２の場合と同様である。
【０１８７】
参照回数が閾値を超えたと判定した場合には、要求送信部４３５は、参照元の登録要求を送信する（Ｓ３６１１）。参照元の登録要求には、インデックスの取得要求に含まれるインデックスＩＤと当該ノード装置自身のＩＤ（以下、参照元ノードＩＤという）とが含まれる。そして、計数部４３３は、参照カウンタテーブルにおいて、当該インデックスＩＤと当該参照元ノードＩＤが設定されているレコードを削除する（Ｓ３６１３）。そして、図３１のＳ３１０３に示した処理に移る。Ｓ３１０３以降の処理は、図３１及び図３２の場合と同様である。
【０１８８】
続いて、参照される側のノード装置、つまり参照先における処理について説明する。図３７に、参照元を登録する処理（参照元の登録処理という。）フローを示す。
【０１８９】
第２受信部４１５が参照元の登録要求（インデックスＩＤ及び参照元ノードＩＤを含む）を受信すると（Ｓ３７０１）、登録部４３７は、参照元の登録要求に含まれるインデックスＩＤが設定されているインデックスレコードを特定する（Ｓ３７０３）。そして、登録部４３７は、参照元の登録要求に含まれる参照元ノードＩＤを当該インデックスレコードに設定する（Ｓ３７０５）。そして、Ｓ３７０１に示した処理に戻って、上述した処理を繰り返す。以上の処理で、双方向ポインタが設定された状態になる。
【０１９０】
続いて、インデックスが削除された場合の処理について説明する。図３８に、実施の形態２に係るインデックス削除処理フローを示す。この処理は、参照先における処理である。
【０１９１】
Ｓ２８０１、Ｓ２８０３、Ｓ２８０７乃至Ｓ２８１１の処理は、図２８の場合と同様である。
【０１９２】
通知送信部４３９は、Ｓ２８０３で特定されたインデックスレコードに参照元ノードＩＤが設定されているか否かを判定する（Ｓ３８０１）。インデックスレコードに参照元ノードＩＤが設定されていないと判定した場合には、削除部４２３は、当該インデックスレコードを削除する（Ｓ２８０５）。そして、Ｓ２８０１に示した処理に戻って、上述した処理を繰り返す。
【０１９３】
一方、インデックスレコードに参照元ノードＩＤが設定されていると判定した場合には、通知送信部４３９は、参照元ノードＩＤで特定されるノード装置のインデックス管理部２０１宛てに無効インデックス通知を送信する（Ｓ３８０３）。無効インデックス通知には、削除されたインデックスのＩＤと当該ノード装置自身のＩＤが含まれる。削除部４２３は、当該インデックスレコードを削除する（Ｓ２８０５）。そして、Ｓ２８０１に示した処理に戻って、上述した処理を繰り返す。
【０１９４】
図３９に、ポインタ無効化処理フローを示す。この処理は、参照元における処理である。第２受信部４１５が無効インデックス通知を受信すると（Ｓ３９０１）、無効化部４２５は、インデックステーブルにおける参照ポインタのフィールドのうち、無効インデックス通知に含まれるインデックスＩＤが設定されているフィールドに無効コードを設定する。更に、無効化部４２５は、置換された参照ポインタに対応するノードＩＤも無効コードに置き換える（Ｓ３９０３）。そして、Ｓ３９０１の処理に戻る。
【０１９５】
本実施の形態によれば、或るインデックスを頻繁に参照していた装置へ、当該インデックスが削除されたことを迅速に知らせることができる。
【０１９６】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【０１９７】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
【０１９８】
なお、上で述べたエッジノード１０５は、コンピュータ装置であって、図４０に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１９９】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０２００】
本実施の形態に係る分散データ管理方法は、ネットワークシステムにおいて分散するデータの格納位置を特定するインデックスを複数保持するための分散データ管理装置に、（Ａ）保持しているインデックスのいずれかが削除された場合に、当該削除されたインデックスの識別子を、自ら保持する第１無効リストに加え、（Ｂ）情報処理装置から要求されたインデックスを保持していないと判定した場合に、第１無効リストを当該情報処理装置へ送信する処理を含む。
【０２０１】
このようにすれば、削除されたインデックスの識別子を通知するための伝送負荷を軽減できる。
【０２０２】
更に、他の分散データ管理装置において削除されたインデックスの識別子を含む第２無効リストを受信した場合に、第２無効リストに含まれるインデックスの識別子が設定されている参照ポインタを無効化するようにしてもよい。
【０２０３】
このようにすれば、無駄なインデックス参照を行わないようにできる。
【０２０４】
更に、第１無効リストと第２無効リストとのマージによって、第１無効リストを更新するようにしてもよい。
【０２０５】
このようにすれば、第２無効リストの内容を間接的に広めることができる。
【０２０６】
更に、上記マージにおいて、第１無効リストに含まれる識別子と第２無効リストに含まれる識別子との排他的論理和によって、更新後の第１無効リストに含める識別子を特定するようにしてもよい。
【０２０７】
このようにすれば、第１無効リストの肥大化を防ぐことができる。
【０２０８】
更に、第１無効リストを送信する度に送信先を記憶するようにしてもよい。そして、所定回まで遡った送信先に該当する情報処理装置への第１無効リストの送信を省くようにしてもよい。
【０２０９】
このようにすれば、第１無効リストの送信回数を抑制することができる。
【０２１０】
更に、同一のインデックスに関する取得要求の回数が所定値を超えた情報処理装置から当該情報処理装置の登録要求を受信した場合に、当該インデックスと対応付けて当該情報処理装置の識別子を記憶するようにしてもよい。そして、保持しているインデックスのいずれかが削除された場合に、当該削除されたインデックスに対応する情報処理装置の識別子によって特定される宛先へ、当該削除されたインデックスの識別子の通知を送信するようにしてもよい。
【０２１１】
このようにすれば、或るインデックスを頻繁に参照していた装置へ、当該インデックスが削除されたことを迅速に知らせることができる。
【０２１２】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【０２１３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０２１４】
（付記１）
ネットワークシステムにおいて分散するデータの格納位置を特定するインデックスを複数保持するための分散データ管理装置に、
保持している前記インデックスのいずれかが削除された場合に、当該削除されたインデックスの識別子を、自ら保持する第１無効リストに加え、
情報処理装置から要求されたインデックスを保持していないと判定した場合に、前記第１無効リストを当該情報処理装置へ送信する
処理を実行させる分散データ管理プログラム。
【０２１５】
（付記２）
更に、
他の分散データ管理装置において削除されたインデックスの識別子を含む第２無効リストを受信した場合に、前記第２無効リストに含まれるインデックスの識別子が設定されている参照ポインタを無効化する
処理を実行させる付記１記載の分散データ管理プログラム。
【０２１６】
（付記３）
更に、
前記第１無効リストと前記第２無効リストとのマージによって、前記第１無効リストを更新する
処理を実行させる付記２記載の分散データ管理プログラム。
【０２１７】
（付記４）
前記マージにおいて、前記第１無効リストに含まれる前記識別子と前記第２無効リストに含まれる前記識別子との排他的論理和によって、更新後の第１無効リストに含める識別子を特定する
付記３記載の分散データ管理プログラム。
【０２１８】
（付記５）
更に、
前記第１無効リストを送信する度に送信先を記憶し、
所定回まで遡った前記送信先に該当する前記情報処理装置への前記第１無効リストの送信を省く
処理を実行させる付記１乃至４のいずれか１つ記載の分散データ管理プログラム。
【０２１９】
（付記６）
更に、
同一のインデックスに関する取得要求の回数が所定値を超えた情報処理装置から当該情報処理装置の登録要求を受信した場合に、当該インデックスと対応付けて当該情報処理装置の識別子を記憶し、
保持している前記インデックスのいずれかが削除された場合に、当該削除されたインデックスに対応する前記情報処理装置の識別子によって特定される宛先へ、当該削除されたインデックスの識別子の通知を送信する
処理を実行させる付記１乃至５のいずれか１つ記載の分散データ管理プログラム。
【０２２０】
（付記７）
ネットワークシステムにおいて分散するデータの格納位置を特定するインデックスを複数保持するための分散データ管理装置により実行される分散データ管理方法であって、
保持している前記インデックスのいずれかが削除された場合に、当該削除されたインデックスの識別子を、自ら保持する第１無効リストに加え、
情報処理装置から要求されたインデックスを保持していないと判定した場合に、前記第１無効リストを当該情報処理装置へ送信する
処理を含む分散データ管理方法。
【０２２１】
（付記８）
ネットワークシステムにおいて分散するデータの格納位置を特定するインデックスを複数保持するための分散データ管理装置であって、
保持している前記インデックスのいずれかが削除された場合に、当該削除されたインデックスの識別子を、自ら保持する第１無効リストに加える追加部と、
情報処理装置から要求されたインデックスを保持していないと判定した場合に、前記第１無効リストを当該情報処理装置へ送信する送信部と
を有する分散データ管理装置。
【符号の説明】
【０２２２】
１０１  フィールド端末
１０３  計測デバイス
１０５  エッジノード
１０７  ゲートウェイ
１０９  センターサーバ
２０１  インデックス管理部
２０３  一次加工アプリケーション
２０５  二次加工アプリケーション
２０７  解析アプリケーション
２１１  一次加工データ記憶部
２１３  二次加工データ記憶部
４０１  第１受信部
４０３  第１登録部
４０５  受付部
４０７  第１探索部
４０９  第１提供部
４１１  第２登録部
４１３  第１転送部
４１５  第２受信部
４１７  第２探索部
４１９  第２提供部
４２１  第２転送部
４２３  削除部
４２５  無効化部
４２７  追加部
４２９  マージ部
４３１  リスト送信部
４３３  計数部
４３５  要求送信部
４３７  登録部
４３９  通知送信部
４５１  インデックステーブル記憶部
４５３  無効インデックス記憶部
４５５  送信先記憶部
４５７  参照カウンタ記憶部
【図１】
2018197903.tif 000003
【図２】
2018197903.tif 000004
【図３】
2018197903.tif 000005
【図４】
2018197903.tif 000006
【図５】
2018197903.tif 000007
【図６】
2018197903.tif 000008
【図７】
2018197903.tif 000009
【図８】
2018197903.tif 000010
【図９】
2018197903.tif 000011
【図１０】
2018197903.tif 000012
【図１１】
2018197903.tif 000013
【図１２】
2018197903.tif 000014
【図１３】
2018197903.tif 000015
【図１４】
2018197903.tif 000016
【図１５】
2018197903.tif 000017
【図１６】
2018197903.tif 000018
【図１７】
2018197903.tif 000019
【図１８Ａ】
2018197903.tif 000020
【図１８Ｂ】
2018197903.tif 000021
【図１９】
2018197903.tif 000022
【図２０】
2018197903.tif 000023
【図２１】
2018197903.tif 000024
【図２２】
2018197903.tif 000025
【図２３】
2018197903.tif 000026
【図２４】
2018197903.tif 000027
【図２５】
2018197903.tif 000028
【図２６】
2018197903.tif 000029
【図２７】
2018197903.tif 000030
【図２８】
2018197903.tif 000031
【図２９】
2018197903.tif 000032
【図３０】
2018197903.tif 000033
【図３１】
2018197903.tif 000034
【図３２】
2018197903.tif 000035
【図３３】
2018197903.tif 000036
【図３４】
2018197903.tif 000037
【図３５】
2018197903.tif 000038
【図３６】
2018197903.tif 000039
【図３７】
2018197903.tif 000040
【図３８】
2018197903.tif 000041
【図３９】
2018197903.tif 000042
【図４０】
2018197903.tif 000043