JPWO2012164735A1 - 情報処理装置、データ管理方法およびデータ管理プログラム - Google Patents

情報処理装置、データ管理方法およびデータ管理プログラム Download PDF

Info

Publication number
JPWO2012164735A1
JPWO2012164735A1 JP2013517787A JP2013517787A JPWO2012164735A1 JP WO2012164735 A1 JPWO2012164735 A1 JP WO2012164735A1 JP 2013517787 A JP2013517787 A JP 2013517787A JP 2013517787 A JP2013517787 A JP 2013517787A JP WO2012164735 A1 JPWO2012164735 A1 JP WO2012164735A1
Authority
JP
Japan
Prior art keywords
segment
segments
data
threshold value
key
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.)
Granted
Application number
JP2013517787A
Other languages
English (en)
Other versions
JP5633646B2 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2012164735A1 publication Critical patent/JPWO2012164735A1/ja
Application granted granted Critical
Publication of JP5633646B2 publication Critical patent/JP5633646B2/ja
Expired - Fee Related 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

Landscapes

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

Abstract

データ管理の負荷が集中することを抑制する。
情報処理装置(10)は、キーの集合を複数のセグメントに分割し、キーと対応付けて記憶されるデータをセグメント単位で管理する情報処理システムに用いられる。記憶部(11)は、複数のセグメントのうち少なくともセグメント#1,#2について、キーとセグメントとの関係を示すセグメント情報を記憶する。制御部(12)は、セグメント情報を参照し、セグメント#1に属するキーと対応付けて記憶されているデータの量と閾値#1に基づいて、セグメント#1を2以上のセグメントに分割するか判定する。閾値#1は、セグメント#2を分割するか判定するために用いられる閾値#2とは異なる値をとる。

Description

本発明は情報処理装置、データ管理方法およびデータ管理プログラムに関する。
情報処理システムにおけるデータ管理方法の1つとして、キーとデータとを対応付けて1またはそれ以上の記憶装置に保存しておく方法が考えられる。アプリケーションソフトウェアなどのソフトウェアは、例えば、キーを指定して、データの読み出し(リード)や書き込み(ライト)などのデータ操作を行う。データを複数の記憶装置に分散して保存する場合、例えば、キーとハッシュ関数を用いて、データの保存先の記憶装置を決定し、また、所望のデータが保存されている記憶装置を検索する方法が考えられる。
また、データを効率的に管理できるように、キーの集合を複数のセグメントに分割し、セグメント単位でデータを管理する方法が考えられる。例えば、セグメント単位で、データの保存先の記憶装置を決定することが考えられる。キーの集合を複数のセグメントに分割してキーをセグメントに割り当てる方法として、例えば、PHT(Prefix Hash Tree)と呼ばれる2分木を用いる方法が提案されている。
PHTの各ノードには、ルートノードからの深さに応じた長さの2進数がラベルとして付与される。ルートノードは、ノード0とノード1を子ノードとしてもつ。ノード0は、ノード00とノード01を子ノードとしてもつ。キーを2進数で表記したときのプレフィックス(キーの先頭から数ビットの部分)とラベルとを比較することで、各キーが何れか1つの葉ノード(子ノードをもたないノード)に割り当てられる。そして、葉ノードに相当するセグメント単位で、キーおよびデータが管理される。PHTの深さ(セグメントの分割の程度)は、例えば、管理するデータの量に応じて決定される。
Yatin Chawathe, Sriram Ramabhadran, Sylvia Ratnasamy, Anthony LaMarca, Scott Shenker and Joseph Hellerstein, "A Case Study in Building Layered DHT Applications", Proc. of the ACM SIGCOMM 2005 conference on Applications, technologies, architectures and protocols for computer communications, August 22-26, 2005.
ところで、情報処理システムを運用するに従い、記憶装置にデータが書き込まれて、管理するデータの量が増加することがある。そこで、データをセグメント単位で管理するとき、データ量が大きくなったセグメントを、更に複数のセグメントに動的に分割することが考えられる。しかし、セグメントを分割するか否かを判定する基準の設定方法によっては、複数のセグメントの分割が同時期に集中して発生してしまう場合があるという問題がある。セグメントの分割が同時期に集中すると、データの移動や管理情報の更新などの処理によって情報処理システムの負荷が増大し、当該時期に要求されたデータ操作への応答が遅延するなどの性能低下が生じるおそれがある。
一つの側面では、本発明は、データ管理の負荷が集中することを抑制できる情報処理装置、データ管理方法およびデータ管理プログラムを提供することを目的とする。
一実施態様では、キーの集合を複数のセグメントに分割し、キーと対応付けて記憶装置に記憶されるデータをセグメント単位で管理する情報処理システムに用いられる情報処理装置が提供される。情報処理装置は、記憶部と制御部を有する。記憶部は、複数のセグメントのうち少なくとも第1および第2のセグメントについて、キーとセグメントとの関係を示すセグメント情報を記憶する。制御部は、セグメント情報を参照し、第1のセグメントに属するキーと対応付けて記憶されているデータの量と第1の閾値とに基づいて、第1のセグメントを2以上のセグメントに分割するか判定する。第1の閾値は、第2のセグメントを分割するか判定するために用いられる第2の閾値とは異なる値をとる。
また、一実施態様では、キーの集合を複数のセグメントに分割し、キーと対応付けて記憶装置に記憶されるデータをセグメント単位で管理する情報処理システムが行うデータ管理方法が提供される。データ管理方法では、複数のセグメントのうちの第1のセグメントに属するキーと対応付けて記憶装置に記憶されているデータの量を算出する。算出したデータの量と第1のセグメントに応じた第1の閾値とに基づいて、第1のセグメントを2以上のセグメントに分割するか判定する。第1の閾値は、複数のセグメントのうちの第2のセグメントを分割するか判定するために用いられる第2の閾値とは異なる値をとる。
また、一実施態様では、キーの集合を複数のセグメントに分割し、キーと対応付けて記憶装置に記憶されるデータをセグメント単位で管理する情報処理システムに用いられるコンピュータに実行させるデータ管理プログラムが提供される。データ管理プログラムは、コンピュータに、以下の処理を実行させる。複数のセグメントのうちの第1のセグメントに属するキーと対応付けて記憶装置に記憶されているデータの量を算出する。算出したデータの量と第1のセグメントに応じた第1の閾値とに基づいて、第1のセグメントを2以上のセグメントに分割するか判定する。第1の閾値は、複数のセグメントのうちの第2のセグメントを分割するか判定するために用いられる第2の閾値とは異なる値をとる。
一実施態様によれば、データ管理の負荷が集中することを抑制できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の情報処理装置を示す図である。 第2の実施の形態の情報処理システムを示す図である。 サーバ装置のハードウェア例を示すブロック図である。 リクエスト処理の例を示す図である。 セグメント管理ツリーの例を示す図である。 サーバ装置へのセグメントの配置方法の例を示す図である。 サーバ装置のソフトウェア例を示すブロック図である。 リクエスト処理を示すフローチャートである。 セグメント分割を示すフローチャートである。 セグメントの閾値の例を示す図である。 リクエスト処理およびセグメント分割を示すシーケンス図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。情報処理装置10は、キーの集合を複数のセグメントに分割し、キーと対応付けて記憶装置21,22に記憶されるデータをセグメント単位で管理する情報処理システムに用いられる。記憶装置21,22の一方または両方は、情報処理装置10が備える記憶装置であってもよい。情報処理装置10は、記憶部11および制御部12を有する。
記憶部11は、セグメント情報を記憶する。セグメント情報は、複数のセグメントのうち少なくともセグメント#1,#2について、キーとセグメントとの関係を示す。セグメント情報は、トライ(Trie)木やプレフィックス木と呼ばれる木構造によってセグメントを表現したものであってもよい。記憶部11は、RAM(Random Access Memory)やHDD(Hard Dirk Drive)などの記憶装置であってもよい。
制御部12は、記憶部11のセグメント情報を参照し、セグメント#1に属するキーと対応付けて記憶されているデータの量と閾値#1に基づいて、セグメント#1を2以上のセグメントに分割するか判定する。例えば、データ量と閾値#1を比較し、データ量が閾値#1を超えるときセグメント#1を分割すると判定する。データ量は、セグメント#1が配置されている記憶装置にアクセスして確認できる。閾値#1は、セグメント#2を分割するか判定するために用いる閾値#2とは異なる値をとる。例えば、閾値#1は、セグメント#1の識別情報から所定の算出式に従って算出され、閾値#2は、セグメント#2の識別情報から所定の算出式に従って算出される。制御部12は、CPU(Central Processing Unit)およびRAMを用いて実行されるプログラムとして実現してもよい。
なお、セグメント情報が複数のセグメントを木構造で表現したものである場合、制御部12は、少なくとも同じ階層レベルのセグメント間では、互いに異なる値になるように閾値を算出してもよい。また、記憶装置21,22のうちデータを格納する記憶装置がセグメント単位で選択される場合、制御部12は、セグメント#1の分割によって、記憶装置21,22へのセグメントの配置を変更してもよい。例えば、セグメント#1が記憶装置21に配置されていたとき、セグメント#1から分割された2以上のセグメントの少なくとも1つを、記憶装置21から記憶装置22に配置変更してもよい。
第1の情報処理装置10によれば、複数のセグメントのうちセグメント#1に属するキーと対応付けて記憶装置21,22の何れかに記憶されているデータの量が算出される。算出されたデータの量とセグメント#1に応じた閾値#1とに基づいて、セグメント#1を2以上のセグメントに分割するか判定される。閾値#1は、複数のセグメントのうちセグメント#2を分割するか判定するために用いられる閾値#2とは異なる値をとる。
これにより、記憶装置21,22にデータが書き込まれてデータ量の大きくなったセグメントを、更に2以上のセグメントに動的に分割することができる。例えば、データの実際の増加量に合わせてセグメントを分割できるため、予め各セグメントのデータ量がどのように増加するか(データの偏り)を把握しておかなくてもよい。よって、記憶装置21,22へのセグメントの配置変更などのセグメント管理が容易となる。また、セグメント#1とセグメント#2とで異なる閾値を用いて分割の要否を判定するため、セグメント#1,#2の分割が同時期に重なって発生する確率を低減できる。よって、セグメントの配置変更やセグメント情報の更新などの処理が集中して情報処理システムの負荷が増大することを抑制でき、情報処理システムの性能低下を抑制できる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、サーバ装置100,100a,100b,100c、管理装置200およびクライアント装置300を含む。サーバ装置100,100a,100b,100cおよび管理装置200は、ネットワーク41に接続されている。クライアント装置300は、ネットワーク42に接続されている。第2の実施の形態の情報処理システムは、いわゆるクラウドシステムとして実現してもよい。
サーバ装置100,100a,100b,100cは、データを分散管理するサーバコンピュータである。サーバ装置100,100a,100b,100cは、データを識別するためのキーとデータとを対応付けて記憶し、また、キーからデータが記憶されているサーバ装置を検索するためのセグメント情報を保持している。何れのサーバ装置も、クライアント装置300からデータ処理のリクエストを受け付けることができる。キーを含むリクエストを受け付けたサーバ装置は、処理対象のデータが記憶されているサーバ装置をセグメント情報に基づいて検索し、検索されたサーバ装置にデータ処理を依頼する。
管理装置200は、ユーザ(例えば、情報処理システムの管理者)が使用するコンピュータである。管理装置200は、ユーザ操作に基づいて、サーバ装置100,100a,100b,100cを管理する。例えば、管理装置200は、データを記憶するサーバ装置が情報処理システムに追加されるとき、追加されるサーバ装置の情報をサーバ装置100,100a,100b,100cに送信する。また、データの分散配置を調整するための設定情報を、サーバ装置100,100a,100b,100cに送信する。
クライアント装置300は、ユーザ(例えば、クラウドサービスの利用者)が使用するコンピュータである。クライアント装置300では、例えば、サーバ装置100,100a,100b,100cに記憶されるデータを扱うアプリケーションソフトウェアが実行される。クライアント装置300は、ネットワーク41,42を介して、サーバ装置100,100a,100b,100cのうちの任意のサーバ装置に、データ処理のリクエストを送信する。リクエストでは、1つのキーまたはキーの範囲が指定される。データ処理には、データの読み出し(リード)や書き込み(ライト)が含まれる。
何れのサーバ装置がクライアント装置300からリクエストを受信しても、サーバ装置100,100a,100b,100cの間でメッセージを伝送することで、要求されたデータ処理が実行される。このように、第2の実施の形態の情報処理システムは、できる限りデータ処理のボトルネックとなる装置が生じないように設計することが可能であり、可用性や応答性能などを向上させることができる。
図3は、サーバ装置のハードウェア例を示すブロック図である。サーバ装置100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、ディスクドライブ106および通信部107を有する。上記ユニットは、サーバ装置100内でバスに接続されている。なお、サーバ装置100a,100b,100c、管理装置200およびクライアント装置300も、サーバ装置100と同様のハードウェアによって実現できる。
CPU101は、サーバ装置100における情報処理を制御する演算装置である。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部を読み出してRAM102に展開し、プログラムを実行する。なお、サーバ装置100は、複数の演算装置を備えて、情報処理を分散して実行してもよい。
RAM102は、CPU101が扱うプログラムやデータを一時的に記憶しておく揮発性メモリである。なお、サーバ装置100は、RAM以外の種類のメモリを備えていてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)プログラムやアプリケーションプログラムなどのプログラム、および、情報処理に用いられるデータを記憶する不揮発性の記憶装置である。HDD103は、CPU101の命令に従って、内蔵の磁気ディスクに対する読み書きを行う。なお、サーバ装置100は、HDD以外の不揮発性の記憶装置(例えば、SSD(Solid State Drive))を備えていてもよく、複数の記憶装置を備えてもよい。
画像信号処理部104は、CPU101の命令に従って、サーバ装置100に接続されたディスプレイ31に画像を出力する。ディスプレイ31として、例えば、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部105は、サーバ装置100に接続された入力デバイス32から入力信号を取得し、CPU101に出力する。入力デバイス32として、例えば、マウスやタッチパネルなどのポインティングデバイスや、キーボードなどを用いることができる。
ディスクドライブ106は、記録媒体33に記録されたプログラムやデータを読み取る駆動装置である。記録媒体33として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。ディスクドライブ106は、例えば、CPU101の命令に従って、記録媒体33から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信部107は、ネットワーク41に接続して通信を行う通信インタフェースである。ネットワーク41への接続方法は、有線でも無線でもよい。すなわち、通信部107は、有線通信インタフェースでも無線通信インタフェースでもよい。
図4は、リクエスト処理の例を示す図である。図4では、リクエストとして、(A)単一のキーを指定したリード要求、(B)キーの範囲を指定したリード要求、(C)ライト要求の例を挙げている。サーバ装置100aは、キーとデータの組(key,value)として、(2,data2),(3,data3)を記憶し、サーバ装置100cは、(4,data4),(5,data5)を記憶しているとする。
(A)サーバ装置100は、キー2を指定したリード要求get(2)をクライアント装置300から受信すると、キー2に対応するデータがサーバ装置100aに記憶されていると判定する。そして、キー2に対するリード要求を示すメッセージをサーバ装置100aに送信する。サーバ装置100aは、data2をサーバ装置100に送信する。サーバ装置100は、data2をクライアント装置300に送信する。
(B)サーバ装置100は、キーの範囲2〜5を指定したリード要求range_get(2,5)をクライアント装置300から受信すると、キー2,3に対応するデータがサーバ装置100aに記憶され、キー4,5に対応するデータがサーバ装置100cに記憶されていると判定する。そして、キー2,3に対するリード要求を示すメッセージをサーバ装置100aに送信し、キー4,5に対するリード要求を示すメッセージをサーバ装置100cに送信する。サーバ装置100aは、data2,3をサーバ装置100に送信する。サーバ装置100cは、data4,5をサーバ装置100に送信する。サーバ装置100は、data2〜5をクライアント装置300に送信する。
(C)サーバ装置100は、キー1を指定したライト要求set(1,data1)をクライアント装置300から受信すると、キー1に対応するデータはサーバ装置100aに記憶されるものであると判定する。そして、キー1に対するライト要求を示すメッセージをサーバ装置100aに送信する。サーバ装置100aは、data1を自身の記憶装置に書き込み、サーバ装置100に書き込み完了を報告する。サーバ装置100は、書き込み完了をクライアント装置300に報告する。
このように、サーバ装置100,100a,100b,100cは、キーとデータとを対応付けて保持し、キー単位で記憶装置からのデータの読み出しや記憶装置へのデータの書き込みを行う。処理対象のキーは、例えば、クライアント装置300で実行されるアプリケーションソフトウェアによって指定される。よって、サーバ装置100,100a,100b,100cのデータ処理の複雑性が抑えられ、負荷が軽減される。
ライト要求で指定されたキーに対応するデータがまだ存在しない場合、当該ライト要求はデータの追加を意味する。一方、ライト要求で指定されたキーに対応するデータが既に存在する場合、当該ライト要求はデータの上書きを意味する。キーに対応するデータが存在するか否かの確認や上書き可否の判断は、例えば、クライアント装置300で実行されるアプリケーションソフトウェアの責任で行われる。第2の実施の形態の情報処理システムは、例えば、時刻をキーとするデータ(例えば、ログデータ)の管理に利用できる。
図5は、セグメント管理ツリーの例を示す図である。サーバ装置100,100a,100b,100cは、セグメント管理ツリーを記述したセグメント情報を有する。セグメント管理ツリーとして、トライ木やプレフィックス木と呼ばれる順序付きツリーを用いることができる。前述の非特許文献1(Yatin Chawathe, Sriram Ramabhadran, Sylvia Ratnasamy, Anthony LaMarca, Scott Shenker and Joseph Hellerstein, "A Case Study in Building Layered DHT Applications")に記載されたPHTを用いてもよい。
セグメント管理ツリーでは、キー空間が、セグメントと呼ばれる区間に階層的に分割される。セグメント管理ツリーの各ノードがセグメントに相当する。各ノードには、当該ノードの深さに応じた長さのラベルが付与される。例えば、ルートノードの左の子ノードにラベル0を付与し、右の子ノードにラベル1を付与する。また、あるノードにラベルLが付与されているとき、左の子ノードにラベルL+0、右の子ノードにラベルをL+1を付与する。キー空間に含まれる各キーは、当該キーのプレフィックスに一致するラベルが付与された何れか1つの葉ノード(子ノードをもたないノード)に対応付けられる。
一例として、キーが5ビットの2進数で表現できる場合を考える。クライアント装置300から指定されるキーが2進数で表現されていない場合は、2進数に変換すればよい。また、図5に示したように、ラベル000,001,01,10,11が付与された5つの葉ノードを含むセグメント管理ツリーを考える。この場合、キー00000〜00011は、ラベル000のノードに対応付けられる。キー00100〜00111は、ラベル001のノードに対応付けられる。キー01000〜01111は、ラベル01のノードに対応付けられる。キー10000〜10111は、ラベル10の葉ノードに対応付けられる。キー11000〜11111は、ラベル11の葉ノードに対応付けられる。
セグメント管理ツリーの葉ノードに相当するセグメントが、サーバ装置100,100a,100b,100cに配置される。例えば、ラベル11のセグメントが、サーバ装置100に配置される。ラベル000,10のセグメントが、サーバ装置100aに配置される。ラベル001,01のセグメントが、サーバ装置100cに配置される。セグメントを配置するサーバ装置は、例えば、当該セグメントのラベルにハッシュ関数を適用して算出されるハッシュ値に基づいて決定することができる。
このように、セグメント単位でデータを配置するサーバ装置を決定することで、キーのローカリティを維持することができ、値の近いキーに対応付けられるデータ同士ができる限り同じサーバ装置に配置されるようになる。このため、範囲指定のリード要求など、範囲指定のデータ処理を効率的に実行できるようになる。セグメント管理ツリーの深さ(セグメントの分割の程度)は、サーバ装置100,100a,100b,100cに記憶されたデータの量に応じて動的に調整される。後述するように、データ量の大きくなったセグメントは、更に複数のセグメントに自動的に分割される。
なお、以上の説明では、セグメント管理ツリーの例として2分木を用いたが、任意の分岐数のツリーを用いてもよい。葉ノード以外の各ノードがそれぞれb個(bは2以上の整数)の子ノードを有する場合、各ノードにはb進数のラベルを付与すればよい。例えば、b=3の場合、ルートノードはラベル0,1,2の子ノードを有する。また、ラベル0のノードは、ラベル00,01,02の子ノードを有する。キーをセグメントに対応付けるときは、キーをb進数に変換して、キーのプレフィックスとラベルを比較すればよい。
図6は、サーバ装置へのセグメントの配置方法の例を示す図である。前述の通り、セグメント管理ツリーの葉ノードに対応するセグメントは、当該セグメントのラベルに応じてサーバ装置100,100a,100b,100cの何れかに配置される。
ここでは、ハッシュ関数の値域(ハッシュ値が取り得る値)を0〜2n−1(nは自然数)とし、値域をループ状にしたハッシュ値の空間を考える。サーバ装置100,100a,100b,100cそれぞれの識別情報(例えば、アドレス)にハッシュ関数を適用して、各サーバ装置に対応するハッシュ値を算出する。また、セグメントのラベルにハッシュ関数を適用して、当該セグメントに対応するハッシュ値を算出する。そして、各サーバ装置のハッシュ値とセグメントのハッシュ値のループ上での位置関係に基づいて、当該セグメントを配置するサーバ装置を決定する。例えば、ループ上で、セグメントのハッシュ値より先にある最小のハッシュ値をもつサーバ装置を選択する。
例えば、サーバ装置100のハッシュ値h(s1)とサーバ装置100aのハッシュ値h(s2)とラベル0のハッシュ値h(0)とが、h(s2)>h(0)>h(s1)の関係にある場合、ラベル0のセグメントをサーバ装置100aに配置する。また、サーバ装置100bのハッシュ値h(s3)とサーバ装置100cのハッシュ値h(s4)とラベル001のハッシュ値h(001)とが、h(s4)>h(001)>h(s3)の関係にある場合、ラベル001のセグメントをサーバ装置100cに配置する。
なお、ラベルのLSB(Least Significant Bit)が0である場合、LSBからMSB(Most Significant Bit)に向かって連続する0を削除して、ハッシュ関数を適用する。ただし、MSBの0は削除しない。例えば、ラベル00,000はラベル0に変換され、ラベル10はラベル1に変換される。よって、ラベル0,00,000のハッシュ値は同一となり、ラベル1,10のハッシュ値は同一となる。これにより、あるセグメントを2以上のセグメントに分割したとき、分割後の2以上のセグメントの少なくとも1つは、元のセグメントと同じサーバ装置に配置されることになる。
ただし、サーバ装置100,100a,100b,100cへのセグメントの配置方法は、上記方法に限定されない。例えば、セグメントのラベルから算出されたハッシュ値をサーバ装置の数で割って余り(剰余)を求め、剰余に応じてセグメントを配置するサーバ装置を選択する方法が考えられる。例えば、ハッシュ値を4で割り、剰余=0のときはサーバ装置100、剰余=1のときはサーバ装置100a、剰余=2のときはサーバ装置100b、剰余=3のときはサーバ装置100cを選択する。
図7は、サーバ装置のソフトウェア例を示すブロック図である。サーバ装置100は、通信処理部110、イベント処理部120およびデータ記憶部130を有する。通信処理部110およびイベント処理部120は、例えば、CPU101およびRAM102を用いて実行されるプログラムとして実現できる。データ記憶部130は、例えば、RAM102やHDD103上の記憶領域として実現できる。サーバ装置100a,100b,100cも、サーバ装置100と同様のブロック構成によって実現できる。
通信処理部110は、リクエスト受信部111、セグメント情報記憶部112、セグメント管理部113およびメッセージ処理部114を有する。
リクエスト受信部111は、クライアント装置300からリクエストを受信し、所望のセグメントが配置されたサーバ装置の判定をセグメント管理部113に依頼する。また、リクエスト受信部111は、読み出されたデータまたは書き込み結果をメッセージ処理部114から取得し、レスポンスとしてクライアント装置300に送信する。
セグメント情報記憶部112は、図5のようなセグメント管理ツリーを記載したセグメント情報を記憶する。セグメント情報は、セグメントの分割に伴って更新される。セグメント情報記憶部112は、ハッシュ関数を示す情報を記憶してもよい。なお、セグメント情報記憶部112は、RAM102またはHDD103上の記憶領域として実現できる。
セグメント管理部113は、セグメント情報記憶部112に記憶されたセグメント情報に基づいて、リクエストで指定されたキーまたはキーの範囲に対応する1またはそれ以上のセグメントを検索する。そして、セグメントのラベルとハッシュ関数から、検索されたセグメントが配置されている1またはそれ以上のサーバ装置を判定する。セグメント管理部113は、検索されたセグメントが自サーバ装置にある場合、イベント処理部120にデータ処理を依頼する。検索されたセグメントが他のサーバ装置にある場合、メッセージ処理部114に当該他のサーバ装置へのメッセージの送信を依頼する。
また、セグメント管理部113は、イベント処理部120からセグメントを分割した旨の報告があると、セグメント情報記憶部112に記憶されたセグメント情報を更新する。そして、セグメントの更新を示すメッセージを他のサーバ装置に送信するよう、メッセージ処理部114に依頼する。また、セグメント管理部113は、メッセージ処理部114からの依頼に応じて、セグメント情報記憶部112に記憶されたセグメント情報を更新する。なお、セグメント管理部113は、セグメントが配置され得るサーバ装置の識別情報を、設定情報として管理装置200から受信して保持している。
メッセージ処理部114は、他のサーバ装置(サーバ装置100a,100b,100c)との間でメッセージを送受信する。メッセージ処理部114は、他のサーバ装置からリード要求やライト要求のメッセージを受信すると、イベント処理部120にデータ処理を依頼する。また、セグメント管理部113からの依頼に応じて、他のサーバ装置にリード要求やライト要求のメッセージを送信する。また、メッセージ処理部114は、セグメント管理部113からの依頼に応じて、他のサーバ装置にセグメント更新のメッセージを送信する。また、他のサーバ装置からセグメント更新のメッセージを受信すると、セグメント管理部113にセグメント情報の更新を依頼する。
イベント処理部120は、データ処理部121、算出式記憶部122、閾値算出部123および分割判定部124を有する。
データ処理部121は、セグメント管理部113またはメッセージ処理部114からの依頼に応じて、データ処理を行う。キーまたはキーの範囲を指定したリード要求である場合、データ処理部121は、キーに対応するデータまたはキーの範囲に対応するデータ群をデータ記憶部130から読み出す。キーを指定したライト要求である場合、データ処理部121は、キーに対応付けてデータをデータ記憶部130に書き込む。
また、データ処理部121は、データをデータ記憶部130に書き込んだ場合、セグメントの分割の要否を分割判定部124に問い合わせる。分割判定部124で分割を要すると判定された場合、データ処理部121は、分割処理を行う。例えば、データ記憶部130に記憶されたデータの一部を他のサーバ装置に移動させる。また、セグメントを分割した旨をセグメント管理部113に報告する。
算出式記憶部122は、セグメントを分割するか判定するための閾値を算出する算出式を記憶する。閾値は、後述するように、分割の要否を判定するセグメントのラベルに基づいて算出される。閾値の算出式は、管理装置200のユーザが記述し、管理装置200が算出式記憶部122に設定する。なお、算出式記憶部122は、RAM102またはHDD103上の記憶領域として実現できる。
閾値算出部123は、分割判定部124から指定されたセグメントのラベルと、算出式記憶部122に記憶された閾値の算出式から、指定されたセグメントの閾値を算出する。そして、算出した閾値を分割判定部124に回答する。
分割判定部124は、データ処理部121からの問い合わせに応じて、データの書き込みが行われたセグメントの分割の要否を判定する。分割判定部124は、書き込みが行われたセグメントのラベルを指定して、閾値算出部123に閾値の算出を依頼する。セグメントのラベルは、例えば、セグメント情報を参照して、ライト要求で指定されたキーから求める。また、分割判定部124は、データ記憶部130を参照して、書き込みが行われたセグメントのデータ量(例えば、当該セグメントに属するキーに対応付けられたデータの総量)を求める。そして、分割判定部124は、データ量が閾値を超える場合、分割を要すると判定し、データ量が閾値以下の場合、分割を要しないと判定する。
データ記憶部130は、キーとデータを対応付けて記憶する。データ記憶部130は、記憶領域をセグメント毎に分割して、キーとデータを記憶してもよい。
図8は、リクエスト処理を示すフローチャートである。ここでは、サーバ装置100が処理を行う場合を考える。サーバ装置100a,100b,100cも、サーバ装置100と同様の処理を行う。以下、図8に示す処理をステップ番号に沿って説明する。
(ステップS11)リクエスト受信部111は、クライアント装置300からリクエストを受信する。リクエストの種類には、1つのキーを指定したリード要求、キーの範囲を指定したリード要求、および、1つのキーを指定したライト要求が含まれる。
(ステップS12)セグメント管理部113は、ステップS11受信されたリクエストがキーの範囲を指定したものか判断する。範囲指定のリクエストである場合、処理をステップS14に進める。それ以外の場合、処理をステップS13に進める。
(ステップS13)セグメント管理部113は、セグメント情報記憶部112に記憶されたセグメント情報を参照して、リクエストで指定されたキーの属するセグメントを検索する。セグメントの検索では、例えば、b進数(bは2以上の整数)で表現したキーのプレフィックスとラベルを、セグメント管理ツリーのルートノードから葉ノードに向かって比較していき、プレフィックスと一致するラベルをもつ葉ノードを特定する。特定した葉ノードに相当するセグメントが、検索されるセグメントである。
(ステップS14)セグメント管理部113は、セグメント情報を参照して、リクエストで指定された範囲内のキーを少なくとも1つ含むセグメントを全て検索する。複数のセグメントの検索では、例えば、範囲内のキーの最大値と最小値とに共通する最長のプレフィックスを求め、当該プレフィックスをラベルとしてもつノードを特定する。そして、特定したノード以下の複数の葉ノードを特定する。特定した複数の葉ノードに相当する複数のセグメントが、検索されるセグメントである。
例えば、キーの範囲が00010〜00101の場合、キーの最小値00010と最大値00101とに共通する最長のプレフィックスは、00である。よって、ラベル00のノードより下位にある、ラベル000,001の葉ノードが特定される。そして、ラベル000に相当するセグメントとラベル001に相当するセグメントとが検索される。
(ステップS15)セグメント管理部113は、ステップS13またはステップS14で検索されたセグメントのラベルにハッシュ関数を適用し、ハッシュ値を算出する。そして、ハッシュ値からセグメントが配置されているサーバ装置を特定する。サーバ装置は、例えば、図6に示した方法で特定される。ステップS14で複数のセグメントが検索された場合、複数のサーバ装置が特定されることがある。以下のステップS16〜S18の処理が、特定されたサーバ装置毎またはセグメント毎に実行される。
(ステップS16)セグメント管理部113は、データ処理の対象のセグメントが配置されたサーバ装置として、他のサーバ装置がステップS15で特定されたか判断する。他のサーバ装置が特定された場合、処理をステップS17に進める。自装置(サーバ装置100)が特定された場合、処理をステップS18に進める。
(ステップS17)メッセージ処理部114は、ステップS15で特定された他のサーバ装置に対して、リード要求またはライト要求を示すメッセージを送信する。メッセージには、クライアント装置300からのリクエストで指定されたキーまたはキーの範囲のうち、宛先のサーバ装置に記憶されているキーまたはキーの範囲が含まれる。その後、メッセージ処理部114は、応答のメッセージを他のサーバ装置から受信する。応答のメッセージには、キーに対応するデータまたは書き込み完了の報告が含まれる。
(ステップS18)データ処理部121は、クライアント装置300からのリクエストに応じたデータ処理を行う。リード要求の場合、リクエストで指定されたキーまたはキーの範囲のうち、自装置に記憶されているキーまたはキーの範囲に対応するデータをデータ記憶部130から読み出す。ライト要求の場合、リクエストに含まれるキーとデータとを対応付けて、データ記憶部130に書き込む。
(ステップS19)リクエスト受信部111は、ステップS11で受信したリクエストに対するレスポンスをクライアント装置300に送信する。リクエストがリード要求である場合、レスポンスとして、ステップS17,S18で自装置または他のサーバ装置から読み出されたデータを送信する。リクエストがライト要求である場合、レスポンスとして、ステップS17,S18で確認された書き込み完了の報告を送信する。
図9は、セグメント分割を示すフローチャートである。ここでは、サーバ装置100が処理を行う場合を考える。サーバ装置100a,100b,100cも、サーバ装置100と同様の処理を行う。以下、図9に示す処理をステップ番号に沿って説明する。
(ステップS21)分割判定部124は、データ処理部121がデータ記憶部130に書き込んだデータのキーを特定する。そして、セグメント情報記憶部112に記憶されたセグメント情報に基づいて、キーに対応するセグメントを検索する。
(ステップS22)閾値算出部123は、算出式記憶部122に記憶された算出式に、ステップS21で検索されたセグメントのラベルを代入し、当該セグメントの閾値を算出する。閾値の算出式としては、例えば、以下に示す数式(1)を用いる。数式(1)において、Lはラベル、Rは所定のルート閾値、bはセグメント管理ツリーの分岐数を示す。また、length(L)はラベルのビット数を示し、value(L)はラベルLが表す10進数表現の値を示す。
Figure 2012164735
(ステップS23)分割判定部124は、データ記憶部130を参照して、ステップS21で検索したセグメントのデータ量(例えば、当該セグメントに属するキーに対応付けられているデータの総量)を算出する。そして、データ量がステップS22で算出された閾値を超えているか判断する。データ量が閾値を超える場合、処理をステップS24に進める。データ量が閾値以下の場合、処理を終了する。
(ステップS24)セグメント管理部113は、ステップS21で検索されたセグメントを分割して得られるb個の子セグメントを定義する。例えば、セグメントのラベルがLでありb=2の場合、ラベルL+0,L+1の子セグメントを定義する。
(ステップS25)データ処理部121は、データ記憶部130から、ステップS21で検索されたセグメントに属するキーを1つ選択する。
(ステップS26)データ処理部121は、ステップS24で定義された子セグメントの中から、ステップS25で選択したキーのプレフィックスと一致するラベルをもつ子セグメントを特定する。そして、データ処理部121は、ステップS25で選択したキーを特定した子セグメントに割り当てる。
(ステップS27)データ処理部121は、ステップS25で全てのキーを選択したか判断する。全てのキーを選択した場合、処理をステップS28に進める。未選択のキーが存在する場合、処理をステップS25に進める。
(ステップS28)セグメント管理部113は、ステップS24で定義した子セグメントのラベルにハッシュ関数を適用し、子セグメントそれぞれの配置先のサーバ装置を特定する。データ処理部121は、他のサーバ装置に配置される子セグメントのデータ(当該子セグメントに属するキーと対応付けられているデータ)をデータ記憶部130から読み出し、他のサーバ装置に送信する。データ送信が完了すると、他のサーバ装置に配置される子セグメントのデータをデータ記憶部130から削除する。
(ステップS29)セグメント管理部113は、ステップS24のセグメント分割が反映されるように、セグメント情報記憶部112に記憶されているセグメント情報を更新する。メッセージ処理部114は、セグメントの更新を他の全てのサーバ装置に通知する。
図10は、セグメントの閾値の例を示す図である。図10の閾値の例は、図5のセグメント管理ツリーに数式(1)を適用して算出したものである。
各階層レベルの左端ノード(ルートノードおよびラベル0,00,000のノード)に対応するセグメントには、所定のルート閾値Rが設定される。Rとして、100[MB(メガバイト)]などのデータ量が予め決められている。左端ノード以外のノードに対応するセグメントには、Rを2f倍した閾値が設定される。fは分数で表現でき、分母の計算にはラベルのビット数が用いられ、分子にはラベルの表す値が用いられる。よって、同一の階層レベルのセグメント間では、fが異なる値となり、閾値が異なる値となる。
ラベル1のセグメントには、f=1/2であるため、閾値1.41Rが設定される。ラベル01のセグメントには、f=1/4であるため、閾値1.19Rが設定される。ラベル10のセグメントには、f=2/4であるため、閾値1.41Rが設定される。ラベル11のセグメントには、f=3/4であるため、閾値1.68Rが設定される。
ここで、サーバ装置100,100a,100b,100cがデータを記憶していない状態(データ集合が空の状態)から、一定の速度でキー空間全体に対して均等にデータが追加される場合を考える。例えば、ルート閾値をR[MB]とし、キー空間全体に対してS[MB/秒](例えば、1[MB/秒])の速度でデータが追加されるとする。
この場合、データ追加を開始してからの経過時間として、ルートノードのセグメントでは、R/S[秒]でデータ量が閾値に達する。ラベル0のセグメントでは、2R/S[秒]でデータ量が閾値に達する。ラベル1のセグメントでは、2.82R/S[秒]でデータ量が閾値に達する。ラベル00のセグメントでは、4R/S[秒]でデータ量が閾値に達する。ラベル01のセグメントでは、4.76R/S[秒]でデータ量が閾値に達する。ラベル10のセグメントでは、5.64R/S[秒]でデータ量が閾値に達する。ラベル11のセグメントでは、6.72R/S[秒]でデータ量が閾値に達する。ラベル000のセグメントでは、8R/S[秒]でデータ量が閾値に達する。ラベル001のセグメントでは、8.72R/S[秒]でデータ量が閾値に達する。
このように、数式(1)に従って各セグメントの閾値を算出すると、データがキー空間に対して均等に追加される場合には、上位の階層レベルのセグメントの分割が完了した後に、下位の階層レベルのセグメントの分割が行われる。例えば、ラベル1のセグメントが分割された後に、ラベル00のセグメントが分割される。ラベル11のセグメントが分割された後に、ラベル000のセグメントが分割される。また、全てのセグメントの分割が異なるタイミングで行われる。セグメントを分割するか否かは、当該セグメントのラベルから判定できるため、セグメント間で独立に判定できる。
なお、図10の例では、各階層レベルの左端ノードにルート閾値Rを付与し、左端ノードから右端ノードに向かって閾値を増加させたが、各階層レベルの右端ノードにルート閾値Rを付与し、右端ノードから左端ノードに向かって閾値を増加させてもよい。また、上記の説明では、データ量と閾値とを比較してセグメントを分割するか判定しているが、データ量と閾値とを比較してセグメントを統合するか判定してもよい。例えば、ラベル000,001のセグメントのデータ量の合計が閾値以下のとき、当該2つのセグメントを統合すると判定してもよい。そのとき、分割の判定に用いる閾値と統合の判定に用いる閾値とは、異なる算出式から算出してもよい。
図11は、リクエスト処理およびセグメント分割を示すシーケンス図である。クライアント装置300がサーバ装置100に対して、データの書き込みのリクエストを送信し、データの書き込みによってセグメント分割が発生する場合を考える。
(ステップS31)クライアント装置300は、データの書き込みを示すリクエストをサーバ装置100に送信する。リクエストには、キーとデータが含まれる。
(ステップS32)サーバ装置100は、自装置が有するセグメント情報からキーの属するセグメントを検索し、ラベルとハッシュ関数を用いて当該セグメントが配置されているサーバ装置(ここでは、サーバ装置100a)を特定する。そして、ライト要求のメッセージをサーバ装置100aに送信する。メッセージには、キーとデータが含まれる。
(ステップS33)サーバ装置100aは、サーバ装置100から受信したメッセージに含まれるキーとデータとを対応付けて、自装置が有する記憶装置に書き込む。そして、書き込み完了を示すレスポンスをサーバ装置100に送信する。
(ステップS34)サーバ装置100は、サーバ装置100aで書き込みが完了したことを確認すると、クライアント装置300にレスポンスを送信する。
(ステップS35)サーバ装置100aは、データの書き込みによって、セグメントのデータ量が閾値を超えたことを検出する。すると、サーバ装置100aは、当該セグメントをb個(例えば、2個)のセグメントに更に分割する。
(ステップS36)サーバ装置100aは、ラベルとハッシュ関数を用いて、分割後のセグメントが配置されるサーバ装置(ここでは、サーバ装置100a,100b)を特定する。そして、サーバ装置100bに配置されるセグメントのキーとデータをサーバ装置100bに送信する。なお、前述の通り、1つのセグメントを2つの子セグメントに分割したとき、一方の子セグメントが元のセグメントと同じサーバ装置に配置され、他の子セグメントが元のセグメントと異なるサーバ装置に配置されるようにすることもできる。
(ステップS37)サーバ装置100bは、サーバ装置100aから受信したキーとデータを対応付けて、自装置が有する記憶装置に書き込む。そして、書き込み完了を示すレスポンスをサーバ装置100aに送信する。
(ステップS38)サーバ装置100aは、サーバ装置100bへの複製が完了したセグメントのキーとデータを、自装置が有する記憶装置から削除する。また、サーバ装置100aは、セグメントの分割が反映されるように、自装置が有するセグメント情報を更新する。そして、サーバ装置100aは、セグメントの更新を示す通知を、他の全てのサーバ装置(サーバ装置100,100b,100c)に送信する。
(ステップS39)サーバ装置100,100b,100cは、サーバ装置100aからの通知に基づいて、自装置が有するセグメント情報を更新する。そして、セグメント情報の更新完了を示すレスポンスを、サーバ装置100aに送信する。これにより、サーバ装置100aによるセグメント情報の更新が、サーバ装置100,100b,100cが有するセグメント情報に反映され、セグメント情報が同期された状態となる。
第2の実施の形態によれば、サーバ装置100,100a,100b,100cはキーとデータを対応付けて記憶し、クライアント装置300から指定されたキーについてデータ処理を行うので、データ処理の複雑性を低減でき負荷が低くなる。また、データが複数のサーバ装置に分散して記憶されると共に、何れのサーバ装置もクライアント装置300からリクエストを受け付けることができるので、ボトルネックとなる装置が生じないように設計可能であり、情報処理システムの可用性が向上する。
また、キー空間を複数のセグメントに分割し、セグメント単位でデータがサーバ装置に配置されるので、値の近いキーに対応するデータ同士が同一のサーバ装置に記憶される確率が高くなり、キーの範囲を指定したデータ処理を効率的に実行できる。また、セグメント分割の要否は、セグメントのラベルに基づいてセグメント毎に独立に判定できるので、各サーバ装置が他のサーバ装置とネゴシエーションを行わずに判定でき、スケーラビリティを向上できる。また、セグメント分割の要否を判定するための閾値が、セグメント間で異なるように算出されるので、複数のセグメントの分割が同時期に集中する確率を低減することができ、情報処理システムの負荷を軽減できる。
なお、前述のように、第2の実施の形態のデータ管理は、コンピュータとしてのサーバ装置100,100a,100b,100cに、それぞれデータ管理プログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体33)に記録しておくことができる。記録媒体として、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク41経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを記憶装置(例えば、HDD103)に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワーク41を介して受信したプログラムを直接実行してもよい。
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
10 情報処理装置
11 記憶部
12 制御部
21,22 記憶装置

Claims (6)

  1. キーの集合を複数のセグメントに分割し、キーと対応付けて記憶装置に記憶されるデータをセグメント単位で管理する情報処理システムに用いられる情報処理装置であって、
    前記複数のセグメントのうち少なくとも第1および第2のセグメントについて、キーとセグメントとの関係を示すセグメント情報を記憶する記憶部と、
    前記セグメント情報を参照し、前記第1のセグメントに属するキーと対応付けて記憶されているデータの量と第1の閾値とに基づいて、前記第1のセグメントを2以上のセグメントに分割するか判定する制御部と、を有し、
    前記第1の閾値は、前記第2のセグメントを分割するか判定するために用いられる第2の閾値とは異なる値をとる、情報処理装置。
  2. 前記セグメント情報は、前記第1および第2のセグメントの識別情報を含み、
    前記第1の閾値は、前記第1のセグメントの識別情報に基づいて算出され、前記第2の閾値は、前記第2のセグメントの識別情報に基づいて算出される、
    請求の範囲第1項記載の情報処理装置。
  3. 前記セグメント情報は、前記複数のセグメントを階層構造で表現し、
    前記複数のセグメントそれぞれの閾値は、少なくとも同じ階層レベルのセグメント間では異なる値になるように算出される、
    請求の範囲第1項または第2項記載の情報処理装置。
  4. 前記情報処理システムは、複数の記憶装置を有し、前記複数の記憶装置の中からデータを格納する記憶装置をセグメント単位で選択し、
    前記制御部は、前記第1のセグメントから分割された前記2以上のセグメントの少なくとも1つについて、データを格納する記憶装置が変更されるよう制御する、
    請求の範囲第1項乃至第3項の何れか一項に記載の情報処理装置。
  5. キーの集合を複数のセグメントに分割し、キーと対応付けて記憶装置に記憶されるデータをセグメント単位で管理する情報処理システムが行うデータ管理方法であって、
    前記複数のセグメントのうちの第1のセグメントに属するキーと対応付けて前記記憶装置に記憶されているデータの量を算出し、
    算出したデータの量と前記第1のセグメントに応じた第1の閾値とに基づいて、前記第1のセグメントを2以上のセグメントに分割するか判定し、
    前記第1の閾値は、前記複数のセグメントのうちの第2のセグメントを分割するか判定するために用いられる第2の閾値とは異なる値をとる、データ管理方法。
  6. キーの集合を複数のセグメントに分割し、キーと対応付けて記憶装置に記憶されるデータをセグメント単位で管理する情報処理システムに用いられるコンピュータに実行させるデータ管理プログラムであって、前記コンピュータに、
    前記複数のセグメントのうちの第1のセグメントに属するキーと対応付けて前記記憶装置に記憶されているデータの量を算出し、
    算出したデータの量と前記第1のセグメントに応じた第1の閾値とに基づいて、前記第1のセグメントを2以上のセグメントに分割するか判定する、処理を実行させ、
    前記第1の閾値は、前記複数のセグメントのうちの第2のセグメントを分割するか判定するために用いられる第2の閾値とは異なる値をとる、データ管理プログラム。
JP2013517787A 2011-06-03 2011-06-03 情報処理装置、データ管理方法およびデータ管理プログラム Expired - Fee Related JP5633646B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/062759 WO2012164735A1 (ja) 2011-06-03 2011-06-03 情報処理装置、データ管理方法およびデータ管理プログラム

Publications (2)

Publication Number Publication Date
JPWO2012164735A1 true JPWO2012164735A1 (ja) 2014-07-31
JP5633646B2 JP5633646B2 (ja) 2014-12-03

Family

ID=47258620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013517787A Expired - Fee Related JP5633646B2 (ja) 2011-06-03 2011-06-03 情報処理装置、データ管理方法およびデータ管理プログラム

Country Status (2)

Country Link
JP (1) JP5633646B2 (ja)
WO (1) WO2012164735A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3376395A1 (en) 2012-12-27 2018-09-19 Huawei Technologies Co., Ltd. Partition extension method and apparatus
US9495478B2 (en) * 2014-03-31 2016-11-15 Amazon Technologies, Inc. Namespace management in distributed storage systems
JP6455229B2 (ja) 2015-03-02 2019-01-23 富士通株式会社 ストレージ装置、読出記憶装置決定方法、読出記憶装置決定プログラム、およびストレージシステム
WO2017221857A1 (ja) * 2016-06-21 2017-12-28 日本電気株式会社 類似演算装置、方法および記憶媒体

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4862463B2 (ja) * 2006-04-11 2012-01-25 ブラザー工業株式会社 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP4883807B2 (ja) * 2008-01-08 2012-02-22 Kddi株式会社 識別子に基づいてデータパケットを中継する中継方法、中継装置及びプログラム
US20100082636A1 (en) * 2008-09-25 2010-04-01 Nec Laboratories America, Inc. Methods and Apparatus for Content-Defined Node Splitting

Also Published As

Publication number Publication date
JP5633646B2 (ja) 2014-12-03
WO2012164735A1 (ja) 2012-12-06

Similar Documents

Publication Publication Date Title
KR102240557B1 (ko) 데이터 저장 방법, 장치 및 시스템
JP7098628B2 (ja) クラウドデータストアにわたるファイルシステム階層ミラーリング
US10275177B2 (en) Data layout schemas for seamless data migration
JP4648723B2 (ja) データ価値に基づく階層型ストレージ管理の為の方法と装置
EP3637275B1 (en) Directory leasing
US20130055371A1 (en) Storage control method and information processing apparatus
US8832113B2 (en) Data management apparatus and system
US20160357678A1 (en) Predictive caching and fetch priority
US9195666B2 (en) Location independent files
EP2939145B1 (en) System and method for selectively routing cached objects
JP2012256324A (ja) データ管理方法、および、複合型データ管理システム
US9128944B2 (en) File system enabling fast purges and file access
JP2013045378A (ja) ストレージ制御方法、情報処理装置およびプログラム
JP5765441B2 (ja) 情報処理装置、データ管理方法およびプログラム
JP5633646B2 (ja) 情報処理装置、データ管理方法およびデータ管理プログラム
EP4080377A1 (en) Method to implement multi-tenant/shared redis cluster using envoy
US20170357680A1 (en) System and method for maintaining a multi-level data structure
JP2007025843A (ja) データ記憶装置及びバージョン管理プログラム
US7509473B2 (en) Segmented storage system mapping
JP5083408B2 (ja) 構成管理装置、構成管理プログラム、構成管理方法
US11314434B1 (en) Real-time localized data access in a distributed data storage system
US11281683B1 (en) Distributed computation system for servicing queries using revisions maps
CN117194439B (zh) 一种资源存储系统的创建方法、电子设备及存储介质
JP2023116924A (ja) 情報処理プログラム、情報処理方法および情報処理システム
JP2012185611A (ja) 情報管理装置、情報管理方法、及びプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140602

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140916

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140929

LAPS Cancellation because of no payment of annual fees