JP6241449B2 - データ管理システム及びデータ管理方法 - Google Patents

データ管理システム及びデータ管理方法 Download PDF

Info

Publication number
JP6241449B2
JP6241449B2 JP2015103744A JP2015103744A JP6241449B2 JP 6241449 B2 JP6241449 B2 JP 6241449B2 JP 2015103744 A JP2015103744 A JP 2015103744A JP 2015103744 A JP2015103744 A JP 2015103744A JP 6241449 B2 JP6241449 B2 JP 6241449B2
Authority
JP
Japan
Prior art keywords
data
node
time range
nodes
analysis unit
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
JP2015103744A
Other languages
English (en)
Other versions
JP2016218787A (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.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric 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 Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2015103744A priority Critical patent/JP6241449B2/ja
Priority to US15/150,481 priority patent/US10157216B2/en
Priority to EP16169580.4A priority patent/EP3096248B1/en
Publication of JP2016218787A publication Critical patent/JP2016218787A/ja
Application granted granted Critical
Publication of JP6241449B2 publication Critical patent/JP6241449B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、キーバリュー型データベースを用いたデータ管理システム及びデータ管理方法に関する。
測定されたデータ管理を行う場合、センサなどの計測機器に対して直接に接続される設定端末などを用いて、センサからのデータ収集を行いリレーショナルデータベース(RDB:relational database)に蓄積している(例えば、特許文献1参照)。
特に、プラントなどでは、数千にも及ぶ計測機器が施設の様々な部位に取りつけられている。それら計測機器は、秒単位などで計測結果を上記設定端末を介して常時発信し続ける。このため、プラント管理において蓄積されるデータ量は膨大な量になることが考えられる。プラントでは計測機器に対して設定端末を接続し、計測機器が取り付けられている部位を確認しつつデータ計測を行うという需要がある。このため、計測したデータを蓄積させる際に、設定端末をデータ管理システムのネットワークに対して頻繁に接続し、データを蓄積した後に切り離す運用を行っている。
また、近年注目を浴びるキーバリュー型データベースは、NoSQL(Not only SQL)データベースの一例であり、RDBに比較して柔軟なデータ構造を有している。そのデータ構造は、ストア(ストレージ)の分散化に向き、大量データに対する可用性や読み取り性能において、一般的なRDBよりも優位であると考えられる(例えば、特許文献2参照)。
一方、すでに述べたように、プラントのデータ管理においては、NoSQLデータベースを用いたデータ管理システムのネットワークへの接続あるいは切り離しを、どのノードにおいても可能として運用できることが望まれている。このノードとは、データ管理システムにおけるサーバ、パーソナルコンピュータ(以下、単にPC)、設定端末(例えば、タブレット端末などの携帯端末)を示している。
特開2011−221799号公報 特開2014−211790号公報
しかしながら、上述したキーバリュー型データベースは、大容量のデータを蓄積するため、データの蓄積をそれぞれの端末により分散して記憶する分散型のデータベースであり、複数のノードの記憶媒体においてデータを蓄積している。
したがって、任意にノードをネットワークから接続あるいは取り外し可能として運用する場合、新たに接続したノードにデータの蓄積ができず、また取り外しが行えるノードもデータ蓄積に対して用いることができず、ネットワークに接続されているノードを有効的に大容量のデータの記憶の記憶媒体として活用できない問題がある。
本発明は、このような状況に鑑みてなされたもので、任意にネットワークに対して接続あるいは取り外しが可能なノードの記憶媒体を、システム内におけるデータの蓄積に有効に利用することが可能なデータ管理システム及びデータ管理方法を提供する。
上述した課題を解決するために、本発明のデータ管理システムは、ネットワークに対してノードを接続あるいは取り外し可能に運用するネットワークシステムについて、キーに対応したデータ構造を用いて前記ネットワークに接続される複数のノードに対してデータを分散させて、前記データの蓄積を行うデータ管理システムにおいて、前記ノードが、新たに前記ネットワークに接続された際に、前記データを蓄積する前記ノードとなるために用いるノード情報を、前記ネットワークにすでに接続されている他の前記ノードに対して供給するデータ解析部を備えていることを特徴とする。
本発明のデータ管理システムは、前記ノード情報が、前記データの書き込み及び読み出しを行う先の前記ノードを抽出するために用いる、ことを特徴とする。
また、本発明のデータ管理システムは、前記データ解析部が、前記ネットワーク内の前記ノードの各々に前記蓄積データを蓄積するために書き込む、あるいは蓄積されている前記蓄積データを読み出すために前記ネットワークに接続された際、書き込みあるいは読み出す対象の前記蓄積データのキーと前記ノードの各々のノード情報とにより、前記蓄積データを書き込むあるいは読み出す前記ノードを抽出することを特徴とする。
また、本発明のデータ管理システムは、前記キーは前記蓄積データが測定された時間を含み、前記ノード情報が前記ノードの処理能力及び稼働率を含み、前記データ解析部が、所定の閾値以上の稼働率の前記ノードを前記蓄積データを保存するノードとして選択し、前記蓄積データの測定が行われる時間の範囲を示す時刻範囲を前記処理能力に対応して分割することにより、測定された時間によって前記蓄積データを割り当てるための割当時刻範囲を、選択されたノード毎に設定することを特徴とする。
また、本発明のデータ管理システムは、前記データ解析部が、前記ノードに蓄積されている前記蓄積データを、他のノードに対して複製することを特徴とする。
また、本発明のデータ管理システムは、前記データ解析部が、前記データの複製を行う際、前記ノード及び他のノードの各々の稼働率に基づいてデータの取得率を算出し、取得率が予め設定された値となるまで、前記ノードの前記蓄積データをさらに前記他のノードと異なる他のノードに複製することを特徴とする。
また、本発明のデータ管理システムは、前記データ解析部が、コンシステントハッシュ法のアルゴリズにより、前記時刻範囲に含まれる時刻を円の円周に写像し、前記ノード各々の前記割当時刻範囲に対応するをハッシュ値とするハッシュ関数により、前記ノードに対応する前記ハッシュ値の前記割当時刻範囲を前記時刻に対応させて前記円周に写像し、自身の蓄積データの複製である複製データの生成を、前記円周上において隣接する他のノードの前記割当時刻範囲から順次行うことを特徴とする。
また、本発明のデータ管理システムは、前記ノードの読み出しが行えなくなった際、前記他のノードの前記データ解析部が、前記ノードの前記蓄積データを、自身が記憶している前記ノードの前記蓄積データの前記複製データから復旧し、読み出しが行えなくなった前記ノードの前記蓄積データを自身の蓄積データとすることを特徴とする。
また、本発明のデータ管理システムは、前記ハッシュ関数が前記ノードの処理能力に対応した数のハッシュ値を算出し、前記円周上に前記ノードの各々のハッシュ値の合計値で前記時刻範囲を除算した割当時刻範囲で、前記円周上に前記ハッシュ値が分布させて仮想ノードとすることを特徴とする。
また、本発明のデータ管理方法は、ネットワークに対してノードを接続あるいは取り外し可能に運用するネットワークシステムについて、キーに対応したデータ構造を用いて前記ネットワークに接続される複数のノードに対してデータを分散させて、前記データの蓄積を行うデータ管理方法において、前記ノードにおいて、データ解析部が、新たに前記ネットワークに接続された際に、前記データを蓄積する前記ノードとなるために用いるノード情報を、前記ネットワークにすでに接続されている他の前記ノードに対して供給するデータ解析過程を含むことを特徴とする。
以上説明したように、本発明によれば、任意に端末をノードとしてネットワークに接続した場合、予めネットワークに接続されていたノードと同様に、ノード情報を他のノードに提供してデータの蓄積を行うことも含めて、ネットワークに参加させ、任意にネットワークに対して接続あるいは取り外しが可能となり、任意にネットワークに対して接続あるいは取り外しが可能なノードの記憶媒体を、システム内におけるデータの蓄積に有効に利用することが可能となる。
本発明の第1の実施形態によるデータ管理システム1の構成例を示すブロック図である。 本実施形態におけるデータ管理部の構成例を示す図である。 ネットワークNWに接続され、データ管理システム1に参加しているノードのノード情報が記載された参加ノード情報を示す図である。 検索用インデックスを示すインデックステーブルの一例を示す図である。 携帯端末A−3がデータをデータ管理システム1で保存する際にネットワークNWに接続され、新たなノードとしてデータ管理システム1に参加する処理の動作例を示すフローチャートである。 図1に対応した図であり、図5のフローチャートの処理を説明する図である。 データの保存先の算出条件が記載された算出条件テーブルの構成例を示す図である。 データの保存先として選択されたノードの各々におけるデータの保存量の設定を説明する図である。 データ管理システム1内における各ノードのデータベース106において記憶されるパーティションキー及びレンジキーからなるキー(Key)部分とデータとの対応関係を示す図である。 携帯端末A−3がネットワークNWに接続され、新たなノードとしてデータ管理システム1に参加する処理の動作例を示すフローチャートである。 図1に対応した図であり、図10のフローチャートの処理を説明する図である。 データ管理システム1のノード間における複製の作成処理の動作例を示すフローチャートである。 データ管理システム1のノード間における複製の作成処理の動作例を示す図である。 データ管理システム1のノード間における複製からデータを復旧する処理の動作例を示すフローチャートである。 データ管理システム1のノード間における複製のデータから読み出せなくなったノードが記憶するデータの復旧の処理の動作例を示す図である。 レンジキーの最小値と最大値との間の時刻範囲を円の円周上に写像することで配置し、かつこの円の円周上(以下、単に円周上)にハッシュ値として各ノードの格納する割当時刻範囲を仮想ノードとして配置するハッシュ関数を説明する図である。 ネットワークNWに接続され、データ管理システム1に参加しているノードのノード情報が記載された参加ノード情報である。 本実施形態の説明に用いるデータとこのデータに対応するレンジキーとの対応を説明するインデックステーブルを示す図である。 仮想ノードを用いたコンシステントハッシュ法により、ノードA−1、ノードA−2及びノードA−3の各々に記憶されているデータとそのデータの複製先とを説明する図である。 レンジキーの最小値と最大値との間の時刻範囲を円周上に写像して配置した仮想ノードにおいて、ノードA−3が無反応状態である場合における、ノードA−3に記憶されているデータの復旧を説明する図である。 ノード3が死んだ場合に、ノードA−1がノードA−3のデータの複製からノードA−3のデータを復旧する処理を説明する図である。 ノードA−1がノードA−3のデータの複製を、自身の担当するデータに変更した後に、新たに担当するデータの複製を他のノードに作成する処理を説明する図である。
本発明のデータ管理システムは、ネットワークに対してノードを接続あるいは取り外し可能に運用するネットワークシステムにおいて、このネットワークシステムに接続される複数のノードに対してデータを分散させて蓄積する際、キーバリューストアのデータ構造によりデータの蓄積の管理を行う(キーバリュー型データベースを活用したデータの管理を行う)。これにより、本発明のデータ管理システムは、任意に端末をノードとしてネットワークに接続した場合、予めネットワークに接続されていたノードと同様に、ノード情報を他のノードに提供してデータの蓄積を行うことも含めて、ネットワークに参加させ、また取り外した場合、このノードに蓄積されていたデータを他のノードにおいて復旧させることより、任意にネットワークに対して接続あるいは取り外しを可能としている。
<第1の実施形態>
以下、本発明の第1の実施形態について、図面を参照して説明する。
図1は、本発明の第1の実施形態によるデータ管理システム1の構成例を示すブロック図である。本実施形態におけるデータ管理システム1は、記憶媒体(蓄積媒体)としてデータベース(DB:database)を有する、サーバA−1及びB−1と、パーソナルコンピュータA−2及びB−2と、携帯端末A−3及びA−4との各々を備えている。また、サーバA−1及びB−1と、パーソナルコンピュータA−2及びB−2との各々は、ネットワークNWに対して接続されている。また、携帯端末A−3及びA−4の各々は、パーソナルコンピュータA−2を介してネットワークNWに対して接続されている。
携帯端末A−3及びA−4の各々は、例えばタブレット型コンピュータであり、プラント内に設けられた測定器P−1からP−3の各々から、測定器P−1からP−3の各々が測定したデータを読み込む。このとき、携帯端末A−3及びA−4の各々は、それぞれ蓄積媒体DBにデータを一旦蓄積する。本実施携帯のデータ管理システムにおいては、ネットワークの各ノード間で送受信する、あるいは蓄積媒体に蓄積するデータ形式をキーバリュー(Key-Value)形式として、キーバリューストアの方式によりデータ管理を行う。
サーバA−1及びB−1と、パーソナルコンピュータA−2及びB−2と、携帯端末A−3及びA−4との各々(以下、総称してノードと示すこともある)は、データを管理するデータ管理部(不図示)が備えられている。図2は、本実施形態におけ各ノードに設けられたデータ管理部10の構成例を示す図である。データ管理部10は、表示部101、表示データ作成部102、データ解析部103、データ読み書き部104、データ通信部105、データベース106の各々を備えている。
表示部101は、ノード対して行わせる処理の内容を選択したり、文字入力を行う画像の表示、また読み出し及び書き込みを行うデータの入力操作及び表示を行う。表示データ作成部102は、表示部101に対して表示する文字を含む画像を生成する。例えば、表示データ作成部102は、表示部101に対して表示するデータベースから読み出されたデータや測定器P−1などから読み込んだデータの文字列や、操作を選択する入力画面の画像を生成する。
データ解析部103は、ノードの各々が新たにネットワークNWに接続された際に、データを蓄積するノードとなるため、データの書き込み及び読み出しを行う先のノードを抽出するために用いるノード情報を、ネットワークNWにすでに接続されている他のノードに対して供給する。また、データ解析部103は、ネットワークNW内のノードの各々に蓄積データを蓄積するために書き込む、あるいは蓄積されている蓄積データを読み出すためにネットワークNWに接続された際、読み出す蓄積データのキーとノードの各々のノード情報とにより、蓄積データを書き込むあるいは読み出すノードを抽出する(詳細は後述する)。
図3は、ネットワークNWに接続され、データ管理システム1に参加しているノードのノード情報が記載された参加ノード情報を示す図である。各ノード毎にレコード(行方向のデータ列)が形成されており、ノードID(identification)に対応し、パーティションキー、処理能力、稼働率の各々が記憶されている。ノードIDは、ノードを識別する情報であり、例えば本実施形態においては符号を用いている。パーティションキーは、大規模なデータを多くのノードにより管理する際、管理を行い易くし、ネットワークNW内のトラフィックの増大を抑制する目的で、ノードを複数のパーティションに分割するために任意に設定されるものであり、省略しても良い。処理能力は、データベース106の容量の大きさ及びノードの読み書きのスピードで決定されている。稼働率は、データ管理システム1の動作している時間に対して、ノードがネットワークNWに接続されて、データ管理システム1に参加している時間の割合を示す。例えば、ネットワークNWに対して常時接続されるノードは稼働率が100であり、ネットワークNWから切り離されている時間が長く、短時間しかネットワークNWに接続されないノードは10と設定される。
図4は、検索用インデックスを示すインデックステーブルの一例を示す図である。検索用インデックスは、例えば、データの各々に個別に設けられたキーとして、パーティションキーとレンジキーとから構成されている。パーティションキーは、図3におけるパーティション個別に設けられたキーである。レンジキーは、データが測定器で測定された日時を示している。すなわち、本実施形態においては、測定された日時が測定されたデータを検索するキーであるレンジキーとして用いる。
図2に戻り、データ読み書き部104は、データ通信部105を介してデータの読み出しを要求する読出信号が入力されると、読出信号に含まれるキーに対応したデータをデータベース106から読み出し、読み出しを要求したノードに対してデータ通信部105を介して出力する。また、データ読み書き部104は、データ通信部105を介してデータの書き込みを要求する書込信号が入力されると、書込信号に含まれるキーに対応させて入力されたデータをデータベース106に書き込んで記憶させる。
ここで、図5及び図6を用いて、携帯端末A−3がデータをデータ管理システム1で保存する際にネットワークNWに接続され、新たなノードとしてデータ管理システム1に参加する処理の説明を行う。図5は、携帯端末A−3がデータをデータ管理システム1で保存する際にネットワークNWに接続され、新たなノードとしてデータ管理システム1に参加する処理の動作例を示すフローチャートである。図6は、図1に対応した図であり、図5のフローチャートの処理を説明する図である。ここで、サーバA−1及びB−1と、パーソナルコンピュータA−2及びB−2と、携帯端末A−4の各々は、すでにネットワークNWに接続され、データ管理システム1に参加している。
ステップS101:
携帯端末A−3は、ユーザの操作により、測定器P−1から、測定器P−1が測定したデータを吸い上げる(入力する)。そして、この吸い上げたデータをデータ管理システム1内に記憶させるため、携帯端末A−3は、ユーザの操作により、パーソナルコンピュータA−2を介してネットワークNWに接続される。
ステップS102:
パーソナルコンピュータA−2のデータ解析部103は、携帯端末A−3が接続されると、携帯端末A−3に対して、データベース106に格納されている参加ノード情報と、検索用インデックスとを読み出す。そして、パーソナルコンピュータA−2のデータ解析部103は、読み出したノード情報と検索用インデックスとの各々を携帯端末A−3に対して出力する。
これにより、携帯端末A−3のデータ解析部103は、パーソナルコンピュータA−2から供給されるノード情報と検索用インデックスが記載されたインデックステーブルとの各々を取得する。そして、携帯端末A−3のデータ解析部103は、参加ノード情報に自身のノード情報を加えて、データベース106に対して書き込んで記憶させる。
ステップS103:
携帯端末A−3のデータ解析部103は、自身のノード情報を加えた参加ノード情報を、データ通信部105を介して、他のノードであるサーバA−1及びB−1と、パーソナルコンピュータA−2及びB−2と、携帯端末A−4の各々に対して出力する。
ステップS104:
そして、サーバA−1及びB−1と、パーソナルコンピュータA−2及びB−2の各々において、データ解析部103は、新たに携帯端末A−3のノード情報を加えた参加ノード情報を、データベース106に対して書き込んで記憶させる。これにより、携帯端末A−3のノード情報が含まれる参加ノード情報は、データ管理システム1におけるノードの各々により共有される。
ステップS105:
次に、携帯端末A−3のデータ解析部103は、自身の保持するデータを蓄積するノード、すなわちデータの書込先を求める。ここで、携帯端末A−3のデータ解析部103は、パーソナルコンピュータA−2に対して、保存先の算出条件を要求する。
これにより、パーソナルコンピュータA−2のデータ解析部103は、データベース106から保存先の算出条件を読み出し、読み出した保存先の算出(選択)条件を、携帯端末A−3に対して出力する。
図7は、データの保存先の算出条件が記載された算出条件テーブルの構成例を示す図である。算出条件(選択)として、例えば一つは、「稼働率10%以下のノードにデータ保存はさせない」ことである。この時点で、稼働率が10%以下の携帯端末A−3及びA−4は除外されることになる。算出条件として、例えば他の一つは、「ノードの処理能力の高い順に能力の比率でレンジキーの時刻情報を元にデータを分散させる」ことである。本実施携帯としては、パーティションAのパーソナルコンピュータA−2を介して、ネットワークNWに接続されたため、携帯端末A−3のデータもパーティションAのノードに接続される。サーバA−1及びパーソナルコンピュータA−2の各々は、稼働率が100%であるため、データの保存先として選定されることになる。
図8は、データの保存先として選択されたノードの各々におけるデータの保存量の設定を説明する図である。サーバA−1は処理能力が100であり、パーソナルコンピュータA−2は処理能力が50である。このため、データ管理システム1におけるパーティションAで蓄積するデータは、サーバA−1とパーソナルコンピュータA−2との各々で、2:1の割合で分散して記憶される。すなわち、本実施形態においては、蓄積されるデータの測定が行われる時刻の範囲、すなわちレンジキーの時間が取り得る時刻の範囲である時刻範囲(時間幅)として00:00から24:00までの時間においてデータが測定される。サーバA−1とパーソナルコンピュータA−2との各々は、この2:1の割合で測定されたデータの蓄積を行う。このため、データの測定が行われる時刻範囲を、2:1の割当時刻範囲に分割している。サーバA−1とパーソナルコンピュータA−2との各々は、データが測定された時間が自身に割り当てられた割当時刻範囲に含まれる場合に、その時間に測定されたデータの蓄積を行う。
したがって、サーバA−1は、時刻範囲を処理能力の割合で分割した割当時刻範囲である00:00から16:00までの時間が割り当てられるため、この割当時刻範囲に含まれる時間を測定した時間として含むレンジキーのデータを保存する。一方、サーバA−2は、時刻範囲を処理能力の割合で分割した割当時刻範囲である16:00から24:00までの割当時刻範囲が割り当てられるため、この割当時刻範囲に含まれる時間を測定した時間として含むレンジキーのデータを保存する。
図5に戻り、携帯端末A−3のデータ解析部103は、図7の算出(選択)条件の一つである「稼働率10%以下のノードにデータ保存はさせない」ことから、データの保存先として携帯端末A−3及びA−4を除外し、保存先としてサーバA−1及びパーソナルコンピュータA−2を選択する。また、携帯端末A−3のデータ解析部103は、算出条件の一つである「ノードの処理能力の高い順に能力の比率でレンジキーの時刻情報を元にデータを分散させる」に対応させ、サーバA−1及びパーソナルコンピュータA−2の処理能力である100:50(=2:1)に基づいて、レンジキーの時刻範囲である00:00から24:00において、サーバA−1の記憶する割当時刻範囲を00:00から16:00までとし、パーソナルコンピュータA−2の記憶する割当時刻範囲を16:00から24:00までとする。
そして、携帯端末A−3のデータ解析部103は、自身の保持しているレンジキーの時間を確認し、サーバA−1及びパーソナルコンピュータA−2の各々の割当時刻範囲に各データのレンジキーの時間が含まれるかを検出する。そして、携帯端末A−3のデータ解析部103は、レンジキーが2015−01−01−01:00及び2015−01−02−12:00のデータの保存先をサーバA−1とし、レンジキーが2015−01−02−22:00のデータの保存先をパーソナルコンピュータA−2とする。
ステップS106:
携帯端末A−3のデータ解析部103は、レンジキーが2015−01−01−01:00及び2015−01−01−12:00のデータをサーバA−1へ出力(送信)する。また、携帯端末A−3のデータ解析部103は、レンジキーが2015−01−01−22:00のデータをパーソナルコンピュータA−2に出力する。
これにより、サーバA−1のデータ読み書き部104は、供給されるレンジキーが2015−01−01−01:00及び2015−01−02−12:00のデータを、それぞれのレンジキーと対応させてデータベース106に対して書き込んで記憶させる。同様に、パーソナルコンピュータA−2のデータ読み書き部104は、供給されるレンジキーが2015−01−02−22:00のデータを、このレンジキーと対応させてデータベース106に対して書き込んで記憶させる。
ステップS107:
また、携帯端末A−3のデータ解析部103は、インデックステーブルに対して、新たにサーバA−1及びパーソナルコンピュータA−2の各々のレンジキーを書き込み、この更新したインデックステーブルを、パーソナルコンピュータA−2に対し、データ通信部105を介して出力する。
そして、パーソナルコンピュータA−2のデータ解析部103は、供給される更新されたインデックステーブルをデータベース106に対して書き込んで記憶させるとともに、サーバA−1、携帯端末A−4、サーバB−1、パーソナルコンピュータB−2の各々に対して出力する。
ステップS108:
サーバA−1、携帯端末A−4、サーバB−1、パーソナルコンピュータB−2の各々データ解析部103は、供給される更新されたインデックステーブルをそれぞれデータベース106に対して書き込んで記憶させる。
これにより、更新されたインデックステーブルは、データ管理システム1のネットワークNWに接続に接続されているノードの全てにおいて、インデックステーブルにおけるインデックス情報が共有される。
図9は、データ管理システム1内における各ノードのデータベース106において記憶されるパーティションキー及びレンジキーからなるキー(Key)部分とデータとの対応関係を示す図である。図9において、キー部分は、パーティションキー及びレンジキーの各々から構成されているが、すでに説明したようにネットワークに接続されるノードをパーティションに分割する必要が無い場合、パーティションキーを用いずレンジキーのきでキー部分を構成するようにしても良い。この図9におけるキー部分の情報がインデックステーブル(図4)によって、データ管理システム1内で共有される。
図10及び図11を用いて、携帯端末A−3がデータを読み出す際にネットワークNWに接続され、新たなノードとしてデータ管理システム1に参加する処理の説明を行う。図10は、携帯端末A−3がネットワークNWに接続され、新たなノードとしてデータ管理システム1に参加する処理の動作例を示すフローチャートである。図6は、図1に対応した図であり、図10のフローチャートの処理を説明する図である。ここで、サーバA−1及びB−1と、パーソナルコンピュータA−2及びB−2と、携帯端末A−4の各々は、すでにネットワークNWに接続され、データ管理システム1に参加している。
ステップS201:
測定器P−1が過去に測定したデータを、データ管理システム1内から読み出すため、携帯端末A−3は、ユーザの操作により、パーソナルコンピュータA−2を介して、ネットワークNWに接続される。
ステップS202:
パーソナルコンピュータA−2のデータ解析部103は、携帯端末A−3が接続されると、携帯端末A−3に対して、データベース106に格納されている参加ノード情報と、検索用インデックスとを読み出す。そして、パーソナルコンピュータA−2のデータ解析部103は、読み出したノード情報と検索用インデックスとの各々を携帯端末A−3に対して出力する。
これにより、携帯端末A−3のデータ解析部103は、パーソナルコンピュータA−2から供給されるノード情報と検索用インデックスが記載されたインデックステーブルとの各々を取得する。そして、携帯端末A−3のデータ解析部103は、参加ノード情報に自身のノード情報を加えて、データベース106に対して書き込んで記憶させる。
ステップS203:
携帯端末A−3のデータ解析部103は、自身のノード情報を加えた参加ノード情報を、データ通信部105を介して、他のノードであるサーバA−1及びB−1と、パーソナルコンピュータA−2及びB−2と、携帯端末A−4の各々に対して出力する。
ステップS204:
そして、サーバA−1及びB−1と、パーソナルコンピュータA−2及びB−2の各々において、データ解析部103は、新たに携帯端末A−3のノード情報を加えた参加ノード情報を、データベース106に対して書き込んで記憶させる。これにより、携帯端末A−3のノード情報が含まれる参加ノード情報は、データ管理システム1におけるノードの各々により共有される。
ステップS205:
ユーザが携帯端末A−3の表示部101に表示されている入力欄に対して、データを読み出すかを示す必要情報として、検索範囲を示す日時情報を入力する。
これにより、携帯端末A−3のデータ解析部103は、データの読み出し要求を受け付け、入力されたレンジキーにおける検索範囲を抽出する。
ステップS206:
携帯端末A−3のデータ解析部103は、抽出した検索範囲に含まれる時間を有するレンジキーをインデックステーブルから検出する。
ステップS207:
次に、携帯端末A−3のデータ解析部103は、ユーザが入力した検索範囲のレンジキーのデータが記憶されているノード、すなわちデータの読み出しを要求するノードを求める。ここで、携帯端末A−3のデータ解析部103は、パーソナルコンピュータA−2に対して、保存先の算出条件を要求する。
これにより、パーソナルコンピュータA−2のデータ解析部103は、データベース106から保存先の算出条件を読み出し、読み出した保存先の算出(選択)条件を、携帯端末A−3に対して出力する。
携帯端末A−3のデータ解析部103は、図7の算出(選択)条件の一つである「稼働率10%以下のノードにデータ保存はさせない」ことから、データの保存先として携帯端末A−3及びA−4を除外し、保存先としてサーバA−1及びパーソナルコンピュータA−2を選択する。また、携帯端末A−3のデータ解析部103は、算出条件の一つである「ノードの処理能力の高い順に能力の比率でレンジキーの時刻情報を元にデータを分散させる」に対応させ、サーバA−1及びパーソナルコンピュータA−2の処理能力である100:50(=2:1)に基づいて、レンジキーの時刻範囲である00:00から24:00において、サーバA−1の記憶する割当時刻範囲を00:00から16:00までとし、パーソナルコンピュータA−2の記憶する割当時刻範囲を16:00から24:00までとする。
そして、携帯端末A−3のデータ解析部103は、読み出そうとしているレンジキーの時間を確認し、サーバA−1及びパーソナルコンピュータA−2のいずれの割当時刻範囲に、読み出すデータ各々のレンジキーの時間が含まれるかを検出する。そして、携帯端末A−3のデータ解析部103は、レンジキーが2015−01−01−01:00、2015−01−01−06:00、2015−01−02−12:00及び2015−01−02−18:00のデータの保存先をサーバA−1と抽出(算出)し、レンジキーが2015−01−02−22:00のデータの保存先をパーソナルコンピュータA−2と抽出(算出)する。
ステップS208:
携帯端末A−3のデータ解析部103は、レンジキーが2015−01−01−01:00、2015−01−01−06:00、2015−01−02−12:00及び2015−01−02−18:00のデータを、サーバA−1に対して読み出しするように要求する。また、携帯端末A−3のデータ解析部103は、レンジキーが2015−01−02−22:00のデータを、パーソナルコンピュータA−2に対して読み出しするように要求する。
これにより、サーバA−1のデータ読み書き部104は、供給されるレンジキーが2015−01−01−01:00、2015−01−01−06:00、2015−01−02−12:00及び2015−01−02−18:00のデータを、それぞれのレンジキーに対応してデータベース106から読み出し、データ通信部105を介して携帯端末A−3に対して送信する。同様にパーソナルコンピュータA−2のデータ読み書き部104は、供給されるレンジキーが2015−01−02−22:00のデータを、このレンジキーと対応しデータベース106から読み出し、データ通信部105を介して携帯端末A−3に対して送信する。
ステップS209:
そして、携帯端末A−3の表示部101は、供給されたレンジキーが2015−01−02−22:00のデータを、自身の表示画面に表示させる。
図12及び図13を用いて、ノードからデータが読み出せない状態となった場合、他のノードからデータの読み出せなくなったデータを読み出すため、他のノードに複製を生成する処理について以下に説明する。すなわち、本実施形態においては、任意にノードをネットワークNWから取り外す運用を前提としている。これにより、取り外すノードが記憶しているデータが読み出せなく無くなる場合が生じる。このため、取り外されたノードに記憶されているデータを、このデータの複製を有する他のノードにおいて復旧させ、取り外されたノードのデータを、複製を有するノードにおいて読み出るようにしている。図12は、データ管理システム1のノード間における複製の作成処理の動作例を示すフローチャートである。図13は、データ管理システム1のノード間における複製の作成処理の動作例を示す図である。
ここで、図1において、サーバA−1と、パーソナルコンピュータA−2と、携帯端末A−3及びA−4の各々は、ネットワークNWに接続され、データ管理システム1に参加している。また、サーバA−1は、処理能力が80であり、稼働率が90%である。パーソナルコンピュータA−2は、処理能力が60であり、稼働率が90%である。携帯端末A−3は、処理能力が50であり、稼働率が80%である。携帯端末A−4は、処理能力が50であり、稼働率が80%である。
以下の説明においては、ノード(サーバ)A−1が他のノード(パーソナルコンピュータ)A−2、ノード(携帯端末)A−3及びノード(携帯端末)A−4を複製を作成する対象とした場合を説明する。
ステップS301:
サーバA−1のデータ解析部103は、データベース106から参加ノード情報を読み出し、この参加ノード情報から他のノードであるパーソナルコンピュータA−2、携帯端末A−3及びA−4の各々の処理能力を検出する。サーバA−1のデータ解析部103は、パーソナルコンピュータA−2(処理能力:60)、携帯端末A−3(処理能力:50)及びA−4(処理能力:50)の各々の処理能力の比を、6:5:5と算出する。そして、サーバA−1のデータ解析部103は、複製を行いたいノードを除いたノードの各々に対して、レンジキーの割当時刻範囲を割り当てる。
このとき、サーバA−1のデータ解析部103は、処理能力の比で24時間を分割すると、パーソナルコンピュータA−2に9時間の割当時刻範囲、携帯端末A−3に7.5時間の割当時刻範囲、携帯端末A−4に7.5時間の割当時刻範囲となる。これにより、サーバA−1のデータ解析部103は、パーソナルコンピュータA−2に対し、00:00から09:00までの時間に含まれるレンジキーのデータの複製を保持させ、携帯端末A−3に対し、09:00から16:30までの時間に含まれるレンジキーのデータの複製を保持させ、携帯端末A−4に対し、16:30から24:00までの時間に含まれるレンジキーのデータを保持させる。
ステップS302:
サーバA−1のデータ解析部103は、参加ノード情報から自身以外の他のノードであるパーソナルコンピュータA−2、携帯端末A−3及びA−4の各々の稼働率を検出する。そして、サーバA−1のデータ解析部103は、複製先の稼働率から取得率を算出する。ここで、サーバA−1のデータ解析部103は、サーバA−1の保持する割当時刻範囲00:00から08:00までのデータの複製を生成させるノードがパーソナルコンピュータA2であるため、自身の稼働率90%とパーソナルコンピュータA−2の稼働率90%から、いずれか一つが稼働している確率を取得率として、1−(1−(一方の稼働率))×(1−(他方の稼働率))の式に、自身とパーソナルコンピュータA−2との稼働率を代入し、1−(1−0.9)×(1−0.9)=0.99(すなわち、99%)を算出する。
また、サーバA−1のデータ解析部103は、データの複製を生成させるノードがパーソナルコンピュータA2及び携帯端末A−3の各々である場合、取得率は、1−(1−(一方の稼働率))×(1−(他方の稼働率))×(1−(他方の稼働率))の式に、自身とパーソナルコンピュータA−2と携帯端末A−3との稼働率を代入し、1−(1−0.9)×(1−0.9)×(1−0.8)=0.998(すなわち、99.8%)を算出する。
ステップS303:
サーバA−1のデータ解析部103は、自身のノードの稼働率と、データの複製先であるパーソナルコンピュータA2の稼働率から求めた取得率を、予め設定した取得率閾値と比較する。そして、サーバA−1のデータ解析部103は、取得率が設定値である上記取得率閾値以上の場合に、処理をステップS304へ進め、一方、取得率が取得率閾値未満である場合に、処理をステップS305へ進める。ここで、取得率閾値は、対象となるノードに記憶されているデータを読み出すことができる割合を示し、ユーザがデータの読み出しの重要性に対応させて適時、任意の数値を設定する。
ステップS304:
次に、サーバA−1のデータ解析部103は、複製指示を示す制御信号とともに、自身の保持しているデータを、複製先のノード、例えばパーソナルコンピュータA−2に対して送信する。
そして、複製先のノード、例えばパーソナルコンピュータA−2のデータ読み書き部104は、データベース106に対してデータの複製を書き込んで記憶させる。このとき、パーソナルコンピュータA−2のデータ読み書き部104は、複製であり自身がアクセスされて読み出しを行うものではないことを示す複製フラグを、データの複製に対して付与する。また、このとき、パーソナルコンピュータA−2のデータ読み書き部104は、複製したデータの各々に対して、いずれのノードの複製であるかを示すノードフラグを付して記憶させる。
あるいは、データベース106を自身の記憶するデータのデータ領域と、他のノードのデータの複製を記憶する複製データ領域とに分離して、自身の記憶するデータをデータ領域に書き込み、他のノードの複製したデータを複製データ領域に書き込む構成としても良い。この場合、データの複製もとのノードを示す識別情報を各複製データ領域に付与する。
上述した処理により、複製の対象となるノードであるサーバA−1のデータを、複製を保持させるノード、例えばパーソナルコンピュータA−2に複製する処理を終了する。
ステップS305:
サーバA−1のデータ解析部103は、参加ノード情報にを参照して、パーソナルコンピュータA−2以外のノードを検索し、携帯端末A−3及びA−4の各々を抽出する。そして、サーバA−1のデータ解析部103は、処理能力の比が50:50=1:1であるため、処理能力の比で24時間を分割すると、携帯端末A−3に12時間の割当時刻範囲、携帯端末A−4に12時間の割当時刻範囲となる。これにより、サーバA−1のデータ解析部103は、携帯端末A−3に対し、00:00から12:00までの時間に含まれるレンジキーのデータの複製を保持させ、携帯端末A−4に対し、12:00から24:00までの時間に含まれるレンジキーのデータを保持させる。ここで、サーバA−1のデータ解析部103は、自身が記憶するレンジキーの範囲が00:00から08:00であるため、00:00から12:00までのデータの複製を担当するノードとして携帯端末A−3を選択して設定する。そして、サーバA−1のデータ解析部103は、処理をステップS302へ進める。
図14及び図15を用いて、ノードからデータが読み出せない状態となった場合、他のノードに生成された複製のデータを用いて、他のノードからデータの読み出せるようにしてデータを復旧する処理について以下に説明する。すなわち、本実施形態においては、任意にノードをネットワークNWから取り外す運用を前提としている。すでに述べたように、取り外すノードが記憶しているデータが読み出せなく無くなる場合が生じる。このため、取り外されたノード(あるいは故障したノード)に記憶されているデータを、このデータの複製を有する他のノードにおいて復旧させ、取り外されたノードのデータを、複製を有するノードにおいて読み出るようにしている。
図14は、データ管理システム1のノード間における複製からデータを復旧する処理の動作例を示すフローチャートである。図15は、データ管理システム1のノード間における複製のデータから読み出せなくなったノードが記憶するデータの復旧の処理の動作例を示す図である。
また、本実施形態においては、各ノード間においてハートビートの処理などにより、ノードの各々の死活監視を行いそれぞれのノードの生死を互いに確認し合っている。
ステップS401:
パーソナルコンピュータA−2のデータ解析部103は、例えば、ハートビートの処理により、サーバA−1からの応答がなく、サーバA−1が無反応状態(ネットワークNWから外されたか、あるいは故障したかのいずれかの状態を示す)ことを検出する。
ステップS402:
パーソナルコンピュータA−2のデータ解析部103は、サーバA−1が無反応状態となったことを示す情報をネットワークNWに接続されているノードの全て、すなわち参加ノード情報におけるサーバA−1及び自身以外の各々のノードに対して出力する。
これにより、例えば、携帯端末A−3及びA−4の各々は、パーソナルコンピュータA−2からの通知により、サーバA−1が無反応状態となったことを認識する。このとき、各ノードは、参加ノード情報の無反応となったノードであるサーバA−1に対して無反応状態であることを示すフラグを付与するように構成しても良い。
上述した処理により、ネットワークNWに接続されているサーバA−1以外のノードの全てにおいて、すなわち、パーソナルコンピュータA−2、携帯端末A−3及びA−4の各々において、サーバA−1が無反応状態であるという情報を共有する。
ステップS403:
パーソナルコンピュータA−2、携帯端末A−3及びA−4の各々のノードのデータ解析部103は、サーバA−1の記憶するレンジキーの割当時刻範囲を、すでに説明したように、稼働率及び処理能力により求めることができる。そして、パーソナルコンピュータA−2、携帯端末A−3及びA−4の各々のノードのデータ解析部103は、自身が記憶している複製のレンジキーの時間を確認し、サーバA−1の割当時刻範囲に含まれるものが有るか否かにより、サーバA−1のデータの複製が記憶されているか否かの判定を行う。
また、パーソナルコンピュータA−2、携帯端末A−3及びA−4の各々のノードのデータ解析部103は、上述した複製したデータに付与されたいるノードフラグあるいは複製データ領域に付与されている識別情報により、無反応状態のサーバA−1が記憶するデータの複製の有無を検出する。そして、例えば、パーソナルコンピュータA−2のデータ解析部103は、サーバA−1の記憶するデータの複製が自身のデータベース106に書き混まれて記憶されていることを検出する。
ステップS404:
パーソナルコンピュータA−2のデータ解析部103は、自身に記憶されているサーバA−1のデータA、データB及びデータCの複製のデータを、自身のデータとすることで、サーバA−1のデータA、データB及びデータCの復旧を行う。このとき、パーソナルコンピュータA−2のデータ解析部103は、データA、データB及びデータCに付与されているノードのノードフラグをパーソナルコンピュータA−2のノードフラグに変更することによりデータの復旧を行う。あるいは、パーソナルコンピュータA−2のデータ解析部103は、複製データ領域に記憶されているデータA、データB及びデータCの複製を、自身のデータ領域に対して移動させることによりデータの復旧を行う。
ステップS405:
また、パーソナルコンピュータA−2、携帯端末A−3及びA−4の各々のノードのデータ解析部103は、図12のフローチャートに従って、自身のデータの複製の分散先を再度求める。
ステップS406:
パーソナルコンピュータA−2、携帯端末A−3及びA−4の各々のデータ解析部103は、それぞれのデータを求められた分散先のノードに分散する。
これにより、パーソナルコンピュータA−2、携帯端末A−3及びA−4の各々のデータ解析部103により、データの取得率を取得閾値以上としたまま、データ管理システム1全体が復旧される。
上述したように、本実施形態によれば、ネットワークNWに新たなノードが接続されると、各ノード間で新たに参加したノードの情報を含む参加ノード情報及びインデックステーブルを共有することができるため、新たに参加したノードのデータをデータ管理システム1内の全てのノードで共有することができる。これにより、本実施形態によれば、任意にネットワークに対して接続あるいは取り外しから可能なノードの記憶媒体を、システム内におけるデータの蓄積に有効に利用することが可能となる。
また、本実施形態によれば、キーバリューストアの方式を用いているため、データ管理システム1におけるノード全てで同一のデータ形式を用いるため、特定のノードを経由してデータ変換を行う必要がなくなる。これにより、本実施形態によれば、ネットワークNWに接続されているいずれのノードからも、データ管理システム1に記憶されているデータを、そのノードをアクセスして参照することができる。
また、本実施形態によれば、複製によりデータを複数のノード間において共有しているため、いずれを取り外したとしてもデータが喪失される(読み出せなくなる)ことがないため、任意にネットワークNWに対するノードの接続及び取り外しができる。すなわち、ネットワークNWにデータ管理システム1において管理するデータを保持したノードが新たに接続された場合、この新たなノードのデータの共有が複数のノードで行われるため、新たなノードのデータを記憶する一つのノードが取り外された場合、あるいは故障によりいずれかのノードが無反応状態である場合に、このデータが読み出せなくなったノードのデータが複製を有する他のノードにおいて復旧されるため、データが読み出せなくなったノードのデータが失われることがない。
<第2の実施形態>
第2の実施形態において、データ管理システム1の構成は第1の実施形態と同様であり、以下異なる処理について説明する。第2の実施形態においては、レンジキーにおける時間に応じたデータの保存先であるノードを、コンシステントハッシュ法のアルゴリズムにより、データ解析部103がハッシュ関数を用いて算出することで設定している。本実施形態におけるコンシステントハッシュ法は、ハッシュ値のバラツキに応じて各ノードが扱うデータ量が不均等になることを抑制するため、ハッシュ値として仮想ノードを用いている。仮想ノードは、実体と同一のノードを指す複数の仮想的なノードを示している。すなわち、本実施形態においては、図16に示すように、データ解析部103が、一つのノードについて、複数の仮想ノードとして割当時刻範囲を作成し、レンジキーの時刻範囲上に写像させて分布させることにより、ノード毎の扱うデータ量の偏りを分散している。以下説明する仮想ノードの割当時刻範囲としてのハッシュ関数によるハッシュ値の算出、及び複製を作成するノードの選定の処理は、各ノードのデータ解析部103がコンシステントハッシュ法のアルゴリズムにより行う。
図16は、レンジキーの最小値と最大値との間の時刻範囲を円の円周上に写像することで配置し、かつこの円の円周上(以下、単に円周上)にハッシュ値として各ノードの格納する割当時刻範囲を仮想ノードとして配置するハッシュ関数を説明する図である。図16において、データ解析部103は、レンジキーの時刻範囲において最小値である00:00とレンジキーの最大値である24:00との間の時刻範囲を、00:00と24:00とは同一として、円周上に写像して配置している。また、本実施形態におけるハッシュ関数は、各ノードの処理能力に対応した数の仮想ノードに対応した割当時刻範囲をハッシュ値として、図16のレンジキーの時刻範囲を示す円周上に出力する。
図17は、ネットワークNWに接続され、データ管理システム1に参加しているノードのノード情報が記載された参加ノード情報である。各ノード毎にレコード(行方向のデータ列)が形成されており、ノードID(identification)に対応し、処理能力、稼働率の各々が記憶されている。ノードIDは、ノードを識別する情報であり、例えば本実施形態においては符号を用いている。処理能力は、データベース106の容量の大きさ及びノードの読み書きのスピードで決定されている。稼働率は、データ管理システム1の動作している時間に対して、ノードがネットワークNWに接続されて、データ管理システム1に参加している時間の割合を示す。例えば、ネットワークNWに対して常時接続されるノードは稼働率が100であり、ネットワークNWから切り離されている時間が長く、短時間しかネットワークNWに接続されないノードは10と設定される。図17から、ノードA−1は処理能力が100であり、稼働率が90である。また、ノードA−2は処理能力が80であり、稼働率が80である。ノードA−3は処理能力が60であり、稼働率が70である。
図18は、本実施形態の説明に用いるデータとこのデータに対応するレンジキーとの対応を説明するインデックステーブルを示す図である。データAからデータOの各々は、それぞれ2015−01−01−02:00、…、2015−01−01−23:00に測定されたデータである。各データは、00:00から24:00の間に測定されている。
図16に戻り、参加ノードテーブルから、参加しているノードA−1、A−2及びA−3の各々の処理能力の比が100:80:60=5:4:3である。このため、ハッシュ関数は、ノードA−1の仮想ノードを5個のハッシュ値として出力し、ノードA−2の仮想ノードを4個のハッシュ値として出力し、ノードA−3の仮想ノードを3個のハッシュ値として出力する。図16において、ノードA−1の仮想ノードは、「□」で示されており、仮想ノードIA−1−1から仮想ノードIA−1−5の各々の5個である。また、ノードA−2の仮想ノードは、「△」で示されており、仮想ノードIA−2−1から仮想ノードIA−2−4の各々の4個である。ノードA−3の仮想ノードは、「◇」で示されており、仮想ノードIA−3−1から仮想ノードIA−3−3の各々の3個である。
各仮想ノード間の時間のレンジキーのデータは、時計回りの方向において最初の仮想ノードに対応するノードに記憶されることになる。例えば、仮想ノードIA−1−1と仮想ノードIA−2−1との間にあるレンジキーが2015−01−01−02:00のデータAは、仮想ノードIA−2−1に対応するノードA−2に記憶される。同様に、仮想ノードIA−2−2と仮想ノードIA−1−3との間にあるレンジキーが2015−01−01−07:00のデータEは、仮想ノードIA−1−3に対応するノードA−1に記憶される。
図1に戻り、仮想ノードを用いたことにより、自身に記憶するデータの複製を作成する他のノードの選定は、所定のノードの仮想ノードの各々を複製元のノードとして、自身のノードに対応する他の仮想ノードを除き、この複製元の仮想ノードに対して時計回り方向に隣接する順番に行う。例えば、ノードA−1のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−1−1に対応する割当時刻範囲にあるデータの複製先として、時計回りの方向において隣接するノードA−2の仮想ノードIA−2−1を選定する。これにより、仮想ノードIA−3−3と仮想ノードIA−1−1との割当時刻範囲に含まれれるノードA−1のデータOがノードA−2の仮想ノードIA−2−1の割当時刻範囲に対応して複製される。
また、ノードA−1のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−1−2に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−1−2)の割当時刻範囲に対して時計回りの方向において隣接するノードA−2の仮想ノードIA−2−2を選定する。これにより、仮想ノードIA−3−1と仮想ノードIA−1−2との割当時刻範囲に含まれれるノードA−1のデータCがノードA−2の仮想ノードIA−2−2の割当時刻範囲に対応して複製される。
同様に、ノードA−1のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−1−3に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−1−3)の割当時刻範囲に対して時計回りの方向において隣接するノードA−3の仮想ノードIA−3−2を選定する。これにより、仮想ノードIA−2−2と仮想ノードIA−1−3との割当時刻範囲に含まれれるノードA−1のデータEがノードA−3の仮想ノードIA−3−2の割当時刻範囲に対応して複製される。
また、ノードA−1のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−1−4に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−1−4)の割当時刻範囲に対して時計回りの方向において隣接するノードA−2の仮想ノードIA−2−3を選定する。これにより、仮想ノードIA−3−2と仮想ノードIA−1−4との割当時刻範囲に含まれれるノードA−1のデータGがノードA−2の仮想ノードIA−2−3の割当時刻範囲に対応して複製される。
同様に、ノードA−1のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−1−5に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−1−5)の割当時刻範囲に対して時計回りの方向において隣接するノードA−2の仮想ノードIA−2−4を選定する。これにより、仮想ノードIA−2−3と仮想ノードIA−1−5との割当時刻範囲に含まれれるノードA−1のデータK及びデータJの各々がノードA−2の仮想ノードIA−2−4の割当時刻範囲に対応して複製される。
上述した複製作成の処理により、ノードA−1のデータ解析部103は、後述する図19に示すように、ノードA−1に記憶されているデータC、データE、データG、データJ、データK及びデータOの内、データC、データG、データJ、データK、データOそれぞれの複製をノードA−2に対して作成し、一方、データEの複製をノードA−3に対して作成する。このとき、仮想ノードA−1のデータ解析部103は、第1の実施形態と同様に、ノードA−1及びノードA−2の各々の稼働率から、ノードA−2に複製を作成したデータの取得率を算出し、算出した取得率が予め設定した取得率閾値以上か否かの判定を行う。
ここで、ノードA−1のデータ解析部103は、ノードA−1及びノードA−2の各々の稼働率から取得率を1−(1−0.9)×(1−0.8)=0.98(すなわち、98%)として求める。ノードA−1のデータ解析部103は、取得率が98%であり、取得率閾値95%以上であるため、データC、データG、データJ、データK、データOそれぞれの複製の作成先はノードA−2のみとする。また、同様に、ノードA−1のデータ解析部103は、ノードA−1及びノードA−3の各々の稼働率から取得率を1−(1−0.9)×(1−0.7)=0.97(すなわち、97%)として求める。ノードA−1のデータ解析部103は、取得率が97%であり、取得率閾値95%以上であるため、データEの複製の作成先はノードA−3のみとする。
図19は、仮想ノードを用いたコンシステントハッシュ法により、ノードA−1、ノードA−2及びノードA−3の各々に記憶されているデータとそのデータの複製先とを説明する図である。ノードA−1のデータベース106に記憶されているデータデータC、データE、データG、データJ、データK及びデータOの内、データC、データG、データJ、データK、データOがノードA−2に対して複製され、データCがノードA−3に複製されることが示されている。また、ノードA−2のデータベース106に記憶されているデータA、データD、データH、データI及びデータLの内、データA及びデータLがノードA−3に複製され、データA、データD、データH、データI、データLがノードA−2に複製されていることが示されている。また、ノードA−3のデータベース106に記憶されているデータB、データF、データM及びデータNの全てがノードA−1に複製されていることが示されている。
図16に戻り、ノードA−2のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−2−1に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−2−1)の割当時刻範囲に対して時計回りの方向において隣接するノードA−3の仮想ノードIA−3−1を選定する。これにより、仮想ノードIA−1−1と仮想ノードIA−2−1との割当時刻範囲に含まれれるノードA−2のデータAがノードA−3の仮想ノードIA−3−1の割当時刻範囲に対応して複製される。
同様に、ノードA−2のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−2−2に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−2−2)の割当時刻範囲に対して時計回りの方向において隣接するノードA−1の仮想ノードIA−1−3を選定する。これにより、仮想ノードIA−1−2と仮想ノードIA−2−2との割当時刻範囲に含まれれるノードA−2のデータDがノードA−1の仮想ノードIA−1−3の割当時刻範囲に対応して複製される。
また、ノードA−2のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−2−3に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−2−3)の割当時刻範囲に対して時計回りの方向において隣接するノードA−1の仮想ノードIA−1−5を選定する。これにより、仮想ノードIA−1−4と仮想ノードIA−2−3との割当時刻範囲に含まれれるノードA−2のデータH及びデータIの各々がノードA−1の仮想ノードIA−1−5の割当時刻範囲に対応して複製される。
同様に、ノードA−2のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−2−4に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−2−4)の割当時刻範囲に対して時計回りの方向において隣接するノードA−3の仮想ノードIA−3−3を選定する。これにより、仮想ノードIA−1−5と仮想ノードIA−2−4との割当時刻範囲に含まれれるノードA−2のデータLがノードA−3の仮想ノードIA−3−3の割当時刻範囲に対応して複製される。
上述した複製作成の処理により、ノードA−2のデータ解析部103は、図19に示すように、ノードA−2に記憶されているデータA、データD、データH、データI及びデータLの内、データA、データLそれぞれの複製をノードA−3に対して作成し、一方、データA、データD、データH、データI、データLの複製をノードA−3に対して作成する。このとき、ノードA−2のデータ解析部103は、第1の実施形態と同様に、ノードA−2及びノードA−3の各々の稼働率から、ノードA−3に複製を作成したデータの取得率を算出し、算出した取得率が予め設定した取得率閾値以上か否かの判定を行う。
ここで、ノードA−2のデータ解析部103は、ノードA−2及びノードA−3の各々の稼働率から取得率を1−(1−0.8)×(1−0.7)=0.94(すなわち、94%)として求める。ノードA−1のデータ解析部103は、取得率が94%であり、取得率閾値95%未満であるため、データA、データLそれぞれを、次に隣接するノードA−1を複製の作成先として設定する。これにより、ノードA−2のデータ解析部103は、データA、データLの取得率を再計算し、1−(1−0.8)×(1−0.7)×(1−0.9)=0.994(すなわち、99.4%)として求める。これにより、ノードA−2のデータ解析部103は、データA、データLそれぞれの取得率が95%以上となったため、データA、データLそれぞれの複製先として、ノードA−3とノードA−1との各々を選定する。ここで、データLは、次に隣接するノードA−1の仮想ノードIA−1−1の割当時刻範囲にも対応して複製される。
また、同様に、ノードA−2のデータ解析部103は、ノードA−2及びノードA−1の各々の稼働率から取得率を1−(1−0.8)×(1−0.9)=0.98(すなわち、98%)として求める。ノードA−1のデータ解析部103は、取得率が98%であり、取得率閾値95%以上であるため、データD、データH、データIの各々の複製の作成先はノードA−1のみとする。
また、ノードA−3のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−3−1に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−3−1)の割当時刻範囲に対して時計回りの方向において隣接するノードA−1の仮想ノードIA−1−2を選定する。これにより、仮想ノードIA−2−1と仮想ノードIA−3−1との割当時刻範囲に含まれれるノードA−3のデータCがノードA−1の仮想ノードIA−2−2の割当時刻範囲に対応して複製される。
同様に、ノードA−3のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−3−2に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−3−2)の割当時刻範囲に対して時計回りの方向において隣接するノードA−1の仮想ノードIA−1−4を選定する。これにより、仮想ノードIA−2−2と仮想ノードIA−3−2との割当時刻範囲に含まれれるノードA−3のデータFがノードA−1の仮想ノードIA−1−4の割当時刻範囲に対応して複製される。
また、ノードA−3のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−3−3に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−3−3)の割当時刻範囲に対して時計回りの方向において隣接するノードA−1の仮想ノードIA−1−1を選定する。これにより、仮想ノードIA−2−4と仮想ノードIA−3−3との割当時刻範囲に含まれれるノードA−3のデータM及びデータNの各々がノードA−1の仮想ノードIA−1−1の割当時刻範囲に対応して複製される。
ノードA−3のデータ解析部103は、ノードA−3及びノードA−1の各々の稼働率から取得率を1−(1−0.9)×(1−0.7)=0.97(すなわち、97%)として求める。ノードA−1のデータ解析部103は、取得率が97%であり、取得率閾値95%以上であるため、データB、データF、データM、データNの各々の複製の作成先はノードA−1のみとする。
図20は、レンジキーの最小値と最大値との間の時刻範囲を円周上に写像して配置した仮想ノードにおいて、ノードA−3が無反応状態である場合における、ノードA−3に記憶されているデータの復旧を説明する図である。図16において、ノードA−1の仮想ノードは、「□」で示されており、仮想ノードIA−1−1から仮想ノードIA−1−5の各々の5個である。また、ノードA−2の仮想ノードは、「△」で示されており、仮想ノードIA−2−1から仮想ノードIA−2−4の各々の4個である。ノードA−3の仮想ノードは、「◇」で示されており、仮想ノードIA−3−1から仮想ノードIA−3−3の各々の3個である。
この図20において、ノードA−3が故障するか取り外されたかして、他のネットワークNW上のノードからの問い合わせに対してノードA−3からの反応が無くなった場合、ノードA−3のデータの複製が生成されているノードA−1においてノードA−3のデータが復旧される。すなわち、仮想ノードIA−2−1と仮想ノードIA−3−1との割当時刻範囲におけるノード3のデータBは、仮想ノードIA−1−2の対応する割当時刻範囲が仮想ノードIA−3−1の割当時刻範囲を含むように変更されるため、ノードA−1の記憶するデータとなる。仮想ノードIA−1−2が対応する割当時刻範囲は、仮想ノードA−3−1から仮想ノードIA−1−2までの割当時刻範囲に対し、仮想ノードIA−2−1から仮想ノードIA−3−1までの割当時刻範囲が加わり、仮想ノードIA−2−1から仮想ノードIA−1−2までの割当時刻範囲となる。これにより、ノードA−1は、データBをノードA−3の複製から自身のデータへと、第1の実施形態と同様に変更する。
また、仮想ノードIA−1−3と仮想ノードIA−3−2との割当時刻範囲におけるノード3のデータFは、仮想ノードIA−1−4の対応する割当時刻範囲が仮想ノードIA−3−2の割当時刻範囲を含むように変更されるため、ノードA−1の記憶するデータとなる。仮想ノードIA−1−4が対応する割当時刻範囲は、仮想ノードA−3−2から仮想ノードIA−1−4までの割当時刻範囲に対し、仮想ノードIA−1−3から仮想ノードIA−3−2までの割当時刻範囲が加わり、仮想ノードIA−1−3から仮想ノードIA−1−4までの割当時刻範囲となる。これにより、ノードA−1は、データFをノードA−3の複製から自身のデータへと変更する。
また、仮想ノードIA−2−4と仮想ノードIA−3−3との割当時刻範囲におけるノード3のデータM及びデータNの各々は、仮想ノードIA−1−1の対応する割当時刻範囲が仮想ノードIA−3−3の割当時刻範囲を含むように変更されるため、ノードA−1の記憶するデータとなる。仮想ノードIA−1−1が対応する割当時刻範囲は、仮想ノードA−3−3から仮想ノードIA−1−1までの割当時刻範囲に対し、仮想ノードIA−2−4から仮想ノードIA−3−3までの割当時刻範囲が加わり、仮想ノードIA−2−4から仮想ノードIA−1−1までの割当時刻範囲となる。これにより、ノードA−1は、データM及びデータNの各々をノードA−3の複製から自身のデータへと変更する。
図21は、ノード3が無反応状態となった場合に、ノードA−1がノードA−3のデータの複製からノードA−3のデータを復旧する処理を説明する図である。図21に示されるように、ノードA−1には、自身の管理するデータC、データE、データG、データJ、データK及びデータO以外に、ノード2のデータA,データD、データH、データI、データLの複製と、ノード3のデータB、データF、データM、データNの複製が記憶されている。
ノードA−1のデータ解析部103は、生死の問い合わせに対するノード3からの返答が無いことが確認された場合、ノード3のデータB、データF、データM、データNの各々の複製を自身の担当するデータに変更することで、ノード3のデータB、データF、データM、データNそれぞれを復旧する。
図22は、ノードA−1がノードA−3のデータの複製を、自身の担当するデータに変更した後に、新たに担当するデータの複製を他のノードに作成する処理を説明する図である。ノードA−1のデータ解析部103は、新たに担当するデータとしたデータB、データF、データM、データNの各々の複製をノードA−2において生成する。
すなわち、ノードA−1のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−1−1に対応する割当時刻範囲にあるデータの複製先として、時計回りの方向において隣接するノードA−2の仮想ノードIA−2−1を選定する。これにより、仮想ノードIA−2−4と仮想ノードIA−3−3との割当時刻範囲に含まれれるノードA−1のデータM及びデータNの各々がノードA−2の仮想ノードIA−2−1の割当時刻範囲に対応して複製される。
また、ノードA−1のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−1−2に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−1−2)の割当時刻範囲に対して時計回りの方向において隣接するノードA−2の仮想ノードIA−2−2を選定する。これにより、仮想ノードIA−2−1と仮想ノードIA−3−1との割当時刻範囲に含まれれるノードA−1のデータBがノードA−2の仮想ノードIA−2−2の割当時刻範囲に対応して複製される。
同様に、ノードA−1のデータ解析部103は、複製を生成するノードの選定において、仮想ノードIA−1−4に対応する割当時刻範囲にあるデータの複製先として、自身(仮想ノードIA−1−4)の割当時刻範囲に対して時計回りの方向において隣接するノードA−2の仮想ノードIA−2−3を選定する。これにより、仮想ノードIA−1−3と仮想ノードIA−3−2との割当時刻範囲に含まれれるノードA−1のデータFがノードA−2の仮想ノードIA−2−3の割当時刻範囲に対応して複製される。
そして、ノードA−1のデータ解析部103は、ノードA−1及びノードA−2の各々の稼働率から取得率を1−(1−0.9)×(1−0.8)=0.98(すなわち、98%)として求める。ノードA−1のデータ解析部103は、取得率が98%であり、取得率閾値95%以上であるため、新たに担当するデータB、データF、データM、データNそれぞれの複製の作成先はノードA−2のみとする。
また、ノードA及びノードBの各々のデータ解析部103は、すでに担当しているデータそれぞれについては、他のノードに対して複製を生成するなどの処理は行わない。また、ノードA及びノードBの各々のデータ解析部103は、無反応状態となったノードの履歴により、そのノードが担当していたデータが復旧されたノードを、自身の割当時刻範囲に対して時計回りの方向に隣接するノードであると検出することができ、無反応状態となったノードのデータのアクセス先を容易に求めることが可能となる。
上述したように、本実施形態によれば、ネットワークNWに新たなノードが接続されると、各ノード間で新たに参加したノードの情報を含む参加ノード情報及びインデックステーブルを共有することができるため、新たに参加したノードのデータをデータ管理システム1内の全てのノードで共有することができる。これにより、本実施形態によれば、任意にネットワークに対して接続あるいは取り外しから可能なノードの記憶媒体を、システム内におけるデータの蓄積に有効に利用することが可能となる。
また、本実施形態によれば、キーバリューストアの方式を用いているため、データ管理システム1におけるノード全てで同一のデータ形式を用いるため、特定のノードを経由してデータ変換を行う必要がなくなる。これにより、本実施形態によれば、ネットワークNWに接続されているいずれのノードからも、データ管理システム1に記憶されているデータを、そのノードをアクセスして参照することができる。
また、本実施形態によれば、複製によりデータを複数のノード間において共有しているため、いずれを取り外したとしてもデータが喪失される(読み出せなくなる)ことがないため、任意にネットワークNWに対するノードの接続及び取り外しができる。すなわち、ネットワークNWにデータ管理システム1において管理するデータを保持したノードが新たに接続された場合、この新たなノードのデータの共有が複数のノードで行われるため、新たなノードのデータを記憶する一つのノードが取り外された場合、あるいは故障によりいずれかのノードが無反応状態となった場合に、このデータが読み出せなくなったノードのデータが複製を有する他のノードにおいて復旧されるため、データが読み出せなくなったノードのデータが失われることがない。
また、本実施形態においては、一つのノードに対して複数の仮想ノードを発生させるハッシュ関数を用い、レンジキーの最小値と最大値とを円状に連結した円の円周上に各ノードの仮想ノードが配置される。そして、自身に記憶するデータの複製を作成する他のノードの選定は、所定のノードの仮想ノードの各々を複製元のノードとして、自身のノードに対応する他の仮想ノードを除き、この複製元の仮想ノードに対して時計回り方向に隣接する順番に行う。これにより、本実施形態によれば、ネットワークNWに接続されるノードの増減があった場合に、データを復旧あるいは移動する際、データの移動の処理にかかる負荷を最小限に抑制することができる。
なお、本発明における図2のデータ管理部10の各部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりデータの管理の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
1…データ管理システム
10…データ管理部
101…表示部
102…表示データ作成部
103…データ解析部
104…データ読み書き部
105…データ通信部

Claims (8)

  1. ネットワークに対してノードを接続あるいは取り外し可能に運用するネットワークシステムについて、キーに対応したデータ構造を用いて前記ネットワークに接続される複数のノードに対してデータを分散させて、蓄積データとして蓄積を行うデータ管理システムにおいて、
    前記ノードが、
    新たに前記ネットワークに接続された際に、前記データを蓄積する前記ノードとなるために用いるノード情報を、前記ネットワークにすでに接続されている他の前記ノードに対して供給するデータ解析部を備えており、
    前記キーは前記蓄積データが測定された時間を含み、前記ノード情報が前記ノードの処理能力及び稼働率を含み、
    前記データ解析部が、
    所定の閾値以上の稼働率の前記ノードを前記蓄積データを保存するノードとして選択し、
    前記蓄積データの測定が行われる時間の範囲を示す時刻範囲を前記処理能力に対応して分割することにより、測定された時間によって前記蓄積データを割り当てるための割当時刻範囲を、選択されたノード毎に設定する
    ことを特徴とするデータ管理システム。
  2. 前記ノード情報が、前記データの書き込み及び読み出しを行う先の前記ノードを抽出するために用いる、
    ことを特徴とする請求項1に記載のデータ管理システム。
  3. 前記データ解析部が、
    前記ノードに蓄積されている前記蓄積データを、他のノードに対して複製することを特徴とする請求項1又は請求項2に記載のデータ管理システム。
  4. 前記データ解析部が、
    前記データの複製を行う際、前記ノード及び他のノードの各々の稼働率に基づいてデータの取得率を算出し、取得率が予め設定された値となるまで、前記ノードの前記蓄積データをさらに前記他のノードと異なる他のノードに複製する
    ことを特徴とする請求項3に記載のデータ管理システム。
  5. 前記データ解析部が、
    コンシステントハッシュ法のアルゴリズムにより、前記時刻範囲に含まれる時刻を円の円周に写像し、前記ノード各々の前記割当時刻範囲ハッシュ値とするハッシュ関数により、前記ノードに対応する前記ハッシュ値の前記割当時刻範囲を前記時刻に対応させて前記円周に写像し、自身の蓄積データの複製である複製データの生成を、前記円周上において隣接する他のノードの前記割当時刻範囲から順次行う
    ことを特徴とする請求項3または請求項4に記載のデータ管理システム。
  6. 前記ノードの読み出しが行えなくなった際、
    前記他のノードの前記データ解析部が、
    前記ノードの前記蓄積データを、自身が記憶している前記ノードの前記蓄積データの前記複製データから復旧し、読み出しが行えなくなった前記ノードの前記蓄積データを自身の蓄積データとする
    ことを特徴とする請求項5に記載のデータ管理システム。
  7. 前記データ解析部が、
    前記ハッシュ関数により、前記ノードの処理能力に対応した数のハッシュ値を算出し、前記円周に写像した前記ノードの各々のハッシュ値の合計値で前記時刻範囲を除算した割当時刻範囲で、前記円周に前記ハッシュ値を写像して分布させて仮想ノードの割当時刻範囲とする
    ことを特徴とする請求項5または請求項6に記載のデータ管理システム。
  8. ネットワークに対してノードを接続あるいは取り外し可能に運用するネットワークシステムについて、キーに対応したデータ構造を用いて前記ネットワークに接続される複数のノードに対してデータを分散させて、蓄積データとして蓄積を行うデータ管理方法において、
    前記ノードにおいて、
    データ解析部が、新たに前記ネットワークに接続された際に、前記データを蓄積する前記ノードとなるために用いるノード情報を、前記ネットワークにすでに接続されている他の前記ノードに対して供給するデータ解析過程を含み、
    前記キーは前記蓄積データが測定された時間を含み、前記ノード情報が前記ノードの処理能力及び稼働率を含み、
    前記データ解析部が、
    所定の閾値以上の稼働率の前記ノードを前記蓄積データを保存するノードとして選択し、
    前記蓄積データの測定が行われる時間の範囲を示す時刻範囲を前記処理能力に対応して分割することにより、測定された時間によって前記蓄積データを割り当てるための割当時刻範囲を、選択されたノード毎に設定する
    ことを特徴とするデータ管理方法。
JP2015103744A 2015-05-21 2015-05-21 データ管理システム及びデータ管理方法 Active JP6241449B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015103744A JP6241449B2 (ja) 2015-05-21 2015-05-21 データ管理システム及びデータ管理方法
US15/150,481 US10157216B2 (en) 2015-05-21 2016-05-10 Data management system and data management method
EP16169580.4A EP3096248B1 (en) 2015-05-21 2016-05-13 Data management system and data management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015103744A JP6241449B2 (ja) 2015-05-21 2015-05-21 データ管理システム及びデータ管理方法

Publications (2)

Publication Number Publication Date
JP2016218787A JP2016218787A (ja) 2016-12-22
JP6241449B2 true JP6241449B2 (ja) 2017-12-06

Family

ID=55969022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015103744A Active JP6241449B2 (ja) 2015-05-21 2015-05-21 データ管理システム及びデータ管理方法

Country Status (3)

Country Link
US (1) US10157216B2 (ja)
EP (1) EP3096248B1 (ja)
JP (1) JP6241449B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102333866B1 (ko) * 2017-01-09 2021-12-03 한국과학기술원 이동 통신 네트워크 이상 진단 장치 및 방법
JP6672190B2 (ja) * 2017-01-16 2020-03-25 株式会社東芝 データベースシステムおよびデータ処理方法
JP7120268B2 (ja) * 2020-03-30 2022-08-17 横河電機株式会社 作業支援システム、作業支援装置、作業支援方法、作業支援プログラム、及び記録媒体

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2406679B (en) * 2000-11-30 2005-05-18 Coppereye Ltd Database
GB0310689D0 (en) * 2003-05-09 2003-06-11 Ibm Monitoring operational data in data processing systems
GB0311564D0 (en) * 2003-05-20 2003-06-25 Ibm Monitoring operational data in data processing systems
US9235623B2 (en) * 2009-04-16 2016-01-12 Tibco Software, Inc. Policy-based storage structure distribution
JP5423553B2 (ja) 2010-04-09 2014-02-19 株式会社日立製作所 データベース管理方法、計算機、センサネットワークシステム及びデータベース検索プログラム
JP5600573B2 (ja) * 2010-12-07 2014-10-01 日本放送協会 負荷分散装置及びプログラム
US20130283053A1 (en) * 2011-01-07 2013-10-24 Samsung Electronics Co., Ltd Apparatus and method for audience measurement in multimedia streaming system
US20130013605A1 (en) * 2011-07-08 2013-01-10 Stanfill Craig W Managing Storage of Data for Range-Based Searching
JP5866728B2 (ja) * 2011-10-14 2016-02-17 サイバーアイ・エンタテインメント株式会社 画像認識システムを備えた知識情報処理サーバシステム
JP5690296B2 (ja) * 2012-03-01 2015-03-25 日本電信電話株式会社 負荷分散プログラムおよび負荷分散装置
WO2013153646A1 (ja) * 2012-04-12 2013-10-17 株式会社日立製作所 計算機システム、データ配置管理方法及びプログラム
JP5537600B2 (ja) * 2012-05-15 2014-07-02 株式会社Nttドコモ 制御ノード及び通信制御方法
US9225675B2 (en) * 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US20140214897A1 (en) * 2013-01-31 2014-07-31 Yuankai Zhu SYSTEMS AND METHODS FOR ACCESSING A NoSQL DATABASE USING BUSINESS INTELLIGENCE TOOLS
KR102029285B1 (ko) * 2013-04-01 2019-10-07 한국전자통신연구원 센서네트워크의 대규모 데이터 수집 장치 및 방법
JP2014211790A (ja) 2013-04-19 2014-11-13 株式会社日立システムズ 列指向型キーバリューストア移行設計支援システムおよび移行設計支援方法
US10394848B2 (en) * 2013-07-29 2019-08-27 Amazon Technologies, Inc. Generating a multi-column index for relational databases by interleaving data bits for selectivity
US20160210237A1 (en) * 2013-07-30 2016-07-21 Nec Corporation Storage device, data access method, and program recording medium
JP6326913B2 (ja) * 2014-03-31 2018-05-23 富士通株式会社 制御プログラムおよび制御方法

Also Published As

Publication number Publication date
EP3096248A1 (en) 2016-11-23
JP2016218787A (ja) 2016-12-22
US10157216B2 (en) 2018-12-18
EP3096248B1 (en) 2021-11-03
US20160342672A1 (en) 2016-11-24

Similar Documents

Publication Publication Date Title
US11520670B2 (en) Method and apparatus for restoring data from snapshots
CN100472463C (zh) 用于对存储区中的选定数据执行操作的方法和设备
US9305072B2 (en) Information storage system and data replication method thereof
US20080126404A1 (en) Scalable distributed object management in a distributed fixed content storage system
US7664983B2 (en) Systems and methods for event driven recovery management
US9547706B2 (en) Using colocation hints to facilitate accessing a distributed data storage system
KR100961739B1 (ko) 가상화를 이용한 원격 복제의 일관성 유지방법
EP3452919A1 (en) Splitting and moving ranges in a distributed system
CN105027069A (zh) 卷区域的重复数据删除
CN101799743A (zh) 用于逻辑卷管理的方法和装置
JP2010074604A (ja) データアクセスシステム、データアクセス方法およびデータアクセス用プログラム
CN107046811A (zh) 一种源存储设备发送源文件和源文件的克隆文件至备份存储设备的方法、源存储设备以及备份存储设备
US11341009B1 (en) Directing placement of data in cloud storage nodes
JP6241449B2 (ja) データ管理システム及びデータ管理方法
KR20100048130A (ko) 메타데이터 클러스터 기반의 분산형 스토리지 시스템 및 그동작 방법
WO2020029748A1 (zh) 分布式存储系统中管理快照和差异位图生成方法和产品
JP2010026965A (ja) アーカイブシステムおよびコンテンツの管理方法
JP6007340B2 (ja) 計算機システム、計算機システム管理方法及びプログラム
US10635542B1 (en) Support for prompt creation of target-less snapshots on a target logical device that has been linked to a target-less snapshot of a source logical device
CN112181899A (zh) 一种元数据的处理方法、装置及计算机可读存储介质
US20170116300A1 (en) Efficient mirror data re-sync
CN104572754A (zh) 一种数据库系统、数据库系统访问方法及装置
JP6640991B2 (ja) データ処理システム及びデータ処理方法
CN114415980B (zh) 多云集群数据管理系统、方法及装置
JP6279780B1 (ja) 分散ストレージの非同期リモートレプリケーションシステムおよび分散ストレージの非同期リモートレプリケーション方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170926

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171023

R150 Certificate of patent or registration of utility model

Ref document number: 6241449

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250