JP2007317138A - データ記憶システム、ファイル検索装置およびプログラム - Google Patents

データ記憶システム、ファイル検索装置およびプログラム Download PDF

Info

Publication number
JP2007317138A
JP2007317138A JP2006149025A JP2006149025A JP2007317138A JP 2007317138 A JP2007317138 A JP 2007317138A JP 2006149025 A JP2006149025 A JP 2006149025A JP 2006149025 A JP2006149025 A JP 2006149025A JP 2007317138 A JP2007317138 A JP 2007317138A
Authority
JP
Japan
Prior art keywords
node
file
nodes
index
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006149025A
Other languages
English (en)
Other versions
JP4891657B2 (ja
Inventor
Hiromi Uwada
弘美 宇和田
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.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute 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 Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2006149025A priority Critical patent/JP4891657B2/ja
Publication of JP2007317138A publication Critical patent/JP2007317138A/ja
Application granted granted Critical
Publication of JP4891657B2 publication Critical patent/JP4891657B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】複数のノードが格子状に接続され、各ノードに配置された記憶装置をひとつのデータ記憶システムとして利用する。
【解決手段】それぞれが記憶装置を有する複数のノードに保持されたファイルを共通の索引を用いて管理して単一のデータベースとして機能させるデータ記憶システムを提供する。格子状配列10を構成するノード20を、ファイルを実際に格納するためのファイル格納ノードと、ファイル格納ノードの索引情報を格納するための索引ノードとに分割する。索引データはツリー構造を使用して管理されている。ファイル格納ノードがツリー構造の葉に対応し、索引ノードがツリー構造の根または節点に対応する。そして、ファイル格納ノードに保持されているファイルを特定するためのファイル特定情報に基づいて一意に決定される索引ノードに、ファイル格納ノードのアドレス情報が格納される。
【選択図】図8

Description

本発明は、複数のノードを格子状に接続してなるデータ記憶システムと、このシステムで用いるファイル検索装置およびプログラムに関する。
ネットワーク上でやり取りされるファイル数や個別ファイルのサイズの増大により、データベースの構築に必要となる記憶容量は年々拡大している。しかしながら、ストレージエリアネットワーク(SAN)等を構築して十分な記憶容量を確保するには、多大な費用が必要となる。
そこで、比較的安価な複数のサーバまたはパーソナルコンピュータを利用して大容量の記憶システムを構築したいという要望がある。このようなシステムでは、システムを構成する個々のノードの備える記憶容量は十分でなくとも、それらを論理的に統合してひとつの記憶領域に見立ててデータを格納し、またデータを検索できることが要求される。
特開平7−129450号公報
上述のような複数のノードを用いるシステムでは、複数のノードとそれらのノード間の接続に何らかの規則性がある場合、ファイルの格納位置を示すポインタを含む索引データを準備しておくことが行われる。データを検索する際に、この索引データが利用される。索引データの保存領域と実データの保存領域との対応関係を不適切に設計すると、拡張性に乏しかったり、ファイル検索に長時間を要したり、または索引データのデータ量と実データのデータ量とのバランスが取れないといった問題が生じうる。
本発明はこうした状況に鑑みてなされたものであり、その目的は、それぞれが記憶装置を有する複数のノードに保持されたファイルを共通の索引を用いて管理して単一のデータベースとして機能させるデータ記憶システムを構築するための技術を提供することにある。
本発明のある態様は、それぞれが記憶装置を有する複数のノードに保持されたファイルを共通の索引を用いて管理して単一のデータベースとして機能させるデータ記憶システムである。複数のノードは格子状に配列され、各ノードが前後左右のノードと通信可能に接続される。ファイルを実際に格納するファイル格納ノードと、ファイル格納ノードの索引データを格納する索引ノードとがそれぞれ正方形の部分格子を構成するように分割されている。ファイル格納ノードをツリー構造の葉に対応させ、索引ノードをツリー構造の根または節点に対応させて、ファイルおよび索引データを管理するツリー構造の情報が索引ノードに保持されている。そして、ファイル格納ノードに保持されているファイルを特定するためのファイル特定情報に基づいて一意に決定される索引ノードに、ファイル格納ノードのアドレス情報が格納される。
この態様によると、複数のノードがそれぞれ備えている記憶領域を論理的にひとつの記憶領域として統合して使用することができる。したがって、大容量の記憶装置の代わりに安価なコンピュータやサーバを結合させて、大容量の記憶装置の代替とすることができる。また、ファイル特定情報に基づいて決まる索引ノードに、ファイル格納ノードのアドレス情報が保持されているので、ファイルが実際に格納されているファイル格納ノードのアドレスが不明であっても、ファイル特定情報さえあれば容易に所望のファイルの格納場所を特定することができる。なお、「ファイル特定情報」はファイル固有の情報であればよく、例えばファイル名、ファイルの作成時刻、更新時刻、ファイルの作成者、ファイルを作成したコンピュータ名やこれらの組合せを含む。
格子状の配列において縦方向に並ぶノード数と横方向に並ぶノード数とが互いに素の関係にあり、格子状の配列をユークリッドの互除法を使用して複数の正方形の部分格子に分割してもよい。これによると、互いに素である任意のm×n個のノードを複数の正方形の部分格子に容易に分割することができる。また、ユークリッドの互除法から自然に導かれる正方形分割を用いると、ツリー構造において親子関係または兄弟関係にあるノードが近接して位置することになり、ファイル検索時またはファイル格納時の親子方向または兄弟方向へのアクセス時間を削減することができる。さらに、ファイル格納ノードが正方形の部分格子であると、ファイルの転送時に宛先のノードに至るまでの経路が複数化されるため、ノード間の接続の一部が切断されたときでもファイルの転送を実現することができる。
ファイル特定情報を所定の規則にしたがってコード化し、得られたコードにしたがってファイル特定情報に対応するファイルを格納すべきノードを決定してもよい。この場合、コードにハッシュ関数を適用してハッシュ値を求め、ハッシュ値にしたがってファイル格納ノードのアドレス情報を保持すべき索引ノードを決定してもよい。
本発明の別の態様は、上述のデータ記憶システムにおけるファイル検索プログラムである。ファイル検索プログラムは、索引ノード上で動作し、ファイルの検索要求を受け取る機能と、ファイルのファイル特定情報を所定の規則にしたがってコード化し、得られたコードにしたがってファイル特定情報に対応するファイルが格納されているファイル格納ノードを決定する機能と、コードにハッシュ関数を適用してハッシュ値を求め、ハッシュ値にしたがってファイル格納ノードのアドレス情報が保持されている索引ノードを決定する機能と、を含む。
本発明のさらに別の態様は、それぞれが記憶装置を有する複数のノードが格子状に配列され、各ノードが前後左右のノードと通信可能に接続されているとき、各ノードに保持されたファイルをBツリー構造で管理するデータ記憶システムである。Bツリー構造の根、節点、葉と、格子状に配列された複数のノードのいずれかとを一対一に対応させる。そして、葉に対応させたノードにはファイルを実際に格納し、節点に対応させたノードには、部分木に含まれる葉に対応するノードを指し示すアドレス情報を格納し、根に対応させたノードには、節点に対応するノードを指し示すアドレス情報を格納する。
この態様によると、格子状に配列された複数のノードと既知のBツリーとを組み合わせて、複数のノードに分散して配置されたファイルをBツリーで効率よく管理することができる。
なお、以上の構成要素の任意の組合せ、本発明を方法、装置、システム、記録媒体、コンピュータプログラムにより表現したものもまた、本発明の態様として有効である。
本発明によれば、それぞれが記憶装置を有する複数のノードに保持されたファイルをまとめて管理して単一のデータベースとして機能させることができる。
本発明の一実施形態は、それぞれがプロセッサを備える複数のノードが格子状に配列されたシステムにおいて、各ノードに配置された記憶装置の集合を管理するデータ記憶システムである、本実施形態は、特にファイルの格納場所を探索するための索引付け技術に特徴がある。以下、図面を参照してこの実施形態について詳細に説明する。
図1は、本発明の一実施形態に係るデータ記憶システム100と、これに接続されるクライアント端末12の全体構成図である。本実施形態が対象とする「データ記憶システム」とは、サーバまたはパーソナルコンピュータ等のそれぞれプロセッサを備える複数のノードを格子状に接続させ、複数のノードにデータを分散配置させたシステムのことをいう。
図1に示すように、データ記憶システム100は、クライアント端末12から発行される検索要求に対してシステム内に格納されたファイルを検索して提供する格子状配列10を備える。格子状配列10は、複数列複数行(図1では5行7列)の格子を形成するようにノード20が配置される。図1の各ノードは、一台のサーバまたはパーソナルコンピュータに対応しており、各ノードを白抜きの正方形で表している。これら格子状に配列されたノードは、上下左右に位置するノードと通信可能なように構成される。図1では格子状配列10を5行7列としているが、より多数またはより少数のノードで構成されていてもよいことはいうまでもない。これについては後述する。
格子状配列10内の各ノード20は、ルータ16を介してインターネット、LAN、WAN等のネットワーク14に接続される。データ記憶システム100は、企業のデータセンタ等に配置され、多数の検索要求に同時に応答することが可能である。
格子状配列10は、全体としてひとつのデータベースとして機能する。この機能を発揮するために必要となる各種プログラムやIPアドレスなどの情報は、システム管理者によって予め各ノードに与えられる。別の実施例では、後述する各ノードの役割が決定された時点で、特定のノードに格納されているプログラムや各種データを各ノードに送信するようにしてもよい。
クライアント端末12は、キーボードやマウスなどの入力装置とディスプレイなどの出力装置を備えるパーソナルコンピュータ、または、それに準ずる入出力装置を備える携帯電話であってもよい。ただし、携帯電話の場合には、無線で通信することを想定する。ユーザは、クライアント端末12上でウェブブラウザ等を使用して、データ記憶システム100に対して検索要求を発行する。
図2は、格子状配列10を構成する各ノードのハードウェア構成図である。ノードは、プログラムにしたがって各種処理を実行するプロセッサ92と、一時的にデータやプログラムを記憶するメモリ94と、ノードの再起動があっても記録内容が失われない記憶装置96と、隣接する別のノードに接続し各種の入出力処理を実行するネットワークインタフェース98と、これらを相互接続するバス90とを少なくとも含む。ノードは、図1のように上下左右に位置する別のノードと接続するために、最大4つのネットワークインタフェース98を備える。記憶装置96としては、ハードディスク装置、光ディスク装置、磁気ディスク装置、不揮発性メモリのほか、任意のものを使用できる。各ノードは、必要に応じて、キーボードやマウスなどの入力装置、ディスプレイなどの出力装置を有していてもよい。
各ノードは、データ記憶システム100を構成するのに適したコンパクトな形状、すなわちプロセッサ、メモリ、ハードディスク、バスなどが搭載されたブレードサーバであってもよい。格子状配列10は、このブレードサーバがラックに多数並ぶ配置となることがサーバ同士をリンクするうえで好ましいが、他の態様であってもよい。
図3は、各ノード20が上下左右のノードとリンクした様子を示す図である。図示するように、ノード20は上下左右のノードとピアツーピア接続になるよう結線し、それぞれのリンクについて予めIPアドレスを与えておく。したがって、各ノードは隣接するノードと同数のネットワークインタフェースを備える必要がある。
各ノード20は、ハイパースレッディングやVMwareなどの既知の仮想化技術を使用して、複数のOSを同時に起動できるように構成する。仮想化技術を用いれば、複数のOSを同時起動するために2つ以上のCPUを備えている必要はない。そして、一方のOSではアプリケーションの実行を管理し(以下、このOSを「アプリケーションOS」と呼ぶ)、他方のOSではルーティングを管理する(以下、このOSを「自律ディスクOS」と呼ぶ)。各ノード20を、アプリケーションOSを実行するアプリケーションノード22と、自律ディスクOSを実行する自律ディスクノード24とに仮想的に分けて考えると、アプリケーションノード22は自律ディスクノード24に他のノード20との通信経路の決定を任せることで、格子状配列内の任意のノード20間で通信が可能になる。ルーティング機能を自律ディスクノード24とネットワークインタフェースによって実現するので、各ノード間にスイッチやルータの配置は不要である。しかしながら、複数のノードを行や列の単位でひとくくりにして、それぞれにルータを配置する従来通りのネットワーク構成であっても、本実施形態を実現することができる。
以下の説明では、すべてのノードでアプリケーションOSと自律ディスクOSが稼働し、ルーティングとアプリケーションの実行ができるものとする。記憶装置へのデータファイルの格納や検索、後述するハッシュ計算などはアプリケーションノード22が実行し、ファイルの転送処理やルーティングは自律ディスクノード24が実行することを前提とし、特にそれらの役割を区別しないで説明する。
ところで、例えば図4に示すような格子状に並んだ複数のノードからなるデータ記憶システムを想定すると、従来では、システム管理者が必要と見込まれる記憶容量に応じて、いくつのノードを割り当てれば良いかを決定する。例えば、図4(a)のように、初期では2×2=4個のノードを割り当てたとする。その後の運用によって、初期の見込み以上の記憶容量が必要になると、システム管理者は割り当てるノードを増加する必要がある。この際、追加ノードを例えば図4(b)のように割り当てたとする。すると、各ノードに格納しているデータファイルの配置規則と、ノード追加後に格納されるデータファイルの配置規則との間で一貫性を維持できなくなり、索引データに異同が生じる。したがって、格子状に配列された多数のノードをデータベースとして用いるには、データを配置するノードを一定の規則にしたがって定め、索引データの一貫性を維持する必要がある。
また、図5に示すように、2行1列の索引ノードと、2行2列の実データ格納ノードが割り当てられた状態から記憶容量を増やす場合を想定すると、実データが増えるにしたがって索引データも増加する。このため、索引データも複数のノードに分散する必要に迫られ、索引データの分割ルールが必要になる。例えば、図5(a)、(b)のように、索引データを格納するノードをブロックの左一列というような決め方をしていると、実データの許容量は縦横の積である二次式の比率で増えていくにもかかわらず、索引データの許容量が縦一列の一次式の比率でしか増えないため、索引データの格納領域が制約となって実データへのアクセスが制約される。その結果、索引データの再配置が必然的に求められる。もし、この再配置を怠れば、実データを探索するために索引を有するすべてのノードに問い合わせを行わざるを得なくなる。
そこで、ある格子状配列が与えられたときに、実データと索引データの配置を適切に決定できる方法が必要になる。本実施形態では、格子状配列の縦横のノード数を互いに素の整数の組で構成することによって、上述の問題を解決するようにした。より具体的には、格子状配列におけるノードの物理的な配置と、索引データを階層化する周知のBツリーによる索引データの管理とを組み合わせて使用する。
本実施形態による索引データの管理を実施する前提として、格子状配列を構成するノードを、ファイルを実際に格納する「ファイル格納ノード」と、ファイル格納ノードのアドレス情報を含む索引データを格納する「索引ノード」とに分割する必要がある。ここで、「索引データ」とは、ファイル格納ノードを特定するために必要なデータであり、後述する実施例では、ファイル格納ノードのノード番号とアドレス情報の組である。
図6のフローチャートを参照して、格子状配列10の分割の手順を説明する。まず、システム管理者は、格子状配列の縦方向のノード数をm、横方向のノード数をn(m、nは自然数)としたとき、mとnが互いに素である格子状配列を構築し、それぞれのノードのIPアドレスを設定する(S10)。縦横のノード数を互いに素とする理由は、後述するユークリッドの互除法により正方形分割することで索引ノードを階層的に構成できることが保証されるからである。
次に、システム管理者は、格子状配列を大きさを異にする複数の正方形の部分格子に分割する(S12)。縦と横のノード数が互いに素である格子状配列10を複数の正方形の部分格子へと分割するには、周知のユークリッドの互除法を使用する。以下、本実施形態における格子状に配列されたノードに対しユークリッドの互除法を適用して、縦横のノード数が等しい正方形の部分領域に分割する方法を説明する。
1.m>nであるような自然数m、nのノード数を持つ格子状配列をK(m、n)と表記する。
2.K(m、n)の左側から正方形の部分格子K(n、n)を詰めていく。正方形の個数をqとすると、mをnで割った商がqであり、余りは(m−q・n)と表せる。
3.余り(m−q・n)=rと表記すると、正方形の部分格子K(n,n)を詰めた残りの部分はK(r,n)と表せる。
4.長方形K(r,n)の下側から今度は正方形の部分格子K(r,r)を詰めていく。正方形の部分格子の個数をqとすると、nをrで割ったときの商がqであり、余りは(n−q・r)と表せる。
5.上記の操作を繰り返すと、有限回で格子状配列K(m、n)は複数の正方形の部分格子に分割される。
ユークリッドの互除法を用いて任意の領域を正方形の部分格子に分割する方法は、例えば「分割の幾何学 デーンによる2つの定理」、日本評論社、砂田利一著、p.34-p.38に記載されているように周知であるから、これ以上詳細な説明は省略する。
図7を参照して、上記手順1〜5の具体例を示す。
1.格子状配列10は、K(7,5)と表せる。
2.K(7,5)の左側から正方形の部分格子K(5,5)を詰めると、正方形はひとつしか入らないのでq=1であり、余りは(7−5・1)=2となる。
3.したがって、長方形のK(2,5)が残る。
4.K(2,5)の下側から正方形の部分格子K(2,2)を詰めていくと、正方形は2つ配置できるのでq=2となり、あとにK(2,1)が余る。
5.最後に、K(1,1)であるひとつのノードが2つ残る。
これによって、格子状配列10は、図7で太線の四角形で囲んだ5つの正方形の部分格子に分割される。
図6に戻り、システム管理者は、分割された正方形の部分格子を、ファイル格納ノードかまたは索引ノードのいずれかに指定する(S14)。図7において、左側の最大の部分格子に含まれるノードを「ファイル格納ノード」と定め、残りの部分格子に含まれるノードは「索引ノード」と定められる。システム管理者は、各ノードを識別するための番号を割り振る(S16)。その結果を図8に示す。図示するように、ファイル格納ノードはc0〜c24の25個あり、二次索引ノードはb0〜b3の4個あり、一次索引ノードはa0の一個が存在する。図中のa0’およびb0’〜b3’のノードの活用方法については後述する。
本実施形態では、ファイルはファイル格納ノードに分散して配置しておき、それらの格納場所を知るための索引データとして格納場所へのポインタを周知のBツリーによって管理する。本実施形態では、ポインタとして図3で示したIPアドレスやMACアドレスを使用する。ファイル格納ノードのそれぞれがBツリーにおける「葉」と一対一に対応し、索引ノードのそれぞれがBツリーにおける「節点」と一対一に対応する。最後の正方形分割で得られる1×1のノードは、Bツリー構造における「根」と対応させる。この結果、Bツリーの構成は図9のようになる。図示するように、一次索引ノードa0は、自分自身と二次索引ノードb0〜b3とを結ぶ4つの枝を有している。二次索引ノードb0〜b3は、ファイル格納ノードのうちのいくつかを葉として有している。ファイル格納ノードと二次索引ノードの関連については後述する。
システム管理者は、一次索引ノード、二次索引ノード、およびファイル格納ノードに対して、後述する検索プロセスを実行するためのプログラムをインストールさせる。
図10は、検索プログラムを実行した状態での一次索引ノードの機能ブロック図である。ファイル受取部102は、ファイルの格納場所の問い合わせのためにファイル名を受け取ったり、または転送されたファイルを受け取る。検索部104は、コード化部106とハッシュ計算部108とを含む。コード化部106は、後述する方法によってファイル名をコード化(数値化)して、ファイルを保持すべきファイル格納ノードを表す「格納場所コード」に変換する。ここで、「コード化」とは、後に具体例を挙げて説明するように、任意のファイル名をファイル格納ノード数以下の整数に変換することをいう。ハッシュ計算部108は、格納場所コードに対してハッシュ関数を適用し、ハッシュ値を算出する。ファイル転送部110は、アドレス情報にしたがってファイルを別のノードに転送する。テーブル保持部112は、格納場所コードまたはハッシュ値と対応するノードのアドレス情報をテーブル形式で保持する。情報取得部114は、システム管理者から与えられるノード番号やIPアドレスの情報などを取得する。
二次索引ノードおよびファイル格納ノードの構成も一次索引ノードと同様であるが、後述するように、検索部104の機能とテーブル保持部112に格納される索引データが異なる。
次に、図11のフローチャートを参照して、ファイル名に基づいて当ファイルを格納すべきファイル格納ノードを決定し、さらに各ファイル格納ノードの索引データを格納すべき索引ノードを決定するプロセスを説明する。このプロセスを経て、図9で示したようなBツリーを用いてデータ記憶システム内のファイルを検索できるようになる。
図6の手順にしたがってBツリーを構成した後に、外部からデータ記憶システムにファイルを送信して適当なノードに記憶させる場合を考える。一次索引ノードには、予めシステム管理者によって、二次索引ノードb0〜b3およびファイル格納ノードc0〜c24のアドレス情報が記録されており、一次索引ノードはアドレス情報をノード番号と対応付けてテーブル保持部112に記録する(S20)。外部からのファイルはルータによって一次索引ノードに送信される。一次索引ノードのファイル受取部102がファイルを受け取り、コード化部106に渡す。コード化部106は、受け取ったファイルのファイル名を所定の規則にしたがってコード化し、格納場所コードxを算出する(S22)。ファイル転送部110は、格納場所コードxで指定されるファイル格納ノードに対してそのファイルを転送する(S24)。続いて、ハッシュ計算部108は、格納場所コードxに対してハッシュ関数を適用してハッシュ値を算出する(S26)。このハッシュ関数をh(x)、二次索引ノードの数をr と表記すると、h(x)=0、...、(r −1)となるようにハッシュ関数を選択する。ファイル転送部110は、ハッシュ値で指定される二次索引ノードに対して、ファイル格納ノードのアドレス情報を送信する(S28)。二次索引ノードは、ファイル格納ノードのノード番号とアドレス情報とを対応付けて、自身のテーブル保持部112に記録する(S30)。
以下、具体例を挙げて図11の各ステップを説明する。この例では、簡単のためにファイル名はすべて平仮名で与えられているものとし、平仮名の各文字の母音に基づいてコード化を実行する。
各ノードのコード化部106は、図12に示すような母音コード表を予め保持している。そして、コード化部106は、母音コード表にしたがって、ファイル名中の各文字の母音が「あ」であれば「1」を、母音が「い」であれば「2」を、母音が「う」であれば「3」を、母音が「え」であれば「4」を、母音が「お」であれば「5」を、それぞれ与えるとする。促音、拗音、長音や「ん」については「0」を与える。
図13は、ファイル名の具体例と、ファイル名に基づいた格納場所コードの算出方法を示す。ファイル名が「せみなさんか」である場合、コード化部106は、「せ」の母音「え」のコード「4」、「み」の母音「い」のコード「2」、...といったように、ファイル名の平仮名のコードを母音コード表にしたがって変換していく。すべての文字を変換したら、それらを足し合わせる。この例では、「せ」「み」「な」「さ」「ん」「か」にそれぞれ対応するコード「4」「2」「1」「1」「0」「1」を加算して、格納場所コード「9」が求められる。この数字が、当該ファイルを格納すべきファイル格納ノードの番号(つまりc9)を示している。他のファイル名「けいひ」「よさん」「かし」「たいさく」についても同様の手順で計算をし、それぞれのファイル格納ノードはc8、c6、c3、c7となる。コードの加算の結果、格納場所コードがファイル格納ノードの総数である「25」以上になった場合は、格納場所コードを25で除したときの余りをそのファイルの格納場所コードとする。
さらに図13を参照して、ファイル格納ノードの索引データを格納すべきノードを決定する手順について説明する。ハッシュ計算部108は、格納場所コードに対して二次索引ノード数を法とした剰余をハッシュ値として計算する。そして、ハッシュ値を索引データを保持すべき二次索引ノードの番号と決定する。例えば、格納場所コードが「9」であれば、9=4・2+1であるから二次索引ノードはb1となる。したがって、ファイル格納ノードc0、c4、c8、...、c24の索引データは二次索引ノードb0に、ファイル格納ノードc1、c5、c9、...、c21の索引データは二次索引ノードb1に、ファイル格納ノードc2、c6、c10、...、c22の索引データは二次索引ノードb2に、ファイル格納ノードc3、c7、c11、...、c23の索引データは二次索引ノードb3に、それぞれ格納される。
なお、ハッシュ関数は、連続する格納場所コードに対して異なるハッシュ値を出力するものであれば他の関数でもよい。
図14は、上記具体例にしたがって構築されるBツリー構造として、各ノードとそれらに格納されるデータを表している。一次索引ノードには、すべての二次索引ノードおよびファイル格納ノードの索引データ(つまり、ノード番号とアドレス情報の組)が配置される。他方、二次索引ノードには、Bツリーの葉に相当するファイル格納ノードの索引データが配置される。二次索引ノードは、すべてのファイル格納ノードの索引データを保持するのではなく、上述のハッシュ計算の結果が自身のノード番号と一致するファイルを格納したファイル格納ノードの索引データのみを保持する。本明細書では、これを「部分木の索引データを保持する」という。
図14に示すように、本実施形態では、実際のファイルはファイル格納ノードに保持され、そのファイルを検索するために必要な索引データを二次索引ノードと一次索引ノードに格納する。このように、ファイルの保存場所と索引データの保存場所とを異なるノードにしている。
また、全体のファイル格納ノードの数がいくつであってもBツリー構造でファイルを管理することができるため、ノードの縦横の配列数に拡張性がある。
上述した正方形の部分格子への分割により、rとrとは互いに素であるから、ファイル格納ノードと二次索引ノードのノード数の比r とr も必ず互いに素となる。このため、索引をたどる階層にハッシュ関数を適用すると、二次索引ノードの数とファイル格納ノードの数に公約数がある場合と比べて、索引並びに実データを分散する効果が高くなると期待される。
外部からデータ格納システムに対してファイルの要求が来ると、その要求は一次索引ノードに渡される。一次索引ノードは、ファイル名をコード化して、格納場所コードと同じ番号を持つファイル格納ノードのアドレスをテーブルから検索し、ファイル要求を検索したファイル格納ノードに渡す。ファイル要求を受け取ったファイル格納ノードは、ファイルを記憶装置から取り出して、要求元のアドレスに対して検索したファイルを送信する。
Bツリー構造を構築した後であれば、各ノードに元から格納されていたファイルを、Bツリーに合わせて再配置することもできる。このプロセスを図15のフローチャートを参照して説明する。
まず、各ノードにおいて、現在格納されているデータファイルのファイル名を取得し、それぞれの格納場所コードを計算する(S40)。計算された格納場所コードが、各ノードに割り振られたノード番号と一致しているか否かを判定する(S42)。一致していれば(S42のY)、そのファイル名を持つデータファイルは、当該ノードに格納すべきものであるから、このフローを終了する。一致していなければ(S42のN)、そのファイル名のデータファイルは別のノードに格納すべきものである。したがって、ファイル格納ノードは、上位の索引ノードに対し、そのファイルを格納すべきファイル格納ノードのアドレスを問い合わせる(S44)。
二次索引ノードは、ファイル名を受け取ると、格納場所コードを計算したうえで、さらにハッシュ値を計算する(S46)。計算したハッシュ値が、二次索引ノードに割り振られたノード番号と一致していれば(S48のY)、テーブルに格納場所コードと一致するファイル格納ノードのアドレスが存在するので、問い合わせをしてきたファイル格納ノードにアドレス情報を送信する(S50)。計算したハッシュ値が、二次索引ノードに割り振られたノード番号と一致していないときは(S48のN)、二次索引ノードは、一次索引ノードに対してさらにファイル名を問い合わせる(S52)。
一次索引ノードには、すべてのノードのアドレス情報が記録されているので、格納場所コードに対応するファイル格納ノードのアドレスを検索して、問い合わせをしてきたファイル格納ノードにアドレス情報を送信する(S54)。
問い合わせ元のファイル格納ノードは、送信されてきたアドレス情報にしたがって、直接そのファイル格納ノードに対して、ファイルを送信して格納を依頼する(S56)。ファイルを受け取ったファイル格納ノードは、ファイル名をコード化して自らに格納すべきファイルであることを確認した後、そのファイルを記憶装置に格納する(S58)。
以上の手順は、ファイル格納ノードにおけるものであるが、索引ノードでは若干異なる。二次索引ノードでは、コード化、ハッシュ値計算によって、自分の管理する部分木内のファイル格納ノードであることが分かれば、そのアドレスを検索してファイルの格納を依頼する。自分の管理する部分木内のデータでないことが分かると、一次索引ノードに対してファイル格納ノードのアドレスを問い合わせた後、ファイルの格納を依頼する。
一次索引ノードはすべてのノードのアドレスを保持しているので、格納場所コードと同一番号を持つファイル格納ノードのアドレスを検索して、ファイルの格納を依頼する。こうすることで、Bツリーの作成前に各ノードの記憶装置に保持されていたファイルを再配置することが可能になる。
なお、図15の手順は、データ記憶システム内の各ノードにおいてアプリケーションが実行されており、システム内に格納されているファイルが必要になったときに、そのファイルを検索する場合にも適用できる。ファイル名の問い合わせをするまでは図15と同様であり、所望のファイルを格納しているノードのアドレスが判明すると、そのアドレスに対してファイルの要求を出す。ファイル要求を受け取ったファイル格納ノードは、ファイル名をコード化して自らに格納されているファイルであることを確認すると、そのファイルを要求元のファイル格納ノードに対して送信する。
格子状配列内の全ノードのアドレスは、一次索引ノードにある。したがって、各ファイル格納ノードに対して一次索引ノードのアドレスだけを予め通知しておけば、各ファイル格納ノードは、必要なファイルの格納場所の問い合わせを一次索引ノードに対して発することで、ファイル格納ノードのアドレスを知ることができる。しかしながら、この構成では、すべての問い合わせが一次索引ノードに集中してしまう。これに対し本実施形態では、ファイル格納ノードからの問い合わせの一部については、二次索引ノードが管理する部分木内にあるファイルであれば二次索引ノードでアドレスを知ることができるため、一次索引ノードにおける検索の負荷を軽減できる。
各ファイル格納ノードには、部分木内の二次索引ノードのアドレスのみならず、すべての二次索引ノードのアドレス情報を予め送信しておいてもよい。こうすれば、ファイル格納ノードからファイルを検索する際、コード化、ハッシュ値計算を行って、自らのノードの記憶装置にファイルが存在しない場合は、そのファイルが格納されたノードが含まれる部分木を管理する二次索引ノードに対し、ファイルの格納場所の問い合わせを直接行うことができる。したがって、図15のように二次索引ノードから一次索引ノードに対する問い合わせが発生しないため、一次索引ノードの処理負荷を引き下げることができる。
一次索引ノードに全ノードのアドレスを格納する代わりに、二次索引ノードのアドレスのみを格納しておいてもよい。この場合、外部からのファイル要求があったとき、一次索引ノードは、コード化とハッシュ値を計算して、そのファイルを格納しているファイル格納ノードを部分木として管理している二次索引ノードのアドレスを知ることができる。一次索引ノードは、二次索引ノードにファイル要求を転送する。二次索引ノードは、そのファイル要求からファイル名を取り出して格納場所コードを求めることで、ファイル格納ノードのアドレスをテーブルから検索する。そして、ファイル要求を該当するファイル格納ノードに渡す。こうすることで、最終的なファイル格納ノードのアドレスを検索する処理を二次索引ノードに回すことで、一次索引ノードの検索負荷をさらに低下させることができる。
図8に示したように、格子状配列されたノードを正方形分割して、それぞれにファイル格納ノード、索引ノードの役割を与えると、Bツリーを構成しないノードが発生することが避けられない。図8では、ノードa0’、b0’〜b3’は、Bツリーを構成していない。そこで、これらの未使用ノードを、検索データのバックアップ領域として使用してもよい。
図16は、索引ノードのレプリケーションを示す。上述のユークリッドの互除法によって未使用ノードが発生する場合、それらのサイズは、必ず索引ノードを構成する正方形の部分格子と同じ大きさになる。したがって、同じサイズの索引ノードに格納されている索引データのレプリケーションを実行して、バックアップノードを作成する。図16では、ノードa0’は、一次索引ノードa0をレプリケートし、ノードb0’〜b3’は、二次索引ノードb0〜b3をそれぞれレプリケートする(以下、元からBツリーである方を「プライマリ」、レプリケートした方を「バックアップ」と呼ぶ)。こうして索引データを二重化することで、索引の信頼性を向上させることができる。これは、Bツリーの一部の階層を複製したことに相当する。
上記ユークリッドの互除法を用いた手順だと、最後には1×1のノードが二個以上できることになる。したがって、格子状配列の縦横が互いに素である限り、一次索引ノードのレプリケーションを実行できる。バックアップノードを確保したうえで、外部からのファイル要求を、ルータによりラウンドロビンやハッシュ等の既知のアルゴリズムで複数の一次索引ノード(プライマリとバックアップ)に分散して送ることで、ルートである一次索引ノードへのアクセスの集中を緩和し、アクセス数増加時の一次索引ノードの処理負荷を低下させることも可能である。ファイル格納ノードから二次索引ノードへのファイル要求についても、プライマリとバックアップの二次索引ノードに分散させることで同様の効果が得られる。
また、ユークリッドの互除法で正方形の部分格子に分割したとき、プライマリとバックアップが並ぶ方向は、階層間で互い違いになる。すなわち、図17に示すように、一次索引ノードのプライマリとバックアップとが横方向の並びであれば、二次索引ノードのプライマリとバックアップとの並びは縦方向になる。したがって、プライマリとバックアップとの間で、索引データを同期させるときのデータフロー(図17中の斜線を付した矢印の方向)と、ファイル検索時のファイル要求やアドレス情報をやり取りするときのデータフロー(図17中の白抜き矢印の方向)とは、通常直交する。したがって、これらのフローがひとつのリンクで競合することがなく、一部のリンクがボトルネックとなりシステム全体の処理性能が低下するような事態が発生しにくい。
以上説明したように、本実施形態では、格子状に配列されたノードとBツリー構造を適用し、Bツリーの「葉」「節点」「根」に相当するものに対して、格子型システム内のノードを一対一で割り当てるようにした。そして、葉に当たるノードにはBツリーと同じく実際のデータを格納し、節点、根に当たるノードには、葉ノードにルーティングするための索引データを配置するようにした。従来から知られているBツリーは、索引データも実際のデータも、ひとつのコンピュータの中で閉じているが、それを複数ノードに広げた点に特徴がある。また、Bツリーを作るためのノードの領域分割と、索引データの付け方が、ハッシュを介して対になっている点にも特徴がある。
またユークリッドの互除法を用いることにより、格子状配列の縦横のノード数が互いに素であれば、原理的にノード数がいくつであってもデータを管理できる。したがって、システムの拡張性が高い。
本実施形態によれば、格子状配列されたノードをデータ記憶システムとして用いるときに、公知のBツリー構造を利用して、ファイルと索引ノードとを階層化して分散配置するようにした。索引ノードは、ファイルが実際に格納されているノードのアドレスを示すポインタの役割を果たす。また、索引ノード数と実ファイル格納ノード数とが、互いに素の関係となることを利用して、索引データを複数の索引ノードに分散させることができる。また、実ファイル格納ノード数と二次索引データ格納ノード数も互いに素となるので、実ファイル格納ノードに配置されるデータの偏りも分散させることができる。階層間のノード数比率が、互いに素である数字の二乗であるため、ノード数の比率が各階層で互いに素となるため、データの分配の偏りを小さくすることができる。また、各葉ノードでのファイル検索の負荷が比較的分散されるので、特定のノードの処理負荷が突出して高くなることを防止できる。
なお、実施形態では、簡単のためコード化を「日本語ファイル名の母音」で計算しているため、ファイル名の長さが実際には限られることから分散の効果は少ない。しかしながら、例えばアスキーコードなどを用いてコード化すれば、格納場所コードの値はよりばらついた値になることが予測されるので、この分散の効果はより大きくなることが期待される。これ以外にも、単にファイル名の文字数をカウントしたり、ファイル名の英数字に予め数を割り当てておいたり、暗号化の手法を適用するなど、ファイル名などの文字列をコード化するために任意の技術を使用することができる。
本実施形態では、格子状に配列されたノードを正方形の部分領域に分割することで、次のような効果も生じる。すなわち、親子関係、兄弟関係にある枝ノードが、格子型システム内で近接して位置することになる。親子ノードは索引データの依存関係があり、兄弟ノードは索引データの補完関係にある。よって、互いに隣接していることで、親子方向、兄弟方向へのアクセス時間を短縮できる。
また、ファイル格納ノードが正方形の領域として確保されるため、ファイルを転送するときに、そのノードに至るまでの経路が複数化され、ノード間のリンクの一部が切断されたときでもファイルの転送を実現することができる。
以上、本発明をいくつかの実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例がありうること、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
実施形態では、ファイル格納ノードの番号から求めたハッシュ値を使用して、ファイル格納ノードのアドレスを検索するための索引データを格納する索引ノードを決定することを述べた。しかしながら、上述のBツリーでは、範囲を指定した検索に対応できない。そこで、n分探索木を使って索引データの管理をしてもよい。ハッシュ値を計算する際に現れた格納場所コードを用いて節点や葉を形成すればn分探索木を構築できる。索引データはこの格納場所コードをそのまま用いる一方で、実データはハッシュ値により格納すべき葉を決定する。範囲探索では、このn分探索木をたどって葉に格納された実データを得る。
格納場所コードを算出するためにファイル名を使用したが、それ以外のファイル固有の情報、例えばファイルの作成時刻、更新時刻、ファイルサイズ、ファイルの作成者、ファイルを作成したコンピュータ名やこれらの組合せから格納場所コードを算出してもよい。また、二種類以上の索引、つまり格納場所コードを併用してもよい。
格納すべきデータが増加した場合に、システム管理者がファイル格納ノードまたは索引ノードの増強を必要とするときには、事後的に格子状配列の縦、横のノード数を増加させることも可能である。この場合、一次索引ノードは、新たな格子状配列のノード数と各ノードのアドレス情報に基づいて、上述の手順にしたがってBツリーを再構築するようにしてもよい。再構築の結果、ファイル格納ノード数と二次索引ノード数との比率が変わるため、索引データを格納すべき二次索引ノードやファイル格納ノード数が増加して、データファイルを格納すべきファイル格納ノードが変わったとき、各ノードは上述した再配置の手順にしたがって、データの再配置を実行するようにしてもよい。
実施形態で述べたように、システムの管理者が仕様に応じた望ましい正方形の部分格子に切り出しができるように、格子状配列の縦、横のノード数を決定し、その通りに格子状配列を構成する方が、使用されないノードがなく、かつレプリケーション用のノードを確保した好ましい論理構成を持つ記憶システムを構築できる。しかしながら、システム管理者によらずに、正方形分割をプログラムで実行させることもできる。この場合、対象となる格子状配列10の縦横のノード数は任意であってよく、いずれかのノードで実行されるプログラムが、図7で述べたステップを順次実行することで、正方形の部分格子への切り出しを行うようにしてもよい。
格子の形状によっては、三次索引以上の階層をBツリーに設けてもよいが、本発明の方法は二次索引ノードの検索まででファイル格納ノードを決定できるので、それ以上の次数の階層は不要である。
一台のルータに複数のサーバまたはパーソナルコンピュータが接続することによって、図1のひとつのノード20の下に複数のサーバやパーソナルコンピュータを配置してもよい。
本発明の一実施形態に係るデータ記憶システムと、これに接続されるクライアント端末の全体構成図である。 格子状配列を構成する各ノードのハードウェア構成図である。 各ノードを上下左右のノードとリンクさせる様子を示した図である。 (a)、(b)は、格子状配列を有するデータ記憶システムにおける従来技術を説明する図である。 (a)、(b)は、格子状配列を有するデータ記憶システムにおける従来技術を説明する図である。 格子状配列を複数の正方形の部分格子に分割する手順を示すフローチャートである。 格子状配列の分割の具体例を示す図である。 格子状配列の正方形の部分格子への分割結果と、各ノードに割り振られたノード番号を示す図である。 Bツリーの構成を示す図である。 検索プログラムを実行する一次索引ノードの機能ブロック図である。 ファイル格納ノードと索引ノードを決定するプロセスを示すフローチャートである。 母音コード表を示す図である。 ファイル名の具体例とファイル名に基づいたコードの算出方法を示す図である。 Bツリーと、各ノードに格納されるデータを示す図である。 ファイルをBツリーに合わせて再構成するプロセスを示すフローチャートである。 索引ノードのレプリケーションを示す図である。 索引データを同期させるときのデータフローと、ファイル検索時のデータフローとを示す図である。
符号の説明
10 格子状配列、 12 クライアント端末、 14 ネットワーク、 16 ルータ、 20 ノード、 96 記憶装置、 98 ネットワークインタフェース、 100 データ記憶システム、 102 ファイル受取部、 104 検索部、 106 コード化部、 108 ハッシュ計算部、 110 ファイル転送部、 112 テーブル保持部、 114 情報取得部。

Claims (9)

  1. それぞれが記憶装置を有する複数のノードに保持されたファイルを共通の索引を用いて管理して単一のデータベースとして機能させるデータ記憶システムであって、
    前記複数のノードは格子状に配列され、各ノードが前後左右のノードと通信可能に接続され、ファイルを実際に格納するファイル格納ノードと、該ファイル格納ノードの索引データを格納する索引ノードとがそれぞれ正方形の部分格子を構成するように分割されており、
    前記ファイル格納ノードをツリー構造の葉に対応させ、前記索引ノードをツリー構造の根または節点に対応させて、前記ファイルおよび前記索引データを管理するツリー構造の情報が前記索引ノードに保持され、
    前記ファイル格納ノードに保持されているファイルを特定するためのファイル特定情報に基づいて一意に決定される索引ノードに、該ファイル格納ノードのアドレス情報が格納されることを特徴とするデータ記憶システム。
  2. 前記格子状に配列されたノードを分割して得られる部分格子のうち、最大の部分格子に含まれるノードを前記ファイル格納ノードとし、他の部分格子に含まれるノードを前記索引ノードとすることを特徴とする請求項1に記載のデータ記憶システム。
  3. 前記格子状の配列において縦方向に並ぶノード数と横方向に並ぶノード数とが互いに素の関係にあり、該格子状の配列をユークリッドの互除法を使用して複数の正方形の部分格子に分割することを特徴とする請求項1または2に記載のデータ記憶システム。
  4. 前記ファイル特定情報を所定の規則にしたがってコード化し、得られたコードにしたがって該ファイル特定情報に対応するファイルを格納すべきファイル格納ノードが決定され、
    前記コードにハッシュ関数を適用してハッシュ値を求め、該ハッシュ値にしたがって前記ファイル格納ノードのアドレス情報を保持すべき索引ノードが決定されることを特徴とする請求項1ないし3のいずれかに記載のデータ記憶システム。
  5. 前記ファイル特定情報としてファイルに付与された名前を使用することを特徴とする請求項4に記載のデータ記憶システム。
  6. 前記分割により複数の同サイズの部分格子ができた場合、前記索引データを複数の部分格子に複製して前記索引ノードのバックアップを作成することを特徴とする請求項3に記載のデータ記憶システム。
  7. それぞれが記憶装置を有する複数のノードに保持されたファイルを共通の索引を用いて管理して単一のデータベースとして機能させるデータ記憶システムにおいて、
    前記複数のノードは格子状に配列され、各ノードが前後左右のノードと通信可能に接続され、ファイルを実際に格納するファイル格納ノードと、該ファイル格納ノードの索引データを格納する索引ノードとがそれぞれ正方形の部分格子を構成するように分割されており、
    前記ファイル格納ノードをツリー構造の葉に対応させ、前記索引ノードをツリー構造の根または節点に対応させて、前記ファイルおよび前記索引データを管理するツリー構造の情報が前記索引ノードに保持されているとき、
    前記索引ノードにおいて実行されるプログラムが、
    ファイルの検索要求を受け取る機能と、
    前記ファイルのファイル特定情報を所定の規則にしたがってコード化し、得られたコードにしたがって該ファイル特定情報に対応するファイルが格納されているファイル格納ノードを決定する機能と、
    前記コードにハッシュ関数を適用してハッシュ値を求め、該ハッシュ値にしたがって前記ファイル格納ノードのアドレス情報が保持されている索引ノードを決定する機能と、
    を含むことを特徴とするデータ記憶システムにおけるファイル検索プログラム。
  8. それぞれが記憶装置を有する複数のノードに保持されたファイルを共通の索引を用いて管理して単一のデータベースとして機能させるデータ記憶システムにおいて、
    前記複数のノードは格子状に配列され、各ノードが前後左右のノードと通信可能に接続され、ファイルを実際に格納するファイル格納ノードと、該ファイル格納ノードの索引データを格納する索引ノードとがそれぞれ正方形の部分格子を構成するように分割されており、
    前記ファイル格納ノードをツリー構造の葉に対応させ、前記索引ノードをツリー構造の根または節点に対応させて、前記ファイルおよび前記索引データを管理するツリー構造の情報が前記索引ノードに保持されているとき、
    前記索引ノードがファイルの検索装置として機能し、
    ファイルの検索要求を受け取るファイル受取部と、
    前記ファイルのファイル特定情報を所定の規則にしたがってコード化し、得られたコードにしたがって該ファイル特定情報に対応するファイルが格納されているファイル格納ノードを決定するコード化部と、
    前記コードにハッシュ関数を適用してハッシュ値を求め、該ハッシュ値にしたがって前記ファイル格納ノードのアドレス情報が保持されている索引ノードを決定するハッシュ計算部と、
    を備えることを特徴とするデータ記憶システムにおけるファイル検索装置。
  9. それぞれが記憶装置を有する複数のノードが格子状に配列され、各ノードが前後左右のノードと通信可能に接続されているとき、各ノードに保持されたファイルをBツリー構造で管理するデータ記憶システムであって、
    Bツリー構造の根、節点、葉と、格子状に配列された複数のノードのいずれかとを一対一に対応させ、
    葉に対応させたノードにはファイルを実際に格納し、節点に対応させたノードには、部分木に含まれる前記葉に対応するノードを指し示すアドレス情報を格納し、根に対応させたノードには、前記節点に対応するノードを指し示すアドレス情報を格納したことを特徴とするデータ記憶システム。
JP2006149025A 2006-05-29 2006-05-29 データ記憶システム、ファイル検索装置およびプログラム Expired - Fee Related JP4891657B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006149025A JP4891657B2 (ja) 2006-05-29 2006-05-29 データ記憶システム、ファイル検索装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006149025A JP4891657B2 (ja) 2006-05-29 2006-05-29 データ記憶システム、ファイル検索装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2007317138A true JP2007317138A (ja) 2007-12-06
JP4891657B2 JP4891657B2 (ja) 2012-03-07

Family

ID=38850915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006149025A Expired - Fee Related JP4891657B2 (ja) 2006-05-29 2006-05-29 データ記憶システム、ファイル検索装置およびプログラム

Country Status (1)

Country Link
JP (1) JP4891657B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011258115A (ja) * 2010-06-11 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> 情報格納検索装置、情報格納方法、および情報格納プログラム
JP2013065203A (ja) * 2011-09-16 2013-04-11 Panasonic Corp データ格納システム
WO2013154247A1 (ko) * 2012-04-13 2013-10-17 연세대학교 산학협력단 수정된 b+트리 노드 검색 방법 및 장치
CN104239564A (zh) * 2014-09-28 2014-12-24 深圳市锐明视讯技术有限公司 一种文件索引组织及修复的方法及装置
US9170851B2 (en) 2010-11-22 2015-10-27 International Business Machines Corporation Connection distribution for load balancing in a distributed database
US10037165B2 (en) 2015-03-02 2018-07-31 Toshiba Memory Corporation Storage system and control method thereof
CN111309471A (zh) * 2018-12-11 2020-06-19 迈普通信技术股份有限公司 数据处理方法、装置及分布式系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6174058A (ja) * 1984-09-18 1986-04-16 Nippon Telegr & Teleph Corp <Ntt> 並列処理方式
JPS6249557A (ja) * 1985-08-29 1987-03-04 Fujitsu Ltd 並列計算機におけるデ−タ分散配置方式
JPH0793261A (ja) * 1990-04-16 1995-04-07 Internatl Business Mach Corp <Ibm> 並列計算システムにおける分散型ツリー・ファイル構造のバランスをとる方法
JPH07129450A (ja) * 1993-01-07 1995-05-19 Internatl Business Mach Corp <Ibm> 区分されたオブジェクトのデータベースの多層索引構造を生成する方法及びシステム
JP2001043237A (ja) * 1999-07-30 2001-02-16 Mitsubishi Electric Corp データファイル及びデータ検索方法
JP2002024293A (ja) * 2000-04-06 2002-01-25 Internatl Business Mach Corp <Ibm> パターン範囲比較実行方法、コンピュータ可読媒体および装置
JP2005234762A (ja) * 2004-02-18 2005-09-02 Nippon Telegr & Teleph Corp <Ntt> リソース検索装置及び方法、ならびに、コンピュータプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6174058A (ja) * 1984-09-18 1986-04-16 Nippon Telegr & Teleph Corp <Ntt> 並列処理方式
JPS6249557A (ja) * 1985-08-29 1987-03-04 Fujitsu Ltd 並列計算機におけるデ−タ分散配置方式
JPH0793261A (ja) * 1990-04-16 1995-04-07 Internatl Business Mach Corp <Ibm> 並列計算システムにおける分散型ツリー・ファイル構造のバランスをとる方法
JPH07129450A (ja) * 1993-01-07 1995-05-19 Internatl Business Mach Corp <Ibm> 区分されたオブジェクトのデータベースの多層索引構造を生成する方法及びシステム
JP2001043237A (ja) * 1999-07-30 2001-02-16 Mitsubishi Electric Corp データファイル及びデータ検索方法
JP2002024293A (ja) * 2000-04-06 2002-01-25 Internatl Business Mach Corp <Ibm> パターン範囲比較実行方法、コンピュータ可読媒体および装置
JP2005234762A (ja) * 2004-02-18 2005-09-02 Nippon Telegr & Teleph Corp <Ntt> リソース検索装置及び方法、ならびに、コンピュータプログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011258115A (ja) * 2010-06-11 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> 情報格納検索装置、情報格納方法、および情報格納プログラム
US9170851B2 (en) 2010-11-22 2015-10-27 International Business Machines Corporation Connection distribution for load balancing in a distributed database
JP2013065203A (ja) * 2011-09-16 2013-04-11 Panasonic Corp データ格納システム
WO2013154247A1 (ko) * 2012-04-13 2013-10-17 연세대학교 산학협력단 수정된 b+트리 노드 검색 방법 및 장치
CN104239564A (zh) * 2014-09-28 2014-12-24 深圳市锐明视讯技术有限公司 一种文件索引组织及修复的方法及装置
CN104239564B (zh) * 2014-09-28 2018-02-09 深圳市锐明技术股份有限公司 一种文件索引组织及修复的方法及装置
US10037165B2 (en) 2015-03-02 2018-07-31 Toshiba Memory Corporation Storage system and control method thereof
US10346083B2 (en) 2015-03-02 2019-07-09 Toshiba Memory Corporation Storage system and control method thereof
CN111309471A (zh) * 2018-12-11 2020-06-19 迈普通信技术股份有限公司 数据处理方法、装置及分布式系统
CN111309471B (zh) * 2018-12-11 2024-02-09 迈普通信技术股份有限公司 数据处理方法、装置及分布式系统

Also Published As

Publication number Publication date
JP4891657B2 (ja) 2012-03-07

Similar Documents

Publication Publication Date Title
US11580070B2 (en) Utilizing metadata to prune a data set
JP6198210B2 (ja) コンピュータ実装された動的シャーディング方法
US8103628B2 (en) Directed placement of data in a redundant data storage system
CN103150394B (zh) 面向高性能计算的分布式文件系统元数据管理方法
US10013444B2 (en) Modifying an index node of a hierarchical dispersed storage index
US7788303B2 (en) Systems and methods for distributed system scanning
JP4891657B2 (ja) データ記憶システム、ファイル検索装置およびプログラム
TWI433504B (zh) 在一點對點網路中儲存資料的方法和裝置
JP5850044B2 (ja) 情報処理装置、分散ファイルシステム、クライアント装置、情報処理方法、および、コンピュータ・プログラム
Featherston Cassandra: Principles and application
JP2007213592A (ja) 文字処理装置、方法、プログラムおよび記録媒体
CN106993064A (zh) 一种基于Openstack云平台实现海量数据可伸缩性存储的系统及其构建方法与应用
US20230385353A1 (en) Spatial search using key-value store
US10733144B2 (en) Persistent indexing and free space management for flat directory
CN109597903A (zh) 图像文件处理装置和方法、文件存储系统及存储介质
JP2022500724A (ja) テナント識別子の置換
CN110362590A (zh) 数据管理方法、装置、系统、电子设备及计算机可读介质
Nidzwetzki et al. BBoxDB: a distributed and highly available key-bounding-box-value store
Strickland Cassandra 3. x High Availability
Saenko et al. Towards resilient and efficient big data storage: evaluating a siem repository based on hdfs
Thant et al. Improving the availability of NoSQL databases for Cloud Storage
Liu et al. A universal distributed indexing scheme for data centers with tree-like topologies
Bungama et al. ALOCS: An Allocation-aware Key-value Repository
CN117478304A (zh) 区块链管理方法、系统和计算机设备
Vilaça Clouder: A flexible large scale decentralized object store

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110815

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111216

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees