JP6824435B2 - 情報分散記憶システム、方法およびプログラム - Google Patents

情報分散記憶システム、方法およびプログラム Download PDF

Info

Publication number
JP6824435B2
JP6824435B2 JP2019551053A JP2019551053A JP6824435B2 JP 6824435 B2 JP6824435 B2 JP 6824435B2 JP 2019551053 A JP2019551053 A JP 2019551053A JP 2019551053 A JP2019551053 A JP 2019551053A JP 6824435 B2 JP6824435 B2 JP 6824435B2
Authority
JP
Japan
Prior art keywords
information
receiving device
information receiving
charge
data
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.)
Active
Application number
JP2019551053A
Other languages
English (en)
Other versions
JPWO2019087786A1 (ja
Inventor
知之 藤野
知之 藤野
由唯 吉田
由唯 吉田
啓一郎 柏木
啓一郎 柏木
久治 石井
久治 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2019087786A1 publication Critical patent/JPWO2019087786A1/ja
Application granted granted Critical
Publication of JP6824435B2 publication Critical patent/JP6824435B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

この発明は、データを分散記憶させる情報分散記憶システム、方法およびプログラムに関する。
近年注目されているIoTシステムでは、例えば、多種多数のセンサデバイスから送信されたデータを漏らさず蓄積し、蓄積されたデータから任意のデータを任意のタイミングで読み出すことを可能にする基盤ソフトウェアが必要とされる。
IoTシステムにおいてセンサデバイスから送信されるデータは、サイズの小さなデータが高頻度で送信されるものが多い。したがって、このようなデータは、MQTT(Message Queueing Telemetry Transport)に代表されるような軽量なPublisher - Subscriberモデルのメッセージングプロトコルにより、集約を行う基盤ソフトウェアへと送信されることが一般的である。
ところで、センサデバイスには永続化領域が無く、また周囲に作業要員が常駐しないことが予想される。したがって、基盤ソフトウェアではデータを継続的に漏れなく記憶領域に書き込む必要があり、そのためには、基盤ソフトウェアが耐故障性を保証できることが望ましい(例えば、非特許文献1を参照)。
また、IoTシステムでは、従来インターネットにつながっていなかったデバイスが段階的にネットワークに接続していくことが見込まれ、さらに、呼を発する主体はユーザ単位ではなくデバイス単位である。したがって、スモールスタートから大規模なシステムへと徐々に拡張可能なスケールアウト性を有するシステムであることが望ましい(例えば、非特許文献2を参照)。
平賀弘平, and 建部修見. "分散ファイルシステムにおけるメタデータサーバの冗長化手法の検討." 研究報告ハイパフォーマンスコンピューティング (HPC) 2011.37 (2011): 1-7. 近藤直樹, et al. "Fat-Btree, P-tree, SkipGraph を用いた範囲問合せ性能の比較実験." 研究報告 情報基礎とアクセス技術 (IFAT) 2011.15 (2011): 1-8.
一般的な分散データベースは、データを分散記憶させる際に、上述した耐故障性を有することを目的として、同一のデータを複数の情報記憶装置にそれぞれ記憶させてデータの冗長性を担保している。
非特許文献1に記載されるような従来の分散データベースでは、データの冗長性を担保するために、データを受信した情報記憶装置が、実際にデータを記憶させる複数の情報記憶装置を定めてデータを複製し送信する。ところが、このような分散データベースでは、データを複製しその複製データを送受信する処理が必要となるので、非分散データベースと比較すると、単一情報記憶装置あたりの書き込み性能が低下してしまうという問題がある。
この発明は上記事情に着目してなされたもので、その目的とするところは、情報記憶装置間でのデータの複製や送受信を必要とすることなく、情報送信装置から送信されるデータを分散記憶させることができる情報分散記憶システム、方法およびプログラムを提供することにある。
この発明の第の態様は、情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムにあって、前記複数の情報記憶装置の各々が、前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得するデータ取得部と、前記取得されたデータが記憶される記憶媒体とを備え、前記複数の情報記憶装置の各々がさらに、情報受信装置からのデータ要求を取得する要求取得部と、前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する判定部と、前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する出力部とを具備し、前記判定部は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定し、前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継部をさらに具備し、前記出力部は、前記中継部を介して取得されたデータを、前記データ要求の送信元の情報受信装置に出力し、前記複数の情報記憶装置の各々が、情報受信装置が追加される際に、前記第2の対応表において、前記追加される情報受信装置を情報記憶装置に対応付けずに記憶させる対応表更新部と、前記第2の対応表を参照して、情報記憶装置が対応付けられていない情報受信装置の中から、担当する情報受信装置を選択する選択部とを具備し、前記対応表更新部は、前記第2の対応表において、前記選択された情報受信装置に対応付けられたことを記憶させようにしたものである。
この発明の第の態様は、情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムにあって、前記複数の情報記憶装置の各々が、前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得するデータ取得部と、前記取得されたデータが記憶される記憶媒体とを備え、前記複数の情報記憶装置の各々がさらに、情報受信装置からのデータ要求を取得する要求取得部と、前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する判定部と、前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する出力部とを具備し、前記判定部は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定し、前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継部をさらに具備し、前記出力部は、前記中継部を介して取得されたデータを、前記データ要求の送信元の情報受信装置に出力し、前記第2の対応表が、各情報記憶装置について、情報受信装置との対応付けがされた時刻もさらに記憶しており、前記複数の情報記憶装置の各々が、前記第2の対応表を参照して、前記担当する情報受信装置を担当する他の情報記憶装置に関して記憶されている時刻について、当該時刻が記憶されてから所定の時間が経過しているか否かを判定する対応表監視部と、前記時刻が記憶されてから所定の時間が経過していると判定された場合に、前記第2の対応表において、当該判定をされた情報記憶装置についての情報受信装置との対応付けを削除し前記第2の対応表において、自らの情報記憶装置に関して記憶されている時刻を更新する対応表更新部とをさらに備えるようにしたものである。
この発明の第の態様は、情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムにあって、前記複数の情報記憶装置の各々が、前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得するデータ取得部と、前記取得されたデータが記憶される記憶媒体とを備え、前記複数の情報記憶装置の各々がさらに、情報受信装置からのデータ要求を取得する要求取得部と、前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する判定部と、前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する出力部とを具備し、前記判定部は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定し、前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継部をさらに具備し、前記出力部は、前記中継部を介して取得されたデータを、前記データ要求の送信元の情報受信装置に出力し、前記複数の情報記憶装置の各々が、前記第2の対応表において、情報記憶装置毎に、担当する情報受信装置のコストの合計値を算出する算出部をさらに備え、前記情報分散記憶システムに情報記憶装置が追加される際に、前記追加される情報記憶装置が、前記算出されたコストの合計値が最も大きい情報記憶装置が担当する情報受信装置のうちコストが最も大きい情報受信装置を、担当する情報受信装置として選択する選択部と、前記第2の対応表において、前記選択された情報受信装置に対応付けられたことを記憶させる対応表更新部とをさらに備えるようにしたものである。
また、次のような付加的な態様も考えられる。
その第1の付加的な態様は、上記第6の態様において前記第2の対応表に対応付けを記憶させた後に、前記追加される情報記憶装置が、前記算出されたコストの合計値が最も大きい情報記憶装置に通知するようにしたものである。
第2の付加的な態様は、上記第6の態様において前記第2の対応表に対応付けを記憶させた後に、前記追加される情報記憶装置が、自らに対応付けられている情報受信装置のコストの合計値を算出し、算出されたコストの合計値が所定の値を超えたか否かを判定するようにしたものである。
この発明の第1の態様によれば、複数の情報記憶装置の各々において、複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子と対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報とに基づいて、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータが取得され、当該取得されたデータが記憶される。すなわち、各情報記憶装置が、取得すべきデータを自律的に取得し蓄積する。
このように、各情報記憶装置が自律的にデータを取得できるようにすることにより、情報記憶装置間でのデータの複製や送受信を必要とすることなく、複数の情報記憶装置間でデータを分散記憶させることができる。これにより、データ記憶時における単一情報記憶装置あたりの書き込み性能の低下が防がれた情報分散記憶システムを実現することができる。
また、例えば、上述した情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報において、1つの情報受信装置を2つ以上の情報記憶装置が担当するように設定すれば、複数の情報記憶装置間でデータの冗長性を担保することができ、情報分散記憶システムの耐故障性が保証される。
また、この発明の第の態様によれば、複数の情報記憶装置の各々において、情報受信装置からのデータ要求が取得され、当該取得されたデータ要求が上記担当する情報受信装置からのものであるか否かが判定される。そして、その判定の結果、データ要求が上記担当する情報受信装置からのものである場合に、上記担当する情報受信装置に対して、上記記憶されたデータが出力される。一方、データ要求が上記担当する情報受信装置からのものではない場合には、複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置を担当する情報記憶装置とを対応付ける第2の対応表に基づいて、上記データ要求の送信元の情報受信装置を担当する情報記憶装置が判定される。その後、上記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置に記憶されたデータが取得され、上記データ要求の送信元の情報受信装置に出力される。したがって、情報受信装置は、いずれの情報記憶装置にアクセスしたとしても、所望のデータを取得することができる。
また、この発明の第の態様によれば、情報受信装置が追加される際に、複数の情報記憶装置の各々において、追加される情報受信装置が特定の情報記憶装置と対応付けされずに第2の対応表に記憶される。その後、複数の情報記憶装置の各々において、第2の対応表が参照され、情報記憶装置が対応付けられていない情報受信装置の中から、担当する情報受信装置が選択され、第2の対応表において、当該選択された情報受信装置に対応付けられたことが記憶される。
したがって、第の態様によれば、システムに情報受信装置を追加可能なスケールアウト性を、当該スケールアウト実行時に情報記憶装置間でデータの送受信を必要とすることなく持たせることができる。これにより、スケールアウト性を有し、かつ、スケールアウト実行時にも単一情報記憶装置あたりの書き込み性能の低下が防がれた情報分散記憶システムを実現することができる。
なお、例えば非特許文献2に記載されるような、システム拡張が可能なスケールアウト性を有する従来のデータベースでは、キーに対するハッシュを用い、ツリー構造によりハッシュ値の範囲またはツリーの部分木により分割統治を行うのが一般的である。このような方式の場合、データベースの内部で、情報送信装置から送信されるデータを解析し、情報を書き込むべき情報記憶装置を探索し、その結果に基づいて、対象となる情報記憶装置に書き込みを行う。このように、非特許文献2に記載されるような従来の技術では、複数の情報記憶装置間で情報を送受信する処理が必要となるので、非分散データベースと比較すると、一回の書き込みに対する仕事量が情報記憶装置の数に比例して増大し、単一情報記憶装置あたりの書き込み性能が低下する。すなわち、上記第の態様は従来技術に対して上述したような利点がある。
この発明の第の態様によれば、複数の情報記憶装置の各々において、第2の対応表が参照され、自らが担当する情報受信装置を担当する他の情報記憶装置に関して記憶されている時刻について、当該時刻が記憶されてから所定の時間が経過しているか否かが判定される。そして、その判定の結果、時刻が記憶されてから所定の時間が経過している場合には、複数の情報記憶装置の各々において、第2の対応表において、上記時間が経過した情報記憶装置と情報受信装置との対応付けが削除され、一方で自らの情報記憶装置に関して記憶されている時刻が更新される。
一般に、正常に動作することを確認されていた情報記憶装置であっても、運用時間が経過するにしたがい、何らかの原因により正常に動作しなくなる可能性がある。しかしながら、上記第の態様のように、時間を基準に、情報受信装置に対して対応付けられていた情報記憶装置についての対応付けを削除することによって、正常に動作をしていない情報記憶装置が情報受信装置を担当し続けるといった不具合を防ぐことができ、これにより情報分散記憶システム全体の信頼性を向上させることができる。
また、上述したような対応表の監視処理を実行した情報記憶装置については、監視処理と同時に動作確認がされる。したがって、上述したように第2の対応表において時刻を更新することによって、正常に動作している情報記憶装置の対応付けまでが削除されて情報分散記憶の効率が低下してしまうことを防ぐことができる。
この発明の第の態様によれば、複数の情報記憶装置の各々において、第2の対応表において、情報記憶装置毎に、担当する情報受信装置のコストの合計値が算出される。そして、情報分散記憶システムに情報記憶装置が追加される際に、追加される情報記憶装置において、算出されたコストの合計値が最も大きい情報記憶装置が担当する情報受信装置のうちコストが最も大きい情報受信装置が、担当する情報受信装置として選択され、当該選択された情報受信装置に対応付けられたことが第2の対応表に記憶される。
したがって、システムに情報記憶装置を追加可能なスケールアウト性を、当該スケールアウト実行時に情報記憶装置間でデータの送受信を必要とすることなく持たせることができる。これにより、スケールアウト性を有し、かつ、スケールアウト実行時にも単一情報記憶装置あたりの書き込み性能の低下が防がれた情報分散記憶システムを実現することができる。
さらに、上記第1の付加的な態様によれば、上記第の態様において第2の対応表に対応付けを記憶させた後に、上記追加される情報記憶装置により、上記算出されたコストの合計値が最も大きい情報記憶装置に通知がなされる。このため、当該通知を受けた情報記憶装置は、上記追加される情報記憶装置が担当することとなった情報受信装置との対応付けを開放し、以後、当該対応付けを解放された情報受信装置に対するデータを取得しないようにすることができる。これにより、負荷が大きかった情報記憶装置の負荷を軽減させることができる。
上記第2の付加的な態様によれば、上記第の態様において第2の対応表に対応付けを記憶させた後に、上記追加される情報記憶装置において、自らに対応付けられている情報受信装置のコストの合計値が算出され、算出されたコストの合計値が所定の値を超えたか否かが判定される。このため、当該判定結果に応じて、追加で情報受信装置を担当するようにすることもでき、例えば、情報記憶装置間で負荷の均一化を図ることが可能となる。
すなわちこの発明の各態様によれば、情報記憶装置間でのデータの複製や送受信を必要とすることなく、情報送信装置から送信されるデータを分散記憶させることができる情報分散記憶システム、方法およびプログラムを提供することができる。
この発明の第1の実施形態に係るネットワークシステムの概略構成図。 図1に示したネットワークシステム中の情報記憶装置の機能構成を示すブロック図。 図2Aに示した設定共有部の詳細な機能構成を示すブロック図。 設定管理装置および複数の情報記憶装置の間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表の一例を示す図。 設定管理装置および複数の情報記憶装置の間で共有される、情報受信装置と当該情報受信装置を担当する情報記憶装置とを対応付ける第2の対応表の一例を示す図。 図2に示した情報記憶装置の制御ユニットによって実行されるデータ書き込み処理の一例を示すフロー図。 図2に示した情報記憶装置の制御ユニットによって実行されるデータ要求応答処理の一例を示すフロー図。 図1に示したネットワークシステムに情報受信装置が追加される際に、図2に示した情報記憶装置の制御ユニットによって実行される、担当する情報受信装置の選択処理の一例を示すフロー図。 図2に示した情報記憶装置の制御ユニットによって実行される対応表監視処理の一例を示すフロー図。 図8に示した対応表監視処理に伴い、第2の対応表が更新される様子を示す図。 図1に示したネットワークシステムに情報記憶装置が追加される際に、図2に示した情報記憶装置の制御ユニットによって実行される、担当する情報受信装置の選択処理の一例を示すフロー図。 図10に示した担当する情報受信装置の選択処理に伴い、第2の対応表が更新される様子を示す図。
以下、図面を参照してこの発明に係わる実施形態を説明する。
[第1の実施形態]
(構成)
図1は、この発明の第1の実施形態に係るネットワークシステムの概略構成図である。
図1に示すネットワークシステムは、例えばIoTシステムにおいて使用されるPublisher - Subscriberモデルのように、データ通信が可能な状態で、例えばセンサデバイスであるデータ送信側の情報送信装置2A,2B,2C,2D,2E,2Fおよびブローカ3と、送信データを記憶する情報分散記憶システムとしての情報記憶装置1A,1B,1C,1Dおよび設定管理装置5とを備えており、さらに、例えばアプリケーションであるデータ受信側の情報受信装置4A,4B,4C,4Dを備えている。なお、図1に図示されるネットワークシステムは一例に過ぎず、ネットワークシステムでは、各々1つ以上の任意の数の情報送信装置および情報受信装置が存在していてもよく、また、2つ以上の任意の数の情報記憶装置が存在していてもよい。
設定管理装置5および情報記憶装置1A,1B,1C,1Dは各々、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表と、情報受信装置と当該情報受信装置を担当して当該情報受信装置に対するデータを記憶する情報記憶装置とを対応付ける第2の対応表とを記憶している。上記第1および第2の対応表は、設定管理装置5および情報記憶装置1A,1B,1C,1Dの間で同期した状態で共有される。なお、上記第1の対応表および第2の対応表は、例えば、設定管理装置5においてオペレータにより初期設定される。
情報記憶装置1A,1B,1C,1Dは各々、第1の対応表に基づいて、情報受信装置4A,4B,4C,4Dのうちの担当する情報受信装置毎に、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、当該担当する情報受信装置が取得するデータを記憶する。1つの情報受信装置を2つ以上の情報記憶装置によって担当するようにする場合には、当該情報受信装置が取得するデータを分割および複製して情報記憶装置間で分散記憶する。
一方、情報記憶装置1A,1B,1C,1Dは各々、情報受信装置4A,4B,4C,4Dからのデータ要求に応じ、上記第2の対応表に基づいて、必要に応じて情報記憶装置1A,1B,1C,1D間でデータの送受信を行い、各情報受信装置4A,4B,4C,4Dから要求されるデータを出力する。
(1)情報記憶装置
図2Aは、図1に示した情報記憶装置1Aの機能構成を示すブロック図である。以下では情報記憶装置1Aの機能構成について説明するが、情報記憶装置1B,1C,1D等の他の情報記憶装置も同様の機能構成を有している。なお、図2Aでは参照のために、実線の矢印によりデータの入出力を示しており、破線の矢印により、第1の対応表および第2の対応表に係る設定情報の入出力を示している。
情報記憶装置1Aは、制御ユニット11Aと、記憶ユニット12Aと、通信インタフェースユニット13Aとを備えている。
通信インタフェースユニット13Aは、例えば1つ以上の有線または無線の通信インタフェースユニットを含んでいる。通信インタフェースユニット13Aは、制御ユニット11Aから出力される、例えばデータの種類を示す識別子を有するデータ要求を取得し、当該データ要求を通信ネットワークを介してブローカ3に出力する。その後、通信インタフェースユニット13Aは、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、上記識別子とともに送信されるデータを、通信ネットワークを介してブローカ3から取得し、取得されたデータを制御ユニット11Aに出力する。
また、通信インタフェースユニット13Aは、情報受信装置4A,4B,4C,4Dから送信されるデータ要求を、通信ネットワークを介して取得し、取得されたデータ要求を制御ユニット11Aに出力する。その後、通信インタフェースユニット13Aは、制御ユニット11Aから出力されるデータを、通信ネットワークを介して当該データ要求の送信元の情報受信装置に送信する。また、通信インタフェースユニット13Aは、情報記憶装置1B,1C,1D等の他の情報記憶装置とのデータおよび設定情報の送受信や、設定管理装置5との設定情報の送受信も実行する。
記憶ユニット12Aは、記憶媒体として例えばHDD(Hard Disk Drive)またはSSD(Solid State Drive)等の随時書き込みおよび読み出しが可能な不揮発メモリを使用したものであり、本実施形態を実現するために使用される記憶領域として、データ記憶部121Aと、共有設定記憶部122Aとを備えている。
データ記憶部121Aは、自らの情報記憶装置が担当する情報受信装置毎に、ブローカ3から取得されるデータを記憶させるために使用される。
共有設定記憶部122Aは、情報記憶装置1A,1B,1C,1Dおよび設定管理装置5によって共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表を記憶させるために使用される。また、共有設定記憶部122Aは、情報記憶装置1A,1B,1C,1Dおよび設定管理装置5によって共有される、情報受信装置と当該情報受信装置を担当する情報記憶装置とを対応付ける第2の対応表を記憶させるために使用される。
制御ユニット11Aは、CPU(Central Processing Unit)等のハードウェアプロセッサと、プログラムメモリとを備え、本実施形態における処理機能を実行するために、データ書き込み部111Aと、データ出力部112Aと、中継判定部113Aと、中継部114Aと、設定共有部115Aとを備えている。これらの各部における処理機能はいずれも、プログラムメモリに格納されたプログラムを上記ハードウェアプロセッサに実行させることによって実現される。
データ書き込み部111Aは、記憶ユニット12Aの共有設定記憶部122Aに記憶される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表を読み出す処理を実行する。その後、データ書き込み部111Aは、予め設定された、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報と、第1の対応表とに基づいて、自らの情報記憶装置1Aが担当する情報受信装置に対応付けられている識別子を含むデータ要求を、通信インタフェースユニット13Aを介してブローカ3に出力する処理を実行する。
その後、データ書き込み部111Aは、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、上記識別子とともに送信されるデータを、通信インタフェースユニット13Aを介してブローカ3から取得し、取得されたデータを、担当する情報受信装置毎に、記憶ユニット12Aのデータ記憶部121Aに記憶させる処理を実行する。なお、他の情報記憶装置1B,・・・,1Dが、情報記憶装置1Aが担当する情報受信装置に対するデータを第1の対応表に基づいて取得するようにしてもよく、データ書き込み部111Aは、当該データを取得した情報記憶装置から当該データを取得し、記憶ユニット12Aのデータ記憶部121Aに記憶させるようにしてもよい。
なお、上述した情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報は、例えば、設定管理装置5によって予め選択された対応関係を示す情報であってもよく、あるいは、制御ユニット11Aの設定共有部115Aにおいて選択された対応関係を示す情報であってもよい。また、上述した情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報は、情報記憶装置1B,1C,1D等の他の情報記憶装置についての対応関係も含むものであってもよい。
中継判定部113Aは、情報受信装置4A,4B,4C,4D等の任意の情報受信装置から当該情報受信装置を示す識別子とともに送信されるデータ要求を、通信インタフェースユニット13Aを介して取得する処理を実行する。なお、以下では、例として情報受信装置4Aからデータ要求が取得されたものとして説明する。
その後、中継判定部113Aは、取得されたデータ要求が、自らの情報記憶装置1Aが担当する情報受信装置から送信されたものであるか否かを判定する処理を実行する。例えば、当該判定処理は、上述した情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す情報に基づくものであってもよい。あるいは、当該判定処理は、記憶ユニット12Aの共有設定記憶部122Aに記憶される、情報受信装置と当該情報受信装置を担当する情報記憶装置とを対応付ける第2の対応表に基づくものであってもよい。中継判定部113Aは、取得されたデータ要求が、自らの情報記憶装置1Aが担当する情報受信装置からのものではないと判定された場合には、記憶ユニット12Aの共有設定記憶部122Aに記憶される第2の対応表に基づいて、当該データ要求の送信元の情報受信装置4Aを担当する情報記憶装置を判定する処理を実行する。なお、以下では、例として情報記憶装置1Bが、当該データ要求の送信元の情報受信装置4Aを担当する情報記憶装置であると判定されたものとして説明する。
中継部114Aは、取得されたデータ要求が、自らの情報記憶装置1Aが担当する情報受信装置からのものではないと判定された場合に、当該データ要求の送信元の情報受信装置4Aを担当する情報記憶装置であると判定された情報記憶装置1Bに対し、通信インタフェースユニット13Aを介して、当該データ要求を出力する処理を実行する。その後、中継部114Aは、通信インタフェースユニット13Aを介して、情報記憶装置1Bのデータ記憶部121Bに記憶されたデータを取得する処理を実行する。例えば、当該取得されるデータを、記憶ユニット12Aに記憶させるようにしてもよい。なお、中継先である情報記憶装置1Bに対して、上記データ要求を出力する代わりに、情報記憶装置1Bのデータ記憶部121Bに記憶されている情報受信装置4Aに対するデータを送信させるための指示を出力するようにしてもよい。
データ出力部112Aは、取得されたデータ要求が、自らの情報記憶装置1Aが担当する情報受信装置からのものではないと判定された場合には、中継部114Aにおける処理によって取得されたデータを、通信インタフェースユニット13Aを介して情報受信装置4Aに対して出力する処理を実行する。一方、データ出力部112Aは、取得されたデータ要求が、自らの情報記憶装置1Aが担当する情報受信装置からのものであると判定された場合には、記憶ユニット12Aのデータ記憶部121Aに記憶される、データ要求の送信元の情報受信装置4Aに対するデータを読み出す処理を実行する。その後、データ出力部112Aは、読み出されたデータを通信インタフェースユニット13Aを介して情報受信装置4Aに対して出力する処理を実行する。
設定共有部115Aは、設定管理装置5によって実行された、設定管理装置5の共有設定記憶部521に記憶される第1の対応表あるいは第2の対応表における初期設定またはデータアクセスに応じて、記憶ユニット12Aの共有設定記憶部122Aに記憶される第1の対応表および第2の対応表を同期する処理を実行する。
さらに、設定共有部115Aは、記憶ユニット12Aの共有設定記憶部122Aに記憶される第1の対応表あるいは第2の対応表が更新された場合に、設定管理装置5および情報記憶装置1B,1C,1D等において記憶される第1の対応表および第2の対応表を同期させるための設定情報を、通信インタフェースユニット13Aを介して出力する処理を実行する。
図2Bは、設定共有部115Aの詳細な機能構成を示すブロック図である。設定共有部115Aは、担当装置選択部1151Aと、対応表監視部1152Aと、対応表更新部1153Aとを備えている。
担当装置選択部1151Aは、自らの情報記憶装置1Aが担当する情報受信装置を選択する処理を実行する。例えば、当該選択処理は、記憶ユニット12Aの共有設定記憶部122Aに記憶される第2の対応表を参照して実行するようにしてもよい。なお、担当装置選択部1151Aは、自らの情報記憶装置1A以外の他の情報記憶装置が担当する情報受信装置を選択する処理を実行してもよい。
対応表監視部1152Aは、記憶ユニット12Aの共有設定記憶部122Aに記憶される第2の対応表を監視する処理を実行する。
対応表更新部1153Aは、自らの情報記憶装置1Aと、担当装置選択部1151Aまたは設定管理装置5において選択された情報受信装置との対応付けを、データ書き込み部111Aにおけるデータ書き込み処理が完了した以後に、記憶ユニット12Aの共有設定記憶部122Aに記憶される第2の対応表に書き込む更新処理を実行する。さらに、対応表更新部1153Aは、対応表監視部1152Aにおける監視処理にしたがって、記憶ユニット12Aの共有設定記憶部122Aに記憶される第2の対応表を更新する処理も実行する。
(2)対応表
図3は、設定管理装置5および情報記憶装置1A,1B,1C,1Dの間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とを対応付ける第1の対応表の一例を示す図である。図3に示す第1の対応表の例では、情報受信装置4A,4B,4C,4Dを示す識別子に各々が対応するエンドポイント#1,#2,#3,#4と、データの種類を示す識別子に対応するトピック#1,#2,#3,#4との対応付けが記憶されている。
図4は、設定管理装置5および情報記憶装置1A,1B,1C,1Dの間で共有される、情報受信装置と当該情報受信装置を担当する情報記憶装置とを対応付ける第2の対応表の一例を示す図である。図4に示す第2の対応表の例では、情報受信装置4A,4B,4C,4Dを示す識別子に各々が対応するエンドポイント#1,#2,#3,#4と、情報記憶装置1A,1B,1C,1Dとの対応付けが記憶されている。
また、図4に示す第2の対応表の例では、情報記憶装置1A,1B,1C,1Dについて、いずれかのエンドポイントと対応付けられた直近の時刻を記憶しており、また、各エンドポイントについて、情報記憶装置との対応付けを待ち受けていることを示す待ち受け中フラグを記憶することができる。さらに、図4に示す第2の対応表の例では、各エンドポイントについてコストが記憶されている。当該エンドポイントのコストは、例えば、当該エンドポイントに対する単位時間あたりのアクセス頻度、当該エンドポイントを担当することにより情報記憶装置において増加する単位時間あたりの処理量を表すものである。
(動作)
次に、以上のように構成された情報記憶装置1A,1B,1C,1D等の情報記憶装置の動作を説明する。
以下では、例として、情報記憶装置1Aを主体とした動作について説明するが、以下に説明する動作フローの任意のステップを、情報記憶装置1A以外の他の任意の情報記憶装置によって実行してもよい。また、例として、以下で説明する動作フローでは、図3に示した第1の対応表、および、図4に示した第2の対応表を利用するものとして説明する。さらに、図3および図4において、情報受信装置4A,4B,4C,4Dを示す識別子にエンドポイント#1,#2,#3,#4の各々が対応すると説明したように、以下の説明では、情報受信装置4Aとエンドポイント#1、情報受信装置4Bとエンドポイント#2、情報受信装置4Cとエンドポイント#3、および、情報受信装置4Dとエンドポイント#4をそれぞれ、同義のものとして説明している。
(1)データ書き込み処理
図5は、図2に示した情報記憶装置1Aの制御ユニット11Aによって実行されるデータ書き込み処理の一例を示すフロー図である。
最初に、ステップS11において、制御ユニット11Aは、データ書き込み部111Aの制御の下、予め設定された、情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報に基づいて、自らの情報記憶装置1Aが担当するエンドポイントを判定する。以下では、エンドポイント#1が、自らの情報記憶装置1Aが担当するエンドポイントとして判定された場合について説明する。
なお、上述した情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報は、例えば、設定管理装置5によって予め選択された対応関係を示す情報であってもよく、あるいは、制御ユニット11Aの設定共有部115Aにおいて選択された対応関係を示す情報であってもよい。
また、例えば、設定管理装置5によって、例えば、エンドポイントと当該エンドポイントを担当することになる情報記憶装置を予め対応付けるように第2の対応表が初期設定されているような場合には、上述した情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報は、当該第2の対応表からの情報であってもよい。
ステップS12において、制御ユニット11Aは、データ書き込み部111Aの制御の下、共有設定記憶部122Aに記憶される、エンドポイントと当該エンドポイントが取得するデータの種類を示す識別子とを対応付ける第1の対応表を読み出す。そして、この第1の対応表に基づいて、制御ユニット11Aは、データ書き込み部111Aの制御の下、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、担当するエンドポイント#1に対応付けられているトピック#2を示す識別子とともに送信されるデータをブローカ3から取得し、取得されたデータを記憶ユニット12Aのデータ記憶部121Aに記憶させる。
本技術の特徴の1つは、第1の対応表で、受信装置を表すエンドポイントと、受信装置が要求する、データを生成するセンサや機器ごとの抽象的なデータの種類や構造を表す識別子であるトピックとの対応関係を記憶し、第2の対応表で、受信装置を表すエンドポイントと、その受信装置が要求するデータを記憶する具体的な情報記憶装置の対応関係を記憶し、さらに対応表1,2を関連付けることである。
データ書き込み処理の中で、データを記憶する情報記憶装置の分担を決定する処理では、IoTシステムに追加・削除される具体的なデータ生成装置の情報を気にする必要がなく、受信装置と情報記憶装置の対応関係の情報だけに基づいて第2の対応表を更新・メンテナンスするだけで、自動的にデータ蓄積を担当する記憶装置を決定することができるため、単純な仕組みで分散保存の仕組みを維持することができる。
また、IoTシステムにデータ生成機器を新たに追加したり、情報受信装置が要求するデータの種類を変更する場合には、第1の対応表を更新することで、情報記憶装置の構成を気にすることなく、接続するデータ生成機器やデータ受信装置の要求するデータの変更を反映することが可能となる。
データ生成機器の変更や受信装置の要求するデータの種類の変更時には第1の対応表を更新し、受信装置や記憶装置の追加などの構成変更時には第2の対応表を参照・変更して記憶装置の分担を決定することにより、システムを構成する機器の構成変更や要求データの変更を反映しながら、単純な仕組みで自動的にデータを複数の記憶装置に分散保存することができる。
例えば、新たなセンサ等をIoTシステムに接続する際の処理では第1の対応表のみをメンテナンスすればよく、新たな情報受信装置を追加する際の担当記憶装置を分散して割り当てる処理では第2の対応表のみをメンテナンスすればよいため、各処理の実装が容易になる。
さらに、第1の対応表及び第2の対応表を組み合わせることで機器の更新と分散保存の割り当てを自動化できるため、分散保存システムの維持管理の負担を小さくすることができるのが本特許の利点である。
なお、例えば、当該データ記憶部121Aへの書き込み処理では、担当するエンドポイント毎に、当該エンドポイントに対するデータであることを一意に特定できるキーを付与して記憶させてもよい。当該キーは、すべての情報記憶装置および設定管理装置5において共通して使用できるように、例えば、第1の対応表において記憶されている。
ステップS13において、制御ユニット11Aは、対応表更新部1153Aの制御の下、情報記憶装置1Aと担当するエンドポイント#1との対応付けを、共有設定記憶部122Aに記憶される第2の対応表に書き込む。その結果、図4の第2の対応表に示されているように、情報記憶装置1Aとエンドポイント#1とが対応付けられていることを示す○が書き込まれ、当該第2の対応表はすべての情報記憶装置および設定管理装置5の間で共有される。
(2)データ要求応答処理
図6は、図2に示した情報記憶装置1Aの制御ユニット11Aによって実行されるデータ要求応答処理の一例を示すフロー図である。
最初に、ステップS21において、制御ユニット11Aは、中継判定部113Aの制御の下、情報受信装置4A,4B,4C,4D等の任意の情報受信装置から、当該情報受信装置を示す識別子とともに送信されるデータ要求を取得する。
ステップS22において、制御ユニット11Aは、中継判定部113Aの制御の下、取得されたデータ要求が、自らの情報記憶装置1Aが担当するエンドポイントからのものであるか否かを判定する。例えば、当該判定処理は、ステップS11において説明した、情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報に基づくものであってもよい。あるいは、当該判定処理は、共有設定記憶部122Aに記憶される第2の対応表を参照することによって実行されるものであってもよい。
取得されたデータ要求が、例えば、自らの情報記憶装置1Aが担当するエンドポイント#1からのものであると判定された場合は、ステップS23において、制御ユニット11Aは、データ出力部112Aの制御の下、データ記憶部121Aに記憶される当該エンドポイント#1に対するデータを読み出し、読み出されたデータを、データ要求の送信元のエンドポイント#1に対応する情報受信装置4Aに対して出力する。
一方、取得されたデータ要求が、例えば、情報記憶装置1Aが担当しないエンドポイント#2からのものであると判定された場合は、ステップS24において、制御ユニット11Aは、中継判定部113Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表に基づいて、当該データ要求の送信元のエンドポイント#2を担当する情報記憶装置を判定する。その後、制御ユニット11Aは、中継部114Aの制御の下、上記データ要求の送信元のエンドポイント#2を担当する情報記憶装置であると判定された情報記憶装置1Bと情報記憶装置1Cとの少なくとも一方に対し、当該データ要求を出力する。
その後、ステップS25において、制御ユニット11Aは、中継部114Aの制御の下、当該データ要求の送信元のエンドポイント#2を担当する情報記憶装置1Bと情報記憶装置1Cとの少なくとも一方に記憶されたデータを取得する。
ステップS26において、制御ユニット11Aは、データ出力部112Aの制御の下、上記取得されたデータを、データ要求の送信元のエンドポイント#2に対応する情報受信装置4Bに対して出力する。
(3)情報受信装置追加に伴う、担当する情報受信装置の選択処理
図7は、図1に示したネットワークシステムに情報受信装置が追加される際に、図2に示した情報記憶装置1Aの制御ユニット11Aによって実行される、担当する情報受信装置の選択処理の一例を示すフロー図である。
ネットワークシステムに情報受信装置4Eが追加される場合に、先ずステップS31において、制御ユニット11Aは、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、情報受信装置4Eに対応するエンドポイント#5の行または列を、情報記憶装置との対応付けを記入しない状態で、待ち受け中フラグを立てて追加する。
なお、制御ユニット11Aは、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第1の対応表において、エンドポイント#5の行または列を追加してもよい。第1の対応表では、追加されるエンドポイント#5に対して、例えば情報受信装置4Eから通知された、取得するデータの種類を示す識別子が対応付けられて記憶されてもよい。
続いてステップS32において、制御ユニット11Aは、担当装置選択部1151Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表を読み出し、待ち受け中フラグの立っているエンドポイントの中から担当するエンドポイントを選択する。当該選択処理は、例えば、待ち受け中フラグの立っているエンドポイントの中からランダムに選択するものであってもよい。
次にステップS33において、制御ユニット11Aは、担当装置選択部1151Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、選択されたエンドポイントが2つ以上の情報記憶装置に対応付けられているか否かを判定する。そして、選択されたエンドポイントが2つ以上の情報記憶装置に対応付けられていると判定されると、ステップS32の処理が再度実行される。
これに対し、選択されたエンドポイントが2つ以上の情報記憶装置に対応付けられていないと判定された場合には、ステップS34において、制御ユニット11Aは、データ書き込み部111Aの制御の下、共有設定記憶部122Aに記憶される第1の対応表に基づいて、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、選択されたエンドポイントに対応付けられている識別子とともに送信されるデータを取得する。
続いてステップS35において、制御ユニット11Aは、対応表更新部1153Aの制御の下、情報記憶装置1Aと上記選択されたエンドポイントとの対応付けを、共有設定記憶部122Aに記憶される第2の対応表に書き込む。
ステップS36において、制御ユニット11Aは、担当装置選択部1151Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、すべてのエンドポイントが2つ以上の情報記憶装置に対応付けられたか否かを判定する。2つ以上の情報記憶装置に対応付けられていないエンドポイントが存在すると判定されると、ステップS32からの処理を繰り返す。
これに対し、すべてのエンドポイントが2つ以上の情報記憶装置に対応付けられたと判定された場合には、ステップS37において、制御ユニット11Aは、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において待ち受け中フラグを削除する。
(4)対応表監視処理
図8は、図2に示した情報記憶装置1Aの制御ユニット11Aによって実行される対応表監視処理の一例を示すフロー図である。また、図9は、図8に示した対応表監視処理に伴い、図4に示した第2の対応表が更新される様子を示している図である。
最初に、ステップS41において、制御ユニット11Aは、対応表監視部1152Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表を参照して、担当するエンドポイント#1を担当する他の情報記憶装置1Dに関して記憶されている時刻“10345681”、および、担当するエンドポイント#4を担当する他の情報記憶装置1Bに関して記憶されている時刻“12345679”を読み出す。
ステップS42において、制御ユニット11Aは、対応表監視部1152Aの制御の下、図9に示されているように、読み出された時刻“12345679”,“10345681”の各々について、当該時刻が記憶されてから所定の時間が経過しているか否かを判定する。情報記憶装置1Bに関して記憶されている時刻“12345679”は、所定の時間が経過していないと判定されるのに対して、情報記憶装置1Dに関して記憶されている時刻“10345681”は、既に所定の時間が経過していると判定される。
ステップS43において、制御ユニット11Aは、対応表更新部1153Aの制御の下、図9に示されているように、共有設定記憶部122Aに記憶される第2の対応表において、所定の時間が経過している時刻“10345681”に関する情報記憶装置1Dについてのエンドポイントとの対応付けを削除し、対応付けを削除されたエンドポイント#1,#3に待ち受け中フラグを立てる。
ステップS44において、制御ユニット11Aは、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、自らの情報記憶装置である情報記憶装置1Aに関して記憶されている時刻“12345678”を更新する。なお、当該更新処理は、ステップS42において、読み出されたすべての時刻について所定の時間が経過していないと判定された場合にも実行するようにしてもよい。
ステップS45において、制御ユニット11Aは、対応表監視部1152Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表を参照して、担当するすべてのエンドポイントについて上述したような時刻の確認処理を実行したか否かを判定する。この判定の結果、時刻の確認処理を実行していないエンドポイントがある場合には、当該エンドポイントについて、ステップS41からの処理を繰り返す。
なお、ステップS41からステップS45の処理は、例えば、情報記憶装置1A,1B,1C,1Dの間で同期したクロックを基準に、情報記憶装置1A,1B,1C,1Dの間で異なるタイミングで例えば定期的に実行するようにしてもよい。
また、ステップS43において待ち受け中フラグが立てられたエンドポイントについては、図7のステップS32以降の処理を各情報記憶装置において実行して、担当するエンドポイントを選択するようにしてもよい。
(5)情報記憶装置追加に伴う、担当する情報受信装置の選択処理
図10は、図1に示したネットワークシステムに情報記憶装置が追加される際に、図2に示した情報記憶装置1Aの制御ユニット11A、および、追加される情報記憶装置1Eの制御ユニット11Eによって実行される、担当する情報受信装置の選択処理の一例を示すフロー図である。また、図11は、図10に示した担当する情報受信装置の選択処理に伴い、図4に示した第2の対応表が更新される様子を示している図である。
最初に、ステップS51において、制御ユニット11Aは、対応表更新部1153Aの制御の下、エンドポイントを担当する際に、共有設定記憶部122Aに記憶される第2の対応表において、当該エンドポイントのコストを更新する。当該更新処理は、例えば、当該エンドポイントに対する単位時間あたりのアクセス頻度の通知に基づいて実行してもよく、あるいは、当該エンドポイントを担当することにより情報記憶装置において増加する単位時間あたりの処理量を計測し、当該計測された値に基づいて実行するようにしてもよい。
ステップS52において、制御ユニット11Aは、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、情報記憶装置毎に、当該情報記憶装置が担当するエンドポイントのコストの合計値を算出する。なお、当該算出処理は、各情報記憶装置においてそれぞれ、自らの情報記憶装置に対応付けられているエンドポイントのコストの合計値をそれぞれ算出するものであってもよく、あるいは、1つの情報記憶装置が、複数の情報記憶装置について、対応付けられているエンドポイントのコストの合計値をそれぞれ算出するものであってもよい。
ステップS53において、追加される情報記憶装置1Eの制御ユニット11Eは、担当装置選択部1151Eの制御の下、共有設定記憶部122Eに記憶される第2の対応表を参照し、図11に示されているように、上記算出されたコストの合計値が最も大きい情報記憶装置1Bが担当するエンドポイントのうち、コストが最も大きいエンドポイントであるエンドポイント#2を担当することを決定する。
ステップS54において、追加される情報記憶装置1Eの制御ユニット11Eは、データ書き込み部111Eの制御の下、先ず共有設定記憶部122Eに記憶される第1の対応表を読み出す。そして、この第1の対応表に基づいて、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、担当するエンドポイント#2に対応付けられているトピック#1,#2に対応する識別子とともに送信されるデータをブローカ3から取得し、取得されたデータを記憶ユニット12Eのデータ記憶部121Eに記憶させる。
ステップS55において、追加される情報記憶装置1Eの制御ユニット11Eは、対応表更新部1153Eの制御の下、自らの情報記憶装置1Eと担当するエンドポイント#2との対応付けを、共有設定記憶部122Eに記憶される第2の対応表に書き込む。
ステップS56において、追加される情報記憶装置1Eの制御ユニット11Eは、上記算出されたコストの合計値が最も大きい情報記憶装置である情報記憶装置1Bに通知する。当該通知に応じて、情報記憶装置1Bは、情報記憶装置1Eが担当することとなったエンドポイント#2との対応付けを開放し、以後、エンドポイント#2に対応付けられている識別子とともに送信されるデータを取得しないようにし、第2対応表における対応付けを削除するようにしてもよい。
ステップS57において、追加される情報記憶装置1Eの制御ユニット11Eは、対応表更新部1153Eの制御の下、共有設定記憶部122Eに記憶される第2の対応表において、自らの情報記憶装置1Eに対応付けられているエンドポイントのコストの合計値を算出し、算出されたコストの合計値が所定の値を超えたか否かを判定する。例えば、当該算出されたコストの合計値が、(エンドポイントのコストの合計)×冗長度/情報記憶装置数を超えたか否か、例えば、図9の第2の対応表の例では、(6+8+4+6)×2/5を超えたか否かを判定する。この判定の結果、算出されたコストの合計値が所定の値を超えていない場合には、ステップS51からの処理を繰り返す。
(効果)
以上詳述したように、この発明の第1の実施形態では、以下のような効果が奏せられる。
(1)情報記憶装置1Aにおいて、データ書き込み部111Aの制御の下、情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報に基づいて、例えばエンドポイント#1が、自らの情報記憶装置1Aが担当するエンドポイントとして判定される。データ書き込み部111Aの制御の下、共有設定記憶部122Aに記憶される、エンドポイントと当該エンドポイントが取得するデータの種類を示す識別子とを対応付ける第1の対応表が読み出され、第1の対応表に基づいて、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、担当するエンドポイント#1に対応付けられているトピック#2に対応する識別子とともに送信されるデータがブローカ3から取得され、取得されたデータがデータ記憶部121Aに記憶される。対応表更新部1153Aの制御の下、情報記憶装置1Aと担当するエンドポイント#1との対応付けが、共有設定記憶部122Aに記憶される第2の対応表に書き込まれる。
このように、各情報記憶装置が自律的にデータを取得できるようにすることにより、情報記憶装置間でのデータの複製や送受信を必要とすることなく、複数の情報記憶装置間でデータを分散記憶させることができる。これにより、データ記憶時における単一情報記憶装置あたりの書き込み性能の低下が防がれた情報分散記憶システムを実現することができる。また、例えば、上述した情報記憶装置と当該情報記憶装置が担当するエンドポイントとの対応関係を示す情報において、1つのエンドポイントを2つ以上の情報記憶装置が担当するように設定すれば、複数の情報記憶装置間でデータの冗長性を担保することができ、情報分散記憶システムの耐故障性が保証される。
(2)情報記憶装置1Aにおいて、中継判定部113Aの制御の下、情報受信装置4A,4B,4C,4D等の任意の情報受信装置から、当該情報受信装置を示す識別子とともに送信されるデータ要求が取得される。中継判定部113Aの制御の下、取得されたデータ要求が、自らの情報記憶装置1Aが担当するエンドポイントからのものであるか否かが判定される。取得されたデータ要求が、例えば、自らの情報記憶装置1Aが担当するエンドポイント#1からのものであると判定された場合は、データ出力部112Aの制御の下、データ記憶部121Aに記憶される当該エンドポイント#1に対するデータが読み出され、読み出されたデータが、データ要求の送信元のエンドポイント#1に対応する情報受信装置4Aに対して出力される。一方、取得されたデータ要求が、例えば、情報記憶装置1Aが担当しないエンドポイント#2からのものであると判定された場合は、中継判定部113Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表に基づいて、当該データ要求の送信元のエンドポイント#2を担当する情報記憶装置が判定される。その後、中継部114Aの制御の下、上記データ要求の送信元のエンドポイント#2を担当する情報記憶装置であると判定された情報記憶装置1Bと情報記憶装置1Cとの少なくとも一方に対して、当該データ要求が出力される。その後、中継部114Aの制御の下、当該データ要求の送信元のエンドポイント#2を担当する情報記憶装置1Bと情報記憶装置1Cとの少なくとも一方に記憶されたデータが取得される。その後、データ出力部112Aの制御の下、取得されたデータが、データ要求の送信元のエンドポイント#2に対応する情報受信装置4Bに対して出力される。
したがって、情報受信装置は、いずれの情報記憶装置にアクセスしたとしても、所望のデータを取得することができる。
(3)情報記憶装置1Aにおいて、対応表監視部1152Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表が参照されて、担当するエンドポイント#1を担当する他の情報記憶装置1Dに関して記憶されている時刻“10345681”、および、担当するエンドポイント#4を担当する他の情報記憶装置1Bに関して記憶されている時刻“12345679”が読み出される。対応表監視部1152Aの制御の下、読み出された時刻“12345679”,“10345681”の各々について、当該時刻が記憶されてから所定の時間が経過しているか否かが判定される。対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、所定の時間が経過している時刻“10345681”に関する情報記憶装置1Dについてのエンドポイントとの対応付けが削除され、対応付けを削除されたエンドポイント#1,#3に待ち受け中フラグが立てられる。対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、自らの情報記憶装置である情報記憶装置1Aに関して記憶されている時刻“12345678”が更新される。
一般に、正常に動作することを確認されていた情報記憶装置であっても、運用時間が経過するにしたがい、何らかの原因により正常に動作しなくなる可能性がある。しかしながら、上記のように時間を基準に、エンドポイントに対して対応付けられていた情報記憶装置についての対応付けを削除することによって、正常に動作をしていない情報記憶装置がエンドポイントを担当しているといった状況を防ぐことができ、これにより、情報分散記憶システム全体の信頼性を向上させることができる。また、上述したような対応表の監視処理を実行した情報記憶装置については、監視処理と同時に動作確認がされる。したがって、上述したように第2の対応表において時刻を更新することによって、正常に動作している情報記憶装置の対応付けまでが削除されて情報分散記憶の効率が低下してしまうことを防ぐことができる。
(4)ネットワークシステムに情報受信装置4Eが追加される場合に、情報記憶装置1Aにおいて、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、情報受信装置4Eに対応するエンドポイント#5の行または列が、情報記憶装置との対応付けを記入しない状態で、待ち受け中フラグを立てて追加される。担当装置選択部1151Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表が読み出され、待ち受け中フラグの立っているエンドポイントの中から担当するエンドポイントが選択される。データ書き込み部111Aの制御の下、共有設定記憶部122Aに記憶される第1の対応表に基づいて、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、選択されたエンドポイントに対応付けられている識別子とともに送信されるデータが取得される。対応表更新部1153Aの制御の下、情報記憶装置1Aと上記選択されたエンドポイントとの対応付けが、共有設定記憶部122Aに記憶される第2の対応表に書き込まれる。
また、ネットワークシステムに情報記憶装置1Eが追加される場合に、対応表更新部1153Aの制御の下、共有設定記憶部122Aに記憶される第2の対応表において、情報記憶装置毎に、当該情報記憶装置が担当するエンドポイントのコストの合計値が算出される。追加される情報記憶装置1Eにおいて、共有設定記憶部122Eの第2の対応表が参照されて、担当装置選択部1151Eの制御の下、算出されたコストの合計値が最も大きい情報記憶装置である情報記憶装置1Bが担当するエンドポイントのうち、コストが最も大きいエンドポイントであるエンドポイント#2を担当することが決定される。データ書き込み部111Eの制御の下、共有設定記憶部122Eに記憶される第1の対応表が読み出され、第1の対応表に基づいて、情報送信装置2A,2B,2C,2D,2E,2Fから送信されるデータの中から、担当するエンドポイント#2に対応付けられているトピック#1,#2に対応する識別子とともに送信されるデータがブローカ3から取得される。対応表更新部1153Eの制御の下、情報記憶装置1Eと担当するエンドポイント#2との対応付けが、共有設定記憶部122Eに記憶される第2の対応表に書き込まれる。
このように、システムに情報受信装置および情報記憶装置を追加可能なスケールアウト性を、当該スケールアウト実行時に情報記憶装置間でデータの送受信を必要とすることなく持たせることができる。これにより、スケールアウト性を有し、かつ、スケールアウト実行時にも単一情報記憶装置あたりの書き込み性能の低下が防がれた情報分散記憶システムを実現することができる。
(5)上記追加される情報記憶装置1Eにより、第2の対応表において担当するエンドポイント#2との対応付けが書き込まれた後に、上記算出されたコストの合計値が最も大きい情報記憶装置1Bに通知がなされる。さらに、上記追加される情報記憶装置1Eにおいて、自らに対応付けられているエンドポイントのコストの合計値が算出され、算出されたコストの合計値が所定の値を超えたか否かが判定される。
このため、上記通知を受けた情報記憶装置1Bは、上記追加される情報記憶装置1Eが担当することとなったエンドポイント#2との対応付けを開放し、以後、当該対応付けを解放されたエンドポイント#2に対するデータを取得しないようにすることができる。これにより、負荷が大きかった情報記憶装置の負荷を軽減させることができる。さらに、上記判定結果に応じて、上記追加される情報記憶装置1Eは追加でエンドポイントを担当するようにすることもでき、例えば、情報記憶装置間で負荷の均一化を図ることが可能となる。
[他の実施形態]
なお、この発明は上記実施形態に限定されるものではない。例えば、上述した動作フローにおいて任意の情報記憶装置によって実行されるとして説明した、担当する情報受信装置の選択処理、対応表更新処理、ならびに、第2の対応表におけるコストの更新処理およびコストの合計値算出処理等の、対応表に関連して実行される各処理は、設定管理装置によって実行されるように構成してもよい。このように、設定管理装置により処理を実行するようにすると、複数の情報記憶装置に共有される情報の一括管理、すなわち、情報分散記憶システムの一括管理をすることができる。また、上記実施形態では、各情報記憶装置におけるデータ書き込み処理の後に第2の対応表において情報受信装置と情報記憶装置との対応付けを書き込むように構成したが、例えば、データ書き込み処理以前に当該対応付けを書き込むように構成してもよい。さらに、上記実施形態では、情報記憶装置において、第2の対応表における待ち受け中フラグに基づいて担当する情報受信装置を選択する例、および、第2の対応表におけるエンドポイントのコストに基づいて担当する情報受信装置を選択する例を説明した。しかしながら、このような選択処理が実行されるのは、上記実施形態において記載した状況に限定されるわけではない。すなわち、担当する情報受信装置の選択処理は、いかなる状況で実行されるものであっても、上記実施形態において説明した方法を任意に組み合わせて実行するようにしてもよい。
その他、情報記憶装置および設定管理装置の種類とその構成、ならびに、第1の対応表および第2の対応表の構成等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
要するにこの発明は、上記第1の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記第1の実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、上記第1の実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。

Claims (13)

  1. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムであって、
    前記複数の情報記憶装置の各々は、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得するデータ取得部と、
    前記取得されたデータが記憶される記憶媒体と
    を備え、
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する要求取得部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する判定部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する出力部とを具備し、
    前記判定部は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定し、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継部をさらに具備し、
    前記出力部は、前記中継部を介して取得されたデータを、前記データ要求の送信元の情報受信装置に出力し、
    前記複数の情報記憶装置の各々は、
    情報受信装置が追加される際に、前記第2の対応表において、前記追加される情報受信装置を情報記憶装置に対応付けずに記憶させる対応表更新部と、
    前記第2の対応表を参照して、情報記憶装置が対応付けられていない情報受信装置の中から、担当する情報受信装置を選択する選択部とを具備し、
    前記対応表更新部は、前記第2の対応表において、前記選択された情報受信装置に対応付けられたことを記憶させる、
    情報分散記憶システム。
  2. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムであって、
    前記複数の情報記憶装置の各々は、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得するデータ取得部と、
    前記取得されたデータが記憶される記憶媒体と
    を備え、
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する要求取得部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する判定部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する出力部とを具備し、
    前記判定部は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定し、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継部をさらに具備し、
    前記出力部は、前記中継部を介して取得されたデータを、前記データ要求の送信元の情報受信装置に出力し、
    前記第2の対応表は、各情報記憶装置について、情報受信装置との対応付けがされた時刻もさらに記憶しており、
    前記複数の情報記憶装置の各々は、
    前記第2の対応表を参照して、前記担当する情報受信装置を担当する他の情報記憶装置に関して記憶されている時刻について、当該時刻が記憶されてから所定の時間が経過しているか否かを判定する対応表監視部と、
    前記時刻が記憶されてから所定の時間が経過していると判定された場合に、前記第2の対応表において、当該判定をされた情報記憶装置についての情報受信装置との対応付けを削除し、前記第2の対応表において、自らの情報記憶装置に関して記憶されている時刻を更新する対応表更新部と
    をさらに備える、
    情報分散記憶システム。
  3. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムであって、
    前記複数の情報記憶装置の各々は、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得するデータ取得部と、
    前記取得されたデータが記憶される記憶媒体と
    を備え、
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する要求取得部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する判定部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する出力部とを具備し、
    前記判定部は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定し、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継部をさらに具備し、
    前記出力部は、前記中継部を介して取得されたデータを、前記データ要求の送信元の情報受信装置に出力し、
    前記複数の情報記憶装置の各々は、前記第2の対応表において、情報記憶装置毎に、担当する情報受信装置のコストの合計値を算出する算出部をさらに備え、
    前記情報分散記憶システムに情報記憶装置が追加される際に、前記追加される情報記憶装置は、
    前記算出されたコストの合計値が最も大きい情報記憶装置が担当する情報受信装置のうちコストが最も大きい情報受信装置を、担当する情報受信装置として選択する選択部と、
    前記第2の対応表において、前記選択された情報受信装置に対応付けられたことを記憶させる対応表更新部と
    をさらに備える、
    情報分散記憶システム。
  4. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムであって、
    前記複数の情報記憶装置の各々は、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得するデータ取得部と、
    前記取得されたデータが記憶される記憶媒体と
    を備え、
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する要求取得部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する判定部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する出力部とを具備し、
    前記判定部は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定し、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継部をさらに具備し、
    前記出力部は、前記中継部を介して取得されたデータを、前記データ要求の送信元の情報受信装置に出力し、
    前記第1の対応表は、前記情報送信装置の変更、又は前記情報受信装置が要求するデータの種類を変更する場合に更新される、
    情報分散記憶システム。
  5. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムであって、
    前記複数の情報記憶装置の各々は、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得するデータ取得部と、
    前記取得されたデータが記憶される記憶媒体と
    を備え、
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する要求取得部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する判定部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する出力部とを具備し、
    前記判定部は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定し、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継部をさらに具備し、
    前記出力部は、前記中継部を介して取得されたデータを、前記データ要求の送信元の情報受信装置に出力し、
    前記第2の対応表は、前記情報受信装置の変更、又は前記情報記憶装置の変更をする場合に更新される、
    情報分散記憶システム。
  6. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムであって、
    前記複数の情報記憶装置の各々は、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得するデータ取得部と、
    前記取得されたデータが記憶される記憶媒体と
    を備え、
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する要求取得部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する判定部と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する出力部とを具備し、
    前記判定部は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定し、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継部をさらに具備し、
    前記出力部は、前記中継部を介して取得されたデータを、前記データ要求の送信元の情報受信装置に出力し、
    前記第1の対応表は、前記情報受信装置により、前記第2の対応表と関連付けられている、
    情報分散記憶システム。
  7. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムの各情報記憶装置が実行する情報分散記憶方法であって、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子と対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得する過程と、
    前記取得されたデータを記憶媒体に記憶させる過程と
    を備え
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する過程とを実行し、
    前記判定する過程は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定する過程を含み、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継を行なう過程をさらに実行し、
    前記出力する過程は、前記中継を行なう過程により取得されたデータを、前記データ要求の送信元の情報受信装置に出力する過程を含み、
    前記複数の情報記憶装置の各々は、
    情報受信装置が追加される際に、前記第2の対応表において、前記追加される情報受信装置を情報記憶装置に対応付けずに記憶させる対応表更新を行なう過程と、
    前記第2の対応表を参照して、情報記憶装置が対応付けられていない情報受信装置の中から、担当する情報受信装置を選択する過程とを実行し、
    前記対応表更新を行なう過程は、前記第2の対応表において、前記選択された情報受信装置に対応付けられたことを記憶させる過程を含む、
    情報分散記憶方法。
  8. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムの各情報記憶装置が実行する情報分散記憶方法であって、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得する過程と、
    前記取得されたデータを記憶媒体に記憶させる過程と
    を備え
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する過程とを実行し、
    前記判定する過程は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定する過程を含み、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継を行なう過程をさらに実行し、
    前記出力する過程は、前記中継を行なう過程により取得されたデータを、前記データ要求の送信元の情報受信装置に出力する過程を含み、
    前記第2の対応表には、各情報記憶装置について、情報受信装置との対応付けがされた時刻がさらに記憶され、
    前記複数の情報記憶装置の各々は、
    前記第2の対応表を参照して、前記担当する情報受信装置を担当する他の情報記憶装置に関して記憶されている時刻について、当該時刻が記憶されてから所定の時間が経過しているか否かを判定する対応表監視を行なう過程と、
    前記時刻が記憶されてから所定の時間が経過していると判定された場合に、前記第2の対応表において、当該判定をされた情報記憶装置についての情報受信装置との対応付けを削除し、前記第2の対応表において、自らの情報記憶装置に関して記憶されている時刻を更新する対応表更新を行なう過程と、
    をさらに実行する、
    情報分散記憶方法。
  9. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムの各情報記憶装置が実行する情報分散記憶方法であって、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得する過程と、
    前記取得されたデータを記憶媒体に記憶させる過程と
    を備え
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する過程とを実行し、
    前記判定する過程は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定する過程を含み、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継を行なう過程をさらに実行し、
    前記出力する過程は、前記中継を行なう過程により取得されたデータを、前記データ要求の送信元の情報受信装置に出力する過程を含み、
    前記複数の情報記憶装置の各々は、前記第2の対応表において、情報記憶装置毎に、担当する情報受信装置のコストの合計値を算出する過程をさらに実行し、
    前記情報分散記憶システムに情報記憶装置が追加される際に、前記追加される情報記憶装置は、
    前記算出されたコストの合計値が最も大きい情報記憶装置が担当する情報受信装置のうちコストが最も大きい情報受信装置を、担当する情報受信装置として選択する過程と、
    前記第2の対応表において、前記選択された情報受信装置に対応付けられたことを記憶させる対応表更新を行なう過程と、
    をさらに実行する、
    情報分散記憶方法。
  10. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムの各情報記憶装置が実行する情報分散記憶方法であって、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得する過程と、
    前記取得されたデータを記憶媒体に記憶させる過程と
    を備え
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する過程とを実行し、
    前記判定する過程は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定する過程を含み、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継を行なう過程をさらに実行し、
    前記出力する過程は、前記中継を行なう過程により取得されたデータを、前記データ要求の送信元の情報受信装置に出力する過程を含み、
    前記第1の対応表は、前記情報送信装置の変更、又は前記情報受信装置が要求するデータの種類を変更する場合に更新される、
    情報分散記憶方法。
  11. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムの各情報記憶装置が実行する情報分散記憶方法であって、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得する過程と、
    前記取得されたデータを記憶媒体に記憶させる過程と、
    を備え
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する過程とを実行し、
    前記判定する過程は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定する過程を含み、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継を行なう過程をさらに実行し、
    前記出力する過程は、前記中継を行なう過程により取得されたデータを、前記データ要求の送信元の情報受信装置に出力する過程を含み、
    前記第2の対応表は、前記情報受信装置の変更、又は前記情報記憶装置の変更をする場合に更新される、
    情報分散記憶方法。
  12. 情報送信装置および情報受信装置との間でデータ通信が可能な複数の情報記憶装置を具備する情報分散記憶システムの各情報記憶装置が実行する情報分散記憶方法であって、
    前記複数の情報記憶装置間で共有される、情報受信装置と当該情報受信装置が取得するデータの種類を示す識別子とが対応付けられる第1の対応表と、情報記憶装置と当該情報記憶装置が担当する情報受信装置との対応関係を示す第2の対応表とに基づいて、前記情報送信装置から送信されるデータの中から、自らが担当する情報受信装置に対応付けられている識別子とともに送信されるデータを取得する過程と、
    前記取得されたデータを記憶媒体に記憶させる過程と
    を備え
    前記複数の情報記憶装置の各々はさらに、
    情報受信装置からのデータ要求を取得する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであるか否かを判定する過程と、
    前記取得されたデータ要求が前記担当する情報受信装置からのものであると判定された場合に、前記担当する情報受信装置に対して、前記記憶媒体に記憶されたデータを出力する過程とを実行し、
    前記判定する過程は、前記取得されたデータ要求が前記担当する情報受信装置からのものではないと判定された場合に、前記第2の対応表に基づいて、当該データ要求の送信元の情報受信装置を担当する情報記憶装置を判定する過程を含み、
    前記データ要求の送信元の情報受信装置を担当する情報記憶装置であると判定された情報記憶装置の記憶媒体に記憶されたデータを取得する中継を行なう過程をさらに実行し、
    前記出力する過程は、前記中継を行なう過程により取得されたデータを、前記データ要求の送信元の情報受信装置に出力する過程を含み、
    前記第1の対応表は、前記情報受信装置により、前記第2の対応表と関連付けられている、
    情報分散記憶方法。
  13. コンピュータに請求項7乃至12のいずれか1項に記載の情報分散記憶方法を実行させるためのプログラム。
JP2019551053A 2017-11-06 2018-10-17 情報分散記憶システム、方法およびプログラム Active JP6824435B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017213880 2017-11-06
JP2017213880 2017-11-06
PCT/JP2018/038689 WO2019087786A1 (ja) 2017-11-06 2018-10-17 情報分散記憶システム、方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2019087786A1 JPWO2019087786A1 (ja) 2020-04-02
JP6824435B2 true JP6824435B2 (ja) 2021-02-03

Family

ID=66333520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019551053A Active JP6824435B2 (ja) 2017-11-06 2018-10-17 情報分散記憶システム、方法およびプログラム

Country Status (5)

Country Link
US (1) US11381642B2 (ja)
EP (1) EP3709173B1 (ja)
JP (1) JP6824435B2 (ja)
CN (1) CN111630500B (ja)
WO (1) WO2019087786A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7010171B2 (ja) * 2018-08-10 2022-01-26 日本電信電話株式会社 保守管理システムおよびデータ処理方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349980B1 (en) * 2003-01-24 2008-03-25 Blue Titan Software, Inc. Network publish/subscribe system incorporating Web services network routing architecture
JP2005202893A (ja) * 2004-01-19 2005-07-28 Hitachi Ltd 記憶デバイス制御装置、ストレージシステム、プログラムを記録した記録媒体、情報処理装置、及びストレージシステムの制御方法
US7644168B2 (en) * 2004-11-05 2010-01-05 Hewlett-Packard Development Company, L.P. SAS expander
US8228954B2 (en) * 2007-11-13 2012-07-24 Cisco Technology, Inc. Routing operations using sensor data
US8341279B2 (en) * 2008-11-17 2012-12-25 Cisco Technology, Inc. Dynamically activating buffered data publishers in sensor networks
EP2414926A1 (en) * 2009-09-18 2012-02-08 Hitachi, Ltd. Storage system for eliminating duplicated data
JP5439219B2 (ja) * 2010-02-18 2014-03-12 株式会社日立製作所 メッセージ配信システム及びメッセージ配信方法
CN103190123B (zh) * 2010-10-29 2016-08-10 诺基亚技术有限公司 用于分发发布的消息的方法和装置
US9116220B2 (en) * 2010-12-27 2015-08-25 Microsoft Technology Licensing, Llc Time synchronizing sensor continuous and state data signals between nodes across a network
CA2825393C (en) * 2011-01-28 2019-03-12 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
US8799469B2 (en) * 2011-03-11 2014-08-05 International Business Machines Corporation Subscriber message payload handling
JP5867161B2 (ja) * 2012-02-29 2016-02-24 富士通株式会社 データアクセス制御装置、データアクセス制御方法およびプログラム
JP2013192025A (ja) * 2012-03-14 2013-09-26 Nec Corp メッセージングシステム、メッセージング方法およびプログラム
US9396337B2 (en) * 2012-04-11 2016-07-19 Intermec Ip Corp. Wireless sensor field enumeration
JP2014038483A (ja) * 2012-08-16 2014-02-27 Nec Corp データ配信システム、データ配信方法、およびプログラム
JP5879284B2 (ja) * 2013-02-22 2016-03-08 日本電信電話株式会社 情報記録方法及び情報記録装置及びプログラム
EP2821913A1 (en) * 2013-07-01 2015-01-07 Open Text S.A. A method and system for storing documents
US10031933B2 (en) * 2014-03-02 2018-07-24 Netapp, Inc. Peer to peer ownership negotiation
US20160210061A1 (en) 2015-01-21 2016-07-21 Tektronix, Inc. Architecture for a transparently-scalable, ultra-high-throughput storage network
JP2015149076A (ja) * 2015-03-04 2015-08-20 株式会社日立製作所 管理装置、管理システム、およびデータ管理方法

Also Published As

Publication number Publication date
US20210185123A1 (en) 2021-06-17
EP3709173A4 (en) 2021-08-25
CN111630500A (zh) 2020-09-04
EP3709173B1 (en) 2023-12-06
EP3709173A1 (en) 2020-09-16
CN111630500B (zh) 2024-06-07
WO2019087786A1 (ja) 2019-05-09
JPWO2019087786A1 (ja) 2020-04-02
US11381642B2 (en) 2022-07-05

Similar Documents

Publication Publication Date Title
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
US8918392B1 (en) Data storage mapping and management
JP5902716B2 (ja) 大規模記憶システム
CN105493474B (zh) 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法
US8930364B1 (en) Intelligent data integration
CN102882909B (zh) 云计算服务监控系统及方法
US9852220B1 (en) Distributed workflow management system
CN103207867A (zh) 处理数据块的方法、发起恢复操作的方法和节点
JP6405255B2 (ja) 通信システム、キュー管理サーバ、及び、通信方法
CN102420863A (zh) 一种快速分发文件系统和方法及装置
JP6824435B2 (ja) 情報分散記憶システム、方法およびプログラム
CN110457380A (zh) 一种数据存储系统
JP6432407B2 (ja) ノード、情報処理システム、方法、および、プログラム
JP2014229088A (ja) データ処理システム、データ処理装置および記憶媒体
US12026177B2 (en) Dynamic adaptive partition splitting
US20230376391A1 (en) Data ingestion replication and disaster recovery
WO2022220830A1 (en) Geographically dispersed hybrid cloud cluster
JP6568232B2 (ja) 計算機システム、及び、装置の管理方法
JP2021093104A5 (ja)
JP7515693B2 (ja) 複数のパーティショングループ間のハートビート通信のランダム化
US20230283663A1 (en) Randomization of heartbeat communications among multiple partition groups
US11921700B1 (en) Error tables to track errors associated with a base table
US11636005B2 (en) Techniques for scheduled anti-entropy repair design
US20230289347A1 (en) Cache updates through distributed message queues
CN115113800A (zh) 多集群管理方法、装置、计算设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201214

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210112

R150 Certificate of patent or registration of utility model

Ref document number: 6824435

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150