JP4891657B2 - Data storage systems, file search apparatus and program - Google Patents

Data storage systems, file search apparatus and program Download PDF

Info

Publication number
JP4891657B2
JP4891657B2 JP2006149025A JP2006149025A JP4891657B2 JP 4891657 B2 JP4891657 B2 JP 4891657B2 JP 2006149025 A JP2006149025 A JP 2006149025A JP 2006149025 A JP2006149025 A JP 2006149025A JP 4891657 B2 JP4891657 B2 JP 4891657B2
Authority
JP
Japan
Prior art keywords
file
node
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.)
Expired - Fee Related
Application number
JP2006149025A
Other languages
Japanese (ja)
Other versions
JP2007317138A (en
Inventor
弘美 宇和田
Original Assignee
株式会社野村総合研究所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社野村総合研究所 filed Critical 株式会社野村総合研究所
Priority to JP2006149025A priority Critical patent/JP4891657B2/en
Publication of JP2007317138A publication Critical patent/JP2007317138A/en
Application granted granted Critical
Publication of JP4891657B2 publication Critical patent/JP4891657B2/en
Application status is Expired - Fee Related legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、複数のノードを格子状に接続してなるデータ記憶システムと、このシステムで用いるファイル検索装置およびプログラムに関する。 The present invention includes a data storage system formed by connecting a plurality of nodes in a grid pattern, to a file search system and a program used in this system.

ネットワーク上でやり取りされるファイル数や個別ファイルのサイズの増大により、データベースの構築に必要となる記憶容量は年々拡大している。 The increased size of the file number and individual files that are exchanged over the network, the storage capacity required to build the database is expanding year by year. しかしながら、ストレージエリアネットワーク(SAN)等を構築して十分な記憶容量を確保するには、多大な費用が必要となる。 However, in order to ensure sufficient storage capacity to build a storage area network (SAN), etc., great expense is required.

そこで、比較的安価な複数のサーバまたはパーソナルコンピュータを利用して大容量の記憶システムを構築したいという要望がある。 Therefore, there is a desire to build a large-capacity storage systems utilizing relatively inexpensive multiple servers or personal computers. このようなシステムでは、システムを構成する個々のノードの備える記憶容量は十分でなくとも、それらを論理的に統合してひとつの記憶領域に見立ててデータを格納し、またデータを検索できることが要求される。 In such a system, even the storage capacity is not sufficient with the individual nodes constituting the system, they store data to resemble the one storage area logically integrated, also required that the data can be retrieved It is.
特開平7−129450号公報 JP-7-129450 discloses

上述のような複数のノードを用いるシステムでは、複数のノードとそれらのノード間の接続に何らかの規則性がある場合、ファイルの格納位置を示すポインタを含む索引データを準備しておくことが行われる。 In a system using a plurality of nodes as described above, if there is any regularity in the connection between a plurality of nodes and those nodes, is to keep a index data includes a pointer indicating the storage location of the file is performed . データを検索する際に、この索引データが利用される。 When searching for data, the index data is used. 索引データの保存領域と実データの保存領域との対応関係を不適切に設計すると、拡張性に乏しかったり、ファイル検索に長時間を要したり、または索引データのデータ量と実データのデータ量とのバランスが取れないといった問題が生じうる。 Improper design the correspondence between the storage area and the actual data storage area of ​​the index data, or poor scalability, it takes a long time to find files, or data amount of the index data and the data amount of actual data problems such as balance can not be taken with may occur.

本発明はこうした状況に鑑みてなされたものであり、その目的は、それぞれが記憶装置を有する複数のノードに保持されたファイルを共通の索引を用いて管理して単一のデータベースとして機能させるデータ記憶システムを構築するための技術を提供することにある。 The present invention has been made in view of such circumstances, the data and its object is to the respectively held in the plurality of nodes having a storage device file managed using a common index to function as a single database It is to provide a technique for constructing a storage system.

本発明のある態様は、それぞれが記憶装置を有する複数のノードに保持されたファイルを共通の索引を用いて管理して単一のデータベースとして機能させるデータ記憶システムである。 An embodiment of the present invention is a data storage system to function as a single database and managed using a common index file held in the plurality of nodes with each storage device. 複数のノードは格子状に配列され、各ノードが前後左右のノードと通信可能に接続される。 A plurality of nodes are arranged in a grid, each node is communicatively coupled to the front and rear left and right nodes. ファイルを実際に格納するファイル格納ノードと、ファイル格納ノードの索引データを格納する索引ノードとがそれぞれ正方形の部分格子を構成するように分割されている。 A file storage node that stores the file in fact, is the index nodes storing the index data of the file storage nodes are divided to form part lattice squares respectively. ファイル格納ノードをツリー構造の葉に対応させ、索引ノードをツリー構造の根または節点に対応させて、ファイルおよび索引データを管理するツリー構造の情報が索引ノードに保持されている。 Made to correspond to file storage node to the leaf of the tree structure, corresponding to the index node to the root or node of the tree structure, information of the tree structure for managing files and index data is stored in the index node. そして、ファイル格納ノードに保持されているファイルを特定するためのファイル特定情報に基づいて一意に決定される索引ノードに、ファイル格納ノードのアドレス情報が格納される。 Then, the index node is uniquely determined based on the file identification information for specifying a file stored in the file storage node, address information of the file storage node is stored.

この態様によると、複数のノードがそれぞれ備えている記憶領域を論理的にひとつの記憶領域として統合して使用することができる。 According to this embodiment, it can be used to integrate the storage area in which a plurality of nodes are respectively provided as a logically one storage area. したがって、大容量の記憶装置の代わりに安価なコンピュータやサーバを結合させて、大容量の記憶装置の代替とすることができる。 Therefore, by coupling an inexpensive computer or server instead of a large-capacity storage device, it can be substituted for a large-capacity storage device. また、ファイル特定情報に基づいて決まる索引ノードに、ファイル格納ノードのアドレス情報が保持されているので、ファイルが実際に格納されているファイル格納ノードのアドレスが不明であっても、ファイル特定情報さえあれば容易に所望のファイルの格納場所を特定することができる。 Furthermore, the index node determined based on the file identification information, the address information of the file storage nodes are retained, even address of the file storage node where the file is actually stored is unclear, even file identification information You can easily specify the storage location of the desired file, if any. なお、「ファイル特定情報」はファイル固有の情報であればよく、例えばファイル名、ファイルの作成時刻、更新時刻、ファイルの作成者、ファイルを作成したコンピュータ名やこれらの組合せを含む。 It should be noted, including "file identifying information" may be a file-specific information, for example, a file name, creation time of the file, update time, the creator of the file, the computer name the file was created or a combination thereof.

格子状の配列において縦方向に並ぶノード数と横方向に並ぶノード数とが互いに素の関係にあり、格子状の配列をユークリッドの互除法を使用して複数の正方形の部分格子に分割してもよい。 There grating arrangement relationship the number of nodes along the ordinate and the number of nodes arranged in the horizontal direction is relatively prime in a lattice array using Euclidean divided into partial grid of square it may be. これによると、互いに素である任意のm×n個のノードを複数の正方形の部分格子に容易に分割することができる。 According to this, it is possible to easily divide any of m × n nodes are disjoint in part grid of squares. また、ユークリッドの互除法から自然に導かれる正方形分割を用いると、ツリー構造において親子関係または兄弟関係にあるノードが近接して位置することになり、ファイル検索時またはファイル格納時の親子方向または兄弟方向へのアクセス時間を削減することができる。 Moreover, the use of square division derived naturally from Euclid, will be nodes in a parent-child relationship or a sibling in the tree structure is positioned close parent-child direction or sibling during file searching time or file storage it is possible to reduce the access time to the direction. さらに、ファイル格納ノードが正方形の部分格子であると、ファイルの転送時に宛先のノードに至るまでの経路が複数化されるため、ノード間の接続の一部が切断されたときでもファイルの転送を実現することができる。 Further, the file storage node is a sublattice of the square, for the passage of the time of transfer of the file up to the node of the destination is a plurality of, the transfer of files even when a part of the connection is broken between nodes it can be realized.

ファイル特定情報を所定の規則にしたがってコード化し、得られたコードにしたがってファイル特定情報に対応するファイルを格納すべきノードを決定してもよい。 File specific information coded according to a predetermined rule, the resulting node that ought to store the file corresponding to the file identification information according to the code may be determined. この場合、コードにハッシュ関数を適用してハッシュ値を求め、ハッシュ値にしたがってファイル格納ノードのアドレス情報を保持すべき索引ノードを決定してもよい。 In this case, we obtain a hash value by applying a hash function to the code, may determine the index nodes should retain address information of the file storage nodes according to hash value.

本発明の別の態様は、上述のデータ記憶システムにおけるファイル検索プログラムである。 Another aspect of the present invention is a file search program in the above-described data storage systems. ファイル検索プログラムは、索引ノード上で動作し、ファイルの検索要求を受け取る機能と、ファイルのファイル特定情報を所定の規則にしたがってコード化し、得られたコードにしたがってファイル特定情報に対応するファイルが格納されているファイル格納ノードを決定する機能と、コードにハッシュ関数を適用してハッシュ値を求め、ハッシュ値にしたがってファイル格納ノードのアドレス情報が保持されている索引ノードを決定する機能と、を含む。 File search program operates on the index node, stores a function of receiving a search request for a file, encodes the file identification information of a file according to a predetermined rule, the file corresponding to the file identification information in accordance with the obtained codes includes a function of determining the file storage node that is, obtains a hash value by applying a hash function to the code, the function of determining the index node the address information of the file storage nodes according to hash value is held, the .

本発明のさらに別の態様は、それぞれが記憶装置を有する複数のノードが格子状に配列され、各ノードが前後左右のノードと通信可能に接続されているとき、各ノードに保持されたファイルをBツリー構造で管理するデータ記憶システムである。 Yet another aspect of the present invention are each arranged a plurality of nodes in a grid having a storage device, when each node is communicatively coupled to the front and rear left and right nodes, a file stored on each node it is a data storage system managed by the B-tree structure. Bツリー構造の根、節点、葉と、格子状に配列された複数のノードのいずれかとを一対一に対応させる。 Root of B-tree structure, nodes, and leaves, either preparative is a one-to-one correspondence of a plurality of nodes arranged in a grid pattern. そして、葉に対応させたノードにはファイルを実際に格納し、節点に対応させたノードには、部分木に含まれる葉に対応するノードを指し示すアドレス情報を格納し、根に対応させたノードには、節点に対応するノードを指し示すアドレス情報を格納する。 Then, the node that associates the leaf stores the file in fact, to the node that is corresponding to the node stores the address information indicating the node corresponding to the leaves included in the partial tree, made to correspond to the root node in stores address information indicating the node corresponding to the node.

この態様によると、格子状に配列された複数のノードと既知のBツリーとを組み合わせて、複数のノードに分散して配置されたファイルをBツリーで効率よく管理することができる。 According to this embodiment, it is possible to combine a plurality of nodes arranged in a grid and the known B-tree, to effectively manage the files placed distributed to multiple nodes in the B-tree.

なお、以上の構成要素の任意の組合せ、本発明を方法、装置、システム、記録媒体、コンピュータプログラムにより表現したものもまた、本発明の態様として有効である。 Incidentally, any combinations of the foregoing components, the present invention, apparatus, system, recording medium, even those that have been expressed by a computer program, is effective as an embodiment of the present invention.

本発明によれば、それぞれが記憶装置を有する複数のノードに保持されたファイルをまとめて管理して単一のデータベースとして機能させることができる。 According to the present invention, each can manage a group of files held in the plurality of nodes including a storage device to function as a single database.

本発明の一実施形態は、それぞれがプロセッサを備える複数のノードが格子状に配列されたシステムにおいて、各ノードに配置された記憶装置の集合を管理するデータ記憶システムである、本実施形態は、特にファイルの格納場所を探索するための索引付け技術に特徴がある。 One embodiment of the invention, in each of which is arranged a plurality of nodes in a grid comprising a processor system, a data storage system for managing a set of arranged memory to each node, the present embodiment, particularly characterized by indexing technique for searching the location of a file. 以下、図面を参照してこの実施形態について詳細に説明する。 Hereinafter, it will be described with reference to the drawings this embodiment in detail.

図1は、本発明の一実施形態に係るデータ記憶システム100と、これに接続されるクライアント端末12の全体構成図である。 Figure 1 includes a data storage system 100 according to an embodiment of the present invention is an overall block diagram of the client terminal 12 connected thereto. 本実施形態が対象とする「データ記憶システム」とは、サーバまたはパーソナルコンピュータ等のそれぞれプロセッサを備える複数のノードを格子状に接続させ、複数のノードにデータを分散配置させたシステムのことをいう。 The "data storage system" embodiment is intended, refers to a plurality of nodes with a respective processor, such as a server or a personal computer is connected to a grid pattern, a system with distributed data to a plurality of nodes .

図1に示すように、データ記憶システム100は、クライアント端末12から発行される検索要求に対してシステム内に格納されたファイルを検索して提供する格子状配列10を備える。 As shown in FIG. 1, data storage system 100 includes a grid-like arrangement 10 which provides searching for a file stored in the system with respect to the search request issued from the client terminal 12. 格子状配列10は、複数列複数行(図1では5行7列)の格子を形成するようにノード20が配置される。 Lattice array 10, the node 20 is arranged to form a grid of columns multiline (in FIG. 1 5 rows and seven columns). 図1の各ノードは、一台のサーバまたはパーソナルコンピュータに対応しており、各ノードを白抜きの正方形で表している。 Each node of FIG. 1 corresponds to the one server, or personal computer, and represents each node in open squares. これら格子状に配列されたノードは、上下左右に位置するノードと通信可能なように構成される。 Nodes arranged in such a lattice shape are configured capable of communicating with nodes located vertically and horizontally. 図1では格子状配列10を5行7列としているが、より多数またはより少数のノードで構成されていてもよいことはいうまでもない。 Although the lattice array 10 in FIG. 1 is a 5 rows and seven columns, it is needless to say that may be composed of more or fewer nodes. これについては後述する。 This will be described later.

格子状配列10内の各ノード20は、ルータ16を介してインターネット、LAN、WAN等のネットワーク14に接続される。 Each node 20 of lattice array 10 are connected via a router 16 Internet, LAN, the network 14 of the WAN and the like. データ記憶システム100は、企業のデータセンタ等に配置され、多数の検索要求に同時に応答することが可能である。 Data storage system 100 is located in the data center or the like of the company, it is possible to respond simultaneously to a number of search requests.

格子状配列10は、全体としてひとつのデータベースとして機能する。 Lattice array 10 functions as one of the database as a whole. この機能を発揮するために必要となる各種プログラムやIPアドレスなどの情報は、システム管理者によって予め各ノードに与えられる。 Information such as various programs and IP address needed to perform this function is given in advance to each node by the system administrator. 別の実施例では、後述する各ノードの役割が決定された時点で、特定のノードに格納されているプログラムや各種データを各ノードに送信するようにしてもよい。 In another embodiment, when the role of each node to be described later is determined, the program and various data stored in a particular node may be transmitted to each node.

クライアント端末12は、キーボードやマウスなどの入力装置とディスプレイなどの出力装置を備えるパーソナルコンピュータ、または、それに準ずる入出力装置を備える携帯電話であってもよい。 The client terminal 12 is a personal computer provided with an output device such as an input device and a display such as a keyboard or a mouse, or may be a mobile phone with the input and output device analogous thereto. ただし、携帯電話の場合には、無線で通信することを想定する。 However, in the case of a cellular telephone, it is assumed that communicate wirelessly. ユーザは、クライアント端末12上でウェブブラウザ等を使用して、データ記憶システム100に対して検索要求を発行する。 The user can use a web browser or the like on the client terminal 12 issues a search request to the data storage system 100.

図2は、格子状配列10を構成する各ノードのハードウェア構成図である。 Figure 2 is a hardware configuration diagram of each node constituting the lattice array 10. ノードは、プログラムにしたがって各種処理を実行するプロセッサ92と、一時的にデータやプログラムを記憶するメモリ94と、ノードの再起動があっても記録内容が失われない記憶装置96と、隣接する別のノードに接続し各種の入出力処理を実行するネットワークインタフェース98と、これらを相互接続するバス90とを少なくとも含む。 Another node includes a processor 92 that executes various processes according to a program, a memory 94 for temporarily storing data and programs, a storage device 96 even if the node is restarted without loss of recorded contents, the adjacent includes a variety of connecting to the node network interface 98 that performs input and output processing, and a bus 90 that these interconnects at least. ノードは、図1のように上下左右に位置する別のノードと接続するために、最大4つのネットワークインタフェース98を備える。 Nodes, to connect to another node located vertically and horizontally as shown in FIG. 1, it comprises up to four network interface 98. 記憶装置96としては、ハードディスク装置、光ディスク装置、磁気ディスク装置、不揮発性メモリのほか、任意のものを使用できる。 The storage device 96, a hard disk device, optical disk device, a magnetic disk device, in addition to the non-volatile memory, an optionally chosen one can be used. 各ノードは、必要に応じて、キーボードやマウスなどの入力装置、ディスプレイなどの出力装置を有していてもよい。 Each node, as needed, input devices such as a keyboard or a mouse, may have an output device such as a display.

各ノードは、データ記憶システム100を構成するのに適したコンパクトな形状、すなわちプロセッサ、メモリ、ハードディスク、バスなどが搭載されたブレードサーバであってもよい。 Each node, compact shape suitable for forming the data storage system 100, i.e. a processor, memory, hard disk, or may be a blade server such as the bus is mounted. 格子状配列10は、このブレードサーバがラックに多数並ぶ配置となることがサーバ同士をリンクするうえで好ましいが、他の態様であってもよい。 Lattice array 10 is that the blade server is arranged aligned many the rack is preferred in order to link the server to each other, but may be other aspects.

図3は、各ノード20が上下左右のノードとリンクした様子を示す図である。 Figure 3 is a diagram in which each node 20 represents a state in which the link and the upper and lower left and right nodes. 図示するように、ノード20は上下左右のノードとピアツーピア接続になるよう結線し、それぞれのリンクについて予めIPアドレスを与えておく。 As shown, the node 20 is connected so as to be vertically and horizontally node and peer-to-peer connection, should give advance IP addresses for each link. したがって、各ノードは隣接するノードと同数のネットワークインタフェースを備える必要がある。 Therefore, each node needs to have a network interface as many as the adjacent nodes.

各ノード20は、ハイパースレッディングやVMwareなどの既知の仮想化技術を使用して、複数のOSを同時に起動できるように構成する。 Each node 20, using known virtualization technologies such as Hyper-Threading and VMware, configured to be able to start multiple OS simultaneously. 仮想化技術を用いれば、複数のOSを同時起動するために2つ以上のCPUを備えている必要はない。 The use of virtualization technique, need not be provided with two or more CPU to simultaneously start multiple of the OS. そして、一方のOSではアプリケーションの実行を管理し(以下、このOSを「アプリケーションOS」と呼ぶ)、他方のOSではルーティングを管理する(以下、このOSを「自律ディスクOS」と呼ぶ)。 Then, to manage the execution of one of the OS, the application (hereinafter, the OS is referred to as "Application OS"), manages the other OS routing (hereinafter, the OS is referred to as "autonomous disk OS"). 各ノード20を、アプリケーションOSを実行するアプリケーションノード22と、自律ディスクOSを実行する自律ディスクノード24とに仮想的に分けて考えると、アプリケーションノード22は自律ディスクノード24に他のノード20との通信経路の決定を任せることで、格子状配列内の任意のノード20間で通信が可能になる。 Each node 20, the application node 22 to run the application OS, when considered separately virtually the autonomous disk node 24 to perform the autonomous disk OS, applications node 22 with another node 20 in autonomous disk node 24 by leaving the decision of the communication paths allows the communication between any node in the lattice array 20. ルーティング機能を自律ディスクノード24とネットワークインタフェースによって実現するので、各ノード間にスイッチやルータの配置は不要である。 Since realized by autonomous disk node 24 and the network interface routing function, the arrangement of switches and routers is not required between the nodes. しかしながら、複数のノードを行や列の単位でひとくくりにして、それぞれにルータを配置する従来通りのネットワーク構成であっても、本実施形態を実現することができる。 However, in the enclosed human multiple nodes in units of rows and columns, be a network structure of a conventional placing the router in each of which can implement this embodiment.

以下の説明では、すべてのノードでアプリケーションOSと自律ディスクOSが稼働し、ルーティングとアプリケーションの実行ができるものとする。 In the following description, all nodes application OS and autonomous disk OS running, and what can perform routing and application. 記憶装置へのデータファイルの格納や検索、後述するハッシュ計算などはアプリケーションノード22が実行し、ファイルの転送処理やルーティングは自律ディスクノード24が実行することを前提とし、特にそれらの役割を区別しないで説明する。 Storage and retrieval of data files to a storage device, such as a later-described hash calculation by application node 22 is executed, the transfer processing and routing files assumes that autonomous disk node 24 performs, not distinguished their role in the description.

ところで、例えば図4に示すような格子状に並んだ複数のノードからなるデータ記憶システムを想定すると、従来では、システム管理者が必要と見込まれる記憶容量に応じて、いくつのノードを割り当てれば良いかを決定する。 However, assuming a data storage system comprising a plurality of nodes arranged for example in a lattice shape as shown in FIG. 4, in the conventional, depending on the expected storage capacity needed is a system administrator and assigning a number of nodes to determine good. 例えば、図4(a)のように、初期では2×2=4個のノードを割り当てたとする。 For example, as shown in FIG. 4 (a), in the initial and assigning the 2 × 2 = 4 nodes. その後の運用によって、初期の見込み以上の記憶容量が必要になると、システム管理者は割り当てるノードを増加する必要がある。 Subsequent operations, the initial promise more storage capacity is necessary, the system administrator needs to increase the node to be assigned. この際、追加ノードを例えば図4(b)のように割り当てたとする。 At this time, the assigned additional nodes, for example, as in Figure 4 (b). すると、各ノードに格納しているデータファイルの配置規則と、ノード追加後に格納されるデータファイルの配置規則との間で一貫性を維持できなくなり、索引データに異同が生じる。 Then, the arrangement rule of the data files that are stored in each node, can no longer maintain consistency with the arrangement rule of the data file that is stored after adding nodes, difference occurs in the index data. したがって、格子状に配列された多数のノードをデータベースとして用いるには、データを配置するノードを一定の規則にしたがって定め、索引データの一貫性を維持する必要がある。 Therefore, the use of the number of nodes arranged in a matrix as a database defines a node to place the data in accordance with a predetermined rule, it is necessary to maintain consistency of the index data.

また、図5に示すように、2行1列の索引ノードと、2行2列の実データ格納ノードが割り当てられた状態から記憶容量を増やす場合を想定すると、実データが増えるにしたがって索引データも増加する。 Further, as shown in FIG. 5, the index nodes of the second row and first column, the actual data storage node of two rows and two columns is assumed to increase the storage capacity from the allocated state, the index data in accordance with the actual data increases also it increases. このため、索引データも複数のノードに分散する必要に迫られ、索引データの分割ルールが必要になる。 Therefore, the index data is also under pressure to disperse the plurality of nodes, it is necessary to split the rules of the index data. 例えば、図5(a)、(b)のように、索引データを格納するノードをブロックの左一列というような決め方をしていると、実データの許容量は縦横の積である二次式の比率で増えていくにもかかわらず、索引データの許容量が縦一列の一次式の比率でしか増えないため、索引データの格納領域が制約となって実データへのアクセスが制約される。 For example, FIG. 5 (a), the manner of (b), when the node that stores the index data is how to determine such that the left a row of blocks, capacity of the real data is the product of the aspect quadratic Despite gradually increasing a ratio of the allowable amount of index data for increases only by the ratio of a linear equation of a vertical row, a storage area for index data access becomes a constraint to the real data is restricted. その結果、索引データの再配置が必然的に求められる。 As a result, rearrangement of the index data is determined inevitably. もし、この再配置を怠れば、実データを探索するために索引を有するすべてのノードに問い合わせを行わざるを得なくなる。 If neglect this relocation, be forced to perform the query to all nodes having an index for searching the actual data.

そこで、ある格子状配列が与えられたときに、実データと索引データの配置を適切に決定できる方法が必要になる。 Therefore, when a lattice array is given, a method that can appropriately determine the placement of the actual data and the index data are required. 本実施形態では、格子状配列の縦横のノード数を互いに素の整数の組で構成することによって、上述の問題を解決するようにした。 In the present embodiment, by configuring the number of nodes vertical and horizontal lattice array at relatively prime integers pairs, it was to solve the above problems. より具体的には、格子状配列におけるノードの物理的な配置と、索引データを階層化する周知のBツリーによる索引データの管理とを組み合わせて使用する。 More specifically, the physical arrangement of the nodes in the lattice-like arrangement, by combining the management of index data by the well-known B-tree stratifying index data used.

本実施形態による索引データの管理を実施する前提として、格子状配列を構成するノードを、ファイルを実際に格納する「ファイル格納ノード」と、ファイル格納ノードのアドレス情報を含む索引データを格納する「索引ノード」とに分割する必要がある。 Given to implement management of the index data according to the present embodiment, the nodes constituting the lattice array, actually stores the file as a "file storage nodes", and stores the index data including the address information of the file storage node " it is necessary to divide in an index node ". ここで、「索引データ」とは、ファイル格納ノードを特定するために必要なデータであり、後述する実施例では、ファイル格納ノードのノード番号とアドレス情報の組である。 Here, the "index data" is data necessary to identify the file storage node, in the embodiment described below is a set of node number and the address information of the file storage nodes.

図6のフローチャートを参照して、格子状配列10の分割の手順を説明する。 With reference to the flowchart of FIG. 6, the procedure of the division of the lattice array 10. まず、システム管理者は、格子状配列の縦方向のノード数をm、横方向のノード数をn(m、nは自然数)としたとき、mとnが互いに素である格子状配列を構築し、それぞれのノードのIPアドレスを設定する(S10)。 First, the system administrator, when the number of longitudinal node of lattice array m, a number of lateral nodes was n (m, n are natural numbers), build a lattice array m and n are disjoint and, it sets the IP address of each node (S10). 縦横のノード数を互いに素とする理由は、後述するユークリッドの互除法により正方形分割することで索引ノードを階層的に構成できることが保証されるからである。 The reason why the number of nodes aspect and relatively prime, because is guaranteed to be hierarchically structured index nodes by squares divided by Euclidean algorithm to be described later.

次に、システム管理者は、格子状配列を大きさを異にする複数の正方形の部分格子に分割する(S12)。 Then, the system administrator is divided into a plurality of square portions grating having different sizes a lattice array of (S12). 縦と横のノード数が互いに素である格子状配列10を複数の正方形の部分格子へと分割するには、周知のユークリッドの互除法を使用する。 The lattice array 10 vertical and horizontal numbers of nodes are disjoint to divide into a plurality of square sublattice uses known Euclidean algorithm. 以下、本実施形態における格子状に配列されたノードに対しユークリッドの互除法を適用して、縦横のノード数が等しい正方形の部分領域に分割する方法を説明する。 Hereinafter, by applying the Euclidean algorithm to nodes arranged in a lattice pattern in the present embodiment, a method for number of nodes aspect is divided into equal squares partial region will be described.

1. 1. m>nであるような自然数m、nのノード数を持つ格子状配列をK(m、n)と表記する。 m> natural numbers such that n m, a lattice array having n number of nodes is denoted by K (m, n).
2. 2. K(m、n)の左側から正方形の部分格子K(n、n)を詰めていく。 K (m, n) sublattice K left from the square (n, n) will packed. 正方形の個数をq とすると、mをnで割った商がq であり、余りは(m−q ・n)と表せる。 If the number of square and q 0, the quotient obtained by dividing m by n is q 0, the remainder can be expressed as (m-q 0 · n) .
3. 3. 余り(m−q ・n)=r と表記すると、正方形の部分格子K(n,n)を詰めた残りの部分はK(r ,n)と表せる。 Remainder when (m-q 0 · n) = r 1 and denoted, the remaining portion packed with square sublattices K (n, n) can be expressed as K (r 1, n).
4. 4. 長方形K(r ,n)の下側から今度は正方形の部分格子K(r ,r )を詰めていく。 This time from the lower side of the rectangle K (r 1, n) is gradually stuffed square sublattices K (r 1, r 1) . 正方形の部分格子の個数をq とすると、nをr で割ったときの商がq であり、余りは(n−q ・r )と表せる。 When the number of square sublattices and q 1, the quotient obtained by dividing the n in r 1 is q 1, remainder expressed as (n-q 1 · r 1 ).
5. 5. 上記の操作を繰り返すと、有限回で格子状配列K(m、n)は複数の正方形の部分格子に分割される。 Repeating the above operation, lattice array K (m, n) in the finite times is divided into portions grid of squares.

ユークリッドの互除法を用いて任意の領域を正方形の部分格子に分割する方法は、例えば「分割の幾何学 デーンによる2つの定理」、日本評論社、砂田利一著、p.34-p.38に記載されているように周知であるから、これ以上詳細な説明は省略する。 How to divide any zones within a square lattice with a Euclidean algorithm, for example, "two theorems by geometry Dane split", Nippon Hyoronsha, Toshikazu Sunada al, p.34-p.38 because it is well known as described, further detailed description is omitted.

図7を参照して、上記手順1〜5の具体例を示す。 Referring to FIG. 7, a specific example of the above procedures 1-5.
1. 1. 格子状配列10は、K(7,5)と表せる。 Lattice array 10 can be expressed as K (7,5).
2. 2. K(7,5)の左側から正方形の部分格子K(5,5)を詰めると、正方形はひとつしか入らないのでq =1であり、余りは(7−5・1)=2となる。 When the pack K (7,5) part lattice K left from the square of (5,5), because the square does not enter only one is a q 0 = 1, the remainder is (7-5, 1) = 2 .
3. 3. したがって、長方形のK(2,5)が残る。 Thus, rectangular K (2, 5) remains.
4. 4. K(2,5)の下側から正方形の部分格子K(2,2)を詰めていくと、正方形は2つ配置できるのでq =2となり、あとにK(2,1)が余る。 When K (2, 5) will packed square sublattices K (2, 2) from the lower side of the square it is can be arranged two q 1 = 2 becomes, K (2,1) left over after.
5. 5. 最後に、K(1,1)であるひとつのノードが2つ残る。 Finally, K (1, 1) in which one of the nodes has two leaves.
これによって、格子状配列10は、図7で太線の四角形で囲んだ5つの正方形の部分格子に分割される。 Thus, lattice array 10 is divided into five square sublattices enclosed by a thick line square in FIG.

図6に戻り、システム管理者は、分割された正方形の部分格子を、ファイル格納ノードかまたは索引ノードのいずれかに指定する(S14)。 Returning to FIG. 6, the system administrator, the sublattice of the divided square, specify any of the file storage node or an index node (S14). 図7において、左側の最大の部分格子に含まれるノードを「ファイル格納ノード」と定め、残りの部分格子に含まれるノードは「索引ノード」と定められる。 7, the nodes included in a maximum of sublattices of the left defined as "file storage nodes", nodes included in the remainder of the grid is defined as "index nodes". システム管理者は、各ノードを識別するための番号を割り振る(S16)。 The system administrator assigns a number for identifying each node (S16). その結果を図8に示す。 The results are shown in Figure 8. 図示するように、ファイル格納ノードはc0〜c24の25個あり、二次索引ノードはb0〜b3の4個あり、一次索引ノードはa0の一個が存在する。 As shown, the file storage node has 25 C0~c24, secondary index nodes is four b0 to b3, primary index node exists one of a0. 図中のa0'およびb0'〜b3'のノードの活用方法については後述する。 Method will be described later utilization of node a0 'and B0'~b3' in FIG.

本実施形態では、ファイルはファイル格納ノードに分散して配置しておき、それらの格納場所を知るための索引データとして格納場所へのポインタを周知のBツリーによって管理する。 In the present embodiment, the file should be placed in distributed file storage node manages a pointer to the storage location as index data to know their location by a known B-tree. 本実施形態では、ポインタとして図3で示したIPアドレスやMACアドレスを使用する。 In the present embodiment, using the IP address and MAC address shown in FIG. 3 as a pointer. ファイル格納ノードのそれぞれがBツリーにおける「葉」と一対一に対応し、索引ノードのそれぞれがBツリーにおける「節点」と一対一に対応する。 Each file storage nodes in one-to-one correspondence with the "leaf" of the B-tree, each index node one-to-one correspondence with the "node" in the B-tree. 最後の正方形分割で得られる1×1のノードは、Bツリー構造における「根」と対応させる。 1 × 1 nodes obtained at the end of the square division is to correspond with "root" in the B-tree structure. この結果、Bツリーの構成は図9のようになる。 As a result, the structure of the B-tree is as shown in FIG. 図示するように、一次索引ノードa0は、自分自身と二次索引ノードb0〜b3とを結ぶ4つの枝を有している。 As illustrated, primary index node a0 has four branches connecting the self and secondary index node b0 to b3. 二次索引ノードb0〜b3は、ファイル格納ノードのうちのいくつかを葉として有している。 Secondary index node b0~b3 has some of the file storage nodes as leaves. ファイル格納ノードと二次索引ノードの関連については後述する。 It will be described later related file storage node and the secondary index node.

システム管理者は、一次索引ノード、二次索引ノード、およびファイル格納ノードに対して、後述する検索プロセスを実行するためのプログラムをインストールさせる。 System administrators, primary index node, the secondary index nodes, and the file storage node, thereby installing the program for executing the search process to be described later.

図10は、検索プログラムを実行した状態での一次索引ノードの機能ブロック図である。 Figure 10 is a functional block diagram of a primary index node while executing the search program. ファイル受取部102は、ファイルの格納場所の問い合わせのためにファイル名を受け取ったり、または転送されたファイルを受け取る。 File reception unit 102, and receive a file name for the query file location, or receive the transferred file. 検索部104は、コード化部106とハッシュ計算部108とを含む。 Searching section 104 includes a coding unit 106 and the hash calculation unit 108. コード化部106は、後述する方法によってファイル名をコード化(数値化)して、ファイルを保持すべきファイル格納ノードを表す「格納場所コード」に変換する。 Coding section 106 encodes (digitize) the file name by a method to be described later, into a "storage location code" indicating the file storage node should retain file. ここで、「コード化」とは、後に具体例を挙げて説明するように、任意のファイル名をファイル格納ノード数以下の整数に変換することをいう。 Here, "encoding", as will be described later with specific examples refers to converting any file name the number of files stored nodes below integer. ハッシュ計算部108は、格納場所コードに対してハッシュ関数を適用し、ハッシュ値を算出する。 Hash calculation unit 108 applies a hash function to the location code, to calculate a hash value. ファイル転送部110は、アドレス情報にしたがってファイルを別のノードに転送する。 File transferring section 110 transfers the file to another node according to the address information. テーブル保持部112は、格納場所コードまたはハッシュ値と対応するノードのアドレス情報をテーブル形式で保持する。 Table holding unit 112 holds the location code or hash value and the address information of the corresponding node in a table format. 情報取得部114は、システム管理者から与えられるノード番号やIPアドレスの情報などを取得する。 Information acquisition unit 114 acquires a node ID and IP address of the information provided by the system administrator.

二次索引ノードおよびファイル格納ノードの構成も一次索引ノードと同様であるが、後述するように、検索部104の機能とテーブル保持部112に格納される索引データが異なる。 Configuration of a secondary index nodes and file storage nodes is the same as the primary index nodes, as will be described later, the index data stored in the function and the table holding unit 112 of the retrieval unit 104 is different.

次に、図11のフローチャートを参照して、ファイル名に基づいて当ファイルを格納すべきファイル格納ノードを決定し、さらに各ファイル格納ノードの索引データを格納すべき索引ノードを決定するプロセスを説明する。 Next, explaining the process with reference to the flowchart of FIG. 11, to determine the file storage node that ought to store the equivalent file based on the file name, determines the further index node the index data to be stored in the file storage node to. このプロセスを経て、図9で示したようなBツリーを用いてデータ記憶システム内のファイルを検索できるようになる。 Through this process, it becomes possible to search for files within the data storage system using a B-tree as shown in FIG.

図6の手順にしたがってBツリーを構成した後に、外部からデータ記憶システムにファイルを送信して適当なノードに記憶させる場合を考える。 After forming the B-tree in accordance with the procedure of FIG. 6, consider a case of storing transmit the file from the outside to the data storage system to the appropriate node. 一次索引ノードには、予めシステム管理者によって、二次索引ノードb0〜b3およびファイル格納ノードc0〜c24のアドレス情報が記録されており、一次索引ノードはアドレス情報をノード番号と対応付けてテーブル保持部112に記録する(S20)。 The primary index node, in advance by the system administrator, the address information of the secondary index nodes b0~b3 and file storage nodes c0~c24 and is recorded, primary index node table in association with each other address information and the node number recorded in section 112 (S20). 外部からのファイルはルータによって一次索引ノードに送信される。 Files from the outside is transmitted to the primary index node by a router. 一次索引ノードのファイル受取部102がファイルを受け取り、コード化部106に渡す。 File reception unit 102 of the primary index node receives the file and passes the coded unit 106. コード化部106は、受け取ったファイルのファイル名を所定の規則にしたがってコード化し、格納場所コードxを算出する(S22)。 Coding unit 106, the file name of the received file was encoded according to a predetermined rule, to calculate the location code x (S22). ファイル転送部110は、格納場所コードxで指定されるファイル格納ノードに対してそのファイルを転送する(S24)。 File transferring section 110 transfers the file to the file storage node designated by the location code x (S24). 続いて、ハッシュ計算部108は、格納場所コードxに対してハッシュ関数を適用してハッシュ値を算出する(S26)。 Subsequently, the hash calculation unit 108 applies a hash function to calculate a hash value for the location code x (S26). このハッシュ関数をh(x)、二次索引ノードの数をr と表記すると、h(x)=0、. The hash function h (x), when the number of secondary index node is denoted as r 1 2, h (x) = 0 ,. . . 、(r −1)となるようにハッシュ関数を選択する。 Selects a hash function such that (r 1 2 -1). ファイル転送部110は、ハッシュ値で指定される二次索引ノードに対して、ファイル格納ノードのアドレス情報を送信する(S28)。 File transferring section 110, the secondary index nodes specified by the hash value, and transmits the address information of the file storage node (S28). 二次索引ノードは、ファイル格納ノードのノード番号とアドレス情報とを対応付けて、自身のテーブル保持部112に記録する(S30)。 Secondary index node associates the node number and the address information of the file storage node, is recorded in its table holding unit 112 (S30).

以下、具体例を挙げて図11の各ステップを説明する。 Hereinafter, an explanation will be given of the steps of FIG. 11 with specific examples. この例では、簡単のためにファイル名はすべて平仮名で与えられているものとし、平仮名の各文字の母音に基づいてコード化を実行する。 In this example, it is assumed that given in all filenames for simplicity hiragana, executes the encoding based on each character vowel hiragana.

各ノードのコード化部106は、図12に示すような母音コード表を予め保持している。 Coding unit 106 of each node holds in advance the vowel code table as shown in FIG. 12. そして、コード化部106は、母音コード表にしたがって、ファイル名中の各文字の母音が「あ」であれば「1」を、母音が「い」であれば「2」を、母音が「う」であれば「3」を、母音が「え」であれば「4」を、母音が「お」であれば「5」を、それぞれ与えるとする。 Then, the coding unit 106, according to the vowel code table, as long as each character of the vowel in the file name is "A" to "1", if the vowels "i" and "2", vowel " if the Hare "and" 3 ", if the vowel" e "and" 4 ", if the vowel" o "and" 5 ", and give each. 促音、拗音、長音や「ん」については「0」を与える。 Double consonant, diphthong, for the long vowel and "it" will give a "0".

図13は、ファイル名の具体例と、ファイル名に基づいた格納場所コードの算出方法を示す。 Figure 13 shows a specific example of a file name, a method of calculating the storage location code based on the file name. ファイル名が「せみなさんか」である場合、コード化部106は、「せ」の母音「え」のコード「4」、「み」の母音「い」のコード「2」、. If the file name is "Do not you", code section 106, "not" code of the vowel "e" of "4", the code of the vowel "i" of the "body" and "2",. . . といったように、ファイル名の平仮名のコードを母音コード表にしたがって変換していく。 As such, it is converted in accordance with the vowel code table Hiragana of code in the file name. すべての文字を変換したら、それらを足し合わせる。 After converting all of the characters, summed them. この例では、「せ」「み」「な」「さ」「ん」「か」にそれぞれ対応するコード「4」「2」「1」「1」「0」「1」を加算して、格納場所コード「9」が求められる。 In this example, by adding the "to," "only," "Do," "of," "I," "or" corresponding code each to "4", "2", "1", "1" and "0" and "1", storage location code "9" is required. この数字が、当該ファイルを格納すべきファイル格納ノードの番号(つまりc9)を示している。 The numbers indicate the number (i.e. c9) of the file storage node that ought to store the relevant files. 他のファイル名「けいひ」「よさん」「かし」「たいさく」についても同様の手順で計算をし、それぞれのファイル格納ノードはc8、c6、c3、c7となる。 Was calculated in the same procedure for the other file name "expenses", "budget", "however", "Tasaku", each file storage node becomes c8, c6, c3, c7. コードの加算の結果、格納場所コードがファイル格納ノードの総数である「25」以上になった場合は、格納場所コードを25で除したときの余りをそのファイルの格納場所コードとする。 Result of the addition of the code, if the location code is equal to or greater than the total number of the file storage node "25", and the remainder when the location code divided by 25 and the location code of the file.

さらに図13を参照して、ファイル格納ノードの索引データを格納すべきノードを決定する手順について説明する。 With further reference to FIG. 13, the procedure will be described of determining the nodes to store the index data of the file storage nodes. ハッシュ計算部108は、格納場所コードに対して二次索引ノード数を法とした剰余をハッシュ値として計算する。 Hash calculation section 108 calculates the modulo number secondary index nodes for location codes remainder as a hash value. そして、ハッシュ値を索引データを保持すべき二次索引ノードの番号と決定する。 Then, it is determined that the number of secondary indexes node should retain the index data hash value. 例えば、格納場所コードが「9」であれば、9=4・2+1であるから二次索引ノードはb1となる。 For example, if the storage location code "9", the secondary index nodes because it is 9 = 4 · 2 + 1 becomes b1. したがって、ファイル格納ノードc0、c4、c8、. Thus, file storage nodes c0, c4, c8,. . . 、c24の索引データは二次索引ノードb0に、ファイル格納ノードc1、c5、c9、. , Index data in the secondary index node b0 of c24, file storage node c1, c5, c9,. . . 、c21の索引データは二次索引ノードb1に、ファイル格納ノードc2、c6、c10、. , Index data in the secondary index nodes b1 of c21, file storage node c2, c6, c10,. . . 、c22の索引データは二次索引ノードb2に、ファイル格納ノードc3、c7、c11、. , Index data in the secondary index nodes b2 of c22, file storage node c3, c7, c11,. . . 、c23の索引データは二次索引ノードb3に、それぞれ格納される。 , Index data of c23 in the secondary index node b3, are respectively stored.
なお、ハッシュ関数は、連続する格納場所コードに対して異なるハッシュ値を出力するものであれば他の関数でもよい。 Note that the hash function may be other functions as long as it outputs a different hash values ​​for storage location code continuous.

図14は、上記具体例にしたがって構築されるBツリー構造として、各ノードとそれらに格納されるデータを表している。 Figure 14 is a B-tree structure constructed in accordance with the above embodiment, and represents the nodes and the data stored in them. 一次索引ノードには、すべての二次索引ノードおよびファイル格納ノードの索引データ(つまり、ノード番号とアドレス情報の組)が配置される。 The primary index node, the index data of all the secondary index nodes and file storage node (i.e., the set of node number and address information) is disposed. 他方、二次索引ノードには、Bツリーの葉に相当するファイル格納ノードの索引データが配置される。 On the other hand, the secondary index node, the index data of the file storage node corresponding to the leaves of the B-tree is arranged. 二次索引ノードは、すべてのファイル格納ノードの索引データを保持するのではなく、上述のハッシュ計算の結果が自身のノード番号と一致するファイルを格納したファイル格納ノードの索引データのみを保持する。 Secondary index node, instead of holding the index data of all the file storage node, holds only the index data of the file storage nodes storing the file results of the above-described hash calculation is identical to its own node number. 本明細書では、これを「部分木の索引データを保持する」という。 In the present specification, this is called "to hold the index data of the sub-tree".

図14に示すように、本実施形態では、実際のファイルはファイル格納ノードに保持され、そのファイルを検索するために必要な索引データを二次索引ノードと一次索引ノードに格納する。 As shown in FIG. 14, in the present embodiment, the actual file is kept in the file storage node stores the index data necessary for searching the file to the secondary index nodes and the primary index nodes. このように、ファイルの保存場所と索引データの保存場所とを異なるノードにしている。 In this way, and the storage location of the storage location and the index data of the file to a different node.

また、全体のファイル格納ノードの数がいくつであってもBツリー構造でファイルを管理することができるため、ノードの縦横の配列数に拡張性がある。 Further, it is possible to manage files in B-tree structure any number is the total number of file storage nodes, there is extended to the sequence number of vertical and horizontal nodes.

上述した正方形の部分格子への分割により、r とr とは互いに素であるから、ファイル格納ノードと二次索引ノードのノード数の比r とr も必ず互いに素となる。 The division into sublattice of the above-mentioned square, consists of disjoint, the file storage node and also always disjoint two the number of nodes of primary index node of the ratio r 0 2 and r 1 2 and r 0 and r 1 . このため、索引をたどる階層にハッシュ関数を適用すると、二次索引ノードの数とファイル格納ノードの数に公約数がある場合と比べて、索引並びに実データを分散する効果が高くなると期待される。 Therefore, when applying a hash function to the hierarchy following the index, compared to the case where there is a common factor in the number of the number of file storage node of the secondary index nodes are expected effect of dispersing the index and actual data is high .

外部からデータ格納システムに対してファイルの要求が来ると、その要求は一次索引ノードに渡される。 When a request for a file comes to the data storage system from the outside, the request is passed to the primary index nodes. 一次索引ノードは、ファイル名をコード化して、格納場所コードと同じ番号を持つファイル格納ノードのアドレスをテーブルから検索し、ファイル要求を検索したファイル格納ノードに渡す。 Primary index node, encoding the file name, searching for the address of the file storage nodes with the same number and location code from the table, and passes the file storage node of searching the file request. ファイル要求を受け取ったファイル格納ノードは、ファイルを記憶装置から取り出して、要求元のアドレスに対して検索したファイルを送信する。 File storage node receiving the file request, retrieves the file from the storage unit, and transmits the file retrieved to the requesting address.

Bツリー構造を構築した後であれば、各ノードに元から格納されていたファイルを、Bツリーに合わせて再配置することもできる。 If after building the B-tree structure, the files stored originally in each node can be re-aligned with the B-tree. このプロセスを図15のフローチャートを参照して説明する。 This process will be described with reference to the flowchart of FIG.

まず、各ノードにおいて、現在格納されているデータファイルのファイル名を取得し、それぞれの格納場所コードを計算する(S40)。 First, each node acquires the file name of the data files currently stored, to calculate the respective location code (S40). 計算された格納場所コードが、各ノードに割り振られたノード番号と一致しているか否かを判定する(S42)。 The calculated location code, determines whether they match with the node number assigned to each node (S42). 一致していれば(S42のY)、そのファイル名を持つデータファイルは、当該ノードに格納すべきものであるから、このフローを終了する。 If they match (S42 of Y), the data file with the file name from those to be stored in the node, the flow ends. 一致していなければ(S42のN)、そのファイル名のデータファイルは別のノードに格納すべきものである。 If they do not match (S42 of N), the data file of the file name is intended to be stored in another node. したがって、ファイル格納ノードは、上位の索引ノードに対し、そのファイルを格納すべきファイル格納ノードのアドレスを問い合わせる(S44)。 Thus, file storage node to index higher node queries the address of the file storage node to store the file (S44).

二次索引ノードは、ファイル名を受け取ると、格納場所コードを計算したうえで、さらにハッシュ値を計算する(S46)。 Secondary index node receives the file names, in terms of calculating the location code, further calculates a hash value (S46). 計算したハッシュ値が、二次索引ノードに割り振られたノード番号と一致していれば(S48のY)、テーブルに格納場所コードと一致するファイル格納ノードのアドレスが存在するので、問い合わせをしてきたファイル格納ノードにアドレス情報を送信する(S50)。 Calculated hash value, if consistent with the node number assigned to the secondary index node (S48 of Y), since the address of the file storage node that matches the location code table is present, has been an inquiry transmitting the address information in the file storage node (S50). 計算したハッシュ値が、二次索引ノードに割り振られたノード番号と一致していないときは(S48のN)、二次索引ノードは、一次索引ノードに対してさらにファイル名を問い合わせる(S52)。 Calculated hash value, when not match the node number assigned to the secondary index node (S48 of N), the secondary index nodes further inquires the file name to the primary index nodes (S52).
一次索引ノードには、すべてのノードのアドレス情報が記録されているので、格納場所コードに対応するファイル格納ノードのアドレスを検索して、問い合わせをしてきたファイル格納ノードにアドレス情報を送信する(S54)。 The primary index node, since the address information of all the nodes is recorded, by searching the address of the file storage node corresponding to the storage location code, and transmits the address information in the file storage node that has the query (S54 ).

問い合わせ元のファイル格納ノードは、送信されてきたアドレス情報にしたがって、直接そのファイル格納ノードに対して、ファイルを送信して格納を依頼する(S56)。 Querying file storage node according to the address information sent for that file storage node directly to request the storage and sends the file (S56). ファイルを受け取ったファイル格納ノードは、ファイル名をコード化して自らに格納すべきファイルであることを確認した後、そのファイルを記憶装置に格納する(S58)。 File storage node which has received the file, after confirming that the file should be stored in its own encoding a file name, and stores the file in the storage device (S58).

以上の手順は、ファイル格納ノードにおけるものであるが、索引ノードでは若干異なる。 Above procedure is intended in the file storage node, it is slightly different in the index node. 二次索引ノードでは、コード化、ハッシュ値計算によって、自分の管理する部分木内のファイル格納ノードであることが分かれば、そのアドレスを検索してファイルの格納を依頼する。 The secondary index node, encoded by the hash value calculation, knowing that a file storage node portions Kiuchi to their management, and requests the storage of files by searching its address. 自分の管理する部分木内のデータでないことが分かると、一次索引ノードに対してファイル格納ノードのアドレスを問い合わせた後、ファイルの格納を依頼する。 When it is found not data portion Kiuchi to their management, after querying the address of the file storage node to the primary index node, a request for storing the file.

一次索引ノードはすべてのノードのアドレスを保持しているので、格納場所コードと同一番号を持つファイル格納ノードのアドレスを検索して、ファイルの格納を依頼する。 Because primary index node holds the addresses of all the nodes, find the address of the file storage node with the location code and the same number, and requests the storage of the file. こうすることで、Bツリーの作成前に各ノードの記憶装置に保持されていたファイルを再配置することが可能になる。 In this way, it becomes possible to relocate the file held in the memory of each node before creating a B-tree.

なお、図15の手順は、データ記憶システム内の各ノードにおいてアプリケーションが実行されており、システム内に格納されているファイルが必要になったときに、そのファイルを検索する場合にも適用できる。 The procedure of FIG. 15, in each node of the data storage system and the application is executed, when the file is required that is stored in the system, it can be applied to search the file. ファイル名の問い合わせをするまでは図15と同様であり、所望のファイルを格納しているノードのアドレスが判明すると、そのアドレスに対してファイルの要求を出す。 Until the query of the file name is the same as that in FIG. 15, when the address of the node that stores the desired file is found, it issues a request for a file for that address. ファイル要求を受け取ったファイル格納ノードは、ファイル名をコード化して自らに格納されているファイルであることを確認すると、そのファイルを要求元のファイル格納ノードに対して送信する。 File storage node receiving the file request, when confirming that the files stored in its own encoding a file name, and sends the file to the requesting file storage nodes.

格子状配列内の全ノードのアドレスは、一次索引ノードにある。 Addresses for all nodes in the lattice array is the primary index nodes. したがって、各ファイル格納ノードに対して一次索引ノードのアドレスだけを予め通知しておけば、各ファイル格納ノードは、必要なファイルの格納場所の問い合わせを一次索引ノードに対して発することで、ファイル格納ノードのアドレスを知ることができる。 Therefore, it is previously notified by the address of the primary index node for each file stored nodes, each file storage node, by issuing a query of location of the required files to the primary index nodes, file storage it is possible to know the address of the node. しかしながら、この構成では、すべての問い合わせが一次索引ノードに集中してしまう。 However, in this configuration, all queries are concentrated in the primary index node. これに対し本実施形態では、ファイル格納ノードからの問い合わせの一部については、二次索引ノードが管理する部分木内にあるファイルであれば二次索引ノードでアドレスを知ることができるため、一次索引ノードにおける検索の負荷を軽減できる。 In contrast, in the present embodiment, the part of the query from the file storage nodes, it is possible to know the address in the secondary index nodes if files in the subtree secondary index node manages, primary index It can reduce the load on the search at node.

各ファイル格納ノードには、部分木内の二次索引ノードのアドレスのみならず、すべての二次索引ノードのアドレス情報を予め送信しておいてもよい。 Each The file storage nodes, not only the address of the secondary index node portions Kiuchi, the address information of all the secondary index node may be previously transmitted. こうすれば、ファイル格納ノードからファイルを検索する際、コード化、ハッシュ値計算を行って、自らのノードの記憶装置にファイルが存在しない場合は、そのファイルが格納されたノードが含まれる部分木を管理する二次索引ノードに対し、ファイルの格納場所の問い合わせを直接行うことができる。 This way, when searching for a file from the file storage node, coded, by performing a hash value calculation, if there is no file in the storage device of the own node, subtree that file contains node stored can be carried out to the secondary index node to manage, the inquiry of the storage location of the file directly. したがって、図15のように二次索引ノードから一次索引ノードに対する問い合わせが発生しないため、一次索引ノードの処理負荷を引き下げることができる。 Accordingly, because the query is not generated for the primary index node from the secondary index nodes as shown in FIG. 15, it is possible to lower the processing load of the primary index node.

一次索引ノードに全ノードのアドレスを格納する代わりに、二次索引ノードのアドレスのみを格納しておいてもよい。 Instead of storing the addresses of all the nodes in the primary index node may be stored only addresses the secondary index nodes. この場合、外部からのファイル要求があったとき、一次索引ノードは、コード化とハッシュ値を計算して、そのファイルを格納しているファイル格納ノードを部分木として管理している二次索引ノードのアドレスを知ることができる。 In this case, when a file request from the external, primary index node, encoding and the hash value calculated, secondary index node that manages the file storage node that stores the file as a subtree it is possible to know the address. 一次索引ノードは、二次索引ノードにファイル要求を転送する。 Primary index node forwards the file request to the secondary index node. 二次索引ノードは、そのファイル要求からファイル名を取り出して格納場所コードを求めることで、ファイル格納ノードのアドレスをテーブルから検索する。 Secondary index nodes, by obtaining the location code retrieves the file name from the file request, retrieves the address of the file storage node from the table. そして、ファイル要求を該当するファイル格納ノードに渡す。 Then, it passes the file request to the appropriate file storage nodes. こうすることで、最終的なファイル格納ノードのアドレスを検索する処理を二次索引ノードに回すことで、一次索引ノードの検索負荷をさらに低下させることができる。 In this way, the process of searching for the address of the final file storage node by turning on the secondary index nodes, it is possible to further reduce the search load primary index node.

図8に示したように、格子状配列されたノードを正方形分割して、それぞれにファイル格納ノード、索引ノードの役割を与えると、Bツリーを構成しないノードが発生することが避けられない。 As shown in FIG. 8, the lattice array node and square divided, file storage nodes respectively, given the role of index nodes, nodes that do not constitute B-tree can not be avoided to occur. 図8では、ノードa0'、b0'〜b3'は、Bツリーを構成していない。 In Figure 8, node a0 ', b0'~b3' does not constitute a B-tree. そこで、これらの未使用ノードを、検索データのバックアップ領域として使用してもよい。 Therefore, these unused nodes, may be used as a backup area of ​​the search data.

図16は、索引ノードのレプリケーションを示す。 Figure 16 shows the replication of the index node. 上述のユークリッドの互除法によって未使用ノードが発生する場合、それらのサイズは、必ず索引ノードを構成する正方形の部分格子と同じ大きさになる。 If unused node is generated by the above Euclidean algorithm, their size is the same size as the square sublattices constituting always index nodes. したがって、同じサイズの索引ノードに格納されている索引データのレプリケーションを実行して、バックアップノードを作成する。 Accordingly, by executing the replication of the index data stored in index nodes of the same size, to create a backup node. 図16では、ノードa0'は、一次索引ノードa0をレプリケートし、ノードb0'〜b3'は、二次索引ノードb0〜b3をそれぞれレプリケートする(以下、元からBツリーである方を「プライマリ」、レプリケートした方を「バックアップ」と呼ぶ)。 In Figure 16, node a0 'is to replicate the primary index node a0, node B0'~b3' will replicate secondary index node b0~b3 respectively (hereinafter, whichever is B-tree from the original "primary" , the better to replicate referred to as a "backup"). こうして索引データを二重化することで、索引の信頼性を向上させることができる。 By thus duplicating the index data, thereby improving the reliability of the index. これは、Bツリーの一部の階層を複製したことに相当する。 This corresponds to the duplicate part of the hierarchy of the B-tree.

上記ユークリッドの互除法を用いた手順だと、最後には1×1のノードが二個以上できることになる。 That's procedure using the Euclidean mutual division, becomes possible to node 1 × 1 is two or more in the end. したがって、格子状配列の縦横が互いに素である限り、一次索引ノードのレプリケーションを実行できる。 Therefore, as long as the aspect of the lattice array are disjoint, it can perform replication of the primary index nodes. バックアップノードを確保したうえで、外部からのファイル要求を、ルータによりラウンドロビンやハッシュ等の既知のアルゴリズムで複数の一次索引ノード(プライマリとバックアップ)に分散して送ることで、ルートである一次索引ノードへのアクセスの集中を緩和し、アクセス数増加時の一次索引ノードの処理負荷を低下させることも可能である。 While ensuring a backup node, the file request from the outside, by sending dispersed in a round-robin or more primary index node in a known algorithm such as a hash (primary and backup) by the router, the primary index is the root relax the concentration of access to a node, it is possible to reduce the processing load of the primary index node when increasing the number of accesses. ファイル格納ノードから二次索引ノードへのファイル要求についても、プライマリとバックアップの二次索引ノードに分散させることで同様の効果が得られる。 For even file requests from the file storage node to the secondary index node, the same effect can be obtained by dispersing the secondary index node on the primary and backup.

また、ユークリッドの互除法で正方形の部分格子に分割したとき、プライマリとバックアップが並ぶ方向は、階層間で互い違いになる。 Also, when divided into square sublattices in Euclidean algorithm, the direction in which primary and backup lined will alternate between tiers. すなわち、図17に示すように、一次索引ノードのプライマリとバックアップとが横方向の並びであれば、二次索引ノードのプライマリとバックアップとの並びは縦方向になる。 That is, as shown in FIG. 17, the primary and backup primary index node if the sequence of lateral alignment of the primary and backup secondary index node becomes the longitudinal direction. したがって、プライマリとバックアップとの間で、索引データを同期させるときのデータフロー(図17中の斜線を付した矢印の方向)と、ファイル検索時のファイル要求やアドレス情報をやり取りするときのデータフロー(図17中の白抜き矢印の方向)とは、通常直交する。 Thus, between the primary and backup, data flow when interacting with the data flow (the direction of the arrow indicated by hatching in FIG. 17), the file request and address information when a file search when synchronizing the index data the (white direction of arrow in FIG. 17), usually orthogonal. したがって、これらのフローがひとつのリンクで競合することがなく、一部のリンクがボトルネックとなりシステム全体の処理性能が低下するような事態が発生しにくい。 Therefore, without these flows compete with one link, some links have a situation that is lowered processing performance of the entire system becomes a bottleneck hardly occurs.

以上説明したように、本実施形態では、格子状に配列されたノードとBツリー構造を適用し、Bツリーの「葉」「節点」「根」に相当するものに対して、格子型システム内のノードを一対一で割り当てるようにした。 As described above, in the present embodiment, by applying the node and B-tree structure arranged in a matrix, with respect to those corresponding to the "leaf", "node", "root" of the B-tree, the grid-type systems the node was allocated one-to-one. そして、葉に当たるノードにはBツリーと同じく実際のデータを格納し、節点、根に当たるノードには、葉ノードにルーティングするための索引データを配置するようにした。 Then, the node hits the leaf contains the actual data like the B-tree, the nodes, the nodes striking the roots, was to place the index data for routing to the leaf node. 従来から知られているBツリーは、索引データも実際のデータも、ひとつのコンピュータの中で閉じているが、それを複数ノードに広げた点に特徴がある。 B-tree known from prior art, the actual data Index data also has closed within a single computer, is characterized in that, spread to multiple nodes. また、Bツリーを作るためのノードの領域分割と、索引データの付け方が、ハッシュを介して対になっている点にも特徴がある。 Moreover, the segmentation of nodes for making B-tree, Tsukekata the index data, is also characterized in that in a pair through a hash.

またユークリッドの互除法を用いることにより、格子状配列の縦横のノード数が互いに素であれば、原理的にノード数がいくつであってもデータを管理できる。 Also by using the Euclidean algorithm, if the prime number of nodes vertical and horizontal lattice array, theoretically the number of nodes can manage data be any number. したがって、システムの拡張性が高い。 Therefore, highly scalable system.

本実施形態によれば、格子状配列されたノードをデータ記憶システムとして用いるときに、公知のBツリー構造を利用して、ファイルと索引ノードとを階層化して分散配置するようにした。 According to this embodiment, when using a grid-like array of nodes as a data storage system, using a known B-tree structure, and to be distributed by layering the file and the index nodes. 索引ノードは、ファイルが実際に格納されているノードのアドレスを示すポインタの役割を果たす。 Index node serves as a pointer that indicates the address of the node where the file is actually stored. また、索引ノード数と実ファイル格納ノード数とが、互いに素の関係となることを利用して、索引データを複数の索引ノードに分散させることができる。 Further, the number of index nodes and the number of actual file storage node and is, by utilizing the fact that a coprime, it is possible to disperse the index data to a plurality of index nodes. また、実ファイル格納ノード数と二次索引データ格納ノード数も互いに素となるので、実ファイル格納ノードに配置されるデータの偏りも分散させることができる。 Moreover, since the real file stored number of nodes and secondary index data stored number of nodes also relatively prime, and bias data to be placed in the actual file storage node can be distributed. 階層間のノード数比率が、互いに素である数字の二乗であるため、ノード数の比率が各階層で互いに素となるため、データの分配の偏りを小さくすることができる。 Node number ratio between hierarchy, because it is the square of a prime number, because the ratio of the number of nodes is relatively prime with each layer, it is possible to reduce the deviation of the data distribution. また、各葉ノードでのファイル検索の負荷が比較的分散されるので、特定のノードの処理負荷が突出して高くなることを防止できる。 Further, since the load of the file search on each leaf node is relatively dispersed, it is possible to prevent the processing load of the particular node is higher projects.

なお、実施形態では、簡単のためコード化を「日本語ファイル名の母音」で計算しているため、ファイル名の長さが実際には限られることから分散の効果は少ない。 In the embodiment, since the calculated coded for easy "vowels Japanese file name", the effect of the dispersion since the length of the file name is actually a limited few. しかしながら、例えばアスキーコードなどを用いてコード化すれば、格納場所コードの値はよりばらついた値になることが予測されるので、この分散の効果はより大きくなることが期待される。 However, for example, if encoded by using a ASCII code, the value of the location code that is expected to become more varied values, the effect of this variance is expected to become larger. これ以外にも、単にファイル名の文字数をカウントしたり、ファイル名の英数字に予め数を割り当てておいたり、暗号化の手法を適用するなど、ファイル名などの文字列をコード化するために任意の技術を使用することができる。 Other than this, or merely count the number of characters in the file name, or leave assigned a number in advance in alphanumeric file names, such as applying the technique of encryption, in order to encode strings such as file name You may use any technique.

本実施形態では、格子状に配列されたノードを正方形の部分領域に分割することで、次のような効果も生じる。 In the present embodiment, by dividing the nodes arranged in a lattice square partial regions, also occurs following effects. すなわち、親子関係、兄弟関係にある枝ノードが、格子型システム内で近接して位置することになる。 That is, parent-child relationship, a branch node in the sibling will be located in close proximity in the lattice system. 親子ノードは索引データの依存関係があり、兄弟ノードは索引データの補完関係にある。 Parent-child node there is a dependency of the index data, sibling nodes are in a complementary relationship of the index data. よって、互いに隣接していることで、親子方向、兄弟方向へのアクセス時間を短縮できる。 Therefore, by being adjacent to each other, it can be shortened child direction, the access time to sibling direction.
また、ファイル格納ノードが正方形の領域として確保されるため、ファイルを転送するときに、そのノードに至るまでの経路が複数化され、ノード間のリンクの一部が切断されたときでもファイルの転送を実現することができる。 Also, since the file storage node is reserved as an area of ​​a square, when transferring a file, the path leading up to that node is pluralized, the file even when the part of the link between nodes is disconnected transferred it can be realized.

以上、本発明をいくつかの実施の形態をもとに説明した。 The present invention has been described based upon illustrative embodiments. これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例がありうること、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。 These embodiments are illustrative, it can have various modifications to the combination of their respective components and processes, also it is in the scope of the present invention such modifications will be understood by those skilled in the art By the way there.

請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。 Function should play each constituent features of the claims, it is also the place where one skilled in the art will appreciate that realized by the single or associated in their respective functional blocks shown in this example.

実施形態では、ファイル格納ノードの番号から求めたハッシュ値を使用して、ファイル格納ノードのアドレスを検索するための索引データを格納する索引ノードを決定することを述べた。 In embodiments, said determining using a hash value obtained from the number of the file storage node, the index nodes storing the index data for searching the address of the file storage nodes. しかしながら、上述のBツリーでは、範囲を指定した検索に対応できない。 However, in the above B-tree, it can not cope with the search to the specified range. そこで、n分探索木を使って索引データの管理をしてもよい。 So, it may be the management of the index data using the n-ary search tree. ハッシュ値を計算する際に現れた格納場所コードを用いて節点や葉を形成すればn分探索木を構築できる。 By forming the nodes and leaves using a location code that appeared when calculating the hash value can build n-ary search tree. 索引データはこの格納場所コードをそのまま用いる一方で、実データはハッシュ値により格納すべき葉を決定する。 Index data while used as the storage location code, the actual data determines the leaves to be stored by the hash value. 範囲探索では、このn分探索木をたどって葉に格納された実データを得る。 The range search, obtain actual data stored in the leaves follow this n-ary search tree.

格納場所コードを算出するためにファイル名を使用したが、それ以外のファイル固有の情報、例えばファイルの作成時刻、更新時刻、ファイルサイズ、ファイルの作成者、ファイルを作成したコンピュータ名やこれらの組合せから格納場所コードを算出してもよい。 Although using the file name in order to calculate the location code, the other file-specific information, such as a file creation time, modification time, file size, file creator, computer names or a combination thereof that created the file location code from may be calculated. また、二種類以上の索引、つまり格納場所コードを併用してもよい。 Also, two or more indexes, that is, may be used in combination location code.

格納すべきデータが増加した場合に、システム管理者がファイル格納ノードまたは索引ノードの増強を必要とするときには、事後的に格子状配列の縦、横のノード数を増加させることも可能である。 If the data to be stored is increased, when the system administrator need of an enhanced file storage node or an index node, it is possible to retrospectively increased vertical lattice array, the horizontal number of nodes. この場合、一次索引ノードは、新たな格子状配列のノード数と各ノードのアドレス情報に基づいて、上述の手順にしたがってBツリーを再構築するようにしてもよい。 In this case, primary index node based on the node number and the address information of each node in the new lattice array may be rebuild the B-tree according to the procedure described above. 再構築の結果、ファイル格納ノード数と二次索引ノード数との比率が変わるため、索引データを格納すべき二次索引ノードやファイル格納ノード数が増加して、データファイルを格納すべきファイル格納ノードが変わったとき、各ノードは上述した再配置の手順にしたがって、データの再配置を実行するようにしてもよい。 Result of reconstruction, since the ratio of the number of files stored node number and secondary index node changes, the index data increases secondary index nodes and the number of file storage nodes to store the file storage to store the data files when a node has changed, each node according to the procedure of relocation described above, may be executed the relocation of the data.

実施形態で述べたように、システムの管理者が仕様に応じた望ましい正方形の部分格子に切り出しができるように、格子状配列の縦、横のノード数を決定し、その通りに格子状配列を構成する方が、使用されないノードがなく、かつレプリケーション用のノードを確保した好ましい論理構成を持つ記憶システムを構築できる。 As mentioned embodiment, as the administrator of the system can cut to the desired square sublattices in accordance with the specifications, the vertical lattice array, to determine the number of horizontal nodes, the lattice array on the street How to configuration, it can be constructed storage system with preferred logic arrangement not used node without and securing the nodes for replication. しかしながら、システム管理者によらずに、正方形分割をプログラムで実行させることもできる。 However, regardless of the system administrator, it can also be executed a square split program. この場合、対象となる格子状配列10の縦横のノード数は任意であってよく、いずれかのノードで実行されるプログラムが、図7で述べたステップを順次実行することで、正方形の部分格子への切り出しを行うようにしてもよい。 In this case, the node number of vertical and horizontal lattice array 10 of interest can be any program executed by one node, by sequentially carrying out steps described in FIG 7, a square sublattice it may be cut out to.

格子の形状によっては、三次索引以上の階層をBツリーに設けてもよいが、本発明の方法は二次索引ノードの検索まででファイル格納ノードを決定できるので、それ以上の次数の階層は不要である。 Depending on the shape of the lattice, the tertiary index more hierarchies may be provided in the B-tree, but since the method of the present invention can determine the file storage nodes to search for secondary index node, more orders of hierarchy required it is.

一台のルータに複数のサーバまたはパーソナルコンピュータが接続することによって、図1のひとつのノード20の下に複数のサーバやパーソナルコンピュータを配置してもよい。 By connecting a plurality of servers or personal computers on a single router, it may be arranged a plurality of servers and personal computers under one of the nodes 20 in FIG. 1.

本発明の一実施形態に係るデータ記憶システムと、これに接続されるクライアント端末の全体構成図である。 A data storage system according to an embodiment of the present invention, is an overall configuration diagram of a client terminal that is connected thereto. 格子状配列を構成する各ノードのハードウェア構成図である。 It is a hardware configuration diagram of each node constituting the lattice array. 各ノードを上下左右のノードとリンクさせる様子を示した図である。 Is a diagram showing how to link the nodes and upper, lower, left and right node. (a)、(b)は、格子状配列を有するデータ記憶システムにおける従来技術を説明する図である。 (A), (b) is a diagram for explaining a conventional technology in a data storage system having a lattice array. (a)、(b)は、格子状配列を有するデータ記憶システムにおける従来技術を説明する図である。 (A), (b) is a diagram for explaining a conventional technology in a data storage system having a lattice array. 格子状配列を複数の正方形の部分格子に分割する手順を示すフローチャートである。 It is a flowchart illustrating a procedure for dividing a lattice array into portions grid of squares. 格子状配列の分割の具体例を示す図である。 It is a diagram showing a specific example of division of the lattice array. 格子状配列の正方形の部分格子への分割結果と、各ノードに割り振られたノード番号を示す図である。 And dividing the result of the partial grid of square lattice array is a diagram showing a node number assigned to each node. Bツリーの構成を示す図である。 It is a diagram showing a configuration of a B-tree. 検索プログラムを実行する一次索引ノードの機能ブロック図である。 Executing the search program is a functional block diagram of a primary index node. ファイル格納ノードと索引ノードを決定するプロセスを示すフローチャートである。 It is a flowchart illustrating a process of determining the file storage nodes and index nodes. 母音コード表を示す図である。 It is a diagram illustrating a vowel code table. ファイル名の具体例とファイル名に基づいたコードの算出方法を示す図である。 Is a diagram illustrating a coding method for calculating the based on specific examples and file name of the file name. Bツリーと、各ノードに格納されるデータを示す図である。 And B-tree is a diagram showing the data stored in each node. ファイルをBツリーに合わせて再構成するプロセスを示すフローチャートである。 It is a flowchart showing the process of reconstructing the combined file B-tree. 索引ノードのレプリケーションを示す図である。 Is a diagram showing the replication of the index node. 索引データを同期させるときのデータフローと、ファイル検索時のデータフローとを示す図である。 A data flow when synchronizing the index data, a diagram showing the data flow when a file search.

符号の説明 DESCRIPTION OF SYMBOLS

10 格子状配列、 12 クライアント端末、 14 ネットワーク、 16 ルータ、 20 ノード、 96 記憶装置、 98 ネットワークインタフェース、 100 データ記憶システム、 102 ファイル受取部、 104 検索部、 106 コード化部、 108 ハッシュ計算部、 110 ファイル転送部、 112 テーブル保持部、 114 情報取得部。 10 lattice array, 12 client terminal, 14 a network, 16 router, 20 nodes, 96 storage device, 98 a network interface, 100 data storage system, 102 file reception unit, 104 the search unit, 106 coding unit 108 hash calculation unit, 110 file transfer unit, 112 table holding unit, 114 information acquisition unit.

Claims (7)

  1. それぞれが記憶装置を有する複数のノードに保持されたファイルを共通の索引を用いて管理して単一のデータベースとして機能させるデータ記憶システムであって、 Each A data storage system to act as a single database and managed using a common index file held in the plurality of nodes having a storage device,
    前記複数のノードは格子状に配列され、各ノードが前後左右のノードと通信可能に接続され、ファイルを実際に格納するファイル格納ノードと、該ファイル格納ノードの索引データを格納する索引ノードとがそれぞれ正方形の部分格子を構成するように分割されており、 Wherein the plurality of nodes are arranged in a grid, each node is communicatively connected to the front and rear left and right nodes, and file storage nodes actually store the file, and the index nodes storing the index data of the file storage node each is divided so as to constitute a part grid square,
    前記ファイル格納ノードをツリー構造の葉に対応させ、前記索引ノードをツリー構造の根または節点に対応させて、前記ファイルおよび前記索引データを管理するツリー構造の情報が前記索引ノードに保持され、 The file storage node to correspond to the leaves of the tree structure, the index node to correspond to the root or node of the tree structure, information of the tree structure for managing the file and the index data is held in the index node,
    前記ファイル格納ノードに保持されているファイルを特定するためのファイル特定情報に基づいて一意に決定される索引ノードに、該ファイル格納ノードのアドレス情報が格納され Index node to be uniquely determined based on the file identification information for specifying a file stored in the file storage node, address information of the file storage node is stored,
    前記格子状の配列において縦方向に並ぶノード数と横方向に並ぶノード数とが互いに素の関係にあり、該格子状の配列をユークリッドの互除法を使用して複数の正方形の部分格子に分割することを特徴とするデータ記憶システム。 Dividing the located grating arrangement the number of nodes along the ordinate and the number of nodes arranged in the horizontal direction and are coprime in a lattice-like array portion grid of squares using Euclidean algorithm data storage system, characterized by.
  2. 前記格子状に配列されたノードを分割して得られる部分格子のうち、最大の部分格子に含まれるノードを前記ファイル格納ノードとし、他の部分格子に含まれるノードを前記索引ノードとすることを特徴とする請求項1に記載のデータ記憶システム。 Among the partial grid obtained by dividing the nodes arranged in the grid pattern, the nodes included in the largest part grating and the file storage node, the nodes included in other portions grating to said index nodes the data storage system of claim 1, wherein.
  3. 前記ファイル特定情報を所定の規則にしたがってコード化し、得られたコードにしたがって該ファイル特定情報に対応するファイルを格納すべきファイル格納ノードが決定され、 Wherein the file identification information coded according to a predetermined rule, file storage node that ought to store the file corresponding to the file identification information in accordance with the obtained code is determined,
    前記コードにハッシュ関数を適用してハッシュ値を求め、該ハッシュ値にしたがって前記ファイル格納ノードのアドレス情報を保持すべき索引ノードが決定されることを特徴とする請求項1 または2に記載のデータ記憶システム。 Data according to claim 1 or 2, wherein the code by applying a hash function obtains a hash value, the index node should retain address information of the file storage node in accordance with the hash value is determined storage system.
  4. 前記ファイル特定情報としてファイルに付与された名前を使用することを特徴とする請求項に記載のデータ記憶システム。 Data storage system according to claim 3, characterized in that the use of name given to the file as the file identification information.
  5. 前記分割により複数の同サイズの部分格子ができた場合、前記索引データを複数の部分格子に複製して前記索引ノードのバックアップを作成することを特徴とする請求項に記載のデータ記憶システム。 The case that could portions grid of the same size by dividing the data storage system of claim 1, characterized in that to replicate the index data into a plurality of partial grid to create a backup of the index nodes.
  6. それぞれが記憶装置を有する複数のノードに保持されたファイルを共通の索引を用いて管理して単一のデータベースとして機能させるデータ記憶システムにおいて、 In each of the data storage system to function as a single database and managed using a common index file held in the plurality of nodes having a storage device,
    前記複数のノードは格子状に配列され、各ノードが前後左右のノードと通信可能に接続され、ファイルを実際に格納するファイル格納ノードと、該ファイル格納ノードの索引データを格納する索引ノードとがそれぞれ正方形の部分格子を構成するように分割されており、 Wherein the plurality of nodes are arranged in a grid, each node is communicatively connected to the front and rear left and right nodes, and file storage nodes actually store the file, and the index nodes storing the index data of the file storage node each is divided so as to constitute a part grid square,
    前記ファイル格納ノードをツリー構造の葉に対応させ、前記索引ノードをツリー構造の根または節点に対応させて、前記ファイルおよび前記索引データを管理するツリー構造の情報が前記索引ノードに保持されているとき、 The file storage node to correspond to the leaves of the tree structure, the index node to correspond to the root or node of the tree structure, the files and information of the tree structure for managing the index data is held in the index node when,
    前記索引ノードにおいて実行されるファイル検索プログラムが、 File search program executed in the index node,
    ファイルの検索要求を受け取る機能と、 And the function of receiving a search request for a file,
    前記ファイルのファイル特定情報を所定の規則にしたがってコード化し、得られたコードにしたがって該ファイル特定情報に対応するファイルが格納されているファイル格納ノードを決定する機能と、 A function of determining the file specific information coded according to a predetermined rule, the file corresponding to the file identification information in accordance with the obtained codes are stored file storage node of the file,
    前記コードにハッシュ関数を適用してハッシュ値を求め、該ハッシュ値にしたがって前記ファイル格納ノードのアドレス情報が保持されている索引ノードを決定する機能と、 Obtains a hash value by applying a hash function to the code, the function of determining the index node the address information of the file storage node in accordance with the hash value is held,
    を含むことを特徴とするデータ記憶システムにおけるファイル検索プログラム。 File search program in a data storage system, which comprises a.
  7. それぞれが記憶装置を有する複数のノードに保持されたファイルを共通の索引を用いて管理して単一のデータベースとして機能させるデータ記憶システムにおいて、 In each of the data storage system to function as a single database and managed using a common index file held in the plurality of nodes having a storage device,
    前記複数のノードは格子状に配列され、各ノードが前後左右のノードと通信可能に接続され、ファイルを実際に格納するファイル格納ノードと、該ファイル格納ノードの索引データを格納する索引ノードとがそれぞれ正方形の部分格子を構成するように分割されており、 Wherein the plurality of nodes are arranged in a grid, each node is communicatively connected to the front and rear left and right nodes, and file storage nodes actually store the file, and the index nodes storing the index data of the file storage node each is divided so as to constitute a part grid square,
    前記ファイル格納ノードをツリー構造の葉に対応させ、前記索引ノードをツリー構造の根または節点に対応させて、前記ファイルおよび前記索引データを管理するツリー構造の情報が前記索引ノードに保持されているとき、 The file storage node to correspond to the leaves of the tree structure, the index node to correspond to the root or node of the tree structure, the files and information of the tree structure for managing the index data is held in the index node when,
    前記索引ノードがファイル検索装置として機能し、 The index nodes functions as a file search unit,
    ファイルの検索要求を受け取るファイル受取部と、 And the file receiving unit for receiving a search request for a file,
    前記ファイルのファイル特定情報を所定の規則にしたがってコード化し、得られたコードにしたがって該ファイル特定情報に対応するファイルが格納されているファイル格納ノードを決定するコード化部と、 And encoding unit for determining a file specific information coded according to a predetermined rule, the file corresponding to the file identification information in accordance with the obtained codes are stored file storage node of the file,
    前記コードにハッシュ関数を適用してハッシュ値を求め、該ハッシュ値にしたがって前記ファイル格納ノードのアドレス情報が保持されている索引ノードを決定するハッシュ計算部と、 Obtains a hash value by applying a hash function to the code, a hash calculator which determines the index node the address information of the file storage node in accordance with the hash value is held,
    を備えることを特徴とするデータ記憶システムにおけるファイル検索装置。 File search apparatus in a data storage system comprising: a.
JP2006149025A 2006-05-29 2006-05-29 Data storage systems, file search apparatus and program Expired - Fee Related JP4891657B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006149025A JP4891657B2 (en) 2006-05-29 2006-05-29 Data storage systems, file search apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006149025A JP4891657B2 (en) 2006-05-29 2006-05-29 Data storage systems, file search apparatus and program

Publications (2)

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

Family

ID=38850915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006149025A Expired - Fee Related JP4891657B2 (en) 2006-05-29 2006-05-29 Data storage systems, file search apparatus and program

Country Status (1)

Country Link
JP (1) JP4891657B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5416659B2 (en) * 2010-06-11 2014-02-12 日本電信電話株式会社 Information storage and retrieval device, information storage method, and information storage program
GB2499547A (en) 2010-11-22 2013-08-21 Ibm Information processing system achieving connection distribution for load balancing of distributed database, information processing device,
JP5919529B2 (en) * 2011-09-16 2016-05-18 パナソニックIpマネジメント株式会社 Data storage system
KR101341507B1 (en) * 2012-04-13 2013-12-13 연세대학교 산학협력단 Modified searching method and apparatus for b+ tree
CN104239564B (en) * 2014-09-28 2018-02-09 深圳市锐明技术股份有限公司 A method of document indexing and tissue repair and equipment
JP6342351B2 (en) 2015-03-02 2018-06-13 東芝メモリ株式会社 Storage system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6174058A (en) * 1984-09-18 1986-04-16 Nippon Telegr & Teleph Corp <Ntt> Parallel processing system
JPS6249557A (en) * 1985-08-29 1987-03-04 Fujitsu Ltd Data distributing system for parallel computer
US5230047A (en) * 1990-04-16 1993-07-20 International Business Machines Corporation Method for balancing of distributed tree file structures in parallel computing systems to enable recovery after a failure
JP2583010B2 (en) * 1993-01-07 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション Method for maintaining consistency between the local index table and the global index table in the multilayer index structure
JP3318834B2 (en) * 1999-07-30 2002-08-26 三菱電機株式会社 Data file system and data search method
US7107265B1 (en) * 2000-04-06 2006-09-12 International Business Machines Corporation Software management tree implementation for a network processor
JP2005234762A (en) * 2004-02-18 2005-09-02 Nippon Telegr & Teleph Corp <Ntt> Resource retrieval device and method, and computer program

Also Published As

Publication number Publication date
JP2007317138A (en) 2007-12-06

Similar Documents

Publication Publication Date Title
Escriva et al. HyperDex: A distributed, searchable key-value store
Stoica et al. Chord: A scalable peer-to-peer lookup service for internet applications
Wu et al. Efficient B-tree based indexing for cloud data processing
KR100878861B1 (en) System for identifying common digital sequences
AU2010235939B2 (en) Systems, methods and programming for routing and indexing globally addressable objects and associated business models
CN103098015B (en) Storage System
Patil et al. Scale and Concurrency of GIGA+: File System Directories with Millions of Files.
AU2013271538B2 (en) Data management and indexing across a distributed database
Chen et al. A prototype implementation of archival intermemory
JP5291456B2 (en) Data allocation in a storage system architecture
JP4358581B2 (en) System and method for generating an overlay network that is improved with an efficient distributed data structures
US8185614B2 (en) Systems, methods, and apparatus for identifying accessible dispersed digital storage vaults utilizing a centralized registry
Wei et al. CDRM: A cost-effective dynamic replication management scheme for cloud storage cluster
US20160378845A1 (en) System and method for implementing a scalable data storage service
US20040117410A1 (en) Dynamic directory service
JP5671656B2 (en) Computer program product for replicating object from the replication source storage to the replication destination storage system, and method (replication data objects from the replication source server to the replication destination server)
CN105843905B (en) For managing the device and method of the file system object in file system
CN100337218C (en) Data managing method for network storage system and network storage system constituted thereby
US6029168A (en) Decentralized file mapping in a striped network file system in a distributed computing environment
JP6119421B2 (en) Database storing encoded triple, controller, method and system
US8892698B2 (en) Object interface to a dispersed data storage network
Kang et al. Gbase: a scalable and general graph management system
US7734643B1 (en) Method for distributed storage of data
US8103639B1 (en) File system consistency checking in a distributed segmented file system
US20080256090A1 (en) Dynamic directory service

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111216

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