JP2008176615A - File sharing network system, data structure used for file transer of file sharing network system, file transfer method for file sharing network system, file disclosure computer, cache computer, file acquisition computer and computer program - Google Patents

File sharing network system, data structure used for file transer of file sharing network system, file transfer method for file sharing network system, file disclosure computer, cache computer, file acquisition computer and computer program Download PDF

Info

Publication number
JP2008176615A
JP2008176615A JP2007010093A JP2007010093A JP2008176615A JP 2008176615 A JP2008176615 A JP 2008176615A JP 2007010093 A JP2007010093 A JP 2007010093A JP 2007010093 A JP2007010093 A JP 2007010093A JP 2008176615 A JP2008176615 A JP 2008176615A
Authority
JP
Japan
Prior art keywords
metadata
file
computer
cache
network
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.)
Pending
Application number
JP2007010093A
Other languages
Japanese (ja)
Inventor
Takeshi Yamashita
剛 山下
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.)
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Electric Industries 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 Sumitomo Electric Industries Ltd filed Critical Sumitomo Electric Industries Ltd
Priority to JP2007010093A priority Critical patent/JP2008176615A/en
Publication of JP2008176615A publication Critical patent/JP2008176615A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a new technical means for efficiently restoring a file. <P>SOLUTION: The file sharing network system comprises a metadata generation part 12 for generating a plurality of metadata m1, m2, m3 and m4 encoded so as to be erasable or correctable from a shared original file F, and a metadata decoding part 53 for acquiring the metadata for acquiring the original file, and decoding the metadata to restore the original file. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、ファイル共有ネットワークシステム等に関するものである。   The present invention relates to a file sharing network system and the like.

ファイル共有ネットワークシステムは、各コンピュータが保有するファイルを、インターネット等のネットワーク上で共有するためのものである。
ファイル共有ネットワークシステムでは、ユーザがネットワークに公開したファイルは共有ファイルとなる。別のユーザは、ネットワーク上の共有ファイルを検索し、そのファイルをダウンロードすることにより、他者が公開したファイルをネットワーク経由で取得することができる。
The file sharing network system is for sharing a file held by each computer on a network such as the Internet.
In a file sharing network system, a file released to the network by a user is a shared file. Another user searches for a shared file on the network and downloads the file to obtain a file published by another person via the network.

このようなファイル共有ネットワークシステムとしては、「Winny」、「Freenet」などのP2P(ピア・ツー・ピア)ファイル共有ネットワークシステムが知られている。Winnyについては、非特許文献1に開示されている。   As such a file sharing network system, P2P (peer-to-peer) file sharing network systems such as “Winny” and “Freenet” are known. Winny is disclosed in Non-Patent Document 1.

Winnyでは、共有ファイルを必要とするコンピュータ(検索ノード)が共有ファイルをネットワーク経由で取得する際、ファイルを公開したコンピュータ(オリジナルノード)から取得するだけではなく、共有ファイル(オリジナルファイル)の複製を持つコンピュータ(キャッシュノード)から取得することも可能である。   In Winny, when a computer that needs a shared file (search node) obtains the shared file via the network, it not only obtains it from the computer that published the file (original node), but also duplicates the shared file (original file). It can also be acquired from the computer (cache node) that it has.

キャッシュノードが保有するキャッシュファイルは、共有ファイルを所定サイズ(例えば、64Kバイト)ごとのキャッシュブロックに分割したものである。
検索ノードが共有ファイルを取得する場合、オリジナルノードとキャッシュノードとから多重ダウンロードすることにより、ファイル転送効率を向上させることができる。
The cache file held by the cache node is obtained by dividing the shared file into cache blocks each having a predetermined size (for example, 64 Kbytes).
When the search node acquires the shared file, the file transfer efficiency can be improved by multiple downloading from the original node and the cache node.

また、キャッシュノードがあることで、オリジナルノードがネットワークから離脱しても、キャッシュノードから共有ファイルを取得できる。したがって、キャッシュノードがあると、検索ノードが必要なファイルを入手できる可能性が高くなり、ネットワークにおけるファイル共有効率をある程度、高くすることができる。
金子勇著、「Winnyの技術」、第1版、株式会社アスキー、2005年10月20日、p.73−77
In addition, since there is a cache node, a shared file can be acquired from the cache node even if the original node leaves the network. Therefore, if there is a cache node, there is a high possibility that the search node can obtain the necessary file, and the file sharing efficiency in the network can be increased to some extent.
Kaneko Isamu, “Winny's Technology”, 1st Edition, ASCII Co., Ltd., October 20, 2005, p. 73-77

ある共有ファイルについて、より多くのキャッシュノードがそのキャッシュファイルを有するほど、各検索ノードが必要なファイルを入手できる可能性が高くなる。
しかし、キャッシュノードを構成するコンピュータの記憶領域(具体的にはHDD)には限りがあるため、多くのキャッシュノードが同じキャッシュファイルを保有するには限界が生じる。
For a shared file, the more cache nodes have the cache file, the more likely each search node can obtain the required file.
However, since the storage area (specifically, HDD) of the computer constituting the cache node is limited, there is a limit for many cache nodes to have the same cache file.

そこで、一つのキャッシュファイルを構成する複数のキャッシュブロック(断片ブロック)のうち一部のブロックをキャッシュノードが保有することが考えられる。この場合、ネットワーク上の多くのキャッシュノードに、一つのキャッシュファイルを構成するキャッシュブロックを分散的に保有させることになる。
一つのキャッシュノードは、共有ファイルの断片ブロックであるキャッシュブロックしか有しないわけであるが、検索ノードは、複数のキャッシュノードから別々の断片ブロックを集めることで、共有ファイル全体を入手することができる。
In view of this, it is conceivable that the cache node holds a part of a plurality of cache blocks (fragment blocks) constituting one cache file. In this case, a large number of cache nodes on the network hold the cache blocks constituting one cache file in a distributed manner.
One cache node has only a cache block that is a fragment block of the shared file, but the search node can obtain the entire shared file by collecting separate fragment blocks from a plurality of cache nodes. .

しかし、共有ファイルを単に断片化するだけでは、検索ノードがファイルを入手できない可能性が大きいままである。
例えば、一つの共有ファイルが5つのキャッシュブロックに断片化され、一つのキャッシュノードがランダムで2個のキャッシュブロックを保有し、キャッシュブロックを保有するキャッシュノードが5つである場合を想定する。
However, simply fragmenting the shared file remains highly likely that the search node cannot obtain the file.
For example, assume that one shared file is fragmented into five cache blocks, one cache node randomly holds two cache blocks, and five cache nodes hold cache blocks.

この場合、最も理想的な場合は、3つのノードからキャッシュブロックを取得することで元の共有ファイルを復元できる。しかし、最悪の場合、5つ全てのキャッシュノードのキャッシュブロックを集めても元のファイルを復元できない可能性がある。
つまり、上記の例で、1つの共有ファイルを復元するには、5種類のキャッシュブロックが必要であるが、2ブロック×5ノード=10ブロックのキャッシュブロックを集めても、10個のキャッシュブロックに4種類以下のキャッシュブロックしか含まれていなければ、復元に必要な5種類のキャッシュブロックが得られず、元のファイルを復元することはできない。
In this case, in the most ideal case, the original shared file can be restored by acquiring the cache block from the three nodes. However, in the worst case, there is a possibility that the original file cannot be restored even if the cache blocks of all five cache nodes are collected.
That is, in the above example, in order to restore one shared file, five types of cache blocks are required. However, even if 2 blocks × 5 nodes = 10 blocks are collected, 10 cache blocks are collected. If only four or less types of cache blocks are included, five types of cache blocks required for restoration cannot be obtained, and the original file cannot be restored.

一方、多くのノードが、ある共有ファイルについてのキャッシュブロックを保有するほど、ネットワークからファイルを入手できる可能性は高くなる。しかし、多くのノードにキャッシュブロックを保有させると、ファイル復元に必要なキャッシュブロック種類数に比べて、ノードに保有されるキャッシュブロック数が不必要に多くなる。つまり、同じ種類のキャッシュブロックが重複してネットワーク上に多数存在することになり、ファイルの共有効率が低下する。   On the other hand, the more nodes have a cache block for a shared file, the more likely it is that the file can be obtained from the network. However, if many nodes have cache blocks, the number of cache blocks held in the node is unnecessarily large compared to the number of cache block types necessary for file restoration. In other words, many cache blocks of the same type are duplicated on the network, and file sharing efficiency is reduced.

そこで、本発明は、効率的にファイルを復元するための新たな技術的手段を提供することを目的とする。   Accordingly, an object of the present invention is to provide a new technical means for efficiently restoring a file.

[ファイル共有ネットワークシステム]
本発明のファイル共有ネットワークシステムは、共有されるオリジナルファイルから、消失訂正可能に符号化された複数のメタデータを生成するメタデータ生成部と、オリジナルファイル取得のために前記メタデータを取得して復号化し前記オリジナルファイルを復元するメタデータ復号部と、を備えている。
上記構成によれば、オリジナルファイルが消失訂正可能に符号化されることで、メタデータの一部が消失してもオリジナルファイルを復元することができる。
[File sharing network system]
The file sharing network system of the present invention includes a metadata generation unit that generates a plurality of metadata encoded so as to be erasure-correctable from a shared original file, and acquires the metadata for acquiring the original file. A metadata decrypting unit that decrypts and restores the original file.
According to the above configuration, the original file is encoded so that the loss can be corrected, so that the original file can be restored even if a part of the metadata is lost.

前記メタデータ生成部は、消失訂正型レートレス符号によってメタデータを生成するのが好ましい。消失訂正型レートレス符号を用いることで、無数の種類のメタデータを生成することができ、メタデータを多様化することができる。   Preferably, the metadata generation unit generates metadata by an erasure correction type rateless code. By using the erasure correction type rateless code, innumerable types of metadata can be generated, and the metadata can be diversified.

前記メタデータ生成部は、前記オリジナルファイルを分割した複数のブロックに対して、消失訂正符号による符号化を行って、復元に非必須なメタデータを生成するものであり、前記メタデータ復号部は、復元に非必須なメタデータを、復元に必要な数ほど取得して前記オリジナルファイルを復元するのが好ましい。
上記構成によれば、メタデータは復元に非必須なデータとなり、メタデータ復号部では、復元に必要な数を取得できれば、オリジナルファイルを復元することができる。
The metadata generation unit performs encoding with erasure correction codes on a plurality of blocks obtained by dividing the original file, and generates non-essential metadata for restoration. The metadata decoding unit includes: It is preferable to restore the original file by obtaining as many metadata as are necessary for the restoration as necessary for the restoration.
According to the above configuration, the metadata becomes non-essential data for restoration, and the metadata decoding unit can restore the original file if the number necessary for restoration can be acquired.

[データ構造]
メタデータは、オリジナルファイルを消失訂正可能に符号化したメタデータ本体と、当該メタデータ本体を生成するのに用いられた符号化用の演算式情報と、を有しているのが好ましい。この場合、メタデータを受け取った側は、メタデータ自体から符号化用演算式情報を把握することができる。
[data structure]
The metadata preferably has a metadata main body encoded so that the original file can be lost and corrected, and arithmetic expression information for encoding used to generate the metadata main body. In this case, the side receiving the metadata can grasp the calculation formula information for encoding from the metadata itself.

前記メタデータは、メタデータが存在するネットワーク上の位置情報を含むのが好ましい。この場合、メタデータを参照することで、メタデータの位置を取得できる。   The metadata preferably includes location information on a network where the metadata exists. In this case, the metadata position can be acquired by referring to the metadata.

前記メタデータは、当該メタデータ生成の基になったオリジナルファイルに関するファイル情報を含むのが好ましい。この場合、メタデータを参照することで、オリジナルファイルに関する情報を取得できる。   The metadata preferably includes file information related to the original file that is the basis for generating the metadata. In this case, information about the original file can be acquired by referring to the metadata.

[ファイル転送方法]
本発明のファイル共有ネットワークシステムにおけるファイル転送方法は、共有されるオリジナルファイルから、消失訂正可能に符号化されたメタデータを生成してネットワークへ送信可能とするステップと、ファイル取得コンピュータが、ネットワークから前記メタデータを取得して、オリジナルファイルを復元するステップと、を含む。
[File transfer method]
The file transfer method in the file sharing network system according to the present invention includes a step of generating metadata encoded so as to be erasure-correctable from a shared original file and transmitting it to the network, and a file acquisition computer from the network Obtaining the metadata and restoring the original file.

上記方法によれば、オリジナルファイルが消失訂正可能に符号化され、メタデータの一部が消失してもオリジナルファイルを復元することができる。   According to the above method, the original file is encoded so that the loss can be corrected, and the original file can be restored even if a part of the metadata is lost.

他の観点からみたファイル転送方法は、共有されるオリジナルファイルから、消失訂正可能に符号化されたメタデータを生成するステップと、ネットワーク上の複数のキャッシュコンピュータがメタデータを分散して保有するステップと、ファイル取得コンピュータが、キャッシュコンピュータから前記メタデータを取得して、オリジナルファイルを復元するステップと、を含み、ネットワーク上の複数のキャッシュコンピュータが保有するメタデータの種類数が、オリジナルファイルを復元するのに必要なメタデータの種類数よりも多くなるようにメタデータを生成する。   From another viewpoint, a file transfer method includes a step of generating metadata encoded so as to be erasure-correctable from a shared original file, and a step in which a plurality of cache computers on the network distribute and hold the metadata. And a step in which the file acquisition computer acquires the metadata from the cache computer and restores the original file, and the number of types of metadata held by a plurality of cache computers on the network restores the original file. The metadata is generated so as to be larger than the number of types of metadata necessary for the operation.

上記方法によれば、キャッシュコンピュータが保有するメタデータの種類数が、オリジナルファイルを復元するのに必要なメタデータの種類数よりも多いので、ファイル復元のためのメタデータ取得が容易に行える。   According to the above method, since the number of types of metadata held by the cache computer is larger than the number of types of metadata necessary for restoring the original file, it is possible to easily obtain metadata for restoring the file.

上記方法においては、前記キャッシュコンピュータが、自己が保有するメタデータの種類を、他のキャッシュコンピュータへ通知するのが好ましい。この場合、各キャッシュコンピュータが、他のキャッシュコンピュータの有するメタデータの種類を把握でき、周囲のノードのメタデータ保有状況を考慮して、キャッシュの仕方を決めることができる。   In the above method, it is preferable that the cache computer notifies other cache computers of the type of metadata held by the cache computer. In this case, each cache computer can grasp the types of metadata possessed by other cache computers, and can determine the cache method in consideration of the metadata possession status of surrounding nodes.

上記方法においては、オリジナルファイルからメタデータが生成される度に、異なる符号化用演算式が用いられるのが好ましい。このようにすることで、多くの種類のメタデータが生成され、ファイル復元に有利である。   In the above method, it is preferable that a different calculation expression is used each time metadata is generated from an original file. By doing so, many types of metadata are generated, which is advantageous for file restoration.

[ファイル公開コンピュータ]
本発明のファイル公開コンピュータは、共有されるオリジナルファイルから、消失訂正可能に符号化されたメタデータを生成するメタデータ生成部と、生成したメタデータをネットワークへ送信する送信部と、を備えている。
上記構成によれば、オリジナルファイルが消失訂正可能に符号化されることで、メタデータの一部が消失してもオリジナルファイルを復元することができる状態で、ネットワークへのデータ送信が可能である。
[File Public Computer]
The file publishing computer of the present invention includes a metadata generation unit that generates metadata encoded so as to be erasure-correctable from a shared original file, and a transmission unit that transmits the generated metadata to a network. Yes.
According to the above configuration, the original file is encoded so that the loss can be corrected, so that data can be transmitted to the network in a state where the original file can be restored even if a part of the metadata is lost. .

前記メタデータ生成部は、メタデータを生成するための演算式をランダムに決定する演算式発生部と、前記演算式決定手段によってランダムに決定された演算式を用いてメタデータ生成のための演算を行うメタデータ演算部と、を備えているのが好ましい。メタデータを生成するための演算式をランダムに決定する演算式発生部を備えていることで、同一のオリジナルファイルからでも様々な種類のメタデータを生成することができる。   The metadata generation unit includes an arithmetic expression generation unit that randomly determines an arithmetic expression for generating metadata, and an operation for generating metadata using the arithmetic expression randomly determined by the arithmetic expression determination unit. And a metadata operation unit that performs the above. By including an arithmetic expression generation unit that randomly determines an arithmetic expression for generating metadata, various types of metadata can be generated even from the same original file.

前記演算式発生部は、オリジナルファイルのファイルサイズに応じて、発生する演算式数を決定するのが好ましい。この場合、オリジナルファイルのファイルサイズに応じた数のメタデータを生成することができる。   The arithmetic expression generator preferably determines the number of arithmetic expressions to be generated according to the file size of the original file. In this case, the number of metadata corresponding to the file size of the original file can be generated.

前記メタデータ生成部は、前記オリジナルファイルを分割した複数のブロックに対して、消失訂正符号による符号化を行って、復元に非必須なメタデータを複数個生成するのが好ましい。オリジナルファイルを分割したブロックは、ファイル復元に必須的なものであるが、そのブロックに喪失訂正符号による符号化を行うと、復元に非必須なメタデータを生成することができる。   It is preferable that the metadata generation unit generates a plurality of metadata that is not essential for restoration by performing encoding using erasure correction codes on a plurality of blocks obtained by dividing the original file. A block obtained by dividing an original file is indispensable for file restoration. However, if the block is encoded with a loss correction code, metadata that is not essential for restoration can be generated.

前記メタデータ生成部は、ネットワーク上の他のコンピュータからオリジナルファイル送信要求又はメタデータ送信要求がある度に、オリジナルファイルからメタデータを生成するのが好ましい。この場合、オリジナルファイル送信要求又はメタデータ送信要求がある度に、メタデータが生成される。   The metadata generation unit preferably generates metadata from the original file every time there is an original file transmission request or a metadata transmission request from another computer on the network. In this case, every time there is an original file transmission request or a metadata transmission request, metadata is generated.

前記メタデータ生成部は、ネットワーク上の他のコンピュータからオリジナルファイル送信要求又はメタデータ送信要求がある度に、オリジナルファイルから異なるメタデータを生成するのが好ましい。この場合、オリジナルファイル送信要求又はメタデータ送信要求がある度に、メタデータの種類が増える。   Preferably, the metadata generation unit generates different metadata from the original file every time there is an original file transmission request or a metadata transmission request from another computer on the network. In this case, every time there is an original file transmission request or a metadata transmission request, the types of metadata increase.

ファイル公開コンピュータは、共有されるオリジナルファイルの存在を示す情報をネットワーク上の他のコンピュータに送信する手段を備えているのが好ましい。この場合、他のコンピュータが、オリジナルファイルがどこにあるかを把握することができる。   The file publishing computer preferably includes means for transmitting information indicating the existence of the original file to be shared to other computers on the network. In this case, the other computer can grasp where the original file is.

[ファイル公開コンピュータプログラム]
本発明のファイル公開コンピュータプログラムは、コンピュータを、前記ファイル公開コンピュータとして機能させるためのコンピュータプログラムである。
[File Publishing Computer Program]
The file public computer program of the present invention is a computer program for causing a computer to function as the file public computer.

[キャッシュコンピュータ]
本発明のキャッシュコンピュータは、ファイル共有されるオリジナルファイルを消失訂正可能に符号化したメタデータをキャッシュブロックとして記憶するメタデータ記憶部と、メタデータ記憶部に記憶されているメタデータをネットワークへ送信する送信部と、を備えている。
上記構成によれば、キャッシュコンピュータは、オリジナルファイルを消失訂正可能に符号化したメタデータをキャッシュブロックとして保有でき、ネットワーク上の他のコンピュータがメタデータをキャッシュブロックとして取得可能である。
[Cache computer]
The cache computer of the present invention stores, as a cache block, metadata obtained by encoding an original file to be shared so that it can be lost and corrected, and transmits the metadata stored in the metadata storage unit to the network. And a transmission unit.
According to the above configuration, the cache computer can hold the metadata obtained by encoding the original file so that the original file can be corrected as a cache block, and other computers on the network can acquire the metadata as the cache block.

前記メタデータ記憶部は、オリジナルファイルを復元するために必要な数よりも少ない数のメタデータを記憶するのが好ましい。この場合、一つのキャッシュコンピュータには、復元にメタデータの一部が保存されることになり、多くのメタデータを保有する必要がない。   The metadata storage unit preferably stores a smaller number of metadata than is necessary to restore the original file. In this case, a part of the metadata is stored in one cache computer for restoration, and it is not necessary to have a lot of metadata.

キャッシュコンピュータは、ネットワーク上のあるコンピュータから送信されてきた1個又は複数個のメタデータをネットワーク上の他のコンピュータへ中継する中継手段を備え、前記メタデータ記憶部は、中継のために受信した1個又は複数個のメタデータのうちの一部又は全部を記憶するのが好ましい。この場合、中継したメタデータをキャッシュブロックとして保存することができる。   The cache computer includes relay means for relaying one or a plurality of metadata transmitted from one computer on the network to another computer on the network, and the metadata storage unit receives for relay It is preferable to store a part or all of one or a plurality of metadata. In this case, the relayed metadata can be saved as a cache block.

キャッシュコンピュータは、中継のために受信した1個又は複数個のメタデータの中からメタデータ記憶部に記憶すべきメタデータを選択するとともに、既にメタデータ記憶部に記憶されているメタデータのうち破棄すべきメタデータを選択する手段を備えているのが好ましい。記憶すべきメタデータと破棄すべきメタデータを選択する手段を備えていることで、適切なメタデータの保有が可能となる。   The cache computer selects metadata to be stored in the metadata storage unit from among one or a plurality of metadata received for relay, and among the metadata already stored in the metadata storage unit It is preferable to provide means for selecting metadata to be discarded. Providing means for selecting metadata to be stored and metadata to be discarded makes it possible to hold appropriate metadata.

キャッシュコンピュータは、ネットワーク上の他のキャッシュコンピュータが保有するメタデータの種類を取得する手段を備えているのが好ましい。この場合、他のキャッシュコンピュータが保有するメタデータの種類を考慮して、キャッシュブロックの保有の仕方を決めることができる。   The cache computer preferably includes means for acquiring the type of metadata held by another cache computer on the network. In this case, it is possible to determine how to hold a cache block in consideration of the type of metadata held by another cache computer.

キャッシュコンピュータは、ネットワーク上の他のキャッシュコンピュータへ、自己が保有するメタデータの種類を通知する手段を備えているのが好ましい。この場合、他のキャッシュに自己が保有するメタデータの種類を通知することができる。   The cache computer preferably includes means for notifying other cache computers on the network of the type of metadata held by the cache computer. In this case, the type of metadata held by itself can be notified to another cache.

キャッシュコンピュータは、隣接する他のキャッシュコンピュータが保有するメタデータとは種類が異なるメタデータが自己のメタデータ記憶部中に少なくとも1つ含まれるように、メタデータ記憶部に記憶すべきメタデータを選択するのが好ましい。この場合、隣接する他のキャッシュコンピュータとは異なるメタデータを保有でき、ネットワーク上のメタデータの多様性を得ることができる。   The cache computer stores metadata to be stored in the metadata storage unit such that at least one metadata different from the metadata held by other adjacent cache computers is included in its metadata storage unit. It is preferable to select. In this case, metadata different from those of other adjacent cache computers can be held, and diversity of metadata on the network can be obtained.

前記送信部がネットワークへ送信するメタデータは、メタデータ記憶部に記憶されているメタデータのうち、他のコンピュータが要求する種類のメタデータであるのが好ましい。この場合、他のコンピュータが要求するメタデータだけを効率的に送信することができる。   The metadata transmitted by the transmission unit to the network is preferably metadata of a type requested by another computer among the metadata stored in the metadata storage unit. In this case, only metadata requested by other computers can be efficiently transmitted.

キャッシュコンピュータは、ネットワーク上の他のコンピュータから、送信不要なメタデータの種類を示す不要メタデータ情報を受信して、前記不要メタデータ情報が示すメタデータの種類に該当しないメタデータをネットワーク上へ送信するのが好ましい。この場合、他のコンピュータが既に持っているメタデータを重複して送信してしまうことを防止できる。   The cache computer receives unnecessary metadata information indicating a type of metadata that is not required to be transmitted from another computer on the network, and transfers metadata that does not correspond to the metadata type indicated by the unnecessary metadata information to the network. It is preferable to transmit. In this case, it is possible to prevent the metadata already owned by another computer from being duplicated.

[キャッシュコンピュータプログラム]
本発明のキャッシュコンピュータプログラムは、コンピュータを、前記キャッシュコンピュータとして機能させるためのコンピュータプログラムである。
[Cache computer program]
The cache computer program of the present invention is a computer program for causing a computer to function as the cache computer.

[ファイル取得コンピュータ]
本発明のファイル取得コンピュータは、ファイル共有されるオリジナルファイルを消失訂正可能に符号化したメタデータをネットワークから取得するメタデータ受信部と、取得したメタデータを復号化して前記オリジナルファイルを復元する復号部と、を備えている。上記構成によれば、メタデータは、オリジナルファイルを消失訂正可能に符号化されたものであるから、メタデータの一部が消失していても、オリジナルファイルを復元することができる。
[File acquisition computer]
The file acquisition computer according to the present invention includes a metadata reception unit that acquires metadata obtained by encoding an original file to be shared so that it can be erasure corrected from a network, and decoding that decrypts the acquired metadata and restores the original file. And a section. According to the above configuration, since the metadata is encoded so that the original file can be lost and corrected, the original file can be restored even if a part of the metadata is lost.

ファイル取得コンピュータは、ネットワーク上に存在するメタデータを探索する手段を備えているのが好ましい。この場合、ファイル取得コンピュータは、ネットワーク上のメタデータの存在を把握することができる。   The file acquisition computer preferably comprises means for searching for metadata present on the network. In this case, the file acquisition computer can grasp the existence of metadata on the network.

前記メタデータ受信部は、オリジナルファイルを復元するのに必要なメタデータの種類数以上の種類数のメタデータをネットワークから取得するのが好ましい。この場合、確実にオリジナルファイルを復元することができる。   It is preferable that the metadata receiving unit obtains the number of types of metadata more than the number of types of metadata necessary for restoring the original file from the network. In this case, the original file can be reliably restored.

ファイル取得コンピュータは、オリジナルファイルを復元するのに必要なメタデータの種類数を算出するために必要な情報をネットワークから取得するのが好ましい。この場合、ファイル取得コンピュータは、必要なメタデータの種類数を容易に把握することができる。   Preferably, the file acquisition computer acquires information necessary for calculating the number of types of metadata necessary for restoring the original file from the network. In this case, the file acquisition computer can easily grasp the number of types of necessary metadata.

ファイル取得コンピュータは、取得したメタデータを用いて復号化してもオリジナルファイル復元に失敗した場合には、既に取得しているメタデータとは別の種類のメタデータを追加的にネットワークから取得するのが好ましい。この場合、一旦オリジナルファイル復元に失敗しても、オリジナルファイルを復元することができる。   If the original file restoration fails even after decrypting using the acquired metadata, the file acquisition computer additionally acquires another type of metadata from the network that is different from the already acquired metadata. Is preferred. In this case, even if the original file restoration fails, the original file can be restored.

ファイル取得コンピュータは、メタデータ化していないオリジナルファイルを有するファイル公開コンピュータよりも、メタデータをキャッシュブロックとして保有するキャッシュコンピュータから優先的にメタデータを取得するのが好ましい。この場合、ファイル公開コンピュータへアクセスが集中して負荷が増大するのを避けることができる。   The file acquisition computer preferably acquires the metadata preferentially from the cache computer that holds the metadata as a cache block, rather than the file public computer having the original file that has not been converted to metadata. In this case, it is possible to avoid an increase in load due to concentration of access to the file public computer.

ファイル取得コンピュータは、より少ない数の論理パスで接続されている他のコンピュータから優先的にメタデータを取得するのが好ましい。この場合、近くのコンピュータから効率的にメタデータを取得することができる。   The file acquisition computer preferably acquires the metadata preferentially from other computers connected by a smaller number of logical paths. In this case, metadata can be efficiently acquired from a nearby computer.

ファイル取得部は、前記復号部によって復元されたオリジナルファイルからメタデータを再生成するメタデータ生成部を有し、生成したメタデータをネットワークに公開するのが好ましい。この場合、ファイルを取得したコンピュータもメタデータを公開するため、ネットワーク上のメタデータが増加する。   The file acquisition unit preferably includes a metadata generation unit that regenerates metadata from the original file restored by the decryption unit, and publishes the generated metadata to the network. In this case, since the computer that acquired the file also discloses the metadata, the metadata on the network increases.

前記メタデータ生成部は、オリジナルファイル復元に用いたメタデータとは種類が異なるメタデータを生成可能であるのが好ましい。この場合、異なるメタデータが生成されるため、ネットワークにおけるメタデータの多様性が得られる。   It is preferable that the metadata generation unit can generate metadata having a different type from the metadata used for restoring the original file. In this case, since different metadata is generated, the diversity of metadata in the network can be obtained.

[ファイル取得コンピュータプログラム]
本発明のファイル取得コンピュータプログラムは、コンピュータを、前記ファイル取得コンピュータとして機能させるためのコンピュータプログラムである。
[File acquisition computer program]
The file acquisition computer program of the present invention is a computer program for causing a computer to function as the file acquisition computer.

本発明によれば、効率的にファイルを復元することができる。   According to the present invention, a file can be efficiently restored.

以下、本発明の実施形態を図面に基づいて説明する。
図1は、P2P(ピア・ツー・ピア)ファイル共有ネットワークシステムの例を示している。なお、以下では、ファイル共有ネットワークシステムを、「ファイル共有ネットワーク」又は単に「ネットワーク」という。
このファイル共有ネットワークは、P2P型であるため、ファイル転送を中央集権的に管理するサーバを有していないが、必要であればサーバが存在してもよい。
ネットワーク上には、複数のノード(ピア)Ni(i:自然数)が存在する。ノードNiは、ネットワークに参加するコンピュータ(ノードコンピュータ)によって構成されている。ノードは、他のノードとの間に論理的なパスPを張り、P2Pネットワークを構成する。なお、ノードコンピュータ間の通信は、例えば、インターネットを利用して行われる。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 shows an example of a P2P (Peer to Peer) file sharing network system. Hereinafter, the file sharing network system is referred to as “file sharing network” or simply “network”.
Since this file sharing network is a P2P type, it does not have a server that centrally manages file transfer, but a server may exist if necessary.
There are a plurality of nodes (peers) Ni (i: natural number) on the network. The node Ni is configured by a computer (node computer) participating in the network. A node establishes a logical path P between other nodes and constitutes a P2P network. Note that communication between node computers is performed using the Internet, for example.

ファイル転送は、論理パスPに沿って行われ、例えば、図1のノードN1からN3へのファイル転送は、中間のノードN2を介して行われる。なお、ノードNiはコンピュータユーザの意思で、ネットワークから抜けることがある。   The file transfer is performed along the logical path P. For example, the file transfer from the node N1 to N3 in FIG. 1 is performed via the intermediate node N2. Note that the node Ni may leave the network at the discretion of the computer user.

[ノードコンピュータの構成]
ノードは、ファイル共有プログラム100がインストールされたコンピュータ101によって構成されている。より具体的には、図2に示すように、コンピュータ101は、処理装置103及びHDD等によって構成された記憶装置104を有しており、記憶装置104にファイル共有プログラム100がコンピュータ実行可能に保存されている。
[Node computer configuration]
The node is configured by a computer 101 in which the file sharing program 100 is installed. More specifically, as shown in FIG. 2, the computer 101 has a storage device 104 including a processing device 103 and an HDD, and the file sharing program 100 is stored in the storage device 104 so that the computer can execute it. Has been.

[ノードの機能]
ノードは、オリジナルノード、中継ノード、検索ノード、キャッシュノードのいずれかのノードとして機能することができる。つまり、前記ファイル共有プログラム(ノードコンピュータプログラム)は、上記4つのノードのいずれの機能もコンピュータ101に実行させることができるように構成されている。
[Node functions]
The node can function as any one of an original node, a relay node, a search node, and a cache node. That is, the file sharing program (node computer program) is configured to allow the computer 101 to execute any function of the four nodes.

ここで、前記オリジナルノードは、あるファイルを(最初に)公開(ネットワーク上で共有)するノードである。
前記中継ノードは、ノード間のファイル転送を中継するノードである。
前記検索ノードは、ファイルを必要としている(探している)ノードである。
前記キャッシュノードは、あるファイルについてのキャッシュブロックを保有するノードである。本実施形態では、あるファイルの転送に関わったノード(オリジナルノード、中継ノード、検索ノード)はどれでもキャッシュノードとして機能する可能性を有する。
Here, the original node is a node that publishes (shares on a network) a certain file (first).
The relay node is a node that relays file transfer between nodes.
The search node is a node that needs (looks for) a file.
The cache node is a node that holds a cache block for a certain file. In this embodiment, any node (original node, relay node, search node) involved in the transfer of a file has a possibility of functioning as a cache node.

[オリジナルノード(ファイル公開コンピュータ)の構成]
図3は、ノードが、ファイルを公開するオリジナルノードとして機能する場合の、機能ブロックを示している。このオリジナルノードは、ファイル共有のために公開しようとするオリジナルファイルを記憶するオリジナルファイル記憶部11、オリジナルファイルから符号化を行ってメタデータ(「メタブロック」又は「メタデータブロック」ともいう)を生成するメタデータ生成部12、及び、メタデータをネットワークへ送信するメタデータ送信部13を備えている。また、オリジナルノードは、各部11,12,13の制御を行う制御部20及びP2Pネットワークの通信に必要な処理を行うP2Pネットワーク通信処理部21を備えている。
なお、オリジナルファイル記憶部11には、公開したいファイルを1又は複数個保存することができる。
[Configuration of original node (file public computer)]
FIG. 3 shows functional blocks when the node functions as an original node that publishes a file. The original node is an original file storage unit 11 for storing an original file to be disclosed for file sharing, and encodes metadata (also referred to as “metablock” or “metadata block”) from the original file. A metadata generation unit 12 to generate and a metadata transmission unit 13 to transmit metadata to the network are provided. The original node also includes a control unit 20 that controls the units 11, 12, and 13, and a P2P network communication processing unit 21 that performs processing necessary for communication over the P2P network.
The original file storage unit 11 can store one or a plurality of files to be disclosed.

また、前記メタデータ生成部12は、メタデータを生成するための演算式を生成する演算式発生部(演算式決定手段)12aと、生成した演算式を用いてメタデータを生成のための演算を行うメタデータ演算部12bと、を備えている。   The metadata generation unit 12 includes an arithmetic expression generation unit (arithmetic expression determination means) 12a that generates an arithmetic expression for generating metadata, and an arithmetic operation for generating metadata using the generated arithmetic expression. And a metadata calculation unit 12b.

[中継ノード(中継コンピュータ;中継手段)の構成]
図4は、ノードが、ファイル転送を中継する中継ノードとして機能する場合の、機能ブロックを示している。この中継ノードは、他のノードから送出されたメタデータを受信するメタデータ受信部31、受信したメタデータを記憶するメタデータ記憶部32、及びメタデータを転送のために他のノードへ送信するメタデータ送信部33を備えている。また、中継ノードは、各部31,32,33の制御を行う制御部20及びP2Pネットワークの通信に必要な処理するP2Pネットワーク通信処理部21を備えている。
[Configuration of relay node (relay computer; relay means)]
FIG. 4 shows functional blocks when the node functions as a relay node that relays file transfer. The relay node receives a metadata receiving unit 31 that receives metadata sent from another node, a metadata storage unit 32 that stores the received metadata, and transmits the metadata to another node for transfer. A metadata transmission unit 33 is provided. In addition, the relay node includes a control unit 20 that controls each unit 31, 32, and 33 and a P2P network communication processing unit 21 that performs processing necessary for P2P network communication.

[キャッシュノード(キャッシュコンピュータ)の構成]
図5は、ノードが、キャッシュノードとして機能する場合の、機能ブロックを示している。
このキャッシュノードは、他のノードから送出されたメタデータを受信するメタデータ受信部41、受信したメタデータを記憶するメタデータ記憶部42、及びメタデータを他のノードへ送信するメタデータ送信部43を備えている。また、中継ノードは、各部41,42,43の制御を行う制御部20及びP2Pネットワークの通信に必要な処理するP2Pネットワーク通信処理部21を備えている。
[Configuration of cache node (cache computer)]
FIG. 5 shows functional blocks when the node functions as a cache node.
The cache node includes a metadata receiving unit 41 that receives metadata transmitted from other nodes, a metadata storage unit 42 that stores received metadata, and a metadata transmission unit that transmits metadata to other nodes. 43. The relay node also includes a control unit 20 that controls the units 41, 42, and 43, and a P2P network communication processing unit 21 that performs processing necessary for P2P network communication.

[検索ノード(ファイル取得コンピュータ)の構成]
図6は、ノードが、検索ノードとして機能する場合の、機能ブロックを示している。
この検索ノードは、他のノードからメタデータを取得するためのメタデータ受信部51、受信したメタデータを記憶するメタデータ記憶部52、取得したメタデータを復号化してオリジナルファイルを復元するメタデータ復号部53、復元したオリジナルファイルを記憶するオリジナルファイル記憶部54を備えている。
また、メタデータ復号部53は、復号に用いる演算式を生成する演算式発生部(演算式決定手段)53aと、生成した演算式を用いてメタデータの復号のための演算を行うメタデータ復号演算部53bと、を備えている。
[Configuration of search node (file acquisition computer)]
FIG. 6 shows functional blocks when the node functions as a search node.
The search node includes a metadata receiving unit 51 for acquiring metadata from other nodes, a metadata storage unit 52 for storing the received metadata, and metadata for decrypting the acquired metadata and restoring the original file. The decryption unit 53 includes an original file storage unit 54 that stores the restored original file.
In addition, the metadata decoding unit 53 includes an arithmetic expression generating unit (arithmetic expression determining means) 53a that generates an arithmetic expression used for decoding, and a metadata decoding that performs an operation for decoding metadata using the generated arithmetic expression. And an arithmetic unit 53b.

さらに検索ノードは、復元したオリジナルファイルからメタデータを生成するメタデータ生成部55、生成したメタデータをキャッシュブロックとして記憶するメタデータ記憶部56、及びメタデータをネットワークへ送信するメタデータ送信部57を備えている。
また、メタデータ生成部55は、メタデータを生成するための演算式を生成する演算式発生部(演算式決定手段)55aと、生成した演算式を用いてメタデータを生成のための演算を行うメタデータ演算部55bと、を備えている。
The search node further includes a metadata generation unit 55 that generates metadata from the restored original file, a metadata storage unit 56 that stores the generated metadata as a cache block, and a metadata transmission unit 57 that transmits the metadata to the network. It has.
In addition, the metadata generation unit 55 performs an operation for generating metadata using an operation expression generation unit (operation expression determination means) 55a that generates an operation expression for generating metadata, and the generated operation expression. And a metadata calculation unit 55b to be performed.

なお、図3〜図6においては、説明の便宜のため、各図間で共通する機能について異なる参照符号を付している場合があるが、名称が共通する機能ブロックについては、特に説明がない限り、共通した機能を有する。
また、本実施形態において、オリジナルノード、中継ノード、キャッシュノード、検索ノードにおける上記各機能は、コンピュータプログラムにより実現されている。
3 to 6, for convenience of explanation, different reference numerals may be given to functions that are common between the drawings, but functional blocks having common names are not particularly described. As long as it has a common function.
In the present embodiment, the above functions in the original node, relay node, cache node, and search node are realized by a computer program.

[メタデータについて]
オリジナルノード等が有するメタデータ生成部12は、オリジナルファイルを消失訂正型レートレス符号によってメタデータ化するものである。消失訂正符号とは、データの一部が消失しても消失を訂正することができる符号をいう。また、消失訂正型レートレス符号は、一のオリジナルデータに対して符号化データを無限に生成可能であるという特徴を持つ。消失訂正型レートレス符号には、Digital Fountain社のRaptorやLT符号などがある。
[About metadata]
The metadata generation unit 12 included in the original node or the like converts the original file into metadata using an erasure correction type rateless code. The erasure correction code is a code that can correct the erasure even if a part of the data is lost. Further, the erasure correction type rateless code is characterized in that it can generate infinitely encoded data for one original data. Examples of the erasure correction type rateless code include Digital Fountain's Raptor and LT code.

消失訂正型レートレス符号では、オリジナルのファイル(オリジナルデータ)を一定サイズ(例えば、64Kバイト)のブロックに分割して、複数のブロック同士の演算を行ったメタデータ(メタブロック)を生成する。
具体的には、図7に示すように、メタデータ生成部12は、公開されるオリジナルファイルFを3つのオリジナルブロックb1〜b3に分割する。オリジナルブロックは一定サイズのため、分割数はオリジナルファイルFの大きさによって決まる。
なお、分割前のオリジナルファイルには、暗号化が施されていてもよいし、分割後のオリジナルブロックに暗号化が施されていてもよい。
In the erasure correction type rateless code, an original file (original data) is divided into blocks of a certain size (for example, 64 Kbytes), and metadata (metablock) obtained by performing calculation between a plurality of blocks is generated.
Specifically, as illustrated in FIG. 7, the metadata generation unit 12 divides the published original file F into three original blocks b1 to b3. Since the original block has a fixed size, the number of divisions is determined by the size of the original file F.
It should be noted that the original file before division may be encrypted, or the original block after division may be encrypted.

また、メタデータ生成部12の演算式発生部12aは、メタデータを生成するための演算式を得るためのライブラリを有しており、必要な数のメタデータを生成するに必要な数の演算式(主にビット演算のXOR(排他的論理和)を用いた式)をランダムに生成する。なお、図7では、4個の演算式が生成されている。
ここでの演算式は、複数のオリジナルブロック同士を所定の演算子(XOR等)によって演算し、個々のメタデータをオリジナルファイル復元のために非必須的なデータにするためのものである。
また、演算式は、m2=b2のように、1個のオリジナルブロックをそのままメタデータとするものであってもよい。
In addition, the arithmetic expression generation unit 12a of the metadata generation unit 12 has a library for obtaining an arithmetic expression for generating metadata, and the number of calculations necessary for generating the required number of metadata. A formula (mainly a formula using XOR (exclusive OR) of bit operations) is randomly generated. In FIG. 7, four arithmetic expressions are generated.
The arithmetic expression here is for calculating a plurality of original blocks with a predetermined operator (XOR or the like) and making each metadata non-essential data for restoring the original file.
Further, the arithmetic expression may be one in which one original block is used as metadata as it is, such as m2 = b2.

メタデータ生成部のメタデータ演算部12bは、生成された演算式に従って、複数のオリジナルブロックb1,b2,b3同士の演算を行う。図7では、メタデータm1=(b1 xor b3)、メタデータm2=b2、メタデータm3=(b2 xor b3)、メタデータm4=(b1 xor b2 xor b3)の演算が行われ、4個のメタデータm1〜m4が生成される。   The metadata calculation unit 12b of the metadata generation unit calculates a plurality of original blocks b1, b2, and b3 according to the generated calculation formula. In FIG. 7, the operation of metadata m1 = (b1 xor b3), metadata m2 = b2, metadata m3 = (b2 xor b3), metadata m4 = (b1 xor b2 xor b3) is performed. Metadata m1-m4 is generated.

メタデータは、演算を行うオリジナルブロックの種類、演算対象のオリジナルブロック個数、演算子の種類等により無数に生成可能である。
復号側(検索ノード)では、所定数のメタデータを取得することにより、複数の演算式からなる連立方程式を解くことで元のオリジナルブロックが得られ、オリジナルファイルを復元することができる。
つまり、メタデータ復号部53は、いくつからのメタデータと、それらのメタデータ生成に用いられた演算式とを用いて、当該演算式の連立方程式を解いて、オリジナルブロックを得る。
Metadata can be generated innumerably depending on the type of original block to be operated, the number of original blocks to be calculated, the type of operator, and the like.
On the decoding side (search node), by acquiring a predetermined number of metadata, the original original block can be obtained by solving simultaneous equations composed of a plurality of arithmetic expressions, and the original file can be restored.
In other words, the metadata decoding unit 53 uses several pieces of metadata and the arithmetic expressions used for generating the metadata to solve the simultaneous equations of the arithmetic expressions to obtain an original block.

オリジナルファイルは連立方程式を解くことによって復元されるため、必要数(例えば、図7であれば4個)以上の演算式があれば、オリジナルファイル復元可能性は高い確率で保証される。すなわち、個々のメタデータは、オリジナルファイル復元に必須的なものではなく、復元側(検索ノード)は、メタデータとそのメタデータを生成した演算式の組み合わせが必要数以上あればよい。   Since the original file is restored by solving the simultaneous equations, if there are more than the required number (for example, 4 in FIG. 7), the original file can be restored with a high probability. That is, each piece of metadata is not indispensable for restoring the original file, and the restoration side (search node) only needs to have a required number or more of combinations of metadata and arithmetic expressions that generate the metadata.

復元に必要なメタデータ数は、一般には、元のオリジナルブロック数よりもわずかに多い程度であり、図7では、3個のオリジナルブロックb1〜b3から4個のメタデータm1〜m3が生成されている。なお、メタデータを生成するポリシーの詳細については後述する。   In general, the number of metadata necessary for restoration is slightly larger than the number of original blocks. In FIG. 7, four pieces of metadata m1 to m3 are generated from three original blocks b1 to b3. ing. Details of the policy for generating metadata will be described later.

[ファイル転送の例]
以下、本実施形態におけるファイル転送の簡単な例について図8〜図12に基づいて説明する。ここでは、ノードN1〜N14が存在するP2Pファイル共有ネットワークシステムを想定する。本例でのファイル転送のルールは、下記の通りとする。
[Example of file transfer]
Hereinafter, a simple example of file transfer in the present embodiment will be described with reference to FIGS. Here, a P2P file sharing network system in which nodes N1 to N14 exist is assumed. The file transfer rules in this example are as follows.

[ファイル転送のルール]
転送対象のオリジナルファイルは、5個のオリジナルブロックから構成されるものとする。また、検索ノードでは、6個(6種類)の異なるメタデータブロックを取得すればオリジナルファイルを復元できるものとする。
オリジナルノードは、消失訂正型レートレス符号で符号化したメタデータブロックを演算式情報とともに他のノードへ送信する。メタデータ生成のための演算式は、乱数を用いてランダムに決定される。
File transfer rules
The original file to be transferred is assumed to be composed of five original blocks. The search node can restore the original file by acquiring six (six types) different metadata blocks.
The original node transmits the metadata block encoded with the erasure correction type rateless code to other nodes together with the arithmetic expression information. An arithmetic expression for generating metadata is randomly determined using a random number.

中継ノードは、メタデータブロックを中継すると、キャッシュノードとなり、一つのオリジナルファイルについて、ランダムで最大2つのメタデータブロックを保存し、キャッシュブロックとして、他のノードに対し公開する。キャッシュノードは、同一のオリジナルファイルのメタブロックについて複数回中継を行った場合は、古いキャッシュブロックを破棄して新しく転送したブロックで上書きするものとする。   When the relay node relays the metadata block, the relay node becomes a cache node, stores a maximum of two metadata blocks at random with respect to one original file, and discloses the same as a cache block to other nodes. If the cache node relays a metablock of the same original file multiple times, the cache node discards the old cache block and overwrites it with a newly transferred block.

検索ノードは、オリジナルファイル復元後、乱数を用いて新たな演算式を決定し、消失訂正型レートレス符号で符号化したメタデータブロックを2個キャッシュブロックとして、保存公開する。すなわち、検索ノードは、オリジナルファイル取得後、キャッシュノードとして機能する。検索ノードがキャッシュノードとしてキャッシュブロックを生成・公開する際、乱数を用いて演算式を新たに生成するため、演算式(演算方程式)は、極めて低い確率でしか、オリジナルノードが生成した演算式とは一致しない。   After restoring the original file, the search node determines a new arithmetic expression using a random number, and saves and releases the metadata blocks encoded by the erasure correction type rateless code as two cache blocks. That is, the search node functions as a cache node after acquiring the original file. When a search node generates and publishes a cache block as a cache node, an arithmetic expression is newly generated using a random number. Therefore, the arithmetic expression (arithmetic equation) can be compared with the arithmetic expression generated by the original node only with a very low probability. Does not match.

オリジナルノードへのアクセスの集中を避けるために、新たにファイルを検索するノードは、オリジナルノードよりもキャッシュノードを優先してメタデータブロック(キャッシュブロック)を取得しようと試みるものとする。また、複数のキャッシュのうち、自己の検索ノードにできるだけ近いキャッシュノードからメタデータブロック(キャッシュブロック9を取得しようと試みるものとする。   In order to avoid concentration of access to the original node, a node that newly searches for a file tries to acquire a metadata block (cache block) in preference to the cache node over the original node. In addition, it is assumed that a metadata block (cache block 9 is tried to be acquired from a cache node as close as possible to its own search node among a plurality of caches.

[1回目のファイル転送]
図8は、1回目のファイル転送を示している。ノードN1は、ブロックb1〜b5に分割されるオリジナルファイルを公開しており、オリジナルノードO1となっている。ファイルを取得しようとするノードN9は検索ノードS9となり、ネットワークに対してファイル要求をする。このとき、検索ノード9が要求するファイルについてのキャッシュノードが存在しないので、オリジナルノードO1にファイルを要求する。
[First file transfer]
FIG. 8 shows the first file transfer. The node N1 discloses the original file that is divided into blocks b1 to b5, and is the original node O1. The node N9 that tries to acquire the file becomes the search node S9 and makes a file request to the network. At this time, since there is no cache node for the file requested by the search node 9, the file is requested from the original node O1.

オリジナルノードO1は、メタデータブロックm1〜m6を生成し、送信する。このとき、ノードN4が中継ノードとなり、オリジナルノードO1からのデータを検索ノードS9へ転送する。
転送後の中継ノードN4は、中継した6個のメタデータブロックm1〜m6のうち、任意に選択される2つのメタデータブロックm1,m5をキャッシュブロックとして保存し、キャッシュノードC4となる。
The original node O1 generates and transmits metadata blocks m1 to m6. At this time, the node N4 becomes a relay node, and transfers data from the original node O1 to the search node S9.
The relay node N4 after the transfer stores two arbitrarily selected metadata blocks m1 and m5 among the six relayed metadata blocks m1 to m6 as cache blocks, and becomes the cache node C4.

検索ノードS9は、6個(6種類)のメタデータブロックm1〜m6を受信後、これらのメタデータブロックm1〜m6とそれらの演算式とから、連立方程式を解く演算を行って、オリジナルファイルを復元する。検索ノードS9は、復元により取得したオリジナルファイルを、ランダムに決定される演算式により、再符号化し、キャッシュすべき2つのメタデータブロックm7,m8を生成し、保存する。すなわち、検索ノードS9がキャッシュノードC9となる。なお、メタデータブロックm7,m8を生成した演算式と、メタデータブロックm1〜m6を生成した演算式は異なるものとなる。   After receiving six (six types) metadata blocks m1 to m6, the search node S9 performs an operation for solving the simultaneous equations from these metadata blocks m1 to m6 and their arithmetic expressions, and obtains the original file. Restore. The search node S9 re-encodes the original file acquired by the restoration using a randomly determined arithmetic expression, generates two metadata blocks m7 and m8 to be cached, and stores them. That is, the search node S9 becomes the cache node C9. Note that the arithmetic expression for generating the metadata blocks m7 and m8 and the arithmetic expression for generating the metadata blocks m1 to m6 are different.

以上の1回目のファイル転送が終了すると、ネットワーク上には、4個(4種類)のメタデータブロックがキャッシュブロックとして存在することになる(図9参照)。   When the first file transfer is completed, four (four types) metadata blocks exist as cache blocks on the network (see FIG. 9).

[2回目のファイル転送]
図9は、2回目のファイル転送を示している。ファイルを取得しようとするノードN11は検索ノードS11となり、ネットワークにファイルを要求する。ここでは、キャッシュノードC4,C9が存在するので、まず、検索ノードS11は、これらのノードC4,C9からメタデータブロックを取得する。
[Second file transfer]
FIG. 9 shows the second file transfer. The node N11 trying to acquire the file becomes the search node S11 and requests the file from the network. Here, since the cache nodes C4 and C9 exist, first, the search node S11 acquires the metadata block from these nodes C4 and C9.

具体的には、キャッシュノードC4から、検索ノードS11にキャッシュブロックであるメタデータブロックm1,m5を送信する。このとき、ノードN5が中継ノードとなり、検索ノードS11へ転送する。同時に、中継ノードN5は、中継したメタデータブロックm1,m5をキャッシュブロックとして保存し、キャッシュノードC15となる。   Specifically, metadata blocks m1 and m5 that are cache blocks are transmitted from the cache node C4 to the search node S11. At this time, the node N5 becomes a relay node and transfers to the search node S11. At the same time, the relay node N5 stores the relayed metadata blocks m1 and m5 as cache blocks and becomes the cache node C15.

また、キャッシュノードC9から、検索ノードS11にキャッシュブロックであるメタデータブロックm7,m8を送信する。このとき、ノードN10が中継ノードとなり、検索ノードS11へ転送する。同時に、中継ノードN10は、中継したメタデータブロックm7,m8をキャッシュブロックとして保存し、キャッシュノードC10となる。   Further, the metadata blocks m7 and m8, which are cache blocks, are transmitted from the cache node C9 to the search node S11. At this time, the node N10 becomes a relay node and transfers to the search node S11. At the same time, the relay node N10 stores the relayed metadata blocks m7 and m8 as cache blocks and becomes the cache node C10.

また、以上により、検索ノードS11は、4種類のメタデータブロックm1,m5,m7,m8をキャッシュノードから取得するが、オリジナルファイル復元には6種類必要である。そこで、検索ノードS11は、残り2種類(2個)(又はそれ以上)のメタデータブロックをオリジナルノードO1へ要求する。   Further, as described above, the search node S11 acquires four types of metadata blocks m1, m5, m7, and m8 from the cache node, but six types are necessary for original file restoration. Therefore, the search node S11 requests the remaining two types (two) (or more) metadata blocks from the original node O1.

オリジナルノードO1は、ランダムに決定される演算式により、2つの新たなメタデータブロックm9,m10を生成し、その演算式とともに、検索ノードN11へ転送する。このとき、ノードN5が中継ノードとなり、検索ノードS11へ転送する。同時に、中継ノードN5は、今まで保持していたメタデータブロックm1,m5のうち、いずれか一方(ここでは、m1)を破棄して、今回中継したメタデータブロックm9,m10のうちいずれか一方(ここでは、m9)を保存する。なお、ブロックm1の記憶領域にブロックm9が上書きされることで、ブロックm9が破棄される。中継したブロックのうちどれを保存するかはランダムに決定してもよいし、所定のポリシー(保存ルール)に従って、決定してもよい。また、破棄(上書き)されるブロックもランダムに決定してもよいし、所定のポリシー(破棄ルール)に従ってもよい。   The original node O1 generates two new metadata blocks m9 and m10 by an arithmetic expression determined at random, and transfers them to the search node N11 together with the arithmetic expression. At this time, the node N5 becomes a relay node and transfers to the search node S11. At the same time, the relay node N5 discards either one of the metadata blocks m1 and m5 (m1 in this case) held so far, and either one of the metadata blocks m9 and m10 relayed this time. (Here, m9) is saved. Note that the block m9 is discarded by overwriting the block m9 in the storage area of the block m1. Which of the relayed blocks is to be stored may be determined randomly, or may be determined according to a predetermined policy (storage rule). In addition, a block to be discarded (overwritten) may be determined at random or according to a predetermined policy (discard rule).

検索ノードS11は、6個(6種類)のメタデータブロックm1,m5,m7,m8,m9,m10を受信後、これらのメタデータブロックm1,m5,m7,m8,m9,m10とそれらの演算式とから、連立方程式を解く演算を行って、オリジナルファイルを復元する。検索ノードS11は、復元により取得したオリジナルファイルを、ランダムに決定される演算式により、再符号化し、キャッシュすべき新たな2つのメタデータブロックm11,m12を生成し、保存する。すなわち、検索ノードS11がキャッシュノードC11となる。   The search node S11 receives six (six types) metadata blocks m1, m5, m7, m8, m9, and m10, and then these metadata blocks m1, m5, m7, m8, m9, and m10 and their operations. Perform an operation to solve the simultaneous equations from the equation and restore the original file. The search node S11 re-encodes the original file acquired by the restoration using a randomly determined arithmetic expression, generates two new metadata blocks m11 and m12 to be cached, and stores them. That is, the search node S11 becomes the cache node C11.

以上の2回目のファイル転送が終了すると、ネットワーク上には、10個(7種類)のメタデータブロックがキャッシュブロックとして存在することになる(図10参照)。このように、オリジナルファイル復元に必要なメタデータブロック種類数(=6種類)よりも多い種類のメタデータブロックがネットワーク上に存在する状態が得られる。この状態になった以降は、キャッシュノードからキャッシュブロックを取得するだけでオリジナルファイルが復元できるようになる。
つまり、オリジナルファイルそのものを有するノードO1がネットワーク上に存在しなくても、オリジナルファイルの復号化に十分な数(種類)のメタデータブロックを獲得することが可能な状態にある。
When the second file transfer is completed, 10 (seven types) metadata blocks exist as cache blocks on the network (see FIG. 10). In this way, it is possible to obtain a state where there are more types of metadata blocks on the network than the number of types of metadata blocks (= 6 types) necessary for restoring the original file. After this state is reached, the original file can be restored simply by acquiring the cache block from the cache node.
That is, even if the node O1 having the original file itself does not exist on the network, a sufficient number (type) of metadata blocks can be obtained for decoding the original file.

以上説明したように、新規にファイルを取得する検索ノードが復号時とは別の演算式(演算方程式)で演算したメタデータブロックを生成するため、ファイル取得が行われる度に、メタデータブロックの種類は増加していく。
また、オリジナルファイルO1も、ファイル要求ないしメタブロック要求がある度に、新たな演算式(演算方程式)で演算したメタデータブロックを生成するため、ファイル要求ないしメタブロック要求が行われる度に、メタデータブロックの種類は増加していく。
As described above, since a search node for newly acquiring a file generates a metadata block calculated by an arithmetic expression (arithmetic equation) different from that at the time of decoding, each time a file is acquired, the metadata block The number increases.
The original file O1 also generates a metadata block calculated by a new calculation expression (calculation equation) every time there is a file request or metablock request. Therefore, every time a file request or metablock request is made, The types of data blocks are increasing.

[ファイル転送N回後のネットワーク]
上記のようなファイル転送をN回行うと、図11に示すように、ネットワーク上には、オリジナルファイル以外に、12個8種類のメタデータブロックがキャッシュファイルとして存在するものとする。
[Network after N file transfers]
If the above file transfer is performed N times, as shown in FIG. 11, it is assumed that there are twelve eight types of metadata blocks as cache files in addition to the original file on the network.

[ファイル転送N回後に一部のノードが離脱したケース]
図12は、ファイル転送N回後に、オリジナルノードO1とキャッシュノードC6とかネットワークから離脱した場合を示している。なお、ノード離脱は、コンピュータの電源OFFや本プログラムのアンインストール等によって発生する。
ノードO1,C6の離脱後であっても、ネットワーク上には、10個6種類のメタデータブロックm7,m8,m14,m15,m16,m17がキャッシュブロックとして存在する。
[Case where some nodes leave after N times of file transfer]
FIG. 12 shows a case where the original node O1 and the cache node C6 have left the network after N times of file transfers. Note that node detachment occurs when the computer is turned off or the program is uninstalled.
Even after the nodes O1 and C6 leave, there are ten types of metadata blocks m7, m8, m14, m15, m16, and m17 on the network as cache blocks.

図12の状態でも、オリジナルファイル復元(復号)に必要なメタデータブロック種類数(6種類)は足りているので、新たにファイルを取得しようとするノード(検索ノードS9)が現れても、ファイル取得可能である。
つまり、本実施形態では、オリジナルファイルが、メタデータ化されており、任意の6個(6種類)のメタデータブロックを取得できれば、オリジナルファイルを復元でき、ネットワークのファイル保有効率が高まっている。
Even in the state of FIG. 12, since the number of types of metadata blocks (six types) necessary for original file restoration (decryption) is sufficient, even if a node (search node S9) for acquiring a new file appears, It can be acquired.
In other words, in the present embodiment, the original file is converted to metadata, and if any six (six types) metadata blocks can be acquired, the original file can be restored, and the file retention efficiency of the network is increased.

[比較例]
以下、本実施形態のネットワークにおけるファイル保有効率が高いことを、図13〜図17に示す比較例との対比において説明する。比較例では、オリジナルファイルをメタデータ化せずにファイル転送を行う。つまり、この比較例では、メタデータブロックではなく、オリジナルファイルを分割した5個のオリジナルブロックb1〜b5が転送されるものとする。
また、キャッシュノードにキャッシュブロックとして保存されるのは、オリジナルブロックである。
[Comparative example]
Hereinafter, the high file retention efficiency in the network of the present embodiment will be described in comparison with the comparative examples shown in FIGS. In the comparative example, the original file is transferred without being converted into metadata. That is, in this comparative example, not the metadata block but the five original blocks b1 to b5 obtained by dividing the original file are transferred.
The original block is stored in the cache node as a cache block.

比較例では、ファイルが必要な検索ノードは、上記ブロックb1〜b5の5個全てのブロックを揃える必要がある。すなわち、ブロックb1〜b5は、オリジナルファイルを復元する上で、すべて必須のブロックである。
なお、比較例において、転送ルール等、その他の点については、本実施形態のネットワークと同様である。
In the comparative example, a search node that requires a file needs to align all five blocks b1 to b5. That is, the blocks b1 to b5 are all indispensable blocks for restoring the original file.
In the comparative example, other points such as the transfer rule are the same as those of the network of the present embodiment.

[比較例における1回目のファイル転送]
図13は、1回目のファイル転送を示している。ノードN1は、ブロックb1〜b5に分割されるオリジナルファイルを公開しており、オリジナルノードO1となっている。ファイルを取得しようとするノードN9は検索ノードS9となり、ネットワークに対してファイル要求をする。このとき、検索ノード9が要求するファイルについてのキャッシュノードが存在しないので、オリジナルノードO1にファイルを要求する。
[First file transfer in comparative example]
FIG. 13 shows the first file transfer. The node N1 discloses the original file that is divided into blocks b1 to b5, and is the original node O1. The node N9 that tries to acquire the file becomes the search node S9 and makes a file request to the network. At this time, since there is no cache node for the file requested by the search node 9, the file is requested from the original node O1.

オリジナルノードO1は、オリジナルブロックb1〜b5を送信する。このとき、ノードN4が中継ノードとなり、オリジナルノードO1からのデータを検索ノードS9へ転送する。
転送後の中継ノードN4は、中継した6個のオリジナルブロックm1〜m6のうち、2つのブロックb1,b5をキャッシュブロックとして保存し、キャッシュノードC4となる。
The original node O1 transmits original blocks b1 to b5. At this time, the node N4 becomes a relay node, and transfers data from the original node O1 to the search node S9.
The relay node N4 after the transfer stores the two blocks b1 and b5 among the six relayed original blocks m1 to m6 as cache blocks, and becomes the cache node C4.

検索ノードS9は、5個のブロックb1〜b5を受信することでオリジナルファイルを取得する。また、検索ノードS9は、ブロックb2,b4をキャッシュブロックとして保存し、キャッシュノードC9となる。   The search node S9 acquires the original file by receiving the five blocks b1 to b5. The search node S9 stores the blocks b2 and b4 as cache blocks and becomes the cache node C9.

[比較例における2回目のファイル転送]
図14は、2回目のファイル転送を示している。ファイルを取得しようとするノードN11は検索ノードS11となり、ネットワークにファイルを要求する。ここでは、キャッシュノードC4,C9が存在するので、まず、検索ノードS11は、これらのノードC4,C9から4個のブロックb1,b2,b4,b5を取得する。
[Second file transfer in comparative example]
FIG. 14 shows the second file transfer. The node N11 trying to acquire the file becomes the search node S11 and requests the file from the network. Here, since the cache nodes C4 and C9 exist, first, the search node S11 acquires four blocks b1, b2, b4, and b5 from these nodes C4 and C9.

具体的には、キャッシュノードC4から、検索ノードS11にキャッシュブロックであるブロックb1,b5を送信する。このとき、ノードN5が中継ノードとなり、検索ノードS11へ転送する。同時に、中継ノードN5は、中継したブロックb1,b5をキャッシュブロックとして保存し、キャッシュノードC15となる。   Specifically, blocks b1 and b5 that are cache blocks are transmitted from the cache node C4 to the search node S11. At this time, the node N5 becomes a relay node and transfers to the search node S11. At the same time, the relay node N5 stores the relayed blocks b1 and b5 as cache blocks and becomes the cache node C15.

また、キャッシュノードC9から、検索ノードS11にキャッシュブロックであるブロックm2,m4を送信する。このとき、ノードN10が中継ノードとなり、検索ノードS11へ転送する。同時に、中継ノードN10は、中継したメタデータブロックb2,b4をキャッシュブロックとして保存し、キャッシュノードC10となる。   The cache node C9 transmits the blocks m2 and m4, which are cache blocks, to the search node S11. At this time, the node N10 becomes a relay node and transfers to the search node S11. At the same time, the relay node N10 stores the relayed metadata blocks b2 and b4 as cache blocks and becomes the cache node C10.

また、オリジナルノードO1は、足りないブロックb3を検索ノード11へ転送する。このとき、ノードN5が中継ノードとなり、検索ノードS11へ転送する。同時に、中継ノードN5は、今まで保持していたキャッシュブロックb1を破棄して、中継したブロックb3を保存する。
検索ノードS11は、b1〜b5を全て受信した後、ブロックb1,b3をキャッシュブロックとして保存し、キャッシュノード11となる。
Also, the original node O1 transfers the missing block b3 to the search node 11. At this time, the node N5 becomes a relay node and transfers to the search node S11. At the same time, the relay node N5 discards the cache block b1 held so far and stores the relayed block b3.
After receiving all of b1 to b5, the search node S11 stores the blocks b1 and b3 as cache blocks and becomes the cache node 11.

図15に示すように、比較例において、以上の2回目のファイル転送が終了すると、ネットワーク上には、10個のキャッシュブロックが存在し、b1〜b5それぞれのブロックがいずれかのキャッシュノードに存在している。したがって、これ以降は、キャッシュノードからキャッシュブロックを取得するだけでオリジナルファイルが取得できるようになる。   As shown in FIG. 15, in the comparative example, when the second file transfer is completed, there are 10 cache blocks on the network, and each block b1 to b5 exists in any one of the cache nodes. is doing. Therefore, after that, the original file can be acquired only by acquiring the cache block from the cache node.

[比較例におけるファイル転送N回後のネットワーク]
比較例において上記のようなファイル転送をN回行うと、図16に示すように、ネットワーク上には、オリジナルノードO1のオリジナルファイル以外に、12個(5種類)のキャッシュファイルが存在するものとする。
[Network after N file transfers in comparative example]
If the file transfer as described above is performed N times in the comparative example, as shown in FIG. 16, there are 12 (five types) cache files in addition to the original file of the original node O1 on the network. To do.

[比較例においてファイル転送N回後に一部のノードが離脱したケース]
図17は、ファイル転送N回後に、オリジナルノードO1とキャッシュノードC6とかネットワークから離脱した場合を示している。
しかし、キャッシュノードC6しか保有していなかったブロックb5がネットワーク上に存在しない。つまり、ネットワーク上には、10個ものキャッシュブロックがあっても、4種類のブロックb1〜b4しかなく、検索ノードS9は、必要なブロックb1〜b5全てを揃えることができない。したがって、このP2Pネットワークではもとのファイルを復元できない。
このように、比較例では、ブロックb1〜b5全てが、ファイル復元に必須であり、キャッシュブロックが幾ら多く存在しても、1種類のキャッシュブロックが欠けるだけでファイル復元ができなくなる。
[Case where some nodes leave after file transfer N times in the comparative example]
FIG. 17 shows a case where the original node O1 and the cache node C6 have left the network after N times of file transfers.
However, the block b5 that has only the cache node C6 does not exist on the network. That is, even if there are 10 cache blocks on the network, there are only four types of blocks b1 to b4, and the search node S9 cannot arrange all the necessary blocks b1 to b5. Therefore, the original file cannot be restored on this P2P network.
Thus, in the comparative example, all of the blocks b1 to b5 are essential for file restoration, and even if there are many cache blocks, the file restoration cannot be performed only by lacking one kind of cache block.

比較例の図17と本実施形態の図12では、それぞれ計10個のキャッシュブロックが存在するわけであるが、図17ではオリジナルファイルを復元できず、図12ではオリジナルファイルを復元できている。すなわち、本実施形態の図12では、比較的少ない数のキャッシュブロックでファイルを復元でき、ネットワークにおけるファイル共有効率が高いといえる。   In FIG. 17 of the comparative example and FIG. 12 of the present embodiment, there are a total of 10 cache blocks, but the original file cannot be restored in FIG. 17, and the original file can be restored in FIG. That is, in FIG. 12 of the present embodiment, the file can be restored with a relatively small number of cache blocks, and it can be said that the file sharing efficiency in the network is high.

また、比較例では、ネットワーク上に存在し得るキャッシュブロックの種類の最大数は、オリジナルファイルを分割して得られるオリジナルブロックの数(=5個)に等しい。換言すると、オリジナルファイルを復元するのに必要な数よりも、ネットワーク上のキャッシュブロックの種類の方が多くなることはない。
これに対し、本実施形態では、メタデータブロックを生成する演算式を無数に生成可能であるため、ネットワーク上に存在し得るメタデータブロックの種類も無数となる。したがって、オリジナルファイルを復元するのに必要な数(種類)以上に、ネットワーク上のキャッシュブロックの種類が多くなる。また、個々のメタデータは、ファイル復元に必須的なものではなく任意的なものである。この結果、オリジナルノード又はキャッシュノードの一部がネットワークから離脱しても、オリジナルファイルを復元できる確率が非常に高くなる。
In the comparative example, the maximum number of types of cache blocks that can exist on the network is equal to the number of original blocks (= 5) obtained by dividing the original file. In other words, there are no more cache block types on the network than are necessary to restore the original file.
On the other hand, in the present embodiment, an infinite number of arithmetic expressions for generating metadata blocks can be generated, so that there are an infinite number of types of metadata blocks that can exist on the network. Therefore, the number of cache blocks on the network is larger than the number (type) necessary to restore the original file. In addition, each piece of metadata is optional, not essential for file restoration. As a result, even if the original node or a part of the cache node leaves the network, the probability that the original file can be restored becomes very high.

また、比較例では、あるオリジナルファイルについてのオリジナルブロックの種類は限られており、上記例では5種類(=分割数)しかない。したがって、多くのキャッシュノードが、キャッシュブロックを保持していたとしても、重複したブロックを保持するノードが多くなるだけである。
一方、本実施形態では、メタデータ化されているため、ブロックの種類は、事実上、無数となり、重複したブロックを保持する可能性が低くなる。本実施形態では、この点からもファイル共有効率が高い。
In the comparative example, the types of original blocks for a certain original file are limited. In the above example, there are only five types (= number of divisions). Therefore, even if many cache nodes hold cache blocks, only the number of nodes holding duplicate blocks increases.
On the other hand, in the present embodiment, since it is converted to metadata, the number of types of blocks is virtually unlimited, and the possibility of holding duplicate blocks is reduced. In this embodiment, file sharing efficiency is also high from this point.

以下、ノードにおける各機能について、さらに詳細に説明する。   Hereinafter, each function in the node will be described in more detail.

[オリジナルノードの処理の詳細]
以下、オリジナルノードの処理を図18及び図3に基づいて説明する。
[Details of original node processing]
Hereinafter, the processing of the original node will be described with reference to FIGS.

[ステップS11:オリジナルファイルの公開]
ユーザが公開しようとするファイルがオリジナルノードのオリジナルファイル記憶部11(アップロードフォルダ)に置かれると、当該ファイル(オリジナルファイル)はネットワークに公開される(ステップS11)。ファイルが公開されると、オリジナルノードは、そのファイルのファイル情報(キー情報)を作成する。ファイル情報は、ファイル名、ファイル識別子(ファイルのハッシュ値)、ファイルサイズ、オリジナルファイル位置情報(オリジナルノードのIPアドレスとポート番号)などが含まれる。
[Step S11: Release of the original file]
When the file to be disclosed by the user is placed in the original file storage unit 11 (upload folder) of the original node, the file (original file) is disclosed to the network (step S11). When the file is published, the original node creates file information (key information) of the file. The file information includes a file name, a file identifier (file hash value), a file size, original file position information (original node IP address and port number), and the like.

なお、以下では、オリジナルファイルそのものを「ファイル本体」といい、ファイル本体と当該ファイル本体のファイル情報とをあわせて「オリジナルファイル」という。図19(a)は、ファイル本体にファイル情報が付加されたオリジナルファイルを示している。オリジナルファイルがファイル情報を含んでいることで、ファイル転送のためのノード間の情報共有が容易となる。   Hereinafter, the original file itself is referred to as “file body”, and the file body and the file information of the file body are collectively referred to as “original file”. FIG. 19A shows an original file in which file information is added to the file body. Since the original file includes file information, information sharing between nodes for file transfer is facilitated.

[ステップS12,S13,S14:ファイル要求の待機とメタデータ生成]
オリジナルノードは、他のノード(検索ノード)から、ファイル(又はメタデータ)の要求を受信するまで待機し、ファイル要求を受け取ると(ステップS12,S13)、メタデータ生成処理を行う。
具体的には、ファイル要求は、P2Pネットワーク通信処理部(ファイル要求受信手段)21によって受信され、ファイル要求を受けると、制御部20によってメタデータ生成処理が開始される。
[Steps S12, S13, S14: File Request Waiting and Metadata Generation]
The original node waits until a request for a file (or metadata) is received from another node (search node). When the original node receives the file request (steps S12 and S13), the original node performs a metadata generation process.
Specifically, the file request is received by the P2P network communication processing unit (file request receiving means) 21. When the file request is received, the control unit 20 starts the metadata generation process.

なお、以下では、オリジナルファイルから生成されたメタデータそのものを「メタデータ本体」といい、メタデータ本体と、ファイル情報と、演算式情報とをあわせて「メタデータ」という。   Hereinafter, the metadata itself generated from the original file is referred to as “metadata body”, and the metadata body, file information, and arithmetic expression information are collectively referred to as “metadata”.

図19(b)は、ファイル情報及び演算式情報を含んだメタデータを示している。本実施形態のメタデータ生成部12は、図19(a)のオリジナルファイルから図19(b)のメタデータを生成する(ステップS14)。   FIG. 19B shows metadata including file information and arithmetic expression information. The metadata generation unit 12 of the present embodiment generates the metadata of FIG. 19B from the original file of FIG. 19A (step S14).

本実施形態におけるメタデータ生成部12におけるメタデータ生成ポリシーは次の通りである。まず、メタデータを生成するための演算式は、最低でも復元に必要な数(種類数)のメタデータ数に対応した数が必要とされる。復元に必要なメタデータ数は、[オリジナルブロック数×冗長度(例えば、オリジナルブロック数の105%程度)]以上として算出される。例えば、オリジナルブロック数が3個であれば、メタデータ生成部12の演算式発生部12aは、4個(4種類)のメタデータを生成するために4個の演算式をランダムに決定する。
なお、冗長度は、複数の演算式からなる連立方程式を解いて、オリジナルブロックを復元できる値として適宜設定される。
The metadata generation policy in the metadata generation unit 12 in the present embodiment is as follows. First, the number of arithmetic expressions for generating metadata is required to be at least the number corresponding to the number of metadata necessary for restoration (number of types). The number of metadata necessary for restoration is calculated as [number of original blocks × redundancy (for example, about 105% of the number of original blocks)] or more. For example, if the number of original blocks is three, the arithmetic expression generation unit 12a of the metadata generation unit 12 randomly determines four arithmetic expressions to generate four (four types) metadata.
Note that the redundancy is appropriately set as a value that can solve the simultaneous equations including a plurality of arithmetic expressions and restore the original block.

演算式発生部12aは、例えば、図20に示す演算式ライブラリによって構成される。演算式ライブラリは、オリジナルファイルのファイルサイズと乱数の組みが引数として与えられると、必要な数の演算式をランダムに決定する。
例えば、オリジナルブロックのサイズが64KBとして設定されているときに、オリジナルファイルサイズとして180KBが演算式ライブラリに与えられた場合を想定する。この場合、オリジナルブロック数は3個であり、これに冗長度(105%)を乗じて小数点以下を切り上げた整数値は4である。演算式ライブラリは、4個の演算式を引数である乱数に基づきランダムに決定する。生成される演算式は、例えば、図7に示すように、1又は複数のオリジナルブロック同士をXOR演算子で演算するものが好ましい。
The arithmetic expression generation unit 12a is configured by, for example, an arithmetic expression library shown in FIG. The arithmetic expression library randomly determines a necessary number of arithmetic expressions when a combination of the file size of the original file and a random number is given as an argument.
For example, it is assumed that when the size of the original block is set as 64 KB, 180 KB is given to the arithmetic expression library as the original file size. In this case, the number of original blocks is 3, and the integer value obtained by multiplying this by the redundancy (105%) and rounding up after the decimal point is 4. The arithmetic expression library randomly determines four arithmetic expressions based on random numbers as arguments. For example, as shown in FIG. 7, the generated arithmetic expression is preferably one in which one or a plurality of original blocks are operated with an XOR operator.

なお、演算式の数を決定するのに、上記では、オリジナルファイルサイズをライブラリに与えたが、オリジナルブロック数や必要な演算式数そのものを与えてもよく、演算式の数を決定することができる情報であれば特に限定されない。
また、ライブラリ自身が乱数を発生できる場合には、乱数はライブラリに対して与えられなくてもよい。
In the above description, the original file size is given to the library to determine the number of arithmetic expressions. However, the number of original blocks or the number of necessary arithmetic expressions themselves may be given, and the number of arithmetic expressions can be determined. Any information that can be used is not particularly limited.
Further, when the library itself can generate a random number, the random number may not be given to the library.

メタデータ生成部12のメタデータ演算部12bは、ランダムに決定された演算式に従って、オリジナルブロック同士の演算を行って、メタデータ本体を算出する。
また、メタデータ生成部12は、各メタデータ本体に、オリジナルファイルのファイル情報及び当該メタデータ本体生成に用いた演算式を示す演算式情報を、それぞれ付加して、メタデータm1〜m4とする。
The metadata calculation unit 12b of the metadata generation unit 12 calculates the metadata main body by calculating between the original blocks according to a randomly determined calculation formula.
Further, the metadata generation unit 12 adds the file information of the original file and the calculation formula information indicating the calculation formula used for generating the metadata main body to each metadata main body, thereby obtaining metadata m1 to m4. .

前記演算式情報は、演算式そのものであってもよいし、演算式を特定するための識別子であってもよい。ここでは、演算式ライブラリでは、演算式とともに当該演算式を特定する識別子が生成されるため、その識別子が演算式情報としてメタデータに付加される。
なお、各ノードは、共通の演算式ライブラリを有しており、各ノードは、識別子を演算式ライブラリに与えることで、その識別子が特定する演算式を得ることができる(図20参照)。
The arithmetic expression information may be the arithmetic expression itself or an identifier for specifying the arithmetic expression. Here, in the arithmetic expression library, an identifier that identifies the arithmetic expression is generated together with the arithmetic expression, and therefore the identifier is added to the metadata as arithmetic expression information.
Each node has a common arithmetic expression library, and each node can obtain an arithmetic expression specified by the identifier by giving the identifier to the arithmetic expression library (see FIG. 20).

[ステップS15,S16:メタデータ送出]
メタデータm1〜m4が生成されると、メタデータ送信部13は、個々のメタデータ(メタブロック)単位で、ファイル要求をした検索ノードに対して、ファイル送信を行う。
[Steps S15 and S16: Metadata transmission]
When the metadata m1 to m4 are generated, the metadata transmission unit 13 performs file transmission to the search node that has requested the file in units of individual metadata (metablocks).

[メタデータ数が指定された場合のメタデータ送出]
上記のようなファイル全体の要求ではなく、図9に示すメタデータブロックm9,m10の生成・転送のように、メタデータ数(種類数)の指定を伴うメタデータ要求を、オリジナルノードが検索ノードから受けた場合、メタデータ生成部12は、指定数(2個)の演算式を生成し、2個のメタデータm9,m10を検索ノードに送信する。この場合、演算式ライブラリには、オリジナルファイルサイズではなく、指定数が与えられ、指定数に応じた数の演算式が生成される。
なお、メタデータ数の指定を伴うメタデータ要求はP2Pネットワーク通信処理部21によって受信される。
[Transmit metadata when the number of metadata is specified]
The original node searches for the metadata request with the designation of the number of metadata (number of types) as in the generation / transfer of the metadata blocks m9 and m10 shown in FIG. 9 instead of the request for the entire file as described above. The metadata generation unit 12 generates a specified number (two) of arithmetic expressions and transmits the two pieces of metadata m9 and m10 to the search node. In this case, a specified number is given to the arithmetic expression library instead of the original file size, and a number of arithmetic expressions corresponding to the specified number are generated.
Note that a metadata request accompanied by designation of the number of metadata is received by the P2P network communication processing unit 21.

[メタデータのランダム性]
演算式ライブラリからなる演算式発生部12aは、ファイル要求又は数の指定を伴うメタデータ要求を受ける度に、乱数を用いて演算式を決定するため、ファイル要求又は数の指定を伴うメタデータ要求を受ける度に、実質的に異なるメタデータを生成することができる。したがって、同じオリジナルファイルから様々なメタデータが生成・送信されることになるため、ネットワーク上のメタデータの種類が無数に増える。
つまり、複数回のファイル転送が行われると、オリジナルファイル復元に必要な種類数以上の数(種類数)のメタデータがネットワーク上に存在する状態が容易に得られる。
[Metadata randomness]
The arithmetic expression generation unit 12a formed of an arithmetic expression library determines the arithmetic expression using a random number every time a metadata request with a file request or number specification is received, and therefore a metadata request with a file request or number specification. Each time it is received, substantially different metadata can be generated. Therefore, since various metadata are generated and transmitted from the same original file, the number of types of metadata on the network increases innumerably.
That is, when file transfer is performed a plurality of times, it is possible to easily obtain a state in which the number of types (number of types) of metadata necessary for restoring the original file exists on the network.

なお、オリジナルノードは、あるオリジナルファイルについてのメタデータ生成が2回目以上である場合については、過去に生成したメタデータの種類及び/又は当該オリジナルファイルのメタデータであってネットワーク上に現在存在するものの種類を確認するのが好ましい。万が一、新たに生成したメタデータの種類と、過去に生成したメタデータの種類及び/又は当該オリジナルファイルのメタデータであってネットワーク上に現在存在するものの種類が重複した場合には、重複するメタデータは送信せず、重複しないメタデータを再生成することによりメタデータを所定数確保して送信することができる。
また、メタデータ数を伴うメタデータ要求の場合には、オリジナルノードが、検索ノードが既に取得したメタデータの種類を示す情報を検索ノードから受け取り、検索ノードが有しているメタデータの種類と重複しないメタデータを必要数送信する。
Note that the original node is the type of metadata generated in the past and / or the metadata of the original file and is present on the network when the metadata generation for the original file is performed for the second time or more. It is preferable to check the kind of thing. In the unlikely event that the newly generated metadata type overlaps with the previously generated metadata type and / or the original file metadata that currently exists on the network, the duplicate metadata Data is not transmitted, and by regenerating metadata that does not overlap, a predetermined number of metadata can be secured and transmitted.
In the case of a metadata request with the number of metadata, the original node receives information indicating the type of metadata that the search node has already acquired from the search node, and the type of metadata that the search node has and Send the required number of unique metadata.

[中継ノードの処理の詳細]
以下、中継ノードの処理を、図21及び図4に基づいて説明する。
[Details of relay node processing]
Hereinafter, the processing of the relay node will be described with reference to FIGS. 21 and 4.

[ステップS21〜S23:中継ファイルの受信]
中継ノードは、メタデータを中継して、その後、キャッシュノードとして機能するものである。
まず、他のノードから別の他のノードへのファイル転送のためにメタデータ転送中継の必要があることがP2Pネットワーク通信処理部によって判明すると(ステップS21,S22)、中継ノードのメタデータ受信部31(メタデータ受信部41)は、メタデータを、ブロック単位で受信する(ステップS23)。
[Steps S21 to S23: Reception of Relay File]
The relay node relays metadata and then functions as a cache node.
First, when the P2P network communication processing unit determines that the metadata transfer relay is necessary for file transfer from another node to another node (steps S21 and S22), the metadata receiving unit of the relay node 31 (metadata receiving unit 41) receives the metadata in units of blocks (step S23).

[ステップS24:キャッシュブロックの保存]
中継ノードのメタデータ記憶部32(メタデータ記憶部42)は、一定数のブロックをキャッシュブロックとして記憶可能である。ここでは、メタデータ記憶部32は、1つのオリジナルファイルにつき、2個(ファイル復元に必要なメタデータ数より少ない数)のメタデータブロックを記憶可能であるものとする。
中継ノードは、中継のために受信したメタデータブロックのうち、ランダムに決定される数(最大でメタデータ記憶部32において記憶可能な数)のメタデータブロックをメタデータ記憶部32に保存する。
[Step S24: Save Cache Block]
The metadata storage unit 32 (metadata storage unit 42) of the relay node can store a certain number of blocks as cache blocks. Here, it is assumed that the metadata storage unit 32 can store two metadata blocks (number smaller than the number of metadata necessary for file restoration) for each original file.
The relay node stores, in the metadata storage unit 32, a randomly determined number (maximum number that can be stored in the metadata storage unit 32) of the metadata blocks received for relaying.

[ステップS25,S26:メタデータの送信]
また、中継ノードのメタデータ送信部33は、中継のために受信したメタデータをすべて、他のノードに送信する。
[Steps S25 and S26: Transmission of metadata]
Further, the metadata transmission unit 33 of the relay node transmits all the metadata received for the relay to other nodes.

[ステップS27:中継ノードのキャッシュノード化]
中継が終了すると、中継ノードは、メタデータ記憶部32(メタデータ記憶部42:キャッシュフォルダ)に保存されているメタデータをキャッシュブロックとしてネットワーク上に公開する。
例えば、中継ノードが、4個のメタデータ(メタデータブロック)m1〜m4を受信し、それらのブロックm1〜m4のうち、制御部20によってランダムに選択される2個のブロックm1,m4がメタデータ記憶部32(メタデータ記憶部42)に保存されている状態を図22に示す。
[Step S27: Make the relay node a cache node]
When the relay is completed, the relay node publishes the metadata stored in the metadata storage unit 32 (metadata storage unit 42: cache folder) on the network as a cache block.
For example, the relay node receives four pieces of metadata (metadata blocks) m1 to m4, and among these blocks m1 to m4, two blocks m1 and m4 randomly selected by the control unit 20 A state stored in the data storage unit 32 (metadata storage unit 42) is shown in FIG.

図22に示すように、メタデータm1,m4がキャッシュブロックとして公開される際には、メタブロックm1,m4には、メタデータ位置情報等のメタデータ情報が付加される。メタデータ位置情報は、当該メタブロックm1,m4のネットワーク上の位置を示しており、当該キャッシュノードのIPアドレス及びポート番号によって構成されている。   As shown in FIG. 22, when the metadata m1 and m4 are disclosed as cache blocks, metadata information such as metadata location information is added to the metablocks m1 and m4. The metadata location information indicates the location of the metablocks m1 and m4 on the network, and is configured by the IP address and port number of the cache node.

ファイル情報及びメタデータ位置情報(メタデータ情報)並びに必要であれば演算式情報は、キー情報として、ネットワーク上の隣接ノード間で定期的に交換される。したがって、キー情報は、次第にネットワークに拡散して行く。つまり、各ノードは、キー情報を他ノードへ通知する機能を有するとともに、キー情報を他ノードから受信する機能を有する。また、これらの機能は、中継ノード固有の機能ではなく、他の種類のノードでも機能し得るものである。   File information, metadata location information (metadata information), and calculation formula information if necessary are periodically exchanged between adjacent nodes on the network as key information. Therefore, the key information gradually spreads over the network. That is, each node has a function of notifying key information to other nodes and a function of receiving key information from other nodes. Also, these functions are not functions unique to the relay node, but can function with other types of nodes.

なお、キー情報は、各ノードのキーテーブル(キー記憶部;図示省略)に蓄積される。
この結果、各ノードは、ネットワーク上のどのノードが、どのようなオリジナルファイル又はどのようなメタデータを有しているか把握することができる。なお、キー情報の交換は、P2Pネットワーク通信処理部21によって行われる。
The key information is accumulated in a key table (key storage unit; not shown) of each node.
As a result, each node can grasp which node on the network has what original file or what metadata. The key information is exchanged by the P2P network communication processing unit 21.

[メタデータのキャッシュブロック化のポリシーの例]
制御部20は、例えば、下記のポリシーに従って、キャッシュブロックとするメタデータを保存する。
[Example of metadata cache blocking policy]
For example, the control unit 20 stores metadata that is a cache block in accordance with the following policy.

[ポリシー1:メタデータの新規保存]
メタデータ記憶部32(メタデータ記憶部)が、あるオリジナルファイルについてのメタデータをキャッシュブロックとして有していない場合、キャッシュブロックとして保存されるメタデータ数は、最大で、メタデータ記憶部32に記憶可能なメタデータ数に等しい。
中継したメタデータの一部又は全部が、キャッシュブロックとして保存され、中継メタデータの一部が保存される場合、保存されるメタデータは、ランダムに決定される(図8,図9参照)。
[Policy 1: New saving of metadata]
When the metadata storage unit 32 (metadata storage unit) does not have metadata about a certain original file as a cache block, the maximum number of metadata stored as a cache block is stored in the metadata storage unit 32. Equal to the number of metadata that can be stored.
Part or all of the relayed metadata is stored as a cache block, and when a part of the relay metadata is stored, the stored metadata is determined at random (see FIGS. 8 and 9).

[ポリシー2:メタデータの上書き]
メタデータ記憶部32(メタデータ記憶部)が、あるオリジナルファイルについてのメタデータをキャッシュブロックとして有している場合、メタデータ記憶部32に保存されているメタデータが、中継したメタデータで置き換えられる(図9,図10参照)。
メタデータの置き換えは、メタデータ記憶部32のメタデータ全てについて行ってもよいが、図9,10のように、中継したメタデータの一部のメタデータで、メタデータ記憶部32に保存されているキャッシュブロックの一部を置き換えるのが好ましい。
[Policy 2: Overwrite metadata]
When the metadata storage unit 32 (metadata storage unit) has metadata about a certain original file as a cache block, the metadata stored in the metadata storage unit 32 is replaced with the relayed metadata. (See FIGS. 9 and 10).
The metadata replacement may be performed for all metadata in the metadata storage unit 32, but as shown in FIGS. 9 and 10, a part of the metadata of the relayed metadata is stored in the metadata storage unit 32. It is preferable to replace a part of the cache block.

また、制御部20は、メタデータ記憶部32に既に記憶されているメタデータのうち、どのメタデータに中継したメタデータを上書きするか、すなわち、メタデータ記憶部32に既に記憶されているメタデータのうち、どのメタデータを破棄するかを選択する。
破棄するメタデータは制御部20がランダムに決定してもよいが、他のキャッシュノードも保有する種類のメタデータが優先的に破棄対象となるのが好ましい。複数のキャッシュノードが保有するメタデータを優先的に破棄することで、ネットワーク中のメタデータの多様性が得やすくなる。
なお、各ノードは、P2Pネットワーク通信処理部21によって、どのキャッシュノードが、どのオリジナルファイルの、どのような種類(演算式によって決まるメタデータの種類)のメタデータを有しているか把握できる。すなわち、P2Pネットワーク通信処理部21は、メタデータの種類を他のノードから取得する手段であり、メタデータの種類を他のノードへ報知する手段でもある。
Further, the control unit 20 determines which metadata to be overwritten from among the metadata already stored in the metadata storage unit 32, that is, the metadata already stored in the metadata storage unit 32. Select which metadata of the data to discard.
The metadata to be discarded may be determined at random by the control unit 20, but it is preferable that metadata of the type held by other cache nodes is preferentially discarded. By preferentially discarding metadata held by a plurality of cache nodes, it becomes easy to obtain a variety of metadata in the network.
Each node can grasp, by the P2P network communication processing unit 21, which cache node has which original file and what type (metadata type determined by the arithmetic expression). That is, the P2P network communication processing unit 21 is a unit that acquires the type of metadata from another node, and is also a unit that notifies the other node of the type of metadata.

また、キャッシュノードが、メタデータを上書きする場合であっても、他のキャッシュノードが保有していない種類については破棄対象としないことで、隣接する他のキャッシュノードが保有するキャッシュブロック(メタデータ)とは異なる種類のメタブロックが、自己のメタデータ記憶部32(メタデータ記憶部42)中に、少なくとも1つ含まれるようにすることができる。
なお、上記ポリシーで決定される破棄対象となるメタデータがない場合には、強制的にいずれかのメタデータを破棄対象として決定してもよいし、メタデータの上書き保存を行わなくてもよい。
In addition, even if a cache node overwrites metadata, the cache block (metadata) held by other adjacent cache nodes is not subject to discarding types that are not held by other cache nodes. ) May be included in at least one metablock of its own metadata storage unit 32 (metadata storage unit 42).
If there is no metadata to be discarded determined by the above policy, any metadata may be forcibly determined as a discard target, or the metadata may not be overwritten and saved. .

[ポリシー3:保存するメタデータの決定方法]
制御部20は、隣接する他のキャッシュノードが保有するキャッシュブロック(メタデータ)とは、できるだけ種類の異なるメタブロックが、自己のメタデータ記憶部32(メタデータ記憶部42)中に含まれるように、保存すべきメタブロックを決定する。
[Policy 3: Determination of metadata to save]
The control unit 20 may include a meta block that is as different as possible from the cache blocks (metadata) held by other adjacent cache nodes in its own metadata storage unit 32 (metadata storage unit 42). Next, the metablock to be stored is determined.

例えば、キャッシュノードの制御部20が中継したメタデータを保存する場合、他のキャッシュノードが保有するメタデータの種類と中継のために受信したメタデータの種類とを対比して、中継のために受信したメタデータの中から、他のキャッシュノード(中継したメタデータの送信元を除く)が保有していないか、又は保有するキャッシュノード数が所定数よりも少ないメタデータを保存対象として選択する。   For example, when storing the metadata relayed by the control unit 20 of the cache node, the type of metadata held by another cache node is compared with the type of metadata received for relaying, and for relaying. From the received metadata, select the metadata that is not held by other cache nodes (excluding the source of the relayed metadata) or the number of cache nodes held is less than the predetermined number as the storage target .

上記のようにすることで、ネットワーク上でのメタデータブロックの種類の重複を低減し、ネットワークのファイル共有効率を高めることができる。   By doing so, duplication of the types of metadata blocks on the network can be reduced and the file sharing efficiency of the network can be increased.


[キャッシュノードの処理の詳細]
以下、キャッシュノードの処理を図23及び図5に基づいて説明する。

[Cache node processing details]
Hereinafter, the processing of the cache node will be described with reference to FIGS.

[ステップS31,S32:ファイル要求受信]
図23に示すように、キャッシュノードは、メタデータをキャッシュブロックとして公開すると、他のノード(検索ノード)からのファイル要求を待つ(ステップS31)。
[Steps S31 and S32: File Request Reception]
As shown in FIG. 23, when the cache node publishes the metadata as a cache block, the cache node waits for a file request from another node (search node) (step S31).

[ステップS33〜S36:メタデータ送信]
P2Pネットワーク通信処理部21が、検索ノードからのファイル要求を受信すると(ステップS32)、制御部20は、メタデータ記憶部42がキャッシュブロックを有しているか否かを確認する(ステップS33)。メタデータ記憶部42にキャッシュブロックがある場合、そのキャッシュブロックが、検索ノードが要求しているファイルのメタデータであるか否かを判断する(ステップS34)。
キャッシュノードが保有するキャッシュブロックが、検索ノードが要求しているものに合致すれば、そのキャッシュブロックがメタデータ送信部43によって、検索ノードに対して送信される(ステップS35,S36)。
なお、キャッシュノードが、検索ノードが、メタデータの種類の指定を伴うメタデータ要求を受けた場合には、要求された種類のメタデータを保有していれば、それを送信する。
[Steps S33 to S36: Metadata transmission]
When the P2P network communication processing unit 21 receives a file request from the search node (step S32), the control unit 20 checks whether or not the metadata storage unit 42 has a cache block (step S33). If there is a cache block in the metadata storage unit 42, it is determined whether or not the cache block is metadata of a file requested by the search node (step S34).
If the cache block held by the cache node matches the one requested by the search node, the cache block is transmitted to the search node by the metadata transmission unit 43 (steps S35 and S36).
When the search node receives a metadata request accompanied by designation of the metadata type, the cache node transmits the requested type of metadata if it is held.

また、検索ノードは、既に持っているメタデータの演算式情報(不要メタデータ情報)と共にファイル要求をする場合がある。この場合、メタデータ記憶部42に検索ノードが要求するファイルのメタデータがあっても、検索ノードが既に持っているメタデータと重複する場合には、制御部は、そのメタデータは、検索ノードが要求しているものに合致しないと判断して、当該メタデータを送信しない。
一方、メタデータが重複していなければ、キャッシュノードは、メタデータ記憶部42のメタデータを検索ノードへ送信する。
In addition, the search node may make a file request together with metadata operation formula information (unnecessary metadata information) already possessed. In this case, even if the metadata of the file requested by the search node is stored in the metadata storage unit 42, if the metadata already exists in the search node, the control unit displays the metadata as the search node. Therefore, the metadata is not transmitted.
On the other hand, if the metadata is not duplicated, the cache node transmits the metadata in the metadata storage unit 42 to the search node.

[検索ノードの処理の詳細]
以下、検索ノードの処理を図23及び図5に基づいて説明する。
[Details of search node processing]
Hereinafter, the processing of the search node will be described with reference to FIGS.

[ステップS41,S42:ファイル要求と検索]
検索ノードにおいて、ユーザ等からファイル要求の処理がなされると(ステップS41)、検索ノードのP2Pネットワーク通信処理部21は、ネットワークからファイルを取得するためにキャッシュブロック又はオリジナルファイルを探索するクエリを送信する(ステップS42)。クエリは、各ノード間で転送され、各ノードのキーテーブルを参照することで、取得したいファイルのメタデータをキャッシュブロックとして有するキャッシュノードの位置情報及びオリジナルファイルの位置情報を取得する。クエリは、ノード間を何度か転送された後、検索ノードに送り返される。
[Steps S41 and S42: File Request and Search]
When a file request is processed by a user or the like in the search node (step S41), the P2P network communication processing unit 21 of the search node transmits a query for searching a cache block or an original file in order to obtain a file from the network. (Step S42). The query is transferred between the nodes, and by referring to the key table of each node, the location information of the cache node having the metadata of the file to be obtained as a cache block and the location information of the original file are obtained. The query is transferred back and forth between the nodes and then sent back to the search node.

なお、キャッシュノードの位置情報は、メタデータのメタデータ位置情報から取得できる。このように、クエリは、各ノードにあるメタデータ又はオリジナルファイルのキー情報(付加情報)を収集するものということができる。
また、クエリの取得したキー情報には、取得したいファイルのファイルサイズも含まれているため、検索ノードは、取得したいファイルのファイルサイズも把握できる。
The location information of the cache node can be acquired from the metadata location information of the metadata. Thus, it can be said that the query collects metadata in each node or key information (additional information) of the original file.
Further, since the key information acquired by the query includes the file size of the file to be acquired, the search node can grasp the file size of the file to be acquired.

[ステップS43〜S49:必要数のメタデータの取得]
検索ノードの制御部20は、戻ってきたクエリに基づいて、取得したいファイルのメタデータをキャッシュブロックとして保有しているキャッシュノードがあるか否かを判断する(ステップS43)。
必要なメタデータを保有するキャッシュノードがある場合、検索ノードは、それらのノードのうち、最も近いキャッシュノードに対して、キャッシュブロックを要求し(ステップS44)、メタデータ受信部51がメタデータブロックを受信し(ステップS45)、メタデータ記憶部52に記憶する。
[Steps S43 to S49: Acquisition of Required Number of Metadata]
Based on the returned query, the search node control unit 20 determines whether there is a cache node that holds the metadata of the file to be acquired as a cache block (step S43).
If there is a cache node that holds the necessary metadata, the search node requests a cache block from the closest cache node among those nodes (step S44), and the metadata receiving unit 51 determines the metadata block. Is received (step S45) and stored in the metadata storage unit 52.

また、検索ノードは、戻ってきたクエリのキー情報から、取得したいオリジナルファイルのファイルサイズを取得する。なお、キー情報に、オリジナルブロック数又はファイル復元に必要なメタブロック種類数が含まれている場合には、これらの情報を検索ノードが取得してもよい。
オリジナルファイルサイズ、オリジナルブロック数、及び復元に必要なメタブロック種類数は、いずれも、復元に必要なメタブロック種類数を特定するために用いられる情報となり得るからである。
The search node acquires the file size of the original file to be acquired from the key information of the returned query. When the key information includes the number of original blocks or the number of types of metablocks necessary for file restoration, the search node may acquire these pieces of information.
This is because the original file size, the number of original blocks, and the number of metablock types necessary for restoration can all be information used for specifying the number of metablock types necessary for restoration.

キャッシュノードからキャッシュブロックが送られてくると、検索ノードは、そのキャッシュブロック(メタデータ)が、既に保有しているメタデータと異なる種類のものか否か(演算式が異なるか否か)を判定し、種類が異なれば、取得したキャッシュブロックを、復元に用いるメタデータブロックとし、同じ種類であれば取得したキャッシュブロックを破棄する。   When a cache block is sent from the cache node, the search node determines whether or not the cache block (metadata) is of a different type from the metadata already held (whether the arithmetic expression is different). If the type is different and the type is different, the acquired cache block is used as a metadata block used for restoration, and if the type is the same, the acquired cache block is discarded.

検索ノードは、以上のキャッシュブロック取得処理を、オリジナルファイル復元に必要なメタブロック種類数(例えば、4種類又はそれ以上)が揃うまで繰り返す。
つまり、検索ノードに(論理パスでみて)近いキャッシュノードから順に、キャッシュブロックを取得して行き(ステップS44)、必要個数(種類数)のメタデータブロックが揃うまで、徐々に遠いキャッシュノードにキャッシュブロックを要求する(ステップS47)。
なお、復元に必要なメタブロック種類数は、検索ノードに戻ってきたキーから、オリジナルファイルサイズを取得し、検索ノードが、所定の冗長度(例えば105%)を乗じることで算出される。
The search node repeats the above cache block acquisition process until the number of metablock types (for example, four types or more) necessary for restoring the original file is obtained.
That is, the cache blocks are acquired in order from the cache node closest to the search node (in terms of the logical path) (step S44), and the cache node is gradually cached until the necessary number (number of types) of metadata blocks is obtained. A block is requested (step S47).
The number of metablock types necessary for restoration is calculated by obtaining the original file size from the key returned to the search node and multiplying the search node by a predetermined redundancy (for example, 105%).

ステップS44〜S47の処理の結果、必要個数のメタデータブロックが揃っていないのに、取得しようとするオリジナルファイルのメタデータをキャッシュブロックとして保有するキャッシュノードが無くなった場合、検索ノードは、戻ってきたクエリに基づき、オリジナルノードの存在を判定する(ステップS48)。また、最初からキャッシュノードが存在しない場合(ステップS43)も、オリジナルノードの存在を判定する(ステップS48)。
ステップS48で、オリジナルノードが存在しないと判定された場合、必要個数のメタデータブロックが揃っていないので、ファイル取得は失敗となる(ステップS50)。
As a result of the processing in steps S44 to S47, when the necessary number of metadata blocks are not prepared but there is no cache node that holds the metadata of the original file to be acquired as a cache block, the search node returns. The presence of the original node is determined based on the query (step S48). Also, if there is no cache node from the beginning (step S43), the presence of the original node is determined (step S48).
If it is determined in step S48 that the original node does not exist, file acquisition fails because the required number of metadata blocks are not complete (step S50).

ステップS48でオリジナルノードが存在すると判定された場合、検索ノードは、オリジナルノードに対し、不足数(不足種類数)分のメタデータブロックを要求し、取得する(ステップS49)。
なお、オリジナルノードが、メタデータ数(不足種類数)の指定を伴うメタデータ要求を受けた場合の処理は、前述の[メタデータ数が指定された場合のメタデータ送出]で説明したとおりである。
If it is determined in step S48 that the original node exists, the search node requests and acquires metadata blocks for the shortage number (shortage type number) from the original node (step S49).
Note that the processing when the original node receives a metadata request with the designation of the number of metadata (number of missing types) is the same as described in [Sending metadata when the number of metadata is designated]. is there.

[ステップS51〜S55:ファイル復元]
ステップS46又はS49の処理で、検索ノードにファイル復元に必要なメタデータブロック数が揃うと(ステップS51)、メタデータの復号化を行う(ステップS52)。 まず、検索ノードは、それらのメタデータに含まれる演算式情報(演算式識別子)に基づいて、演算式を得る。すなわち、検索ノードのメタデータ復号部53の演算式発生部53aは、図20に示す演算式ライブラリを用いて、取得したメタデータの演算式識別子から演算式を得る。
[Steps S51 to S55: File Restoration]
When the number of metadata blocks necessary for file restoration is obtained in the search node in step S46 or S49 (step S51), the metadata is decrypted (step S52). First, the search node obtains an arithmetic expression based on arithmetic expression information (arithmetic expression identifier) included in the metadata. That is, the arithmetic expression generation unit 53a of the metadata decoding unit 53 of the search node obtains an arithmetic expression from the arithmetic expression identifier of the acquired metadata using the arithmetic expression library shown in FIG.

そして、メタデータ復号演算部53bは、所定数の演算式及びメタデータから、復号化の演算を行う。復号化は、複数の演算式及びメタブロックの連立方程式を解くことで、オリジナルブロックを求める演算によって行われる。   Then, the metadata decoding operation unit 53b performs a decoding operation from a predetermined number of arithmetic expressions and metadata. Decoding is performed by calculating an original block by solving simultaneous equations of a plurality of arithmetic expressions and metablocks.

ステップS52の復号化に失敗した場合、すなわち、集めたメタデータ数(種類数)が、復元に十分な数でなかった場合、追加メタデータブロックの取得を行う(ステップS54)。追加ブロック取得は、ステップS43〜S49の処理を再度行うことにより実現される。   If the decoding in step S52 fails, that is, if the collected metadata number (number of types) is not sufficient for restoration, an additional metadata block is acquired (step S54). Additional block acquisition is realized by performing the processing of steps S43 to S49 again.

復号化に成功し、オリジナルブロック(オリジナルファイル)を復元できたら、ファイル取得が完了する(ステップS55)。復元したオリジナルファイルは、オリジナルデータ記憶部54に保存される。復元したオリジナルファイル(ファイル本体及びファイル情報)そのものをネットワークに公開してもよいが、本実施形態では、以下のようにキャッシュブロックとして公開する。   If the decoding is successful and the original block (original file) can be restored, the file acquisition is completed (step S55). The restored original file is stored in the original data storage unit 54. The restored original file (file body and file information) itself may be disclosed to the network, but in the present embodiment, it is disclosed as a cache block as follows.

[ステップS56,S57:メタデータの再生成]
検索ノードのメタデータ生成部55は、オリジナルノードのメタデータ生成部12と同様の機能を有しており、オリジナルデータ記憶部54のオリジナルファイルから、新たにメタデータを生成する。
すなわち、メタデータ生成部55の演算式発生部55aは、演算式ライブラリを用いて、乱数によって、受信したメタデータの演算式とは異なる演算式を生成する。ここで、生成する演算式数は、メタデータ記憶部56においてキャッシュブロックとして保存するブロック数に相当する数(例えば、2個)となる。
なお、生成した演算式と受信したメタデータの演算式とが重複した場合には、演算式を再生成し、受信したメタデータの演算式とは重複しないようにするのが好ましい。また、ネットワーク上で保存されているメタデータの演算式と、生成した演算式とを対比して、両者が重複しないようにしてもよい。
[Steps S56 and S57: Metadata Regeneration]
The metadata generation unit 55 of the search node has the same function as the metadata generation unit 12 of the original node, and newly generates metadata from the original file in the original data storage unit 54.
That is, the arithmetic expression generation unit 55a of the metadata generation unit 55 generates an arithmetic expression different from the arithmetic expression of the received metadata by using a random number, using the arithmetic expression library. Here, the number of arithmetic expressions to be generated is a number (for example, 2) corresponding to the number of blocks stored as cache blocks in the metadata storage unit 56.
When the generated arithmetic expression and the received metadata arithmetic expression overlap, it is preferable to regenerate the arithmetic expression so that it does not overlap with the received metadata arithmetic expression. Further, the metadata calculation expression stored on the network may be compared with the generated calculation expression so that they do not overlap.

生成された演算式とオリジナルファイル(ファイル本体)を分割したオリジナルブロックとから、メタデータ演算部55bはメタデータを生成する演算を行い(ステップS56)、キャッシュブロックとしてメタデータ記憶部56に保存し、ネットワークに公開する(ステップS57)。すなわち、検索ノードは、ファイル取得後、キャッシュノードとなる。   From the generated arithmetic expression and the original block obtained by dividing the original file (file body), the metadata operation unit 55b performs an operation for generating metadata (step S56), and stores it as a cache block in the metadata storage unit 56. , It is made public on the network (step S57). That is, the search node becomes a cache node after file acquisition.

なお、本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。例えば、オリジナルノードがメタデータ送信後にキャッシュノードとして機能してもよい。   In addition, this invention is not limited to the said embodiment, A various deformation | transformation is possible. For example, the original node may function as a cache node after transmitting metadata.

ノードと論理パスで示したP2Pファイル共有ネットワークシステムの概略図である。1 is a schematic diagram of a P2P file sharing network system indicated by nodes and logical paths. FIG. ノードコンピュータのブロック図である。It is a block diagram of a node computer. オリジナルノードの機能ブロック図である。It is a functional block diagram of an original node. 中継ノードの機能ブロック図である。It is a functional block diagram of a relay node. キャッシュノードの機能ブロック図である。It is a functional block diagram of a cache node. 検索ノードの機能ブロック図である。It is a functional block diagram of a search node. オリジナルファイルからメタデータを生成する方法を示す図である。It is a figure which shows the method of producing | generating metadata from an original file. 本実施形態のネットワークにおけるファイル転送(第1回目の転送)を示す図である。It is a figure which shows the file transfer (1st transfer) in the network of this embodiment. 本実施形態のネットワークにおけるファイル転送(第2回目の転送)を示す図である。It is a figure which shows the file transfer (2nd transfer) in the network of this embodiment. 本実施形態のネットワークにおける第2回目のファイル転送終了後のキャッシュノードの状態を示す図である。It is a figure which shows the state of the cache node after the completion of the 2nd file transfer in the network of this embodiment. 本実施形態のネットワークにおける第N回目のファイル転送終了後のキャッシュノードの状態を示す図である。It is a figure which shows the state of the cache node after completion | finish of the Nth file transfer in the network of this embodiment. 本実施形態のネットワークにおいて、第N回目のファイル転送終了後、ノードO1,C6がネットワークから脱落した状態を示す図である。In the network of this embodiment, it is a figure which shows the state from which node O1, C6 dropped out from the network after the Nth file transfer completion. 比較例のネットワークにおけるファイル転送(第1回目の転送)を示す図である。It is a figure which shows the file transfer (1st transfer) in the network of a comparative example. 比較例のネットワークにおけるファイル転送(第2回目の転送)を示す図である。It is a figure which shows the file transfer (2nd transfer) in the network of a comparative example. 比較例のネットワークにおける第2回目のファイル転送終了後のキャッシュノードの状態を示す図である。It is a figure which shows the state of the cache node after the completion of the 2nd file transfer in the network of a comparative example. 比較例のネットワークにおける第N回目のファイル転送終了後のキャッシュノードの状態を示す図である。It is a figure which shows the state of the cache node after completion | finish of the Nth file transfer in the network of a comparative example. 比較例のネットワークにおいて、第N回目のファイル転送終了後、ノードO1,C6がネットワークから脱落した状態を示す図である。In the network of a comparative example, it is a figure which shows the state from which node O1, C6 dropped out from the network after the Nth file transfer completion. オリジナルノードの処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of an original node. オリジナルファイル及びメタデータの詳細なデータ構造を示す図である。It is a figure which shows the detailed data structure of an original file and metadata. 演算式ライブラリを示す図である。It is a figure which shows an arithmetic expression library. 中継ノードの処理手順を示すフローチャートである。It is a flowchart which shows the processing procedure of a relay node. キャッシュノードのメタデータ記憶部を示す図である。It is a figure which shows the metadata memory | storage part of a cache node. キャッシュノードの処理手順を示すフローチャートである。It is a flowchart which shows the processing procedure of a cache node. 検索ノードの処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of a search node.

符号の説明Explanation of symbols

11 オリジナルファイル記憶部
12 メタデータ生成部
12a 演算式発生部
12b メタデータ演算部
13 メタデータ送信部
20 制御部
21 P2Pネットワーク通信処理部
31 メタデータ受信部
32 メタデータ記憶部
33 メタデータ送信部
41 メタデータ受信部
42 メタデータ記憶部
43 メタデータ送信部
51 メタデータ受信部
53 メタデータ復号部
55 メタデータ生成部
56 メタデータ記憶部
DESCRIPTION OF SYMBOLS 11 Original file storage part 12 Metadata production | generation part 12a Arithmetic expression generation part 12b Metadata calculation part 13 Metadata transmission part 20 Control part 21 P2P network communication processing part 31 Metadata reception part 32 Metadata storage part 33 Metadata transmission part 41 Metadata reception unit 42 Metadata storage unit 43 Metadata transmission unit 51 Metadata reception unit 53 Metadata decoding unit 55 Metadata generation unit 56 Metadata storage unit

Claims (38)

ファイル共有ネットワークシステムにおいて、
共有されるオリジナルファイルから、消失訂正可能に符号化された複数のメタデータを生成するメタデータ生成部と、
オリジナルファイル取得のために前記メタデータを取得して復号化し前記オリジナルファイルを復元するメタデータ復号部と、
を備えていることを特徴とするファイル共有ネットワークシステム。
In a file sharing network system,
A metadata generation unit that generates a plurality of metadata encoded so as to be erasure-correctable from the shared original file;
A metadata decoding unit that acquires and decodes the metadata to acquire the original file and restores the original file;
A file sharing network system characterized by comprising:
前記メタデータ生成部は、消失訂正型レートレス符号によってメタデータを生成することを特徴とする請求項1記載のファイル共有ネットワークシステム。   The file sharing network system according to claim 1, wherein the metadata generation unit generates metadata by an erasure correction type rateless code. 前記メタデータ生成部は、前記オリジナルファイルを分割した複数のブロックに対して、消失訂正符号による符号化を行って、復元に非必須なメタデータを生成するものであり、
前記メタデータ復号部は、復元に非必須なメタデータを、復元に必要な数ほど取得して前記オリジナルファイルを復元することを特徴とする請求項1又は2記載のファイル共有ネットワークシステム。
The metadata generation unit performs encoding with an erasure correction code on a plurality of blocks obtained by dividing the original file, and generates non-essential metadata for restoration.
3. The file sharing network system according to claim 1, wherein the metadata decoding unit restores the original file by acquiring as many metadata as are necessary for restoration as necessary.
ファイル共有ネットワークシステムにおけるファイル転送のために用いられるデータ構造であって、
共有されるオリジナルファイルを消失訂正可能に符号化したメタデータ本体と、
当該メタデータ本体を生成するのに用いられた符号化用の演算式情報と、
を有していることを特徴とするデータ構造。
A data structure used for file transfer in a file sharing network system,
A metadata body that encodes a shared original file so that it can be lost, and
Formula information for encoding used to generate the metadata body,
A data structure characterized by having
メタデータが存在するネットワーク上の位置情報を更に含むことを特徴とする請求項4記載のデータ構造   5. The data structure according to claim 4, further comprising location information on the network where the metadata exists. 前記メタデータは、当該メタデータ生成の基になったオリジナルファイルに関するファイル情報を更に含むことを特徴とする請求項4又は5記載のデータ構造   6. The data structure according to claim 4, wherein the metadata further includes file information related to an original file that is a basis for generating the metadata. ファイル共有ネットワークシステムにおけるファイル転送方法であって、
共有されるオリジナルファイルから、消失訂正可能に符号化された複数のメタデータを生成してネットワークへ送信可能とするステップと、
ファイル取得コンピュータが、ネットワークから前記メタデータを取得して、オリジナルファイルを復元するステップと、
を含むことを特徴とするファイル共有ネットワークシステムにおけるファイル転送方法。
A file transfer method in a file sharing network system, comprising:
Generating a plurality of metadata encoded so as to be erasure-correctable from a shared original file, and enabling transmission to a network;
A file acquisition computer acquires the metadata from a network and restores the original file;
A file transfer method in a file sharing network system.
ファイル共有ネットワークシステムにおけるファイル転送方法であって、
共有されるオリジナルファイルから、消失訂正可能に符号化された複数のメタデータを生成するステップと、
ネットワーク上の複数のキャッシュコンピュータがメタデータを分散して保有するステップと、
ファイル取得コンピュータが、キャッシュコンピュータから前記メタデータを取得して、オリジナルファイルを復元するステップと、
を含み、
ネットワーク上の複数のキャッシュコンピュータが保有するメタデータの種類数が、オリジナルファイルを復元するのに必要なメタデータの種類数よりも多くなるようにメタデータを生成することを特徴とするファイル転送方法。
A file transfer method in a file sharing network system, comprising:
Generating a plurality of metadata encoded to be erasure-correctable from the shared original file;
A plurality of cache computers on the network holding the metadata in a distributed manner;
A file acquisition computer acquires the metadata from a cache computer and restores the original file;
Including
A file transfer method for generating metadata such that the number of types of metadata held by a plurality of cache computers on the network is greater than the number of types of metadata required to restore the original file .
前記キャッシュコンピュータが、自己が保有するメタデータの種類を、他のキャッシュコンピュータへ通知することを特徴とする請求項8記載のファイル転送方法。   9. The file transfer method according to claim 8, wherein the cache computer notifies another cache computer of the type of metadata held by the cache computer. オリジナルファイルからメタデータが生成される度に、異なる符号化用演算式が用いられることを特徴とする請求項7〜9のいずれかに記載のファイル転送方法。   The file transfer method according to claim 7, wherein a different arithmetic expression for encoding is used every time metadata is generated from an original file. ファイル共有のためにファイルをネットワーク上に公開するファイル公開コンピュータであって、
共有されるオリジナルファイルから、消失訂正可能に符号化されたメタデータを生成するメタデータ生成部と、
生成したメタデータをネットワークへ送信する送信部と、
を備えていることを特徴とするファイル公開コンピュータ。
A file publishing computer that publishes files on a network for file sharing,
A metadata generation unit for generating metadata encoded so as to be erasure-correctable from the original file to be shared;
A transmission unit for transmitting the generated metadata to the network;
A file publishing computer characterized by comprising:
前記メタデータ生成部は、
メタデータを生成するための演算式をランダムに決定する演算式発生部と、
前記演算式決定手段によってランダムに決定された演算式を用いてメタデータ生成のための演算を行うメタデータ演算部と、
を備えていることを特徴とする請求項11記載のファイル公開コンピュータ。
The metadata generation unit
An arithmetic expression generator for randomly determining an arithmetic expression for generating metadata;
A metadata operation unit that performs an operation for generating metadata using an operation expression randomly determined by the operation expression determining unit;
The file publishing computer according to claim 11, further comprising:
前記演算式発生部は、オリジナルファイルのファイルサイズに応じて、発生する演算式数を決定することを特徴とする請求項12記載のファイル公開コンピュータ。   13. The file publishing computer according to claim 12, wherein the arithmetic expression generating unit determines the number of arithmetic expressions to be generated according to the file size of the original file. 前記メタデータ生成部は、前記オリジナルファイルを分割した複数のブロックに対して、消失訂正符号による符号化を行って、復元に非必須なメタデータを複数個生成することを特徴とする請求項11〜13のいずれかに記載のファイル公開コンピュータ。   12. The metadata generation unit performs encoding with erasure correction codes on a plurality of blocks obtained by dividing the original file, and generates a plurality of metadata that is not essential for restoration. The file public computer in any one of -13. 前記メタデータ生成部は、ネットワーク上の他のコンピュータからオリジナルファイル送信要求又はメタデータ送信要求がある度に、オリジナルファイルからメタデータを生成することを特徴とする請求項11〜14のいずれかに記載のファイル公開コンピュータ。   The metadata generation unit generates the metadata from the original file every time there is an original file transmission request or a metadata transmission request from another computer on the network. The listed file publishing computer. 前記メタデータ生成部は、ネットワーク上の他のコンピュータからオリジナルファイル送信要求又はメタデータ送信要求がある度に、オリジナルファイルから異なるメタデータを生成することを特徴とする請求項15記載のファイル公開コンピュータ。   16. The file publishing computer according to claim 15, wherein the metadata generation unit generates different metadata from the original file every time there is an original file transmission request or a metadata transmission request from another computer on the network. . 共有されるオリジナルファイルの存在を示す情報をネットワーク上の他のコンピュータに送信する手段を備えていることを特徴とする請求項11〜16のいずれかに記載のファイル公開コンピュータ。   17. The file publishing computer according to claim 11, further comprising means for transmitting information indicating the existence of the original file to be shared to another computer on the network. コンピュータを、請求項11〜17のいずれかに記載のファイル公開コンピュータとして機能させるためのコンピュータプログラム。   The computer program for functioning a computer as a file public computer in any one of Claims 11-17. ネットワークでのファイル共有のために、キャッシュブロックを保有可能なキャッシュコンピュータであって、
ファイル共有されるオリジナルファイルを消失訂正可能に符号化したメタデータをキャッシュブロックとして記憶するメタデータ記憶部と、
メタデータ記憶部に記憶されているメタデータをネットワークへ送信する送信部と、
を備えていることを特徴とするキャッシュコンピュータ。
A cache computer capable of holding a cache block for file sharing on a network,
A metadata storage unit that stores, as a cache block, metadata obtained by encoding an original file to be shared so as to be erasure-correctable;
A transmission unit for transmitting the metadata stored in the metadata storage unit to the network;
A cache computer comprising:
前記メタデータ記憶部は、オリジナルファイルを復元するために必要な数よりも少ない数のメタデータを記憶することを特徴とする請求項19記載のキャッシュコンピュータ。   20. The cache computer according to claim 19, wherein the metadata storage unit stores a smaller number of metadata than is necessary for restoring the original file. ネットワーク上のあるコンピュータから送信されてきた1個又は複数個のメタデータをネットワーク上の他のコンピュータへ中継する中継手段を備え、
前記メタデータ記憶部は、中継のために受信した1個又は複数個のメタデータのうちの一部又は全部を記憶することを特徴とする請求項19又は20記載のキャッシュコンピュータ。
Relay means for relaying one or more metadata transmitted from a computer on the network to other computers on the network;
21. The cache computer according to claim 19, wherein the metadata storage unit stores part or all of one or a plurality of metadata received for relay.
中継のために受信した1個又は複数個のメタデータの中からメタデータ記憶部に記憶すべきメタデータを選択するとともに、既にメタデータ記憶部に記憶されているメタデータのうち破棄すべきメタデータを選択する手段を備えていることを特徴とする請求項21記載のキャッシュコンピュータ。   The metadata to be stored in the metadata storage unit is selected from one or a plurality of metadata received for relay, and the metadata to be discarded among the metadata already stored in the metadata storage unit. The cache computer according to claim 21, further comprising means for selecting data. ネットワーク上の他のキャッシュコンピュータが保有するメタデータの種類を取得する手段を備えていることを特徴とする請求項19〜22のいずれかに記載のキャッシュコンピュータ。   The cache computer according to any one of claims 19 to 22, further comprising means for acquiring a type of metadata held by another cache computer on the network. ネットワーク上の他のキャッシュコンピュータへ、自己が保有するメタデータの種類を通知する手段を備えていることを特徴とする請求項19〜23のいずれかに記載のキャッシュコンピュータ。   The cache computer according to any one of claims 19 to 23, further comprising means for notifying another cache computer on the network of the type of metadata held by itself. 隣接する他のキャッシュコンピュータが保有するメタデータとは種類が異なるメタデータが自己のメタデータ記憶部中に少なくとも1つ含まれるように、メタデータ記憶部に記憶すべきメタデータが選択されることを特徴とする請求項19〜24のいずれかに記載のキャッシュコンピュータ。   The metadata to be stored in the metadata storage unit is selected so that at least one type of metadata different from the metadata held by other adjacent cache computers is included in its own metadata storage unit. The cache computer according to any one of claims 19 to 24. 前記送信部がネットワークへ送信するメタデータは、メタデータ記憶部に記憶されているメタデータのうち、他のコンピュータが要求する種類のメタデータであることを特徴とする請求項19〜25のいずれかに記載のキャッシュコンピュータ。   26. The metadata transmitted from the transmission unit to the network is metadata of a type requested by another computer among the metadata stored in the metadata storage unit. A cash computer according to the above. ネットワーク上の他のコンピュータから、送信不要なメタデータの種類を示す不要メタデータ情報を受信して、前記不要メタデータ情報が示すメタデータの種類に該当しないメタデータをネットワーク上へ送信することを特徴とする請求項19〜26記載のキャッシュコンピュータ。   Receiving unnecessary metadata information indicating a type of unnecessary metadata to be transmitted from another computer on the network, and transmitting metadata not corresponding to the metadata type indicated by the unnecessary metadata information to the network. 27. The cache computer according to claim 19, wherein the cache computer is a cache computer. コンピュータを、請求項19〜28のいずれかに記載のキャッシュコンピュータとして機能させるためのコンピュータプログラム。   A computer program for causing a computer to function as the cache computer according to any one of claims 19 to 28. ネットワークから共有ファイルを取得するファイル取得するファイル取得コンピュータであって、
ファイル共有されるオリジナルファイルを消失訂正可能に符号化したメタデータをネットワークから取得するメタデータ受信部と、
取得したメタデータを復号化して前記オリジナルファイルを復元する復号部と、
を備えていることを特徴とするファイル取得コンピュータ。
A file acquisition computer that acquires a shared file from a network,
A metadata receiver that obtains from the network metadata that is encoded so that the original file to be shared can be lost and corrected;
A decryption unit that decrypts the acquired metadata and restores the original file;
A file acquisition computer comprising:
ネットワーク上に存在するメタデータを探索する手段を備えていることを特徴とする請求項29記載のファイル取得コンピュータ。   30. The file acquisition computer according to claim 29, further comprising means for searching for metadata existing on the network. 前記メタデータ受信部は、オリジナルファイルを復元するのに必要なメタデータの種類数以上の種類数のメタデータをネットワークから取得することを特徴とする請求項29又は30記載のファイル取得コンピュータ。   31. The file acquisition computer according to claim 29, wherein the metadata reception unit acquires metadata of a number of types equal to or greater than the number of types of metadata necessary for restoring the original file from the network. オリジナルファイルを復元するのに必要なメタデータの種類数を算出するために必要な情報をネットワークから取得することを特徴とする請求項29〜31のいずれかに記載のファイル取得コンピュータ。   32. The file acquisition computer according to claim 29, wherein information necessary for calculating the number of types of metadata necessary for restoring the original file is acquired from a network. 取得したメタデータを用いて復号化してもオリジナルファイル復元に失敗した場合には、既に取得しているメタデータとは別の種類のメタデータを追加的にネットワークから取得することを特徴とする請求項29〜32のいずれかに記載のファイル取得コンピュータ。   If the original file restoration fails even if decryption is performed using the acquired metadata, metadata of a different type from the already acquired metadata is additionally acquired from the network. Item 33. The file acquisition computer according to any one of Items 29 to 32. メタデータ化していないオリジナルファイルを有するファイル公開コンピュータよりも、メタデータをキャッシュブロックとして保有するキャッシュコンピュータから優先的にメタデータを取得することを特徴とする請求項29〜33のいずれかに記載のファイル取得コンピュータ。   The metadata is preferentially acquired from a cache computer having metadata as a cache block rather than a file public computer having an original file that has not been converted to metadata. File acquisition computer. より少ない数の論理パスで接続されている他のコンピュータから優先的にメタデータを取得することを特徴とする請求項29〜34のいずれかに記載のファイル取得コンピュータ。   35. The file acquisition computer according to claim 29, wherein metadata is acquired preferentially from other computers connected by a smaller number of logical paths. 前記復号部によって復元されたオリジナルファイルからメタデータを再生成するメタデータ生成部を有し、
生成したメタデータをネットワークに公開することを特徴とする請求項29〜35のいずれかに記載のファイル取得コンピュータ。
A metadata generation unit that regenerates metadata from the original file restored by the decoding unit;
36. The file acquisition computer according to claim 29, wherein the generated metadata is made public.
前記メタデータ生成部は、オリジナルファイル復元に用いたメタデータとは種類が異なるメタデータを生成可能であることを特徴とする請求項36記載のファイル取得コンピュータ。   37. The file acquisition computer according to claim 36, wherein the metadata generation unit is capable of generating metadata having a different type from the metadata used for original file restoration. コンピュータを、請求項29〜37のいずれかに記載のファイル取得コンピュータとして機能させるためのコンピュータプログラム。   A computer program for causing a computer to function as the file acquisition computer according to any one of claims 29 to 37.
JP2007010093A 2007-01-19 2007-01-19 File sharing network system, data structure used for file transer of file sharing network system, file transfer method for file sharing network system, file disclosure computer, cache computer, file acquisition computer and computer program Pending JP2008176615A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007010093A JP2008176615A (en) 2007-01-19 2007-01-19 File sharing network system, data structure used for file transer of file sharing network system, file transfer method for file sharing network system, file disclosure computer, cache computer, file acquisition computer and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007010093A JP2008176615A (en) 2007-01-19 2007-01-19 File sharing network system, data structure used for file transer of file sharing network system, file transfer method for file sharing network system, file disclosure computer, cache computer, file acquisition computer and computer program

Publications (1)

Publication Number Publication Date
JP2008176615A true JP2008176615A (en) 2008-07-31

Family

ID=39703583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007010093A Pending JP2008176615A (en) 2007-01-19 2007-01-19 File sharing network system, data structure used for file transer of file sharing network system, file transfer method for file sharing network system, file disclosure computer, cache computer, file acquisition computer and computer program

Country Status (1)

Country Link
JP (1) JP2008176615A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010198239A (en) * 2009-02-24 2010-09-09 Fujitsu Ltd File storage system
JPWO2014103078A1 (en) * 2012-12-28 2017-01-12 富士通株式会社 Information processing system, information processing system management method, and information processing system management program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010198239A (en) * 2009-02-24 2010-09-09 Fujitsu Ltd File storage system
JPWO2014103078A1 (en) * 2012-12-28 2017-01-12 富士通株式会社 Information processing system, information processing system management method, and information processing system management program
US9558038B2 (en) 2012-12-28 2017-01-31 Fujitsu Limited Management system and management method for managing information processing apparatus

Similar Documents

Publication Publication Date Title
JP3836858B2 (en) Data distribution method, system, transmission method and program
JP5594828B2 (en) Data distributed storage device and method, program, and recording medium
EP1612982B1 (en) Content distribution using network coding
CA2642158C (en) Reliable, efficient peer-to-peer storage
US20070177739A1 (en) Method and Apparatus for Distributed Data Replication
US20100094921A1 (en) Peer-To-Peer Distributed Storage
US8954793B2 (en) Method and a storage server for data redundancy
US20110208828A1 (en) Node apparatus and computer-readable storage medium for computer program
JP2016525256A (en) Method and apparatus for providing redundant data access
US20130198151A1 (en) Methods for file sharing related to the bit fountain protocol
JP6671617B1 (en) Distributed storage platform and application program realized by blockchain technology and distributed storage technology
JP4169215B2 (en) Data distribution method, system, transmission method and program
CN112699094A (en) File storage method, data retrieval method, corresponding device and system
JP2008176615A (en) File sharing network system, data structure used for file transer of file sharing network system, file transfer method for file sharing network system, file disclosure computer, cache computer, file acquisition computer and computer program
US10216577B2 (en) Multicast raid: distributed parity protection
JP2017142605A (en) Backup restoration system and restoration method
JP2007272540A (en) Data distributing method and data distributing system
JP2006271006A (en) Data distribution method, system, transmission method, and program
JP7462922B2 (en) Distributed storage platform and application program realized by blockchain technology and distributed storage technology
JP2019061408A (en) Information processing apparatus and information processing program
Park et al. A novel hybrid P2P and cloud storage system for retrievability and privacy enhancement
Henson et al. Guidelines for using compare-by-hash
Lei et al. NCStorage: A Prototype of Network Coding-based Distributed Storage System
CN109040258B (en) Data processing method and device based on private seed file
WO2017153833A1 (en) A system for cloud computing and/or storage using a plurality of independent clouds