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

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

Info

Publication number
JP5765441B2
JP5765441B2 JP2013552374A JP2013552374A JP5765441B2 JP 5765441 B2 JP5765441 B2 JP 5765441B2 JP 2013552374 A JP2013552374 A JP 2013552374A JP 2013552374 A JP2013552374 A JP 2013552374A JP 5765441 B2 JP5765441 B2 JP 5765441B2
Authority
JP
Japan
Prior art keywords
segment
data
segments
label
information processing
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.)
Expired - Fee Related
Application number
JP2013552374A
Other languages
English (en)
Other versions
JPWO2013103012A1 (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 JPWO2013103012A1 publication Critical patent/JPWO2013103012A1/ja
Application granted granted Critical
Publication of JP5765441B2 publication Critical patent/JP5765441B2/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
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/2312Data placement on disk arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (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)
  • Information Transfer Between Computers (AREA)

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つについて、分割前のセグメントが割り当てられていた記憶装置から他の記憶装置にデータが移動され得る。
しかし、セグメントが分割されるごとに記憶装置間でデータの移動が発生すると、データ管理のための通信量が増大し、本来のデータアクセスの妨げになるおそれがある、という問題がある。例えば、外部からのデータアクセスの多くがデータを追加するアクセスである場合、情報処理システム内のネットワーク上の通信量の半分が、記憶装置間でデータを移動するためのものになってしまう可能性もある。
一つの側面では、本発明は、複数の記憶装置を備えた情報処理システムにおけるデータ管理のための通信量を低減できる情報処理装置、データ管理方法およびプログラムを提供することを目的とする。
一実施態様では、記憶するデータに対応付けられるキーの集合を複数のセグメントに分割し、セグメント単位で複数の記憶装置へのデータの配置を管理する情報処理システムに用いられる、情報処理装置が提供される。情報処理装置は、記憶部と制御部を有する。記憶部は、セグメントとキーとの対応関係を示すセグメント情報を記憶する。制御部は、一のセグメントに属するデータの増加に応じて、当該一のセグメントを複数に分割し、セグメント情報を更新する。また、制御部は、第1のセグメントから1回または階層的にN(N>1)回の分割によって複数の第2のセグメントが得られたときに、Nが所定の条件を満たす場合には、複数の第2のセグメントの少なくとも1つに属するデータを、第1のセグメントに属するデータを記憶していた第1の記憶装置から第2の記憶装置へ移動することを許容し、Nが所定の条件を満たさない場合には、複数の第2のセグメントに属するデータの移動を制限する。
また、一実施態様では、記憶するデータに対応付けられるキーの集合を複数のセグメントに分割し、セグメント単位で複数の記憶装置へのデータの配置を管理する情報処理システムが行うデータ管理方法が提供される。データ管理方法では、一のセグメントに属するデータの増加に応じて、当該一のセグメントを複数に分割し、セグメントとキーとの対応関係を示すセグメント情報を更新する。第1のセグメントから1回または階層的にN(N>1)回の分割によって複数の第2のセグメントが得られたときに、Nが所定の条件を満たす場合には、複数の第2のセグメントの少なくとも1つに属するデータを、第1のセグメントに属するデータを記憶していた第1の記憶装置から第2の記憶装置へ移動することを許容する。Nが所定の条件を満たさない場合には、複数の第2のセグメントに属するデータの移動を制限する。
また、一実施態様では、記憶するデータに対応付けられるキーの集合を複数のセグメントに分割し、セグメント単位で複数の記憶装置へのデータの配置を管理する情報処理システムに用いられるコンピュータに実行させるプログラムが提供される。このプログラムは、コンピュータに、以下の処理を実行させる。一のセグメントに属するデータの増加に応じて、当該一のセグメントを複数に分割し、セグメントとキーとの対応関係を示すセグメント情報を更新する。第1のセグメントから1回または階層的にN(N>1)回の分割によって複数の第2のセグメントが得られたときに、Nが所定の条件を満たす場合には、複数の第2のセグメントの少なくとも1つに属するデータを、第1のセグメントに属するデータを記憶していた第1の記憶装置から第2の記憶装置へ移動することを許容する。Nが所定の条件を満たさない場合には、複数の第2のセグメントに属するデータの移動を制限する。
複数の記憶装置を備えた情報処理システムにおけるデータ管理のための通信量が低減される。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の情報処理装置を示す図である。 第2の実施の形態の情報処理システムを示す図である。 サーバ装置のハードウェア例を示すブロック図である。 リクエスト処理の例を示す図である。 セグメント管理ツリーの例を示す図である。 セグメントに属するデータのサーバ装置への配置方法の例を示す図である。 サーバ装置のソフトウェア例を示すブロック図である。 セグメント分割の一例を示すフローチャートである。 セグメントの閾値の例を示す図である。 データ転送判定処理の一例を示すフローチャートである。 ラベル変換方法1を適用した場合に転送が許容されるセグメントの例を示す図である。 ラベル変換方法2を適用した場合に転送が許容されるセグメントの例を示す図である。 リクエスト処理の一例を示すフローチャートである。 情報処理システムの動作シーケンスの一例を示すシーケンス図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。情報処理装置10は、記憶するデータに対応付けられるキーの集合を複数のセグメントに分割し、セグメント単位で記憶装置20−1〜20−n(nは2以上の自然数)へのデータの配置を管理する情報処理システムに用いられる。記憶装置20−1〜20−nの一部は、情報処理装置10が備える記憶装置であってもよい。情報処理装置10は、記憶部11および制御部12を有する。
記憶部11は、セグメント情報を記憶する。セグメント情報は、キーとセグメントとの関係を示す。セグメントは、図1に示されるように、階層構造で表現される。階層構造としては、例えば、トライ(Trie)木やプレフィックス木などが適用可能である。記憶部11は、RAM(Random Access Memory)やHDD(Hard Disk Drive)などの記憶装置であってもよい。
制御部12は、セグメントに属するデータの増加(例えば、データ量の増加あるいはデータが存在するキーの数の増加)に応じて、そのセグメントを複数に分割し、セグメント情報を更新する。例えば、制御部12は、記憶部11のセグメント情報を参照し、あるセグメントに属するデータの量あるいはデータが存在するキーの数と閾値とに基づいて、セグメントを2以上のセグメントに分割する。データ量あるいはキー数は、例えば、セグメントが配置されている記憶装置にアクセスして確認できる。
図1では、1つのセグメントを2つのセグメントに階層的に分割していく例が示されている。丸印はセグメントを示し、矢印はそのセグメントに属するデータが、ある記憶装置から他の記憶装置に転送されることを示している。また、nは階層を示している。図1の例では、分割により、1つのセグメントから次々に2つのセグメントが生成され、n=5の階層では、16個のセグメントが生成されている。
制御部12は、あるセグメントを基準として階層的な分割によって複数のセグメントを生成したときに、各分割が所定の分割の深さの条件を満たすか判定する。分割が所定の分割の深さの条件を満たす場合には、制御部12は、生成した複数のセグメントの少なくとも1つに属するデータを、もとのセグメントに属するデータを記憶している記憶装置から別の記憶装置へ移動(転送)することを許容する。また、分割が所定の分割の深さの条件を満たさない場合には、制御部12は、生成した複数のセグメントに属するデータの移動を制限する。
なお、分割の深さの条件は、例えば、元のセグメントが属する階層と生成された複数のセグメントが属する階層との階層間隔が、2以上の所定階層間隔の倍数であるか否かである。階層間隔が所定階層間隔の倍数の場合には分割の深さの条件が満たされ、階層間隔が所定階層間隔の倍数ではない場合には分割の深さの条件が満たされない。所定階層間隔を示す情報は、例えば、予め記憶部11に記憶されている。
例えば、所定階層間隔が2である場合、図1に示されるように、n=1の階層のセグメントsg1を分割していったとき、n=2の階層では、n=1の階層との階層間隔が1である。そのため、第2階層のセグメントsg2a,sg2bに属するデータの移動は制限される。
一方、n=3の階層では、n=1の階層との階層間隔が2である。そのため、制御部12は、n=3の階層の複数のセグメントsg3a,sg3b,sg3c,sg3dの少なくとも1つに属するデータを、n=1の階層のセグメントsg1に属するデータを記憶している記憶装置から別の記憶装置へ転送することを許容する。図1に示すように、例えば、n=3の階層の3つのセグメントsg3b,sg3c,sg3dに属するデータが、n=1の階層のセグメントsg1に属するデータを記憶している記憶装置から別の記憶装置へ転送される。
また、図1において、制御部12が、例えば、n=3の階層の一番右側に表記されているセグメントsg3dを更に分割していったとき、n=4の階層では、n=1の階層との階層間隔が3である。そのため、セグメントsg3dの子セグメントであるn=4の階層のセグメントsg4a,sg4bに属するデータの移動は制限される。一方、n=5の階層では、n=1の階層との階層間隔が4である。そのため、セグメントsg3dの孫セグメントである複数のセグメントsg5a,sg5b,sg5c,sg5dの少なくとも1つに属するデータは、セグメントsg3dに属するデータを記憶している記憶装置から別の記憶装置へ転送することが許容される。図1のように、例えば、セグメントsg5b,sg5c,sg5dに属するデータが、n=3のセグメントsg3dに属するデータを記憶している記憶装置から別の記憶装置へ転送される。
ところで、図1に示される例では、セグメントsg3dの孫セグメントであるセグメントsg5aに属するデータは転送されないが、これは、セグメントsg3dに属するデータを記憶している記憶装置に留まることを示している。このように、あるセグメントに対する分割深さが同じ複数セグメント間で、転送を許容するものと許容しないものを区別する手法については後述する。
なお、制御部12は、CPU(Central Processing Unit)およびRAMを用いて実行されるプログラムとして実現してもよい。
以上のように、制御部12は、セグメントを階層的に分割して、そのセグメントの子孫である複数のセグメントを生成していく際、分割が所定の分割の深さの条件を満たさない場合は、生成されたセグメントに属するデータの他の記憶装置への移動を制限する。
これにより、セグメントの分割のたびにデータ転送が発生することがなくなるため、情報処理システムにおける負荷分散の際のデータ転送量の増加を抑制できる。このため、負荷分散時の記憶装置間でのデータ移動によって、ユーザによる情報処理システムへのデータアクセスなどの妨げになることを抑制できる。
[第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において、クライアント装置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内の記憶装置(例えば、図3に示したようなHDD103)に記憶される。セグメントに属するデータを記憶する記憶装置を有するサーバ装置は、例えば、当該セグメントのラベルにハッシュ関数を適用して算出されるハッシュ値に基づいて決定することができる。
このように、セグメント単位でデータを配置するサーバ装置を決定することで、キーのローカリティを維持することができ、値の近いキーに対応付けられるデータ同士ができる限り同じサーバ装置に配置されるようになる。このため、範囲指定のリード要求など、範囲指定のデータ処理を効率的に実行できるようになる。セグメント管理ツリーの深さ(階層)は、サーバ装置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,100a,100b,100cは、セグメントのラベルまたは、そのラベルを後述の変換方法で変換したラベルにハッシュ関数を適用して、当該セグメントに対応するハッシュ値を算出する。そして、サーバ装置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に対応付ける。
ただし、サーバ装置100,100a,100b,100cへのセグメントの配置方法は、上記方法に限定されない。例えば、セグメントのラベルから算出されたハッシュ値をサーバ装置の数で割って余り(剰余)を求め、剰余に応じてセグメントを配置するサーバ装置を選択する方法が考えられる。例えば、ハッシュ値を4で割り、剰余=0のときはサーバ装置100、剰余=1のときはサーバ装置100a、剰余=2のときはサーバ装置100b、剰余=3のときはサーバ装置100cが選択される。
(サーバ装置のソフトウェア例)
図7は、サーバ装置のソフトウェア例を示すブロック図である。
サーバ装置100は、通信処理部110、格納先決定部120、イベント処理部130およびデータ記憶部140を有する。通信処理部110、格納先決定部120、イベント処理部130は、例えば、図3に示したようなCPU101およびRAM102を用いて実行されるプログラムとして実現できる。データ記憶部140は、例えば、図3に示したようなRAM102やHDD103上の記憶領域として実現できる。図2に示したサーバ装置100a,100b,100cも、サーバ装置100と同様のブロック構成によって実現できる。
通信処理部110は、リクエスト受信部111、転送条件記憶部112、データ送信部113、メッセージ処理部114を有する。
リクエスト受信部111は、図2に示したようなクライアント装置300からリクエストを受信すると、そのリクエストをメッセージ処理部114に通知する。また、リクエスト受信部111は、データ記憶部140から読み出されたデータまたはデータ記憶部140への書き込み結果をメッセージ処理部114から取得し、レスポンスとしてクライアント装置300に送信する。
転送条件記憶部112は、後述するセグメントの分割処理の際に、分割したセグメントに属するデータを、そのデータを記憶しているサーバ装置から他のサーバ装置に転送するか否かを決める転送条件の情報を記憶する。転送条件には、例えば、図5に示したようなセグメント管理ツリーにおいて、あるセグメントから階層的に分割されて生成されるセグメントに属するデータに対して、何階層間隔ごとに転送を許容するかが規定されている。転送条件は、あるノード(セグメント)の子孫ノードに属するデータを、何世代間隔ごとに転送を許容するか規定する条件である、ということもできる。なお、転送条件記憶部112は、例えば、図3に示したような、RAM102またはHDD103上の記憶領域として実現できる。
データ送信部113は、セグメントの分割処理の際に、転送条件記憶部112に記憶されている転送条件を参照する。そして、データ送信部113は、分割後のセグメントに属するデータがデータ記憶部140にある場合、転送条件に基づいて、分割後の少なくとも1つのセグメントに属するデータを他のサーバ装置に転送すべきか判定する。さらにデータ送信部113は、転送すべきと判定したとき、格納先決定部120に分割後の各セグメントに属するデータの格納先となるサーバ装置を問い合わせる。格納先決定部120で指定されたサーバ装置が自身のサーバ装置100ではない場合には、データ送信部113は、送信すべきデータをデータ処理部131に要求して、そのデータを受信する。そして、データ送信部113は、そのデータを格納先決定部120で決定されたサーバ装置に送信する。
メッセージ処理部114は、他のサーバ装置(サーバ装置100a,100b,100c)との間でメッセージを送受信する。メッセージ処理部114は、他のサーバ装置からリード要求やライト要求のメッセージを受信すると、イベント処理部130にデータ処理を依頼する。また、メッセージ処理部114は、例えば、セグメントの分割処理が発生した際に、セグメント管理部122からの依頼に応じて、他のサーバ装置にセグメント更新のメッセージを送信する。また、他のサーバ装置からセグメント更新のメッセージを受信すると、セグメント管理部122にセグメント情報の更新を依頼する。
また、メッセージ処理部114は、リクエスト受信部111で受信されたクライアント装置300からのリクエストを受け取る。リクエストがライト要求の場合、メッセージ処理部114は、リクエストに含まれるキーを格納先決定部120に渡し、データを書き込むサーバ装置を問い合わせる。格納先のサーバ装置がサーバ装置100である場合には、メッセージ処理部114は、データを、イベント処理部130を介してデータ記憶部140に格納する。格納先が他のサーバ装置である場合には、メッセージ処理部114は、そのサーバ装置にリクエストを転送する。リクエストがリード要求の場合、メッセージ処理部114は、リクエストに含まれるキーを格納先決定部120に渡し、データが存在するサーバ装置を問い合わせる。格納先のサーバ装置がサーバ装置100である場合には、メッセージ処理部114は、イベント処理部130を介してデータ記憶部140からデータを取り出す。格納先が他のサーバ装置である場合には、メッセージ処理部114は、そのサーバ装置にリクエストを転送する。
格納先決定部120は、セグメント情報記憶部121とセグメント管理部122を有する。
セグメント情報記憶部121は、図5のようなセグメント管理ツリーを記載したセグメント情報を記憶する。セグメント情報は、セグメントの分割に伴って更新される。セグメント情報記憶部121は、ハッシュ関数を示す情報を記憶してもよい。なお、セグメント情報記憶部121は、RAM102またはHDD103上の記憶領域として実現できる。
セグメント管理部122は、セグメント情報記憶部121に記憶されたセグメント情報に基づいて、リクエストで指定されたキーまたはキーの範囲に対応する1またはそれ以上のセグメントを検索する。そして、セグメント管理部122は、セグメントのラベルまたは後述の方法で変換したラベルとハッシュ関数から、検索されたセグメントに属するデータが配置されている1またはそれ以上のサーバ装置を判定する。また、セグメント管理部122は、検索されたセグメントに属するデータが自サーバ装置にある場合、イベント処理部130にデータ処理を依頼する。検索されたセグメントに属するデータが他のサーバ装置にある場合、メッセージ処理部114に当該他のサーバ装置へのメッセージの送信を依頼する。
さらに、セグメント管理部122は、イベント処理部130からセグメントを分割した旨の報告があると、セグメント情報記憶部121に記憶されたセグメント情報を更新する。そして、セグメントの更新を示すメッセージを他のサーバ装置に送信するよう、メッセージ処理部114に依頼する。また、セグメント管理部122は、メッセージ処理部114からの依頼に応じて、セグメント情報記憶部121に記憶されたセグメント情報を更新する。なお、セグメント管理部122は、セグメントが配置され得るサーバ装置の識別情報を、設定情報として管理装置200から受信して保持している。
イベント処理部130は、データ処理部131、算出式記憶部132、閾値算出部133および分割判定部134を有する。
データ処理部131は、セグメント管理部122またはメッセージ処理部114からの依頼に応じて、データ処理を行う。キーまたはキーの範囲を指定したリード要求である場合、データ処理部131は、キーに対応するデータまたはキーの範囲に対応するデータ群をデータ記憶部140から読み出す。キーを指定したライト要求である場合、データ処理部131は、キーに対応付けてデータをデータ記憶部140に書き込む。
また、データ処理部131は、データをデータ記憶部140に書き込んだ場合、セグメントの分割の要否を分割判定部134に問い合わせる。分割判定部134で分割を要すると判定された場合、データ処理部131は、セグメントの分割処理を行い、セグメントを分割した旨をセグメント管理部122に報告する。さらに、データ処理部131は、データ送信部113の要求に応じて、分割されたセグメントの1つまたは複数に属するデータを、データ送信部113に送る。
算出式記憶部132は、セグメントを分割するか判定するための閾値を算出する算出式を記憶する。閾値は、後述するように、分割の要否を判定するセグメントのラベルに基づいて算出される。閾値の算出式は、例えば、管理装置200のユーザが記述し、管理装置200が算出式記憶部132に設定する。なお、算出式記憶部132は、例えば、図3に示したような、RAM102またはHDD103上の記憶領域として実現できる。
閾値算出部133は、分割判定部134から指定されたセグメントのラベルと、算出式記憶部132に記憶された閾値の算出式から、指定されたセグメントの閾値を算出する。そして、算出した閾値を分割判定部134に回答する。
分割判定部134は、データ処理部131からの問い合わせに応じて、データの書き込みが行われたセグメントの分割の要否を判定する。分割判定部134は、書き込みが行われたセグメントのラベルを指定して、閾値算出部133に閾値の算出を依頼する。セグメントのラベルは、例えば、セグメント情報を参照して、ライト要求で指定されたキーから求める。また、分割判定部134は、データ記憶部140を参照して、書き込みが行われたセグメントのデータ量あるいはデータ数(例えば、当該セグメントに属するキーに対応付けられたデータの総量または総数)を求める。そして、分割判定部134は、データ量あるいはデータ数が閾値を超える場合、分割を要すると判定し、データ量あるいはデータ数が閾値以下の場合、分割を要しないと判定する。
なお、分割判定部134は、定期的に、各セグメントに属するデータ量あるいはデータ数をチェックし、データ量あるいはデータ数が閾値を超えているセグメントに対して、分割を要すると判定するようにしてもよい。
データ記憶部140は、キーとデータを対応付けて記憶する。データ記憶部140は、記憶領域をセグメント毎に分割して、キーとデータを記憶してもよい。
(セグメント分割処理)
図8は、セグメント分割の一例を示すフローチャートである。ここでは、サーバ装置100が処理を行う場合を考える。サーバ装置100a,100b,100cも、サーバ装置100と同様の処理を行う。以下、図8に示す処理をステップ番号に沿って説明する。
(ステップS11)分割判定部134は、データ処理部131がデータ記憶部140に書き込んだデータのキーを特定する。そして、セグメント情報記憶部121に記憶されたセグメント情報に基づいて、キーに対応するセグメントを検索する。
(ステップS12)閾値算出部133は、算出式記憶部132に記憶された算出式に、ステップS11の処理で検索されたセグメントのラベルを代入し、当該セグメントの閾値を算出する。閾値の算出式は、例えば、以下のように表せる。
閾値th(L)=R×2^((f×N)の小数部) (1)
f=value(L)/blength(L) (2)
式(1)において、th(L)は、あるラベルLのセグメントに適用する閾値を示している。また、Rは所定のルート閾値、Nは前述した転送を許容する階層間隔を示している。式(2)において、bはセグメント管理ツリーの分岐数を示す。また、length(L)はラベルのビット数を示し、value(L)はラベルLが表す10進数表現の値を示す。
(ステップS13)分割判定部134は、データ記憶部140を参照して、ステップS11の処理で検索したセグメントのデータ量(例えば、当該セグメントに属するキーに対応付けられているデータの総量)あるいはデータ数を算出する。そして、分割判定部134は、データ量あるいはデータ数がステップS12の処理で算出された閾値を超えているか判断する。データ量あるいはデータ数が閾値を超える場合、ステップS14の処理が行われる。データ量あるいはデータ数が閾値以下の場合、処理が終了する。
(ステップS14)セグメント管理部122は、ステップS11の処理で検索されたセグメントを分割して得られるb個の子セグメントを定義する。例えば、セグメントのラベルがLでありb=2の場合、セグメント管理部122は、ラベルL+0,L+1の子セグメントを定義する。
(ステップS15)データ処理部131は、データ記憶部140から、ステップS11の処理で検索されたセグメントに属するキーを1つ選択する。
(ステップS16)データ処理部131は、ステップS14の処理で定義された子セグメントの中から、ステップS15の処理で選択したキーのプレフィックスと一致するラベルをもつ子セグメントを特定する。そして、データ処理部131は、ステップS15の処理で選択したキーを、特定した子セグメントに割り当てる。
(ステップS17)データ処理部131は、ステップS15の処理で全てのキーを選択したか判断する。全てのキーが選択された場合、ステップS18の処理が行われる。未選択のキーが存在する場合、ステップS15からの処理が繰り返される。
(ステップS18)データ送信部113は、b個の子セグメントの何れかに属するデータを他のサーバ装置に転送することを許可するか判定する処理(データ転送判定処理)を行う。データ転送判定処理の一例については後述する。データ送信部113が、データ転送を許可すると判定した場合にはステップS19の処理が行われ、データ転送を許可しないと判定した場合にはステップS20の処理が行われる。
(ステップS19)データ送信部113は、他のサーバ装置に配置される子セグメントに属するデータ(当該子セグメントに属するキーと対応付けられているデータ)を、データ処理部131を介してデータ記憶部140から読み出し、他のサーバ装置に送信する。データの送信が完了すると、データ送信部113は、データ処理部131に対してデータの送信が完了した旨を通知する。データ処理部131は、データ送信部113からデータの送信が完了したことを通知されると、他のサーバ装置に配置される子セグメントのデータをデータ記憶部140から削除する。
(ステップS20)セグメント管理部122は、ステップS14の処理で実施されたセグメント分割が反映されるように、セグメント情報記憶部121に記憶されているセグメント情報を更新する。メッセージ処理部114は、セグメントの更新を他の全てのサーバ装置に通知する。
なお、上記の分割処理では、ライト対象のセグメントを分割する例を示したが、定期的に現在のセグメント管理ツリーの最下層の各セグメントに属するデータ量またはデータ数と閾値との比較結果に応じて分割処理を実施するようにしてもよい。
また、上記の分割処理では、検索されたライト対象のセグメントのラベルから閾値を算出し、算出した閾値をステップS13の処理で使用していたが、これに限定されない。例えば、各セグメントが生成された段階で、閾値算出部133が閾値を算出し、記憶部(例えば、セグメント情報記憶部121)に記憶しておくようにしてもよい。その場合、分割判定部134は、ステップS11の処理で検索されたセグメントに対応する閾値を記憶部から取り出して、ステップS13の処理で使用する。また、閾値は、全セグメントで同一の値としてもよい。
図9は、セグメントの閾値の例を示す図である。図9の閾値の例は、図5に示した2分木で表現されたセグメント管理ツリーに式(1)を適用して算出したものである。
ただし、図9の例では、ルート閾値R=128[MB]、転送を許容する階層間隔N=4としている。
各階層レベル(n=1〜5)の左端ノード(ルートノード(ラベル“Φ”)およびラベル“0”,“00”,“000”,“0000”のノード)に対応するセグメントには、ルート閾値R=128が設定される。左端ノード以外のノードに対応するセグメントには、128を2((f×N)ノ小数部)倍した閾値が設定される。
例えば、ラベル“1”のセグメントでは、前述した式(2)からf=0.5となる。式(1)では、f×N=0.5×4=2.0であり、小数部は0であるから、閾値th(“1”)=128×20=128[MB]となる。
また、ラベル“111”のセグメントでは、前述した式(2)からf=7/23=0.875となる。式(1)では、f×N=0.875×4=3.5であり、小数部は0.5であるから、閾値th(“111”)=128×20.5≒181[MB]となる。
図9には、他のセグメントについても式(1),(2)に基づいて算出された閾値とfの値が表記されている。
式(1)に基づいて閾値を算出することで、分割したときに転送が生じる可能性がある階層に属するセグメントにおいて、分割されるタイミングをずらすことができる。図9に示したようなセグメント管理ツリーにおいて、転送を許容する階層間隔N=4としているので、例えば、n=4の階層のラベル“000”,“001”のセグメントは、分割されたときに転送が生じる可能性がある(詳細は後述する)。ラベル“000”のセグメントに対応づけられた閾値が128[MB]で、ラベル“001”のセグメントに対応づけられた閾値が181である。このような閾値を適用することで、キー空間全体に対して均等に一定の速度でデータが追加される場合を考えると、ラベル“000”のセグメントに対して、ラベル“001”のセグメントの分割されるタイミングを遅らせることができる。
また、式(1)に従って各セグメントの閾値を算出すると、データがキー空間に対して均等に追加される場合には、上位の階層のセグメントの分割が完了した後に、下位の階層のセグメントの分割が行われる。例えば、ラベル“1”のセグメントが分割された後に、ラベル“00”のセグメントが分割される。ラベル“11”のセグメントが分割された後に、ラベル“000”のセグメントが分割される。ラベル“111”のセグメントが分割された後に、ラベル“0000”のセグメントが分割される。
(データ転送判定処理)
図8のフローチャートにおけるステップS18の処理(データ転送判定処理)の例を説明する。
図10は、データ転送判定処理の一例を示すフローチャートである。ここでも、サーバ装置100が処理を行う場合を考える。サーバ装置100a,100b,100cも、サーバ装置100と同様の処理を行う。以下、図10に示す処理をステップ番号に沿って説明する。
(ステップS21)データ送信部113は、図8に示したフローチャートのステップS14の処理で定義された子セグメントのラベルを、例えば、以下のようにして変換する。変換手法としては、例えば、以下の2通りがある。
(ラベル変換方法1)
データ送信部113は、転送条件記憶部112に格納されている転送を許容する階層間隔Nを参照する。そして、データ送信部113は、例えば、2進数で表されるセグメントのラベルの先頭から、Nの倍数のビットだけ残し、端数のビットを削除する。
例えば、N=4とした場合、上記変換方法によれば、図9に示したようなセグメント管理ツリーでは、n=1〜4の階層のセグメントにおけるラベルの値は削除され、n=5の階層のセグメントのラベルは全てのビットが残る。
さらに、データ送信部113は、ラベルのLSB(Least Significant Bit)からMSB(Most Significant Bit)に向かってNの倍数分のビットが連続して0の場合、Nの倍数分の連続する0を削除する。
例えば、N=4とした場合、ラベル“11110000”はラベル“1111”に変換され、ラベル“10100000000”はラベル“101”に変換される。
(ラベル変換方法2)
データ送信部113は、例えば、2進数で表されるセグメントのラベルに対して、式(2)を適用してfの値を求める。なお、fの値は、閾値を算出する処理(図8のステップS12の処理)で求められたものを、データ送信部113が取得して用いるようにしてもよい。
データ送信部113は、ラベルのビット数をNで割った余り(A)がf×Nの整数部に一致する場合は、ラベルの値をそのまま維持する。Aがf×Nの整数部に一致しない場合には、そのラベルのLSBからMSBに向かってAビットを削除する。
また、ラベル変換方法1と同様に、データ送信部113は、ラベルのLSBからMSBに向かってNの倍数分のビットが連続して0の場合、Nの倍数分の連続する0を削除する。
(ステップS22)データ送信部113は、上記の2つのラベル変換方法の何れかを実行した後、セグメント管理部122に対して、子セグメントのラベルまたは変換されたラベルを通知し、子セグメントに属するデータを配置するサーバ装置を問い合わせる。
(ステップS23)セグメント管理部122は、子セグメントのラベルまたは変換されたラベルにハッシュ関数を適用して、その子セグメントに対応するハッシュ値を算出する。そして、セグメント管理部122は、図6に示したように、各サーバ装置のハッシュ値とセグメントのハッシュ値のループ上での位置関係に基づいて、その子セグメントに属するデータを配置するサーバ装置を決定する。また、セグメント管理部122は、決定したサーバ装置をデータ送信部113に通知する。
(ステップS24)データ送信部113は、決定されたサーバ装置が、予め、ステップS21,S22と同様の処理により決定されている親セグメントに属するデータを配置するサーバ装置と異なっているか判定する。複数の子セグメントのそれぞれについて決定されたサーバ装置の中に、親セグメントに属するデータを配置するサーバ装置と異なっているものがある場合には、ステップS25の処理が行われる。複数の子セグメントのそれぞれについて決定されたサーバ装置が全て、親セグメントに属するデータを配置するサーバ装置と同じであれば、ステップS26の処理が行われる。
(ステップS25)データ送信部113は、親セグメントに対応付けられたサーバ装置と異なるサーバ装置が指定された子セグメントに対して、その子セグメントに属するデータを親セグメントに対応付けられたサーバ装置から、指定されたサーバ装置に転送することを許可する。
(ステップS26)データ送信部113は、子セグメントに属するデータを、親セグメントに対応付けられたサーバ装置から他のサーバ装置へ転送することを許可しない。
(ラベル変換方法1の適用例)
図11は、ラベル変換方法1を適用した場合に転送が許容されるセグメントの例を示す図である。図11では、図9に示したセグメント管理ツリーと同様のものが示されている。
なお、以下では、n=1のセグメントに属するデータがサーバ装置100のデータ記憶部140に格納されるものとして説明する。矢印が付加されているセグメントは、そのセグメントに属するデータが、サーバ装置100から、他のサーバ装置へ転送が許容されるセグメントであることを示している。
転送を許容する階層間隔N=4として、上記のラベル変換方法1を適用した場合、前述のようにn=1〜n=4の階層のセグメントのラベルを一部削除した値でハッシュ値を算出するため、ハッシュ値は同じ値となる。そのため、セグメント管理部122は、転送先として同じサーバ装置100をデータ送信部113に指定する。そのため、n=1〜n=4の階層のセグメントに属するデータの移動は発生しない。
n=5の階層では、ラベル“0000”のセグメントについては、上記のラベル変換方法1により全ての“0”が削除されるため、同じサーバ装置100が指定される。n=5の階層のその他のセグメントについては、各セグメントのラベルの値に応じてセグメント管理部122で転送先のサーバ装置が指定される。ただし、サーバ装置の数などによっては、セグメント管理部122で同じサーバ装置100が指定されるセグメントが生じる場合もある。その場合には、データ送信部113は、そのセグメントに属するデータを、サーバ装置100から他のサーバ装置に転送しない。
図11に示すようなセグメント管理ツリーにおいて、更にセグメントの分割を進めていったとき、N=4として、ラベル変換方法1を適用すると、4階層間隔ごとに、転送が許可されるセグメントが現れる。
このように、ラベル変換方法1を適用すると、所定の分割深さ(階層間隔)が満たされない場合は、生成されたセグメントに属するデータの他の記憶装置への移動が制限される。これにより、情報処理システムにおける負荷分散の際の平均データ転送量の増加を抑制できる。このため、負荷分散時の記憶装置間でのデータ移動によって、ユーザによる情報処理システムへのデータアクセスなどの妨げになることを抑制できる。
(ラベル変換方法2の適用例)
図12は、ラベル変換方法2を適用した場合に転送が許容されるセグメントの例を示す図である。図12では、図9に示したセグメント管理ツリーと同様のものが示されている。
なお、以下でも、n=1のセグメントに属するデータがサーバ装置100のデータ記憶部140に格納されるものとして説明する。また、矢印が付加されているセグメントは、そのセグメントに属するデータが、サーバ装置100から、他のサーバ装置へ転送が許容されるセグメントであることを示している。
転送を許容する階層間隔N=4として、上記のラベル変換方法2を適用した場合、n=2の階層のラベル“0”のセグメントは、ラベルのビット数が1であり、N=4で割った余り(A)が1であり、f×N=0.0である。この場合、A=1がf×N=0.0の整数部に一致しないため、ラベルのLSBからMSBに向かって1ビット削除される。その結果、ラベルのビットは全て削除される。従って、ハッシュ値は、n=1の階層のセグメントと同じとなり、セグメント管理部122は、転送先としてサーバ装置100をデータ送信部113に指定する。そのため、ラベル“0”のセグメントに属するデータの移動は発生しない。ラベル“1”のセグメントについても同様に、ハッシュ値は、n=1の階層のセグメントと同じとなり、セグメント管理部122は、転送先としてサーバ装置100をデータ送信部113に指定する。そのため、ラベル“1”のセグメントに属するデータの移動は発生しない。
n=3の階層では、各セグメントのラベルのビット数が2であり、N=4で割った余り(A)が2である。f×4の整数部が2に一致するのは、ラベル“10”のセグメントである。そのため、データ送信部113は、ラベル“10”をセグメント管理部122に通知する。セグメント管理部122は、ラベル“10”に対応したハッシュ値を求め、そのハッシュ値をもとに、ラベル“10”のセグメントに属するデータの転送先となるサーバ装置を決定し、データ送信部113に通知する。データ送信部113は、通知されたサーバ装置がサーバ装置100と異なる場合には、ラベル“10”のセグメントに属するデータを通知されたサーバ装置に転送する。
n=3の階層のその他のセグメントは、ラベル変換方法2によってビット数分のデータが削除されるため、ハッシュ値は、n=1の階層のセグメントと同じとなる。そのため、セグメント管理部122は、転送先としてサーバ装置100をデータ送信部113に指定する。そのため、それらのセグメントに属するデータの移動は発生しない。
n=4の階層では、各セグメントのラベルのビット数が3であり、N=4で割った余り(A)が3である。f×4の整数部が3に一致するのは、ラベル“110”,“111”のセグメントである。そのため、データ送信部113は、ラベル“110”,“111”をセグメント管理部122に通知する。セグメント管理部122は、ラベル“110”,“111”に対応したハッシュ値を求め、そのハッシュ値をもとに、ラベル“110”,“111”のセグメントに属するデータの転送先となるサーバ装置を決定し、データ送信部113に通知する。データ送信部113は、通知されたサーバ装置がサーバ装置100と異なる場合には、ラベル“110”,“111”のセグメントに属するデータを通知されたサーバ装置に転送する。
n=4の階層のその他のセグメントは、ラベル変換方法2によってビット数分のデータが削除されるため、ハッシュ値は、n=1の階層のセグメントと同じとなる。そのため、セグメント管理部122は、転送先としてサーバ装置100をデータ送信部113に指定する。そのため、それらのセグメントに属するデータの移動は発生しない。
n=5の階層では、各セグメントのラベルのビット数が4であり、N=4で割った余り(A)が0である。f×4の整数部が0に一致するのは、ラベル“0000”〜“0011”のセグメントある。ただし、ラベル“0000”は、LSBからMSBに向かってNの倍数(1倍)だけ0が連続しているため、削除される。ラベル“0100”〜“0111”については、A=0であるため、削除されない。そのため、データ送信部113は、ラベル“(空)”〜“0111”をセグメント管理部122に通知する。セグメント管理部122は、ラベル“(空)”〜“0111”に対応したハッシュ値を求め、そのハッシュ値をもとに、ラベル“(空)”〜“0111”のセグメントに属するデータの転送先となるサーバ装置を決定し、データ送信部113に通知する。ラベル“(空)”については、ハッシュ値はn=1の階層のセグメントと同じになるので、サーバ装置100が指定される。ラベル“0001”〜“0111”のセグメントに関しては、データ送信部113は、通知されたサーバ装置がサーバ装置100と異なる場合には、それらのセグメントに属するデータを通知されたサーバ装置に転送する。
なお、ラベル“1000”〜“1111”についても、A=0であるためラベルの値は削除されない。しかし、ラベル“10”またはラベル“110”,“111”のセグメントで転送が発生した場合、ラベル“1000”〜“1111”のセグメントは、分割の深さの条件を満たさない。すなわち、ラベル“10”またはラベル“110”,“111”のセグメントが属する階層と、ラベル“1000”〜“1111”のセグメントが属する階層との階層間隔はN=4未満である。そのため、データ送信部113は、それらのセグメントに属するデータの移動を許容しない。なお、更にセグメントの分割が進むと、ラベル“10”のセグメントや、ラベル“110”,“111”の子孫では、4階層間隔ごとにデータの移動が許容されるセグメントが現れることになる。ラベル“0001”〜“0111”のセグメントの子孫についても同様である。
このように、図12の例では、セグメント管理ツリーにおいて、データの転送が許容されるセグメントが1つの階層に集中せず、複数階層にわたって配置されている。
以上のようにラベル変換方法2を適用すると、ラベル変換方法1を適用した場合と同様の効果が得られるとともに、複数のセグメントの間でデータ転送が発生するタイミングをずらすことができ、データ転送の発生が同時期に集中することを抑制することができる。このため、情報処理システムの負荷を軽減できる。
上記のようなデータ転送判定処理は、図2に示したような他のサーバ装置100a,100b,100cについても、各サーバ装置が有しているセグメントの情報を用いて同様に行うことが可能である。
(リクエスト処理)
図13は、リクエスト処理の一例を示すフローチャートである。ここでは、サーバ装置100が処理を行う場合を考える。サーバ装置100a,100b,100cも、サーバ装置100と同様の処理を行う。以下、図13に示す処理をステップ番号に沿って説明する。
(ステップS31)リクエスト受信部111は、クライアント装置300からリクエストを受信する。リクエストの種類には、1つのキーを指定したリード要求、キーの範囲を指定したリード要求、および、1つのキーを指定したライト要求が含まれる。
(ステップS32)セグメント管理部122は、ステップS31の処理で受信されたリクエストがキーの範囲を指定したものか判断する。範囲指定のリクエストである場合、ステップS34の処理が行われる。それ以外の場合、ステップS33が行われる。
(ステップS33)セグメント管理部122は、セグメント情報記憶部121に記憶されたセグメント情報を参照して、リクエストで指定されたキーの属するセグメントを検索する。セグメントの検索では、例えば、b進数(bは2以上の整数)で表現したキーのプレフィックスとラベルを、セグメント管理ツリーのルートノードから葉ノードに向かって比較していき、プレフィックスと一致するラベルをもつ葉ノードが特定される。特定した葉ノードに相当するセグメントが、検索されるセグメントである。
(ステップS34)セグメント管理部122は、セグメント情報を参照して、リクエストで指定された範囲内のキーを少なくとも1つ含むセグメントを全て検索する。複数のセグメントの検索では、例えば、範囲内のキーの最大値と最小値とに共通する最長のプレフィックスを求め、当該プレフィックスをラベルとしてもつノードが特定される。そして、セグメント管理部122は、特定したノード以下の複数の葉ノードを特定する。特定した複数の葉ノードに相当する複数のセグメントが、検索されるセグメントである。
例えば、キーの範囲が00010〜00101の場合、キーの最小値00010と最大値00101とに共通する最長のプレフィックスは、00である。よって、ラベル“00”のノードより下位にある、ラベル“000”,“001”の葉ノードが特定される。そして、ラベル“000”に相当するセグメントとラベル“001”に相当するセグメントとが検索される。
(ステップS35)セグメント管理部122は、ステップS33またはステップS34の処理で検索されたセグメントのラベルを、上記のデータ転送判定処理で適用されたラベル変換方法1,2の何れかを用いて変換する。そしてセグメント管理部122は、ラベルまたは変換されたラベルに対してハッシュ関数を適用し、ハッシュ値を算出する。そして、セグメント管理部122は、ハッシュ値からセグメントが配置されているサーバ装置を特定する。サーバ装置は、例えば、図6に示した方法で特定される。ステップS34の処理で複数のセグメントが検索された場合、複数のサーバ装置が特定されることがある。以下のステップS36〜S38の処理が、特定されたサーバ装置毎またはセグメント毎に実行される。
(ステップS36)セグメント管理部122は、データ処理の対象のセグメントが配置されたサーバ装置として、他のサーバ装置がステップS35の処理で特定されたか判断する。他のサーバ装置が特定された場合、ステップS37の処理が行われる。自装置(サーバ装置100)が特定された場合、ステップS38の処理が行われる。
(ステップS37)メッセージ処理部114は、ステップS35の処理で特定された他のサーバ装置に対して、リード要求またはライト要求を示すメッセージを送信する。メッセージには、クライアント装置300からのリクエストで指定されたキーまたはキーの範囲のうち、宛先のサーバ装置に記憶されているキーまたはキーの範囲が含まれる。その後、メッセージ処理部114は、応答のメッセージを他のサーバ装置から受信する。応答のメッセージには、キーに対応するデータまたは書き込み完了の報告が含まれる。
(ステップS38)データ処理部131は、クライアント装置300からのリクエストに応じたデータ処理を行う。リード要求の場合、リクエストで指定されたキーまたはキーの範囲のうち、自装置に記憶されているキーまたはキーの範囲に対応するデータをデータ記憶部140から読み出す。ライト要求の場合、リクエストに含まれるキーとデータとを対応付けて、データ記憶部140に書き込む。
(ステップS39)リクエスト受信部111は、ステップS31で受信したリクエストに対するレスポンスをクライアント装置300に送信する。リクエストがリード要求である場合、レスポンスとして、ステップS37,S38で自装置または他のサーバ装置から読み出されたデータを送信する。リクエストがライト要求である場合、レスポンスとして、ステップS37,S38で確認された書き込み完了の報告を送信する。
(情報処理システムの動作シーケンス例)
図14は、情報処理システムの動作シーケンスの一例を示すシーケンス図である。クライアント装置300がサーバ装置100に対して、データの書き込みのリクエストを送信し、データの書き込みによってセグメント分割が発生する場合を考える。
(ステップS41)クライアント装置300は、データの書き込みを示すリクエストをサーバ装置100に送信する。リクエストには、キーとデータが含まれる。
(ステップS42)サーバ装置100は、自装置が有するセグメント情報からキーの属するセグメントを検索し、ラベルを、適用されたラベル変換方法1または2を用いて変換する。そして、サーバ装置100は、変換されたラベルとハッシュ関数を用いて当該セグメントに属するデータが配置されているサーバ装置(ここでは、サーバ装置100a)を特定する。そして、ライト要求のメッセージをサーバ装置100aに送信する。メッセージには、キーとデータが含まれる。
(ステップS43)サーバ装置100aは、サーバ装置100から受信したメッセージに含まれるキーとデータとを対応付けて、自装置が有する記憶装置に書き込む。そして、書き込み完了を示すレスポンスをサーバ装置100に送信する。
(ステップS44)サーバ装置100は、サーバ装置100aで書き込みが完了したことを確認すると、クライアント装置300にレスポンスを送信する。
(ステップS45)サーバ装置100aは、データの書き込みによって、セグメントのデータの量またはデータ数が閾値を超えたことを検出する。すると、サーバ装置100aは、当該セグメントをb個(例えば、2個)のセグメントに更に分割する。
(ステップS46)サーバ装置100aは、図10に示したようなデータ転送判定処理を行う。以下では、分割後の2つのセグメントに属するデータが、サーバ装置100a,100bに分散して記憶されるものとする。
(ステップS47)サーバ装置100aは、サーバ装置100bに記憶されるキーとデータをサーバ装置100bに送信する。
(ステップS48)サーバ装置100bは、サーバ装置100aから受信したキーとデータを対応付けて、自装置が有する記憶装置に書き込む。そして、書き込み完了を示すレスポンスをサーバ装置100aに送信する。
(ステップS49)サーバ装置100aは、サーバ装置100bへの複製が完了したセグメントのデータを、自装置が有する記憶装置から削除する。また、サーバ装置100aは、セグメントの分割が反映されるように、自装置が有するセグメント情報を更新する。そして、サーバ装置100aは、セグメントの更新を示す通知を、他の全てのサーバ装置(サーバ装置100,100b,100c)に送信する。
(ステップS50)サーバ装置100,100b,100cは、サーバ装置100aからの通知に基づいて、自装置が有するセグメント情報を更新する。そして、セグメント情報の更新完了を示すレスポンスを、サーバ装置100aに送信する。これにより、サーバ装置100aによるセグメント情報の更新が、サーバ装置100,100b,100cが有するセグメント情報に反映される。
第2の実施の形態によれば、サーバ装置100,100a,100b,100cはキーとデータを対応付けて記憶し、クライアント装置300から指定されたキーについてデータ処理を行うので、データ処理の複雑性を低減でき負荷が低くなる。また、データが複数のサーバ装置に分散して記憶されると共に、何れのサーバ装置もクライアント装置300からリクエストを受け付けることができるので、ボトルネックとなる装置が生じないように設計可能であり、情報処理システムの可用性が向上する。
また、キー空間を複数のセグメントに分割し、セグメント単位でデータがサーバ装置に配置されるので、値の近いキーに対応するデータ同士が同一のサーバ装置に記憶される確率が高くなり、キーの範囲を指定したデータ処理を効率的に実行できる。また、セグメント分割やデータ転送の要否は、セグメントのラベルに基づいてセグメント毎に独立に判定できるので、各サーバ装置が他のサーバ装置とネゴシエーションを行わずに判定でき、スケーラビリティを向上できる。
また、所定の分割深さ(階層間隔)を満たさない場合は、生成されたセグメントに属するデータの他の記憶装置への移動が制限される。これにより、情報処理システムにおける負荷分散の際の平均データ転送量の増加を抑制できる。このため、負荷分散時の記憶装置間でのデータ移動によって、ユーザによる情報処理システムへのデータアクセスなどの妨げになることを抑制できる。
また、データ転送判定処理において、ラベル変換方法2を適用すると、複数のセグメントの間で、データ転送が発生するタイミングをずらすことができ、データ転送の発生が同時期に集中することを抑制することができる。このため、情報処理システムの負荷を軽減できる。
なお、前述のように、第2の実施の形態のデータ管理は、コンピュータとしてのサーバ装置100,100a,100b,100cに、それぞれデータ管理プログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体33)に記録しておくことができる。記録媒体として、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク41経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを記憶装置(例えば、HDD103)に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワーク41を介して受信したプログラムを直接実行してもよい。
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
10 情報処理装置
11 記憶部
12 制御部
20−1〜20−n 記憶装置
sg1,sg2a,sg2b,sg3a,sg3b,sg3c,sg3d,sg4a,sg4b,sg5a,sg5b,sg5c,sg5d セグメント

Claims (9)

  1. 記憶するデータに対応付けられるキーの集合を複数のセグメントに分割し、セグメント単位で複数の記憶装置へのデータの配置を管理する情報処理システムに用いられる、情報処理装置であって、
    セグメントとキーとの対応関係を示すセグメント情報を記憶する記憶部と、
    グメントを複数に分割し、前記セグメント情報を更新する制御部と、を有し、
    前記制御部は、第1のセグメントから1回または階層的にN(N>1)回の分割によって複数の第2のセグメントが得られたときに、前記分割が所定の条件を満たす場合には、前記複数の第2のセグメントの少なくとも1つに属するデータを、前記第1のセグメントに属するデータを記憶していた第1の記憶装置から第2の記憶装置へ移動することを許容し、前記分割が前記所定の条件を満たさない場合には、前記複数の第2のセグメントに属するデータの移動を制限する、
    情報処理装置。
  2. 前記制御部は、一のセグメントに属するデータの増加に応じて、当該一のセグメントを複数に分割し、前記セグメント情報を更新する、
    請求項1記載の情報処理装置。
  3. 前記制御部は、前記分割の回数が前記所定の条件を満たす場合には、前記複数の第2のセグメントの少なくとも1つに属するデータを、前記第1のセグメントに属するデータを記憶していた前記第1の記憶装置から前記第2の記憶装置へ移動することを許容し、前記分割の回数が前記所定の条件を満たさない場合には、前記複数の第2のセグメントに属するデータの移動を制限する、
    請求項1記載の情報処理装置。
  4. 前記所定の条件は、前記第1のセグメントの階層と前記複数の第2のセグメントの階層との間の間隔が、2以上の所定の階層間隔の倍数であるという条件である、
    請求項1記載の情報処理装置。
  5. 各セグメントには、前記分割の深さに応じた長さのラベルが付与されており、
    前記制御部は、前記複数の第2のセグメントに付与されたラベルに基づいて、前記所定の条件を満たすか否か判定する、
    請求項1乃至3の何れか一項に記載の情報処理装置。
  6. 前記所定の条件を満たすか否かは、同じ階層のセグメント間では判定結果が同じになる方法を用いて判定する、
    請求項1乃至3の何れか一項に記載の情報処理装置。
  7. 前記所定の条件を満たすか否かは、同じ階層のセグメント間でもセグメントによって判定結果が異なる方法を用いて判定する、
    請求項1乃至3の何れか一項に記載の情報処理装置。
  8. 記憶するデータに対応付けられるキーの集合を複数のセグメントに分割し、セグメント単位で複数の記憶装置へのデータの配置を管理する情報処理システムが行うデータ管理方法であって、
    グメントを複数に分割し、セグメントとキーとの対応関係を示すセグメント情報を更新し、
    第1のセグメントから1回または階層的にN(N>1)回の分割によって複数の第2のセグメントが得られたときに、前記分割が所定の条件を満たす場合には、前記複数の第2のセグメントの少なくとも1つに属するデータを、前記第1のセグメントに属するデータを記憶していた第1の記憶装置から第2の記憶装置へ移動することを許容し、
    前記分割が前記所定の条件を満たさない場合には、前記複数の第2のセグメントに属するデータの移動を制限する、
    データ管理方法。
  9. 記憶するデータに対応付けられるキーの集合を複数のセグメントに分割し、セグメント単位で複数の記憶装置へのデータの配置を管理する情報処理システムに用いられるコンピュータに実行させるプログラムであって、前記コンピュータに、
    グメントを複数に分割し、セグメントとキーとの対応関係を示すセグメント情報を更新し、
    第1のセグメントから1回または階層的にN(N>1)回の分割によって複数の第2のセグメントが得られたときに、前記分割が所定の条件を満たす場合には、前記複数の第2のセグメントの少なくとも1つに属するデータを、前記第1のセグメントに属するデータを記憶していた第1の記憶装置から第2の記憶装置へ移動することを許容し、
    前記分割が前記所定の条件を満たさない場合には、前記複数の第2のセグメントに属するデータの移動を制限する、
    処理を実行させるプログラム。
JP2013552374A 2012-01-06 2012-01-06 情報処理装置、データ管理方法およびプログラム Expired - Fee Related JP5765441B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/050158 WO2013103012A1 (ja) 2012-01-06 2012-01-06 情報処理装置、データ管理方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2013103012A1 JPWO2013103012A1 (ja) 2015-05-11
JP5765441B2 true JP5765441B2 (ja) 2015-08-19

Family

ID=48745082

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US20140310321A1 (ja)
EP (1) EP2801911A4 (ja)
JP (1) JP5765441B2 (ja)
WO (1) WO2013103012A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103327084B (zh) * 2013-06-08 2017-01-04 北京古盘创世科技发展有限公司 一种公私混合分布式的云存储系统及云存储方法
JP6344962B2 (ja) * 2014-04-25 2018-06-20 Kddi株式会社 構成情報管理サーバ、ネットワーク構成情報管理システムおよび構成情報管理方法
US10572509B2 (en) * 2015-07-27 2020-02-25 Cisco Technology, Inc. Scalable spine nodes with partial replication of routing information in a network environment
US11256696B2 (en) * 2018-10-15 2022-02-22 Ocient Holdings LLC Data set compression within a database system
US12050580B2 (en) 2018-10-15 2024-07-30 Ocient Inc. Data segment storing in a database system
CN110430042B (zh) * 2019-06-28 2022-11-22 中国人民解放军战略支援部队信息工程大学 一种在异构冗余系统中存储秘钥的装置及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050193425A1 (en) * 2000-07-24 2005-09-01 Sanghoon Sull Delivery and presentation of content-relevant information associated with frames of audio-visual programs
GB2366014B (en) * 2000-08-19 2004-10-13 Ibm Free space collection in information storage systems
US7546319B1 (en) * 2003-04-28 2009-06-09 Ibrix, Inc. File system consistency checking in a distributed segmented file system
JP2007148545A (ja) * 2005-11-24 2007-06-14 Brother Ind Ltd 情報配信システム、情報配信方法、ノード装置、及びノード処理プログラム
JP2007193626A (ja) * 2006-01-20 2007-08-02 Brother Ind Ltd コンテンツ配信システム、ノード装置及びその情報処理方法並びにそのプログラム
CN101505262B (zh) * 2008-02-05 2011-07-20 华为技术有限公司 一种构造节点Id的方法和装置

Also Published As

Publication number Publication date
WO2013103012A1 (ja) 2013-07-11
EP2801911A1 (en) 2014-11-12
EP2801911A4 (en) 2014-12-10
JPWO2013103012A1 (ja) 2015-05-11
US20140310321A1 (en) 2014-10-16

Similar Documents

Publication Publication Date Title
KR102240557B1 (ko) 데이터 저장 방법, 장치 및 시스템
JP5765441B2 (ja) 情報処理装置、データ管理方法およびプログラム
US8832113B2 (en) Data management apparatus and system
JP5411250B2 (ja) 冗長データ記憶システムへの指示に従ってのデータ配置
CN103150394B (zh) 面向高性能计算的分布式文件系统元数据管理方法
US7934211B2 (en) Multi-level patching operation
CN103067433B (zh) 一种分布式存储系统的数据迁移方法、设备和系统
US9031906B2 (en) Method of managing data in asymmetric cluster file system
JP2013045379A (ja) ストレージ制御方法、情報処理装置およびプログラム
JP6222227B2 (ja) ストレージノード、ストレージノード管理装置、ストレージノード論理容量設定方法、プログラム、記録媒体および分散データストレージシステム
JP2012256324A (ja) データ管理方法、および、複合型データ管理システム
US9128944B2 (en) File system enabling fast purges and file access
US10678817B2 (en) Systems and methods of scalable distributed databases
US20140244794A1 (en) Information System, Method and Program for Managing the Same, Method and Program for Processing Data, and Data Structure
US20170220586A1 (en) Assign placement policy to segment set
US11216421B2 (en) Extensible streams for operations on external systems
JP2008102795A (ja) ファイル管理装置、システム及びプログラム
JP5633646B2 (ja) 情報処理装置、データ管理方法およびデータ管理プログラム
JP6011786B2 (ja) 分散ストレージシステム、分散ストレージデータ配置制御方法及び分散ストレージデータ配置制御用プログラム
US9942324B2 (en) Rebalancing and elastic storage scheme with elastic named distributed circular buffers
JP5463899B2 (ja) ファイル管理情報記憶装置、ファイル管理情報記憶装置の制御方法、およびファイル管理情報記憶装置の制御プログラム
US12026177B2 (en) Dynamic adaptive partition splitting
JP2017107300A (ja) データ管理プログラム及びデータ管理方法
JP2021124952A (ja) 情報処理装置、情報処理システムおよびアクセス制御方法
CN117194439B (zh) 一种资源存储系统的创建方法、电子设备及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150420

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150601

R150 Certificate of patent or registration of utility model

Ref document number: 5765441

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees