WO2013046667A1 - 情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造 - Google Patents

情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造 Download PDF

Info

Publication number
WO2013046667A1
WO2013046667A1 PCT/JP2012/006152 JP2012006152W WO2013046667A1 WO 2013046667 A1 WO2013046667 A1 WO 2013046667A1 JP 2012006152 W JP2012006152 W JP 2012006152W WO 2013046667 A1 WO2013046667 A1 WO 2013046667A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
range
destination
logical identifier
nodes
Prior art date
Application number
PCT/JP2012/006152
Other languages
English (en)
French (fr)
Inventor
慎二 中台
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US14/348,041 priority Critical patent/US20140244794A1/en
Priority to JP2013535916A priority patent/JP6135509B2/ja
Publication of WO2013046667A1 publication Critical patent/WO2013046667A1/ja

Links

Images

Classifications

    • 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/104Peer-to-peer [P2P] networks
    • 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration

Abstract

 情報システムは、データ群を分散して管理する複数のデータ格納サーバを備え、複数のデータ格納サーバに対し、論理識別子空間上で論理識別子を付与するID付与部(112)と、論理識別子空間と、データ群におけるデータの分布と、を対応付け、論理識別子に対応するデータの値の範囲を決定する範囲決定部(114)と、ある属性値または属性範囲のデータ格納サーバの宛先を探索するとき、各データ格納サーバのデータの値の範囲と、論理識別子と、宛先アドレスとの対応関係に基づき、属性値または属性範囲の少なくとも一部が一致するデータの属性値空間の範囲に対応する論理識別子を求め、当該論理識別子に対応するデータ格納サーバの宛先アドレスを宛先として決定する宛先解決部(340)とを備える。

Description

情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造
 本発明は、情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造に関し、特に、分散データを管理する情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造に関する。
 データの各レコードを複数の記憶装置(第1のプロセッサ)に分割して格納する分散データベースシステムが特許文献1に記載されている。このシステムでは、データを構成する表データの全レコードのキー値が分布する範囲を複数の区間に分割する。このとき、各区間の各々のレコード数が等しくなるようにし、複数の区間にそれぞれ複数の第1のプロセッサを割り当てる。中央プロセッサが第1のプロセッサにアクセスする。第1のプロセッサが保持するデータベースのそれぞれの部分の複数のレコードのキー値とそのレコードの記憶位置を表す情報を、それぞれレコードが属するキー値の区間が割り当てられた第2のプロセッサに転送する。
 そして、それらが保持するレコードのキー値とそのレコードの記憶位置を示す情報を、そのキー値の属する区間が割り当てられた第1のプロセッサに転送する。第2のプロセッサでは転送されてきた複数のキー値をソートし、そのキー値とともに受信したレコードの記憶位置を示す情報を登録したキー値表を、ソート結果として生成する。このような構成により、特許文献1に記載のシステムでは、第1のプロセッサにアクセスする中央プロセッサにおける負荷の軽減を図り、分散データベースシステムにおけるソート処理の効率を向上している。
 また、特許文献2に記載されたオーバレイ管理システムは、空間充填曲線変換処理手段と、分布関数処理手段と、メッセージ転送処理手段とから構成されている。
 このような構成を有するオーバレイ管理システムは次のように動作する。システムは、データに対する登録や削除の操作の際、データから、検索効率化のために予め指定された複数の属性(複合インデックス付けされた属性)を選択する。そして、その多次元の値を取得して空間充填曲線処理手段によって1次元の値とし、これを分布関数処理手段に入力して均一化された1次元値として論理識別子を得る。
 この論理識別子は、データの格納先や要求情報の転送先の決定に用いる。ここではメッセージ転送処理手段が、得られた論理識別子を宛先として要求情報を送信する。メッセージ転送処理手段は、当該論理識別子を担うピアに当該メッセージを送信し、そのピアに当該データの登録あるいは削除を行う。
 このように、属性値に分布関数を施し、データ格納先のノードに対して付与された論理識別子と同様に確率的に均一に分布する論理識別子を用いて、その属性値のデータを格納することで、負荷の確率的な均一化を実現することができる。
 また、データに対する範囲検索の操作の際には、検索式から、複合インデックス付けされた複数の属性の範囲条件式を取得し、この多次元範囲を空間充填曲線処理手段によって、複数の1次元値の範囲を得る。1次元値の範囲のそれぞれについて、分布関数処理手段を実行して、論理識別子を取得し、これを全ての複数の1次元値について行うことで、複数の論理識別子範囲を得る。
 メッセ―ジ転送処理手段は、このようにして得られた複数の論理識別子範囲を宛先として、検索要求を送信し、その宛先と対応する複数のピアに格納されたデータを取得する。
 また、特許文献3および非特許文献1には、空間充填曲線処理が記載されている。また、非特許文献2には、分散ハッシュテーブル(Distributed Hash Table:DHT)などのP2P(Peer to Peer)システムにおける、多次元属性を用いた多次元属性および範囲のクエリをサポートするChordまで拡張するMAAN(A Multi-Attribute Addressable Network for Grid Information Services)が記載されている。ここで、Chordとは、分散ハッシュテーブルを実現するアルゴリズムの一つである。P2Pネットワークは、サーバを用いることなく高速にコンテンツの検索、あるノードから別のノードへとメッセージのルーティングを行う手法である。分散ハッシュテーブルとは、ハッシュテーブルを複数のピアで管理する技術のうち、特にP2Pネットワークとしてハッシュテーブルへのアクセス要求がルーティングされる技術である。
特開平5-242049号公報 特開2008-234563号公報 米国特許7,167,856号明細書
J. K. Lawder、外1名、"Querying Multi-dimensional Data Indexed Using the Hilbert Space-Filling Curve"、ACM SIGMOD (Special Interest Group on Data Communication) Record、2001年3月、vol.30、No.1、p.19~24 Min Cai、外3名、"MAAN: A Multi-Attribute Addressable Network for Grid Information Services"、Journal of Grid Computing、2004年3月、vol.2,No.1、p.3~14
 上述した特許文献1に記載されたシステムにおいて、第1のプロセッサに格納されるレコードの分布が時間とともに変化し、その結果、プロセッサ毎の負荷が変化した場合に、第1のプロセッサを増設または利用中止することが考えられる。その場合に、複数のプロセッサ間でレコード数を厳密に均一にするために、データベース全体で、すべての第1のプロセッサ間でのレコード移動を行わなければいけなくなり、レコード移動が多くなるという問題点があった。
 その理由は、以下の通りである。たとえば、N台のノードにデータ量を厳密に均一にするため1/Nずつに分割した後、ノードを1台増加させて1/(N+1)ずつに分割する場合を考える。この場合、ほぼ全てのノードにてデータ移動が発生し、また、ほぼ全てのデータを移動させるノードがでてくる。逆に、N台のうちから選ばれる1台とだけデータ移動を行うと、データは不均一に格納されることとなり、あるノードには他のノードの半分のデータしか格納されない。
 本発明の目的は、上述した課題を解決し、ノード間の負荷を適度に均一に保ちつつ、データ格納先コンピュータ変更時の移動データが少ない情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造を提供することにある。
 本発明の情報システムは、
 データ群を分散して管理する複数のノードを備え、
 複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
 複数の前記ノードに対し、論理識別子空間上で論理識別子を付与する識別子付与手段と、
 前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定する範囲決定手段と、
 ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の前記範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する宛先決定手段と、を備える。
 本発明の情報システムの管理方法は、
 データ群を分散して管理する複数のノードを管理する情報システムの管理方法であって、
 複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
 前記情報システムは、管理装置と、記憶装置と、を有し、
 前記管理装置が、
 複数の前記ノードに対し、論理識別子空間上で論理識別子を付与し、
 前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定し、
 ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の前記範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する。
 本発明のプログラムは、
 データ群を分散して管理する複数のノードを管理する管理装置を実現するコンピュータのプログラムであって、
 複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
 前記管理装置は、記憶装置を有し、
 前記管理装置を実現するコンピュータに、
 複数の前記ノードに対し、論理識別子空間上で論理識別子を付与する手順、
 前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定する手順、
 ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する手順を実行させるためのものである。
 本発明のデータ処理方法は、
 上記情報システムの管理方法の管理装置に接続され、前記管理装置を介して前記データにアクセスする端末装置のデータ処理方法であって、
 前記端末装置が、
  属性値または属性範囲を有するデータへのアクセス要求を前記管理装置に通知し、
  前記管理装置を介して、複数の前記ノードの宛先アドレスと、各ノードに割り当てられた論理識別子と、各ノードが管理している前記データの値の範囲との対応関係に基づいて、前記アクセス要求された前記属性値または前記属性範囲の少なくとも一部が一致する範囲の前記データを管理する前記ノードの宛先にアクセスして前記データを操作する。
 本発明のコンピュータプログラムは、
 データ群を分散して管理する複数のノードを管理するサーバに接続されたクライアント端末を実現するコンピュータのプログラムであって、
 複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
 前記クライアント端末を実現するコンピュータに、
  属性値または属性範囲を有するデータへのアクセス要求を受け付ける手順、
  受け付けた前記アクセス要求を前記サーバに通知する手順、
  複数の前記ノードの宛先アドレスと、各ノードに割り当てられた論理識別子と、各ノードが管理している前記データの値の範囲との対応関係に基づいて、前記アクセス要求された前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、前記宛先として決定された前記論理識別子に対応する前記ノードの宛先アドレスを前記サーバから受信する手順、
  前記サーバから受信した前記宛先アドレスの前記ノードにアクセスし、前記属性値または前記属性範囲の前記データを操作する手順を実行させるためのものである。
 本発明のデータ構造は、
 データ群を分散して管理する複数のノードの宛先を決定する際に参照する宛先テーブルのデータ構造であって、
 複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
 前記宛先テーブルは、前記データ群を分散して管理する複数のノードの宛先アドレスと、各ノードに論理識別子空間上で付与された論理識別子と、各前記ノードが管理するデータの値の範囲との対応関係を含み、
 各前記ノードのデータの値の範囲は、前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲が各ノードに割り振られる。
 なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
 また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
 また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障のない範囲で変更することができる。
 さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
 本発明によれば、データ群のデータの分布に応じてノード間の負荷を均一に保ちつつ、スケーラブルなデータの格納先管理を行える情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造が提供される。
 上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
本発明の実施の形態に係る情報システムの構成を示す機能ブロック図である。 本発明の実施の形態に係る情報システムのコンピュータの構成の例を示すブロック図である。 本発明の実施の形態に係る情報システムのコンピュータの構成の例を示すブロック図である。 本発明の実施の形態に係る情報システムの構成を示す機能ブロック図である。 本発明の実施の形態に係る情報システムの要部構成を示す機能ブロック図である。 本実施形態の情報システムの宛先サーバ情報テーブルの構造の一例を示す図である。 本発明の実施の形態に係る情報システムの対応関係を説明するための図である。 本発明の実施の形態に係る情報システムの動作の一例を示すフローチャートである。 本発明の実施の形態に係る情報システムの動作の一例を示すフローチャートである。 本実施形態の情報システムのスキーマ管理サーバの構成を示す機能ブロック図である。 本実施形態の情報システムにおける空間充填曲線変換規則を説明するための図である。 本実施形態の情報システムの事前処理部の構成を示す機能ブロック図である。 本実施形態の情報システムの空間充填曲線サーバ情報テーブルの構造の一例を示す図である。 本実施形態の情報システムの要部構成を示す機能ブロック図である。 本実施形態の情報システムのスキーマ管理サーバの動作の一例を示すフローチャートである。 本実施形態の情報システムの事前処理部の動作の一例を示すフローチャートである。 本実施形態の情報システムの宛先解決部における宛先決定処理の動作の一例を示すフローチャートである。 本実施形態の情報システムの宛先解決部における複数の宛先決定処理の動作の一例を示すフローチャートである。 本実施形態の情報システムにおけるデータ分布の例を示す図である。 本実施形態の情報システムにおける密度分布情報に対応する分布幅と分布量の例を示す図である。 本実施形態の情報システムにおける累積分布情報に対応する累積分布割合と1次元値の例を示す図である。 本実施形態の情報システムにおける逆関数を施して得られる累積分布情報の例を示す図である。 本実施形態の情報システムにおける論理識別子空間の一例を示す図である。 本実施形態の情報システムにおける空間充填曲線サーバ情報テーブルに含まれる多次元属性範囲を説明するための図である。 本実施形態の情報システムの空間充填曲線サーバ情報テーブルの構造の一例を示す図である。
 以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施の形態)
 以下に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
 図1は、本発明の実施の形態に係る情報システム1の構成を示す機能ブロック図である。
 本発明の実施の形態の情報システム1は、互いにネットワーク3を介して接続される複数のコンピュータ、たとえば、複数のスキーマ管理サーバ102(図1では、スキーマ管理サーバA1~Anと示す。以下、nは自然数であり、それぞれ異なる値をとってもよい。)と、複数のデータ操作クライアント104(図1では、データ操作クライアントB1~Bnと示す。)と、複数のデータ格納サーバ106(図1では、データ格納サーバC1~Cnと示す。)と、複数の操作要求中継サーバ108(図1では、操作要求中継サーバD1~Dnと示す。)と、を備える。
 本実施の形態の情報システム1は、CPU(Central Processing Unit)、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを備える任意のコンピュータのハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下に説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。なお、各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
 図1の本実施の形態の情報システム1を構成する各サーバおよびクライアントは、たとえば、図示しないCPUやメモリ(またはプロセッサ)、ハードディスク、および通信装置を備え、キーボードやマウス等の入力装置やディスプレイやプリンタ等の出力装置と接続されるサーバコンピュータやパーソナルコンピュータ、またはそれらに相当するデータ処理装置により実現することができる。そして、CPUが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、後述する各ユニットの各機能を実現することができる。
 また、本実施の形態の情報システム1を構成する各サーバおよびクライアントは、仮想マシンなど仮想化されたコンピュータ、あるいは、クラウドなどネットワーク越しに利用者にサービスを提供するサーバ群などであってもよい。
 本発明の情報システム1は、分散する異なるコンピュータに格納されたデータを、少なくとも1次元の属性の範囲検索可能な表構造とすることで、多様なアプリケーションソフトウェアに対してアクセス機能を提供するデータベースといった用途に適用できる。
 また、分散したコンピュータに送信されたメッセージやイベントに対して、多次元属性の範囲に関する条件を指定することで、データの発生の検知や通知を設定するPublish/Subscribeといったメッセージ送受信形態の用途にも適用可能である。
 なお、あるD次元の属性値を持つデータが登録される前に、その通知依頼をD次元の範囲条件式として指定するデータストリーム処理では、予め格納される範囲条件式を2D次元の属性値として扱い、登録されるデータを2D次元の属性範囲として扱ってもよい。たとえば、D=1とし、属性範囲(25,40)と属性範囲(35,40)が予め格納され、属性値A=30というデータが登録されたとする。1次元の属性範囲(25,40)と1次元の属性範囲(35,40)は2次元の属性値として格納される。登録される属性値30は、2次元範囲((-∞,30),(30,∞))を探索する。結果として、この属性値を含む範囲として(25,40)を取得し、(35,40)は取得されない。この取得された結果に対して、通知が行われる。以降では、ストリーム処理については、この対応が取れるものとする。
 ここで、たとえば、少なくとも1次元の属性データとは、複数の異なる属性を有するデータである。これらのデータは、コンピュータが参照および操作できるリレーショナルデータベースに格納されているものとする。リレーショナルデータベースでは、複数の列(属性)からなる行(タプル)がある。本実施形態では、特に、指定された列の検索を速くするために、予め複合インデックスという複数の属性のペアに対してインデックスが付けられているものとする。複数の属性の例としては、たとえば、緯度と経度、温度と湿度、あるいは、商品の金額、メーカ、型番、発売時期、および仕様などである。
 本実施形態の情報システム1は、たとえば、ウェブサイトのショッピングモールにクライアントがアクセスし、商品を検索するために複数の条件、たとえば、金額範囲、メーカ、発売時期などを入力して、該当する商品を検索するような利用シーンに適用することができる。情報システム1は、要求を受け付けたとき、条件に適合する属性を有するデータをリレーショナルデータベースから検索して抽出し、クライアントに返信する処理を行うことができる。
 後述する実施形態で説明するように、本発明の情報システム1では、検索条件が複数(多次元)、かつ、範囲指定された条件によりデータ検索を行うことができる。なお、ウェブサイトへのクライアントからの検索要求などは、何万件/秒で発生するものである。
 少なくとも1次元の属性のデータを担う複数のコンピュータからなる分散環境にて、少なくとも1次元の属性値に対応するコンピュータを決定する、あるいは範囲検索などの少なくとも1次元の属性の空間に対して複数のコンピュータを決定する際、以下のように宛先決定を行うことができる。すなわち、予め宛先サーバ情報とデータの分布とから、少なくとも1次元の属性空間の部分空間とコンピュータとの対応を生成し、この対応を参照しながら決定することで、属性数が増加した場合(たとえば、属性数が5~9程度)やビット長の長い属性(たとえば、INT型(32ビット長)以上)を扱う場合であっても、処理負荷の低い処理で、宛先決定を行うことができる。
 本実施の形態の情報システム1は、たとえば、図2に示すように、互いにネットワーク3を介して接続された、主にデータの格納を担う複数のデータコンピュータ208(図2では、データコンピュータF1~Fnと示す。)と、主にデータへの操作要求を発行するアクセスコンピュータ202(図2では、アクセスコンピュータE1~Enと示す。)と、がスイッチ206を介して接続された構成であってもよい。
 また、さらにデータコンピュータ208に格納されるデータ構造に関する情報(スキーマ)を保持するメタデータコンピュータ204を加えた構成としてもよい。
 この構成において、アクセスコンピュータ202は、図1のデータ操作クライアント104を備え、データコンピュータ208は、図1のデータ格納サーバ106を備える。
 図1の操作要求中継サーバ108は、図2のアクセスコンピュータ202またはデータコンピュータ208の一方、あるいは双方に備えていてもよいが、いずれにも備えていなくともよい。図1のスキーマ管理サーバ102は、図2のアクセスコンピュータ202またはデータコンピュータ208に備えていてもよく、あるいは図2のメタデータコンピュータ204に備えていてもよい。
 あるいは、本実施形態の情報システムの他の構成例として、図3に示すように、ネットワーク3を介して接続される少なくとも1つのピアコンピュータ210(図3では、ピアコンピュータG1~Gnと示す。)を備えてもよい。ピアコンピュータ210は、一様に、スキーマ管理サーバ102、データ操作クライアント104、データ格納サーバ106、および操作要求中継サーバ108を備えてもよい。
 図4は、本実施形態の情報システム1の構成を示す機能ブロック図である。
 図4に示すように、本実施形態の情報システム1は、スキーマ管理サーバ102と、事前処理部120と、宛先解決部340と、操作要求部360と、中継部380と、データ格納サーバ106と、を備える。なお、図4では、スキーマ管理サーバ102および事前処理部120は、ネットワーク3に接続されていないが、ネットワーク3に接続された構成としてもよい。
 本実施形態において、スキーマ管理サーバ102は、データ群のデータの分布を示す分布情報を生成する。
 複数のノード(データ格納サーバ106)に格納されるデータ群のデータは、予め定められた条件範囲の属性値を有するデータの集合、または予め定められた類似の分布を有するデータの集合を含む。このデータの分布に基づいて、各データ格納サーバ106が担当するデータの属性値の範囲を決めることになる。
 本実施形態において、図1のデータ操作クライアント104は、図4の事前処理部120と、宛先解決部340と、操作要求部360と、を具備する。また、図1の操作要求中継サーバ108は、事前処理部120と、宛先解決部340と、中継部380と、を具備する。
 図5は、本実施形態の情報システム1の要部構成を示す機能ブロック図である。
 本実施形態の情報システム1は、データ群を分散して管理する複数のノード(データ格納サーバ106)を備える。
 複数のノード(データ格納サーバ106(図1))は、それぞれネットワーク上で識別可能な宛先アドレスを有する。
 情報システム1は、識別子付与部(ID付与部112)と、範囲決定部114と、宛先決定部(宛先解決部340)と、を備える。
 ID付与部112は、複数のノード(データ格納サーバ106)に対し、論理識別子空間上で論理識別子を付与する。
 範囲決定部114は、論理識別子空間と、データ群におけるデータの分布と、を対応付け、各ノード(データ格納サーバ106)の論理識別子に対応するデータの値の範囲を決定する。なお、範囲決定部114は、スキーマ管理サーバ102が生成した分布情報116を使用する。分布情報116の生成については、後述する実施形態で詳細に説明する。
 ID付与部112は、各ノードが、有限のID(Identifier)空間における値を論理識別子ID(宛先、アドレス、または識別子)として持つように付与する。ID付与部112は、そのIDに応じて、そのノードが担当するデータのID空間における範囲が定まる。データを担当するノードのIDは、DHTでは登録または取得したいデータのキーのハッシュ値を用いて求めることができる。また、各ノードの論理識別子IDには、ランダムあるいはノードに予め付された一意な識別子(たとえば、IPアドレスとポート)のハッシュ値を用いることができる。これにより負荷分散を図ることができる。ID空間は、リング型をとる方式、HyperCubeをとる方式などがある。ChordとKoordeなどは、リング型をとる方式のID空間を用いる。
 このリング型をとる場合において、ノードとデータとの対応付け方式は、コンシステントハッシング(Consistent Hashing)と呼ばれる。Consistent Hashingでは、任意の自然数をmとして、ID空間は1次元の[0,2)を取り、各ノードiは、このID空間における値xiをIDとして取る。ただし、iはノード数Nまでの自然数で、xiの順に識別されているとする。ここで、記号“[”や、記号“]”は閉区間を表し、記号“(”や記号“)”は開区間を表す。
 この時、ノードiは、[xi,x(i+1))に含まれるデータを管理する。ただし、i=Nであるノードは[0,x0)と[xN,2)に含まれるデータを管理する。
 また、範囲決定部114が生成した、各ノード(データ格納サーバ106)のデータの属性値空間の範囲と、論理識別子と、宛先アドレスとの対応関係は、対応関係記憶部(図中、「対応関係」と示す)118に格納される。
 宛先解決部340は、ある属性値または属性範囲のデータの格納先のノード(データ格納サーバ106)の宛先を探索するとき、各ノード(データ格納サーバ106)のデータの値の範囲と、論理識別子と、宛先アドレスとの対応関係に基づき、属性値または属性範囲の少なくとも一部が一致するデータの範囲に対応する論理識別子を求める。そして、宛先解決部340は、求めた当該論理識別子に対応するノード(データ格納サーバ106)の宛先アドレスを宛先として決定する。
 本実施形態において、ID付与部112が各ノードに付与した論理識別子(ハッシュ値)の集合と、宛先となるノードの宛先アドレス(サーバIPアドレス)とを対応付けて、図6の宛先サーバ情報テーブル330に記憶される。
 上述したID付与部112が各ノードに付与する論理識別子は、データの格納先やメッセージ転送先を決定するのに使用するものである。上述したように、有限の論理識別子空間上で、確率的に均一に各ノードに付与される。この論理識別子の集合と、宛先アドレスとの対応が図6の宛先サーバ情報テーブル330に複数格納される。
 たとえば、Consistent Hashingや分散ハッシュテーブルの場合は、論理識別子は、ハッシュ値と宛先コンピュータのIPアドレスなどである。
 分散ハッシュテーブルの様々なアルゴリズムのうち、たとえば、Chordの場合は、SuccessorListやFingerTableが宛先サーバ情報テーブル330に相当する。
 ここで、ノードに付与される論理識別子(ID)と、ノードが担当するデータの属性値の範囲の対応関係について図7を用いて説明する。
 本実施形態において、データ群におけるある属性値に基づく分布情報116が図7(a)に示すような累積分布で示される場合、範囲決定部114は、横軸に属性値空間、縦軸に論理識別子(ID)空間を対応させることで、各ノードにそれぞれ付与された論理識別子に対応する属性値空間の範囲を決定することができる。たとえば、論理識別子413のノードは、属性値a4~a5の範囲のデータを格納することとなる。あるいは、属性値の一方の端点(a5)だけを管理してもよい。この場合、他方の端点は隣接ノード(論理識別子250のノード)の端点(a4)とする。このようにしてIDと属性値の範囲の対応関係が決定され、図7(b)に示すように、対応関係記憶部118に記憶される。
 本実施形態において、図7(b)の対応関係は、データ群を分散して管理する複数のノードの宛先を決定する際に参照する宛先テーブルのデータ構造を有する。すなわち、ノードの宛先情報として、ノードのIPアドレスを含むことができる。この宛先テーブルは、データ群を分散して管理する複数のノードの宛先と、各ノードに論理識別子空間上で付与された論理識別子と、各前記ノードが管理するデータの値の範囲との対応関係を含む。各ノードのデータの値の範囲は、論理識別子空間と、データ群におけるデータの分布と、を対応付け、各ノードの論理識別子に対応するデータの値の範囲が各ノードに割り振られる。
 上述したように、論理識別子は、論理識別子空間上で、確率的に均一に各ノードに付与されているため、その論理識別子に対応させて属性値範囲を決定することで、結果として、属性値に基づく分布を有するデータ群が、確率的に均一に各ノードに割り当てられることとなる。ただし、確率の期待値としては、各ノードはノード数分の1のデータ量を持つが、厳密にノード数分の1のデータ量を持つことは保証しなくてよい。各ノードの負荷がデータ分布に合わせて、確率的には均一に割り振られることとなる。
 次に、本実施形態の情報システム1の管理方法について、以下に説明する。
 図8および図9は、本実施形態の情報システム1の動作を示すフローチャートである。
 以下、図5、図8、および図9を用いて説明する。
 本発明の実施の形態に係る情報システム1の管理方法は、事前処理部120(図5)において、ID付与部112(図5)が、複数のノードに対し、論理識別子空間上で論理識別子を付与し(図8のステップS11)、範囲決定部114(図5)が、論理識別子空間と、データ群におけるデータの分布と、を対応付け、各ノードの論理識別子に対応するデータの値の範囲を決定し(図8のステップS13)、ある属性値または属性範囲のデータの格納先のノードの宛先を探索するとき(図9のステップS21のYES)、宛先解決部340(図5)が、各ノードのデータの値の範囲と、論理識別子と、宛先アドレスとの対応関係に基づき、属性値または属性範囲の少なくとも一部が一致するデータの範囲に対応する論理識別子を求め、当該論理識別子に対応するノードの宛先アドレスを宛先として決定する(図9のステップS23)。
 また、本発明の実施の形態に係るコンピュータプログラムは、図4のデータ操作クライアント104または操作要求中継サーバ108を実現するコンピュータに、複数のノードに対し、論理識別子空間上で論理識別子を付与する手順、論理識別子空間と、データ群におけるデータの分布と、を対応付け、各ノードの論理識別子に対応するデータの値の範囲を決定する手順、ある属性値または属性範囲のデータの格納先のノードの宛先を探索するとき、各ノードのデータの値の範囲と、論理識別子と、宛先アドレスとの対応関係に基づき、属性値または属性範囲の少なくとも一部が一致するデータの範囲に対応する論理識別子を求め、当該論理識別子に対応するノードの宛先アドレスを宛先として決定する手順、を実行させるように記述されている。
 本実施形態のコンピュータプログラムは、コンピュータで読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラムは、記録媒体からコンピュータのメモリにロードされてもよいし、ネットワークを通じてコンピュータにダウンロードされ、メモリにロードされてもよい。
 このように構成された本実施形態の情報システム1の動作について、以下説明する。
 事前処理部120において、ID付与部112が、複数のノードに対し、論理識別子空間上で論理識別子を付与する(図8のステップS11)。そして、範囲決定部114が、論理識別子空間と、データ群におけるデータの分布と、を対応付け、各ノードの論理識別子に対応するデータの値の範囲を決定する(図8のステップS13)。
 なお、新たなノードが追加された場合には、ID付与部112が、新たなノードに対し、論理識別子空間上で論理識別子を付与し(図8のステップS11)、範囲決定部114が、新たに追加されたノードと隣接するノード間で、ノードの論理識別子に対応するデータの値の範囲を変更する(不図示)。また、ノードが削除された場合も同様に、範囲決定部114が、削除されたノードと隣接するノード(論理識別子が隣接する他ノード)間で、ノードの論理識別子に対応するデータの値の範囲を変更する(不図示)。
 また、ID付与部112が新たなノードに付与する時点で、既存のノード群は確率的には均一であっても、隣接するノードとの論理識別子の幅が広いノードと、狭いノードが存在する。広いノードはデータを多く持ち、狭いノードは少ないデータを持っている。新たに追加されるノードに付与される論理識別子は、隣接するノードとの幅が広いような空間に入る可能性が高く、狭い空間に入る可能性は低い。そのため、この論理識別子と分布情報から範囲決定部114が決定する範囲は、他のノードより多くのデータを持っているノードからデータを受け取る効果、すなわち負荷の高いノードから負荷を減らし均一化させる可能性が高くなる。
 すなわち、本発明の情報システム1では、ノードが追加または削除された場合に、全ノードのデータを移動する必要がなく、一部のノード(対象となるノードと隣接するノード)のみデータを移動することができ、なおかつ、確率的な均一性を保つことができる。なお、1つの物理ノードが複数の論理識別子を有する場合は、論理識別子の数に相当する他ノードとデータ移動を行う必要がある。
 そして、このようにして決定された対応関係に基づいて、ある属性値または属性範囲のデータの格納先のノードの宛先を探索するとき(図9のステップS21のYES)、宛先解決部340が、各ノードのデータの値の範囲と、論理識別子と、宛先アドレスとの対応関係に基づき、属性値または属性範囲の少なくとも一部が一致するデータの範囲に対応する論理識別子を求め、当該論理識別子に対応するノードの宛先アドレスを宛先として決定する(図9のステップS23)。
 以上説明したように、本実施形態の情報システム1によれば、データ群のデータの分布に応じてノード間の負荷を均一に保ちつつ、スケーラブルなデータの格納先管理を行えることとなる。その理由は、各ノードが管理するデータの値の範囲は、レコード数が均一になるように決定するのではなく、ランダムまたはノードの識別子のハッシュ値から求めた論理識別子を用いて、データ分布に従って決定するからである。たとえば、ノードが追加または削除された場合も、すべてのノードで担当するデータの範囲を変更する必要がなく、追加または削除されたノードの隣接ノード間で管理するデータの値の範囲を変更すればよいこととなる。
 なお、外部アプリケーションプログラムからサービス提供を受けているクライアント端末などからのデータアクセス要求を受け付け、データを追加、削除、または検索する処理については、後述する実施形態で説明する。
(第2の実施の形態)
 本実施形態の情報システム1は、上記実施形態とは、多次元属性データに対し、空間充填曲線変化処理を施して属性値に基づくデータの分布情報を得ることで、多次元属性データについても同様に宛先を決定できる点で相違する。本実施形態において、上記実施形態で説明した情報システム1の事前処理部120(図4、図5)が事前処理部320に変更になる。
 以下、本実施形態の情報システム1について、説明する。
 図10は、本実施形態の情報システム1のスキーマ管理サーバ102の構成を示す機能ブロック図である。
 本実施形態の情報システム1において、データ群は、多次元の属性を有するデータを含むことができる。さらに、情報システム1は、データ群から予め定められた属性値に基づくデータに含まれる多次元属性値を、空間充填曲線変換処理を行い1次元化する空間充填曲線1次元化部304と、空間充填曲線1次元化部304により1次元化された値の累積分布を算出する分布算出部308と、を備える。
 そして、後述する事前処理部320は、分布算出部308が算出した累積分布を分布情報として処理を行う。
 図12は、本実施形態の情報システム1の事前処理部320の構成を示す機能ブロック図である。
 本実施形態の情報システム1は、データ群のデータの分布を表す分布関数を求め、各ノードの論理識別子を入力として、当該分布関数の逆関数を施し、1次元値を出力する逆関数部324と、1次元値を、空間充填曲線変換処理により多次元値に変換する空間充填曲線多次元化部(空間充填曲線サーバ変換部326)と、をさらに備える。
 そして、ノードの論理識別子の集合に対し、逆関数部324により逆関数を施して生成された1次元値の集合を、空間充填曲線サーバ変換部326により多次元値に変換し、得られた多次元値と、論理識別子と、宛先アドレスとを対応付けて対応関係として保持する。
 具体的には、図10に示すように、スキーマ管理サーバ102は、サンプルデータ格納部302と、空間充填曲線1次元化部304と、サンプルデータ1次元値格納部306と、分布算出部308と、分布格納部310と、を備え、多次元属性のデータを1次元化した分布情報の生成を行う。
 サンプルデータ格納部302には、当該分散システムに格納される多次元属性データの一部、あるいは、その分布情報が互いに類似するデータの集合が予め与えられ格納される。
 サンプルデータ1次元値格納部306には、サンプルの多次元属性データを1次元値に変換した値が格納される。
 分布格納部310には、当該分散システムに格納される多次元属性データの一部、あるいは、その分布情報が互いに類似するデータの集合と同一の分布情報を有する、1次元の累積分布情報が格納される。
 空間充填曲線1次元化部304は、多次元属性の値を予め定められた空間充填曲線の種別に応じて、1次元値に変換する。空間充填曲線の種別としては、ヒルベルト空間充填曲線や、Zカーブ空間充填曲線などがある。変換には変換規則表を利用する方式などがある。
 ここで、多次元データを1次元化する方法として、図11に示す変換規則を用いる方法を述べるが、別の方式であってもよい。図11は、本実施形態の情報システム1における空間充填曲線の変換規則のブロック図および状態遷移図を示す。また、空間充填曲線の種別としてヒルベルト空間充填曲線の変換規則を示すが、別のZカーブ空間充填曲線などでもよく、その場合は、図11とは異なる変換規則となる。図11の変換規則は2次元の場合の規則を示しており、変換規則の上段は特定ビット目の多次元値を示し、下段は対応する1次元値を示す。
 2次元の場合は、特定ビット目のビットの組合せは4通り(00、01、10、11)存在するため、4つの変換規則を変換規則表と呼び、変換規則表は、変換規則表状態(0、1、2、3)で識別される。
 ある変換規則表の状態にて、入力として特定ビット目の多次元値が与えられると、その変換規則表の状態の変換規則表の内、当該多次元値を上段に持つ変換規則が得られ、対応する下段の1次元値が得られるとともに、その多次元値に対応する次の変換規則表状態に遷移する。
 次の状態では、次のビット目の多次元値が入力として与えられ、対応する1次元値が得られる。状態遷移を繰り返して得られる1次元値のビットを先頭ビットから順につなげて得られる値が、空間充填曲線1次元化部304から出力される。空間充填曲線1次元化部304(図10)から出力された1次元値は、サンプルデータ1次元値格納部306(図10)に格納される。
 図10に戻り、分布算出部308は、1次元の値の集合を入力として、そのデータの密度分布情報や累積分布情報をヒストグラムあるいは累積ヒストグラムなどの形式で算出する。密度分布情報を表すヒストグラムであれば、1次元値を一定の幅に区切り、その幅に存在するデータを数え上げ、その量を分布量とするなどでよい。
 また、幅は一定でなく、区切り毎に異なり、分布幅と分布量の対の集合としてヒストグラムが表現されてもよい。ヒストグラムが算出される場合は、1次元値が単調増加する方向に累積値を取る累積ヒストグラムに変換するなどで、累積ヒストグラムを得る。分布算出部308により算出された1次元の累積分布情報は、分布格納部310に格納される。
 図12は、本実施形態の情報システム1の事前処理部320の構成を示す機能ブロック図である。
 本実施形態の情報システム1において、論理識別子の集合(範囲)と、対応する宛先アドレスと、を対応付けた宛先サーバテーブルを記憶する宛先サーバ記憶部(宛先サーバ情報格納部322)と、分布情報を用いた分布関数の逆関数を施す逆関数部324と、1次元値を、空間充填曲線変換処理により多次元値に変換する空間充填曲線多次元化部(空間充填曲線サーバ変換部326)と、をさらに備え、宛先サーバテーブルを参照し、各コンピュータに(分布が統計的に均一になるように)割り当てられた論理識別子(ハッシュ値)の集合に対し、逆関数部324により逆関数を施して生成される1次元値の集合を、空間充填曲線多次元化部(空間充填曲線サーバ変換部326)により多次元値に変換し、宛先アドレスと対応付けて予め対応情報テーブル(空間充填曲線サーバ情報格納部328の空間充填曲線サーバ情報テーブル332(図13))に記憶する。
 具体的には、図12に示すように、事前処理部320は、宛先サーバ情報格納部322と、逆関数部324と、空間充填曲線サーバ変換部326と、空間充填曲線サーバ情報格納部328と、を備え、空間充填曲線サーバ情報を作成する機能を有する。
 宛先サーバ情報格納部322には、上述したデータの格納先やメッセージ転送先を決定するための論理識別子の集合と、ノードの宛先アドレスとの対応が複数格納されている。たとえば、Consistent Hashingや分散ハッシュテーブルの場合は、ハッシュ値と宛先ノードのIPアドレスなどが宛先サーバ情報格納部322に格納される。宛先サーバ情報格納部322は、ノード毎に設けることができる。
 また、本実施形態の情報システム1において、ネットワーク3上のノードが追加または削除されたとき、ノードの論理識別子の集合を変更し、その変更に伴い、対応関係(図6の宛先サーバ情報テーブル330、および後述する図13の空間充填曲線サーバ情報テーブル332)を更新する更新部(不図示)をさらに備えてもよい。
 分散ハッシュテーブルの様々なアルゴリズムのうち、たとえば、Chordの場合は、SuccessorListやFingerTableがこの対応関係に相当する。
 図12に戻り、空間充填曲線サーバ情報格納部328には、多次元属性空間の部分空間に対する、他のコンピュータの宛先アドレスが複数格納される。多次元属性空間の部分空間を表現する形式は、たとえば、多次元属性空間の起点の1次元値を列挙して表現してもよく、次元数分の属性範囲の和集合を列挙して表現してもよく、どの次元の何ビット目の値などの条件の和集合を列挙して表現してもよい。
 本実施形態では、図13に示すように、空間充填曲線サーバ情報格納部328は、宛先アドレス(IP)に対応する論理識別子(ID)の範囲(属性空間)の起点を1次元で表現した値を宛先アドレスと対応付けて空間充填曲線サーバ情報テーブル332として格納している。なお、図13では、空間充填曲線サーバ情報テーブル332に論理識別子(ID)と宛先アドレス(IP)の両方が含まれているが、たとえば、論理識別子(ID)は含まれなくてもよい。また、論理識別子(ID)と宛先アドレス(IP)の対応テーブルを別途有している場合は、空間充填曲線サーバ情報テーブル332は、論理識別子(ID)と宛先アドレス(IP)のいずれか一方を含めばよい。
 ここで、空間充填曲線サーバ変換部326(図12)が、1次元値を、空間充填曲線変換処理により多次元値に変換し、1次元値ではなく、多次元値として空間充填曲線サーバ情報テーブル332に格納してもよい。空間充填曲線サーバ情報テーブル332に1次元値として格納した場合は、これを参照する際には、与えられた多次元属性値あるいは多次元属性範囲を、空間充填曲線による処理を行いながら参照する必要がある。一方、空間充填曲線サーバ情報テーブル332に多次元値として格納した場合は、これを参照する際には、空間充填曲線による処理は不要となる。たとえば、図24の多次元属性宛先表333に示すような、各ノードの多次元属性範囲を表形式に変換し、空間充填曲線サーバ情報テーブル332として空間充填曲線サーバ情報格納部328に格納してもよい。
 図12に戻り、逆関数部324は、分布格納部310に格納されている累積分布情報を用いて、これを関数として表した累積分布関数r=CDF(v)の逆関数v=ICDF(r)を施すことで得られる値に対応するように、入力値に対して1次元値を出力する。累積ヒストグラムを用いる場合、この区分iの累積分布割合をr[i]、1次元値をv[i]とする。
 たとえば、予め昇順にソートされた表から、与えられた入力値がrであるとすると、r[i]=rである区分iが存在する場合は、v[i]を出力する。そうでない場合、r[i-1]<r<r[i]であるような区分iを見つけ、次の式(1)で対応する1次元値を算出する。
Figure JPOXMLDOC01-appb-M000001
 空間充填曲線サーバ変換部326は、逆関数部324で算出された宛先サーバ毎の1次元値を入力として、空間充填曲線変換処理により多次元値に変換する。さらに、空間充填曲線サーバ変換部326は、空間充填曲線サーバ情報格納部328に格納される空間充填曲線サーバ情報テーブル332の上述した形式に応じて、サーバ毎の1次元値を予め定められた空間充填曲線サーバ情報の形式に変換し、空間充填曲線サーバ情報テーブル332を作成し、空間充填曲線サーバ情報格納部328に格納する。なお、形式の変換は行わず、各サーバのアドレスと、逆関数部324により得られた1次元値との対を含む情報のままでもよい。
 図14は、本実施形態の情報システム1の要部構成を示す機能ブロック図である。
 本実施形態の情報システム1は、さらに、複数のコンピュータに分散して格納されるデータ群に対し、データの処理の操作要求とともに、操作要求を受け付けたデータに対応する属性値を受け付ける操作要求部360と、決定部(空間充填曲線サーバ決定部346)が決定した宛先アドレスに、受け付けた操作要求を転送する転送部(中継部380または操作要求部360)と、を備え、決定部(空間充填曲線サーバ決定部346)は、操作要求部360が受け付けた属性値に基づいて、宛先アドレスを決定し、中継部380(または操作要求部360)に受け渡す。
 具体的には、図14に示すように、宛先解決部340は、単一宛先解決部342と、範囲宛先解決部344と、空間充填曲線サーバ決定部346と、を有する。本実施形態では、宛先解決部340は、単一宛先解決部342と範囲宛先解決部344を両方備える構成としているが、特に限定されるものではなく、いずれか一方であってもよい。
 また、操作要求部360は、データ追加削除部362と、データ検索部364と、を有する。
 さらに、データ格納サーバ106は、データ格納部390を備えている。
 単一宛先解決部342は、与えられたデータの多次元属性の値を入力として、そのデータに関する操作要求を送信すべき宛先のコンピュータの宛先アドレスを取得する。
 範囲宛先解決部344は、与えられた多次元属性の範囲を入力として、そのデータに関する操作要求を送信すべき宛先のコンピュータの宛先アドレスを複数取得する。
 空間充填曲線サーバ決定部346は、空間充填曲線サーバ情報格納部328に格納された空間充填曲線サーバ情報を取得する。そして、空間充填曲線サーバ決定部346は、空間充填曲線サーバ情報を参照しながら、単一宛先解決部342または範囲宛先解決部344から通知された多次元属性値の値または多次元属性の範囲と対応する1つまたは複数のコンピュータの宛先を単一宛先解決部342または範囲宛先解決部344にそれぞれ返す。
 データ追加削除部362(図1のデータ操作クライアント104の操作要求部360)は、外部のアプリケーションプログラム等にデータへの追加削除操作サービスを利用者に提供する。さらに、データ追加削除部362は、利用者によりアプリケーションプログラムが実行され、データの追加削除操作が要求されると、操作要求の対象となるデータに関して、予めインデックス付けすると決められた複数属性について、操作要求で指定された値を取得する。そして、データ追加削除部362は、この多次元の属性値に関する操作要求を送信すべき宛先のコンピュータのアドレスを宛先解決部340から取得する。そして、さらに、データ追加削除部362は、取得したその宛先のアドレスのコンピュータに対して、操作を転送する。操作を実行すべきコンピュータ(データ格納サーバ106)のデータ追加削除部362が、操作を受信すると、該当するデータ格納部390に対してデータの追加や削除の処理を行い、データの追加や削除の処理の結果を、当該サービスを呼び出したプログラムに返却する。
 ここで、アプリケーションプログラムは、たとえば、ウェブアプリケーションであり、各種ショッピングサイトなどのアプリケーションプログラムである。
 データ検索部364(図1のデータ操作クライアント104の操作要求部360)は、外部のアプリケーションプログラム等にデータの検索サービスを提供する。このデータ検索処理が実行されると、データ検索部364は、検索要求で指定された検索式から、予めデータにインデックス付けすると決められた複数属性の範囲を取得する。そして、データ検索部364は、この多次元の属性範囲に関する操作要求を送信すべき宛先のコンピュータのアドレスを複数取得する。そして、データ検索部364は、そのそれぞれのコンピュータに対して、操作を転送する。操作を実行すべきコンピュータ(データ格納サーバ106)のデータ追加削除部362が、操作を受信すると、該当するデータ格納部390に対してデータの検索処理を行い、その結果得られるデータ検索の結果を、当該サービスを呼び出したプログラムに返却する。
 本実施形態では、操作要求部360は、データ追加削除部362とデータ検索部364を両方備える構成としているが、特に限定されるものではなく、いずれか一方であってもよい。また、データ追加削除部362またはデータ検索部364以外のデータ処理部を備えてもよい。たとえば、データ処理部は、条件を指定して複数データ集合に対する検索や、条件指定の更新処理などの要求を受け付け、処理を行ってもよい。
 なお、本発明の情報システム1は、少なくとも空間充填曲線サーバ情報テーブル332を記憶する空間充填曲線サーバ情報格納部328と、空間充填曲線サーバ決定部346と、利用者からの処理対象となるデータの属性値(属性空間を含む)を含む操作要求を受け付ける操作要求受付部(不図示)と、を備えていればよい。
 中継部380は、他のコンピュータの操作要求部360または中継部380から転送された操作要求を受け付けて、他のコンピュータに転送する機能を有する。その転送先は、上述したように、受け付けた操作要求に含まれる属性値や属性に対する検索条件をもとに、その中継部380と同一のコンピュータに存在する宛先解決部340に問い合わせることで決定する。
 データ格納部390には、当該分散システムに格納されるデータが格納され、外部からのデータ書込み、読み込み要求に応じて、データの読み出しや書き出しが行われる。
 上述のような構成において、本実施形態の情報システム1の管理方法を以下に説明する。
 本実施形態の情報システムの管理方法は、上記実施形態の管理方法に加え、さらに、スキーマ管理サーバ102(図10)において、空間充填曲線1次元化部304(図10)が、データ群から予め定められた属性値に基づくデータに含まれる多次元属性値を、空間充填曲線変換処理を行い1次元化し、分布算出部308(図10)が、1次元化された値の累積分布を算出し、事前処理部320(図12)が、分布算出部308(図10)が算出した累積分布をデータの分布として、論理識別子空間との対応付けを行う。
 さらに、本実施形態の情報システム1の管理方法は、さらに、事前処理部320(図12)において、逆関数部324(図12)が、分布情報を表す分布関数を求め、各ノードの論理識別子を入力として、当該分布関数の逆関数を施し、1次元値を出力し、空間充填曲線サーバ変換部326(図12)が、1次元値を、空間充填曲線変換処理により多次元値に変換し、多次元値と、論理識別子と、宛先アドレスとを対応付けて対応関係(図13の空間充填曲線サーバ情報テーブル332)として保持する。
 上述したように、本実施形態では、逆関数部324が出力した結果は、論理識別子と、宛先アドレスとを対応付けて対応関係(図13の空間充填曲線サーバ情報テーブル332)として保持する。ここで空間充填曲線サーバ変換部326(図12)が、1次元値を、空間充填曲線変換処理により多次元値に変換し、1次元値ではなく、多次元値として対応関係(図13の空間充填曲線サーバ情報テーブル332)に格納してもよい。
 このように構成された本実施形態の情報システム1の動作について、以下に説明する。
 まず、本実施形態の情報システム1における1次元化された多次元分布を生成するスキーマ管理サーバ102の動作について説明する。
 本実施の形態のスキーマ管理サーバ102の動作について詳細に説明する。この動作は、本実施形態の情報システム1の起動時、定期的、または手動要求時などのタイミングにより実行される。図15は、本実施形態の情報システム1のスキーマ管理サーバ102における一次元化された多次元分布の生成を行う処理(ステップS101)の一例を示すフローチャートである。以下、図10と図15を用いて説明する。
 まず、スキーマ管理サーバ102が、サンプルデータ格納部302に格納された多次元データのそれぞれについて、以下のステップS103乃至ステップS107を繰り返し実行する(ステップS103)。そして、空間充填曲線1次元化部304が、サンプルデータ格納部302を参照し、多次元データの1次元化を行う(ステップS105)。ステップS105で得られた1次元値が、サンプルデータ1次元値格納部306に格納される(ステップS107)。サンプルデータ格納部302に格納された多次元データについて上記の処理が終わったら、次に、サンプルデータ1次元値格納部306に格納されたデータから、分布算出部308が、累積分布情報を導出し、分布格納部310に格納する(ステップS109)。
 次に、本実施形態の情報システム1の事前処理部320の動作について説明する。図16は、本実施形態の情報システム1の事前処理部320における空間充填曲線サーバ情報を生成する処理(ステップS201)の一例を示すフローチャートである。以下、図12、および図15を用いて説明する。
 まず、事前処理部320(図12)が、宛先サーバ情報格納部322(図12)に格納された宛先のサーバ情報それぞれについて、以下のステップS205およびステップS207を繰り返し実行する(ステップS203)。逆関数部324(図12)が、宛先の論理識別子を正規化し、これに逆関数を施し、1次元の値を得る(ステップS205)。これを、逆関数部324が、図13の空間充填曲線サーバ情報テーブル332として空間充填曲線サーバ情報格納部328(図12)に格納する(ステップS207)。あるいは、ステップS205で得られた1次元値を、空間充填曲線サーバ変換部326(図12)が、多次元属性値とし、これを全てのサーバ情報について処理することで得られる空間充填曲線サーバ情報を、空間充填曲線サーバ情報格納部328(図12)に格納する(ステップS207)。
 次に、本実施形態の情報システム1における操作要求に呼応した宛先解決部340の動作について説明する。
 図17および図18は、本実施形態の情報システム1における操作要求に呼応した宛先解決部340の宛先決定処理(ステップS301)および複数の宛先決定処理(ステップS401)の動作の例それぞれ示すフローチャートである。
 本発明のデータ処理方法は、データ群を分散して管理する複数のノードを管理するサーバに接続されたクライアント端末(外部アプリケーションプログラムのサービス提供を受けている端末(不図示))のデータ処理方法であって、クライアント端末が、属性値または属性範囲を有するデータへのアクセス要求を管理装置(図4のデータ操作クライアント104または操作要求中継サーバ108)に通知し、管理装置を介して、複数のノード(図4のデータ格納サーバ106)の宛先アドレスと、各ノード(データ格納サーバ106)に割り当てられた論理識別子と、各ノード(データ格納サーバ106)が管理しているデータの値の範囲との対応関係に基づいて、アクセス要求された属性値または属性範囲の少なくとも一部が一致する範囲のデータを管理するノード(データ格納サーバ106)の宛先にアクセスしてデータを操作する(図17ステップS309)。
 具体的には、まず、データの登録または削除といった操作で利用される単一宛先解決部342の動作について、図13、図14および図17のフローチャートを参照して説明する。
 本処理は、外部のアプリケーションプログラムなどにおいて、データへの追加削除操作サービスが他のコンピュータにより実行された時、データ追加削除部362(図14)が、処理対象のデータに関する予めインデックス付けすると決められた複数属性に対する値を、ネットワーク3(図14)を介して取得し、単一宛先解決部342(図14)に通知することで、開始する。
 まず、単一宛先解決部342(図14)が、データ追加削除部362(図14)から多次元属性の値を入力し、空間充填曲線サーバ決定部346(図14)に受け渡す(ステップS303)。空間充填曲線サーバ決定部346(図14)が、空間充填曲線サーバ情報格納部328(図14)に格納された空間充填曲線サーバ情報テーブル332(図13)を取得する。そして、空間充填曲線サーバ決定部346が、空間充填曲線サーバ情報テーブル332を参照しながら、多次元属性値の値に対応する1つのコンピュータ(サーバ)の宛先(IPアドレス)を取得し、単一宛先解決部342(図14)に返す(ステップS305)。
 そして、単一宛先解決部342(図14)が、空間充填曲線サーバ決定部346(図14)により決定された宛先を取得し、その宛先のアドレスの他のコンピュータに対して、中継部380により操作要求をネットワーク3(図14)を介して転送する(ステップS307)。そして、転送先のコンピュータにおいて、データ追加削除部362(図14)が操作要求に従いデータの追加や削除操作をデータ格納サーバ106(図14)のデータ格納部390(図14)に対して行う(ステップS309)。そして、データ追加削除部362(図14)が、その操作結果を、当該サービスを呼び出したプログラム(たとえば、プログラムを実行している図1のデータ操作クライアント104)にネットワーク3(図14)を介して返却する(ステップS311)。
 なお、転送先のコンピュータにおいて、さらに、操作要求の転送が必要な場合、宛先解決部340(図14)の単一宛先解決部342(図14)が、操作要求に含まれる多次元属性の値をもとに、宛先を決定する。
 次に、データの検索といった操作で利用される範囲宛先解決部344の動作について、図18のフローチャートを参照して説明する。以下、図13、図14、および図18を用いて説明する。
 本処理は、外部のアプリケーションプログラムなどにおいて、データの検索サービスが他のコンピュータにより実行された時、データ検索部364(図14)が、検索要求で指定された検索式から予めインデックス付けすると決められた複数属性の範囲を、ネットワーク3を介して取得し、範囲宛先解決部344(図14)に通知することで、開始する。
 まず、範囲宛先解決部344(図14)が、データ検索部364(図14)から多次元属性の範囲を入力し、空間充填曲線サーバ決定部346(図14)に受け渡す(ステップS403)。空間充填曲線サーバ決定部346(図14)が、空間充填曲線サーバ情報格納部328(図14)に格納された空間充填曲線サーバ情報テーブル332(図13)を取得する。そして、空間充填曲線サーバ決定部346が、空間充填曲線サーバ情報テーブル332を参照しながら、多次元属性値の範囲に対応する複数のコンピュータ(サーバ)の宛先(IPアドレス)を取得し、範囲宛先解決部344(図14)に返す(ステップS405)。
 そして、範囲宛先解決部344(図14)が、空間充填曲線サーバ決定部346(図14)により決定された複数の宛先を取得し、その複数の宛先のアドレスの他のコンピュータに対して、中継部380(図14)により操作要求をネットワーク3(図14)を介してそれぞれ転送する(ステップS407)。そして、転送先の各コンピュータにおいて、データ検索部364が操作要求に従い、データの検索をデータ格納サーバ106(図14)のデータ格納部390(図14)に対して行う(ステップS409)。そして、データ検索部364(図14)が、その検索結果を、当該サービスを呼び出したプログラム(たとえば、プログラムを実行しているデータ操作クライアント104)にネットワーク3(図14)を介して返却する(ステップS411)。
 なお、転送先のコンピュータにおいて、さらに、操作要求の転送が必要な場合、宛先解決部340(図14)の範囲宛先解決部344(図14)が、操作要求に含まれる多次元属性の範囲をもとに、転送先の宛先(IPアドレス)を決定する。
 具体例として、たとえば、SQL(Structured Query Language)で、CREATE TABLE user (char name, number age, number longitude, ...)というテーブルに対して、CREATE INDEX geo_idx ON user (longitude, latitude)というようなコマンドで、longitude, latitudeという2次元属性にインデックスがつけられ、INSERT INTO user (name, age, longitude, ...) VALUES (hoge,20,35.3..., ...)という登録要求があると、緯度と経度の35.3..., 140.1...という属性値に対して本方式を適用し、その格納先には、name=hogeというプライマリキーの値を格納しておく。このようにすることで、検索時に、SELECT name FROM user WHERE user.age > 20 and user.longitude ... 緯度と経度の範囲から、user.nameに関する値を取得できる。
 すなわち、本実施形態において、データ検索部364(図14)が、INSERT INTO user (name, age, longitude, ...) VALUES (hoge,20,35.3..., ...)という登録要求を受け付け、範囲宛先解決部344(図14)が、SELECT name FROM user WHERE user.age > 20 and user.longitude ... 緯度と経度の範囲から、user.nameに関する値を取得する。
 以上、説明したように、本実施形態の情報システム1によれば、多次元属性値のデータについて、分布情報を生成し、その分布情報に基づき、統計的に均一に多次元属性値のデータを各ノードに割り振ることができる。
 そして、本実施形態の情報システム1によれば、データの登録、削除、検索等の操作の実行以前に、属性値または属性部分空間に対するデータを担当しているコンピュータの宛先情報を下記の手順で準備しておくことができる。
 すなわち、宛先サーバ情報格納部322(図12)に格納される宛先サーバ情報テーブル330(図6)の情報とデータ分布の情報から逆関数部324(図12)を用いて、宛先サーバ毎の1次元値を算出し、与えられた1次元値を入力として、空間充填曲線サーバ変換部326(図12)によって多次元値を出力し、この多次元値と宛先サーバとの対から、空間充填曲線サーバ情報格納部328(図12)に、属性値または属性部分空間に対する宛先情報を格納することができる。
 そして、データの登録、削除、検索等の操作の実行時には、空間充填曲線サーバ情報格納部328(図12)から、属性値または属性部分空間に対する宛先情報を取得し、与えられた属性値や属性条件から、対応する宛先情報を取得することができる。
 すなわち、この構成によれば、予めインデックス付けされた、属性値(属性空間を含む)に基づくデータの部分集合を有するコンピュータを高速に特定することができる。ひいては、ある属性値(属性空間を含む)を有するデータを高速に検索できることとなる。その理由は、空間充填曲線変換を最後まで行う必要がなく、途中で宛先サーバを決定することができるからである。すなわち、属性値を空間充填曲線変換して多次元値を求める途中で、対応情報テーブルを参照しながら属性値に対応する多次元値を1次元で表現した値の先頭ビットから確認していき、属性値に対応する割り当て範囲がみつかったとき、その多次元値に対応する宛先アドレスを決定することができるからである。
 このように、本実施形態の情報システム1によれば、データに対して登録、削除、検索などの操作を行う際、複合インデックスづけされた属性の数(次元数)が多い場合であっても、データの属性値あるいは属性値に対する条件から、当該操作の要求情報を転送する先を決定する処理を高速化することができるという効果を奏する。
 その理由は、データの登録や削除、検索を行う際には、多次元の属性値や属性条件を1次元の値や範囲に変換する処理を行う必要がないからである。
 さらに、データに対して登録、削除、検索などの操作を行うために、データの属性値あるいは属性に対する条件から、当該操作の要求情報を転送する先を決定する際に、複合インデックスづけされたデータのビット長が長くなると、その決定に要する計算時間が増加し、その操作の応答時間などの性能が劣化するという問題点があった。
 その理由は、複合インデックスづけされた属性値を、空間充填曲線処理手段にて1次元の値とする処理は、ビット長が長くなるほど、変換に要する時間が必要となるからである。特に、データの登録または削除時の単一の1次元値を出力するのではなく、検索時の1次元値の範囲を出力する際には、変換に要する時間が増える。
 たとえば、上述した文献記載のシステムにおいては、データに対して登録、削除、検索などの操作を行うために、データの属性値あるいは属性値に対する条件から、当該操作の要求情報を転送する先を決定する際に、複合インデックスづけされた属性の数(次元数)が多くなると、その決定に要する計算時間が増加し、その操作の応答時間などの性能が低下するという問題点があった。
 その理由は、複合インデックスづけされた属性値を、空間充填曲線処理手段にて1次元の値とする処理が、次元数が増えるほど、変換に要する時間が必要となるからである。特に、データの登録または削除時の単一の1次元値を出力するのではなく、検索時の1次元値の範囲を出力する際には、変換に要する時間が増える。
 本実施形態の情報システム1によれば、さらに、データに対して登録、削除、検索などの操作を行う際、複合インデックスづけされたデータ型のビット長が長い場合であっても、データの属性値あるいは属性値に対する条件から、当該操作の要求情報を転送する先を決定する処理を高速化することができるという効果を奏する。
 その理由は、データの登録や削除、検索を行う際には、多次元の属性値や属性条件を1次元の値や範囲に変換する処理を行う必要がないからである。
 次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。以下、図1、図2、図10、図12乃至図14、図16、および図19乃至図23を用いて説明する。
 本実施例では、図2に示すように、アクセスコンピュータ202から、複数のデータコンピュータ208に格納されたデータを操作する例を示す。図2のアクセスコンピュータ202には図1のデータ操作クライアント104が存在し、図2のメタデータコンピュータ204には図1のスキーマ管理サーバ102が存在し、図2のデータコンピュータ208には、図1のデータ格納サーバ106が存在するとする。
 本実施例では、図2のメタデータコンピュータ204における図10のスキーマ管理サーバ102のサンプルデータ格納部302には、図19のデータ分布1001が格納されているとする。
 スキーマ管理サーバ102(図10)における、図16の空間充填曲線サーバ情報の生成処理においては、まず、図10の空間充填曲線1次元化部304は、図19のデータ分布1001に表された各データの多次元属性値から、1次元化を行い、それぞれを図10のサンプルデータ1次元値格納部306に格納する。次に、図10の分布算出部308は、格納された1次元値からその累積分布情報を累積ヒストグラムなどの形式で算出し、図10の分布格納部310に格納する。
 図10の分布算出部308では、まず、図20(a)に示す密度分布情報1003としてヒストグラムが得られるとする。ここでは、図20(b)に示す分布幅と分布量を有した表1005で表されるとする。この密度分布から累積分布に変換し、さらに各区分の分布量を分布量の総和で除した累積分布割合を、図21(b)の表1015に示し、これは図21(a)の累積分布情報(累積ヒストグラム)1013と対応する。また、図22(a)の累積分布情報1023に示されるような、分布幅に対して、図22(b)に示されるように、分布量の傾き(図中、「区間傾き」と示す)を表1025に記憶してもよい。表1025に分布量の傾きを記憶することで、上記実施形態で説明した(式1)における(v[i] - v[i-1])/(r[i] - r [i-1])を毎回計算する必要が不要となる。
 本実施例では、図2のデータコンピュータ208が9台存在しているとし、図2のアクセスコンピュータ202には、図2のデータコンピュータ208にアクセスするアドレス(IPアドレスなど)の情報が格納されているとし、これを図12の宛先サーバ情報格納部322に格納された空間充填曲線サーバ情報テーブル332(図13)のサーバIPアドレス欄に示す。
 ID付与部112により、このサーバIPアドレスをSHA(Secure Hash Algorithm)1やMD5(Message Digest Algorithm 5)などのハッシュ関数に入力して得られる値が、サーバの論理識別子として算出され、図12の同じ宛先サーバ情報格納部322に格納される。論理識別子は、ハッシュ関数によって決まる論理識別子空間サイズを2として[0,2)の範囲に分布する。
 上述したように、“記号[”や、“記号]”は閉区間を表し、“記号(”や“記号)”は開区間を表す。以降では、これを図23に示すように論理識別子空間1100をリング状に示し、この円上に配置する論理識別子1102で、コンピュータを表す。また、以降では論理識別子を論理識別子空間サイズで除して得られる値を正規化論理識別子とする。これは[0,1)の範囲に分布する。なお、各コンピュータは、属性値の分布とは独立に確率的に均一に論理識別子空間1100に割り当てられている。
 アクセスコンピュータ202(図2)による図16の空間充填曲線サーバ情報の生成処理(図16のステップS201)においては、図6の宛先サーバ情報テーブル330に格納された各サーバについて、その正規化論理識別子を逆関数部324(図12)が、1次元値に変換する。この時、逆関数部324(図12)はスキーマ管理サーバ102(図10)における分布格納部310(図10)の累積分布情報を参照する。ここで示す逆関数を算出する手順として、累積ヒストグラムの表1015(図21(b))を用いる場合で例示すると、入力の正規化論理識別子として0.35が与えられると、0.13が返される。
 0.36が与えられると、(0.36-0.35)×(0.16-0.13)/(0.4-0.35)+0.13から、0.136が返される。このようにして得られる[0,1]に分布する1次元値を2進数表現として[000...,111...)と表記でき、空間充填曲線サーバ変換部326(図12)がこの2進数表現での1次元値と各サーバのIPアドレスの情報を図25のように空間充填曲線サーバ情報テーブル332として、空間充填曲線サーバ情報格納部328(図12)に格納する。なお、本実施例では、空間充填曲線サーバ変換部326(図12)は、形式的な変換のみである。なお、図25の例では、1次元値を範囲の起点ではなく、値域端点で保持している。
 アクセスコンピュータ202(図2)において、データ追加削除部362(図14)がデータ登録要求を受け、単一宛先解決部342(図14)が、このデータからインデックス付けされた多次元属性値と対応する宛先の決定を行う。
 ここでは、二次元の属性値を例とし、この値が(3,4)、すなわち2進数表記で(011,100)であるとする。
 空間充填曲線サーバ決定部346(図14)は、各次元の先頭ビットを取り出し第1多次元ビット(01)を得る。初期の変換規則表状態が0であるとする。
 状態0の変換規則から、出力として第1の一次元ビット(01)を出力する。ここで空間充填曲線サーバ情報を参照し、その値域端点のビットパターンが一次元ビット01から始まる値域端点011011(27)にポインタを移動する。
 変換規則にて、入力の多次元ビット列が01の時の変換規則表状態は0であるので、別の表には遷移せずに同じ表を用いる。
 次のビットとして第2多次元ビット(10)を得る。変換規則から出力として第2の1次元ビット(11)が出力され、これを先のビット列に追加し一次元ビット(0111)を得る。得られた0111から始まる値域端点011101(29)にポインタを移動する。第2多次元ビット(10)に対応する遷移先の変換規則状態は2なので、この変換規則表を取得する。
 次のビットとして第3多次元ビット(11)を取り出し、状態2の変換規則表にて、第3の1次元(00)が出力され、これも先のビット列に追加され1次元ビット(011100)、10進数としては28を得る。
 これを値域として管理するノードは、論理識別子が551であり、図25に示す空間充填曲線サーバ情報テーブル332から、IPが10.1.1.5であるノードが選択される。このようにして、宛先を決定することができる。
 以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
 以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2011年9月27日に出願された日本出願特願2011-211157号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (13)

  1.  データ群を分散して管理する複数のノードを備え、
     複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
     複数の前記ノードに対し、論理識別子空間上で論理識別子を付与する識別子付与手段と、
     前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定する範囲決定手段と、
     ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の前記範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する宛先決定手段と、を備える情報システム。
  2.  請求項1に記載の情報システムにおいて、
     前記データ群は、多次元の属性を有するデータを含み、
     前記データ群から予め定められた属性値に基づくデータに含まれる多次元属性値を、空間充填曲線変換処理を行い1次元化する空間充填曲線1次元化手段と、
     前記空間充填曲線1次元化手段により1次元化された値の累積分布を算出する分布算出手段と、をさらに備え、
     前記範囲決定手段は、前記分布算出手段が算出した前記累積分布を前記データの分布として、前記論理識別子空間との対応付けを行う情報システム。
  3.  請求項2に記載の情報システムにおいて、
     前記データの分布を表す分布関数を求め、各前記ノードの前記論理識別子を入力として、当該分布関数の逆関数を施し、1次元値を出力する逆関数手段と、
     前記1次元値を、空間充填曲線変換処理により多次元値に変換する空間充填曲線多次元化手段と、をさらに備え、
     前記ノードの前記論理識別子の集合に対し、前記多次元値と、前記論理識別子と、前記宛先アドレスとを対応付けて前記対応関係として保持する情報システム。
  4.  請求項1乃至3いずれかに記載の情報システムにおいて、
     複数の前記ノードが分散して管理する前記データ群の前記データは、予め定められた条件範囲の属性値を有するデータの集合、または予め定められた類似の分布を有するデータの集合を含む情報システム。
  5.  請求項1乃至4いずれかに記載の情報システムにおいて、
     複数の前記ノードに分散して格納される前記データ群に対し、データの処理の操作要求とともに、前記操作要求を受け付けた前記データに対応する属性値を受け付ける操作要求受付手段と、
     前記宛先決定手段が決定した前記宛先アドレスに、受け付けた前記操作要求を転送する転送手段と、をさらに備え、
     前記宛先決定手段は、前記操作要求受付手段が受け付けた前記属性値に基づいて、前記宛先アドレスを決定し、前記転送手段に受け渡す情報システム。
  6.  請求項5に記載の情報システムにおいて、
     前記操作要求受付手段が受け付ける前記操作要求は、前記データの登録、削除、または検索を行う情報システム。
  7.  請求項1乃至6いずれかに記載の情報システムにおいて、
     前記ノード毎に前記対応関係を記憶する記憶手段をさらに備える情報システム。
  8.  請求項1乃至7いずれかに記載の情報システムにおいて、
     前記ネットワーク上の前記ノードが追加または削除されたとき、
     前記ノードの前記論理識別子の集合を変更し、その変更に伴い、前記対応関係を更新する更新手段をさらに備える情報システム。
  9.  データ群を分散して管理する複数のノードを管理する情報システムの管理方法であって、
     複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
     前記情報システムは、管理装置と、記憶装置と、を有し、
     前記管理装置が、
     複数の前記ノードに対し、論理識別子空間上で論理識別子を付与し、
     前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定し、
     ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の前記範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する情報システムの管理方法。
  10.  データ群を分散して管理する複数のノードを管理する管理装置を実現するコンピュータのプログラムであって、
     複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
     前記管理装置は、記憶装置を有し、
     前記管理装置を実現するコンピュータに、
     複数の前記ノードに対し、論理識別子空間上で論理識別子を付与する手順、
     前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲を決定する手順、
     ある属性値または属性範囲のデータの格納先の前記ノードの宛先を探索するとき、各前記ノードの前記データの値の範囲と、前記論理識別子と、前記宛先アドレスとの対応関係に基づき、前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、当該論理識別子に対応する前記ノードの宛先アドレスを前記宛先として決定する手順を実行させるためのプログラム。
  11.  請求項9に記載の情報システムの管理方法の管理装置に接続され、前記管理装置を介して前記データにアクセスする端末装置のデータ処理方法であって、
     前記端末装置が、
      属性値または属性範囲を有するデータへのアクセス要求を前記管理装置に通知し、
      前記管理装置を介して、複数の前記ノードの宛先アドレスと、各ノードに割り当てられた論理識別子と、各ノードが管理している前記データの値の範囲との対応関係に基づいて、前記アクセス要求された前記属性値または前記属性範囲の少なくとも一部が一致する範囲の前記データを管理する前記ノードの宛先にアクセスして前記データを操作する端末装置のデータ処理方法。
  12.  データ群を分散して管理する複数のノードを管理するサーバに接続されたクライアント端末を実現するコンピュータのプログラムであって、
     複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
     前記クライアント端末を実現するコンピュータに、
      属性値または属性範囲を有するデータへのアクセス要求を受け付ける手順、
      受け付けた前記アクセス要求を前記サーバに通知する手順、
      複数の前記ノードの宛先アドレスと、各ノードに割り当てられた論理識別子と、各ノードが管理している前記データの値の範囲との対応関係に基づいて、前記アクセス要求された前記属性値または前記属性範囲の少なくとも一部が一致する前記データの範囲に対応する前記論理識別子を求め、前記宛先として決定された前記論理識別子に対応する前記ノードの宛先アドレスを前記サーバから受信する手順、
      前記サーバから受信した前記宛先アドレスの前記ノードにアクセスし、前記属性値または前記属性範囲の前記データを操作する手順を実行させるためのプログラム。
  13.  データ群を分散して管理する複数のノードの宛先を決定する際に参照する宛先テーブルのデータ構造であって、
     複数の前記ノードは、それぞれネットワーク上で識別可能な宛先アドレスを有し、
     前記宛先テーブルは、前記データ群を分散して管理する複数のノードの宛先アドレスと、各ノードに論理識別子空間上で付与された論理識別子と、各前記ノードが管理するデータの値の範囲との対応関係を含み、
     各前記ノードのデータの値の範囲は、前記論理識別子空間と、前記データ群におけるデータの分布と、を対応付け、各前記ノードの前記論理識別子に対応する前記データの値の範囲が各ノードに割り振られるデータ構造。
PCT/JP2012/006152 2011-09-27 2012-09-26 情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造 WO2013046667A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/348,041 US20140244794A1 (en) 2011-09-27 2012-09-26 Information System, Method and Program for Managing the Same, Method and Program for Processing Data, and Data Structure
JP2013535916A JP6135509B2 (ja) 2011-09-27 2012-09-26 情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011211157 2011-09-27
JP2011-211157 2011-09-27

Publications (1)

Publication Number Publication Date
WO2013046667A1 true WO2013046667A1 (ja) 2013-04-04

Family

ID=47994747

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/006152 WO2013046667A1 (ja) 2011-09-27 2012-09-26 情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造

Country Status (3)

Country Link
US (1) US20140244794A1 (ja)
JP (1) JP6135509B2 (ja)
WO (1) WO2013046667A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018225314A1 (ja) * 2017-06-05 2018-12-13 株式会社東芝 データベース管理システムおよびデータベース管理方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9681003B1 (en) * 2013-03-14 2017-06-13 Aeris Communications, Inc. Method and system for managing device status and activity history using big data storage
JP2015075830A (ja) * 2013-10-07 2015-04-20 富士通株式会社 並列処理管理プログラム、並列処理管理方法、及び、並列処理管理装置
CN106527990B (zh) * 2016-11-09 2019-08-30 浪潮天元通信信息系统有限公司 一种网管信息处理服务器、方法和系统
US10812526B2 (en) * 2017-04-24 2020-10-20 Caligo Systems Ltd. Moving target defense for securing internet of things (IoT)
CN111149127A (zh) * 2017-12-04 2020-05-12 索尼公司 信息处理装置、信息处理方法和程序
CN110225144B (zh) * 2018-03-02 2021-03-23 华为技术有限公司 获取及提供服务的方法、用户设备和管理服务器
US11921767B1 (en) * 2018-09-14 2024-03-05 Palantir Technologies Inc. Efficient access marking approach for efficient retrieval of document access data
JP7414617B2 (ja) * 2020-03-31 2024-01-16 キヤノン株式会社 システム、サーバー装置、および方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234563A (ja) * 2007-03-23 2008-10-02 Nec Corp オーバレイ管理装置、オーバレイ管理システム、オーバレイ管理方法およびオーバレイ管理用プログラム
JP2009522660A (ja) * 2005-12-29 2009-06-11 アマゾン・テクノロジーズ・インコーポレーテッド 検索可能なデータサービスのための方法及び装置
JP2010509692A (ja) * 2006-11-14 2010-03-25 シーメンス アクチエンゲゼルシヤフト ピアツーピア・オーバーレイ・ネットワークにおける負荷分散のための方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7773088B2 (en) * 2000-06-19 2010-08-10 Mental Images Gmbh Simultaneous simulation of markov chains using quasi-monte carlo techniques
US7167856B2 (en) * 2001-05-15 2007-01-23 Jonathan Keir Lawder Method of storing and retrieving multi-dimensional data using the hilbert curve
US7483391B2 (en) * 2003-09-19 2009-01-27 Hewlett-Packard Development Company, L.P. Providing a notification including location information for nodes in an overlay network
US7788400B2 (en) * 2003-09-19 2010-08-31 Hewlett-Packard Development Company, L.P. Utilizing proximity information in an overlay network
US20050108203A1 (en) * 2003-11-13 2005-05-19 Chunqiang Tang Sample-directed searching in a peer-to-peer system
US7313565B2 (en) * 2004-02-19 2007-12-25 Microsoft Corporation Data overlay, self-organized metadata overlay, and associated methods
US7418454B2 (en) * 2004-04-16 2008-08-26 Microsoft Corporation Data overlay, self-organized metadata overlay, and application level multicasting
JP2006024168A (ja) * 2004-07-06 2006-01-26 Fujitsu Ltd サーバシステム,ユーザ端末並びに同サーバシステムおよび同ユーザ端末を用いたサービス提供方法
US7529196B2 (en) * 2004-12-07 2009-05-05 Hewlett-Packard Development Company, L.P. Routing a service query in an overlay network
US8208477B1 (en) * 2005-08-24 2012-06-26 Hewlett-Packard Development Company, L.P. Data-dependent overlay network
US20070079004A1 (en) * 2005-09-30 2007-04-05 Junichi Tatemura Method and apparatus for distributed indexing
US20070150498A1 (en) * 2005-12-23 2007-06-28 Xerox Corporation Social network for distributed content management
US8693392B2 (en) * 2007-02-21 2014-04-08 Avaya Canada Corp. Peer-to-peer communication system and method
US8028019B2 (en) * 2007-02-28 2011-09-27 Solid State Networks, Inc. Methods and apparatus for data transfer in networks using distributed file location indices
US20090132716A1 (en) * 2007-11-15 2009-05-21 Junqueira Flavio P Fault-tolerant distributed services methods and systems
US8385267B2 (en) * 2010-02-19 2013-02-26 Research In Motion Limited Client routing in a peer-to-peer overlay network
US8892569B2 (en) * 2010-12-23 2014-11-18 Ianywhere Solutions, Inc. Indexing spatial data with a quadtree index having cost-based query decomposition

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009522660A (ja) * 2005-12-29 2009-06-11 アマゾン・テクノロジーズ・インコーポレーテッド 検索可能なデータサービスのための方法及び装置
JP2010509692A (ja) * 2006-11-14 2010-03-25 シーメンス アクチエンゲゼルシヤフト ピアツーピア・オーバーレイ・ネットワークにおける負荷分散のための方法
JP2008234563A (ja) * 2007-03-23 2008-10-02 Nec Corp オーバレイ管理装置、オーバレイ管理システム、オーバレイ管理方法およびオーバレイ管理用プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018225314A1 (ja) * 2017-06-05 2018-12-13 株式会社東芝 データベース管理システムおよびデータベース管理方法

Also Published As

Publication number Publication date
JP6135509B2 (ja) 2017-05-31
US20140244794A1 (en) 2014-08-28
JPWO2013046667A1 (ja) 2015-03-26

Similar Documents

Publication Publication Date Title
JP6135509B2 (ja) 情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造
JP6094487B2 (ja) 情報システム、管理装置、データ処理方法、データ構造、プログラム、および記録媒体
JP5759915B2 (ja) ファイルリスト生成方法及びシステム並びにプログラム、ファイルリスト生成装置
US8713182B2 (en) Selection of a suitable node to host a virtual machine in an environment containing a large number of nodes
US20150215405A1 (en) Methods of managing and storing distributed files based on information-centric network
JP2013156881A (ja) ファイルリスト生成方法及びシステム、ファイルリスト生成装置並びにプログラム
JP2009295127A (ja) アクセス方法、アクセス装置及び分散データ管理システム
US20130198198A1 (en) Generating method, generating system, and recording medium
US9875270B1 (en) Locking item ranges for creating a secondary index from an online table
Papapetrou et al. PCIR: Combining DHTs and peer clusters for efficient full-text P2P indexing
Malensek et al. Expressive query support for multidimensional data in distributed hash tables
JP7202558B1 (ja) ヒューマンサイバーフィジカル融合環境におけるデジタルオブジェクトアクセス方法及びシステム
Goswami et al. Graphmap: Scalable iterative graph processing using nosql
CN107408239B (zh) 通过多个邮箱在通信应用中进行海量数据管理的架构
Hassanzadeh-Nazarabadi et al. Laras: Locality aware replication algorithm for the skip graph
US11216421B2 (en) Extensible streams for operations on external systems
Cheng et al. A Multi-dimensional Index Structure Based on Improved VA-file and CAN in the Cloud
Zhu et al. Efficient MapReduce algorithms for triangle listing in billion-scale graphs
WO2015049734A1 (ja) 検索システム及び検索方法
CN117171161A (zh) 数据查询方法及装置
Karunarathna et al. Scalable graph convolutional network based link prediction on a distributed graph database server
Mathew et al. Novel research framework on SN's NoSQL databases for efficient query processing
Li et al. A PR-quadtree based multi-dimensional indexing for complex query in a cloud system
Hewasinghage et al. Modeling strategies for storing data in distributed heterogeneous NoSQL databases
JP2016062522A (ja) データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12836583

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013535916

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14348041

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 12836583

Country of ref document: EP

Kind code of ref document: A1