JP6396849B2 - Generator matrix configuration apparatus and generator matrix configuration method - Google Patents
Generator matrix configuration apparatus and generator matrix configuration method Download PDFInfo
- Publication number
- JP6396849B2 JP6396849B2 JP2015110148A JP2015110148A JP6396849B2 JP 6396849 B2 JP6396849 B2 JP 6396849B2 JP 2015110148 A JP2015110148 A JP 2015110148A JP 2015110148 A JP2015110148 A JP 2015110148A JP 6396849 B2 JP6396849 B2 JP 6396849B2
- Authority
- JP
- Japan
- Prior art keywords
- row
- column
- matrix
- rows
- code
- 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.)
- Active
Links
- 239000011159 matrix material Substances 0.000 title claims description 182
- 238000000034 method Methods 0.000 title claims description 33
- 238000010276 construction Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 description 27
- 238000004364 calculation method Methods 0.000 description 22
- 230000001788 irregular Effects 0.000 description 15
- 238000011084 recovery Methods 0.000 description 7
- 230000000052 comparative effect Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000009897 systematic effect Effects 0.000 description 3
- 238000004880 explosion Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
Images
Landscapes
- Error Detection And Correction (AREA)
Description
本発明は、分散ストレージシステムにおいてデータを符号化する非正則の生成行列を構成するための生成行列構成装置及び生成行列構成方法に関する。 The present invention relates to a generator matrix configuration device and a generator matrix configuration method for configuring an irregular generator matrix for encoding data in a distributed storage system.
近年の映像の高品質化およびアプリケーションの扱うデータ量の増大により、映像サービスの提供に必要なストレージの規模が拡大し、需要に応じてハードウェアの規模を最適化可能なクラウドストレージの利用が進んでいる。ストレージシステムには高い可用性、長期の耐久性が求められるが、ディスク容量の増加によりRAID(Redundant Array of Independent Disk)による冗長化を行うシステムでは複数ディスク故障時の信頼性が低くなることが知られている(例えば、非特許文献1参照)。そのため、複数故障に対する信頼性を高める冗長化技術が検討されている。 With the recent increase in video quality and the amount of data handled by applications, the scale of storage required to provide video services has expanded, and the use of cloud storage that can optimize the scale of hardware according to demand has advanced. It is out. Storage systems are required to have high availability and long-term durability, but it is known that the reliability of multiple disk failures is reduced in a system that performs redundancy by RAID (Redundant Array of Independent Disk) due to an increase in disk capacity. (For example, refer nonpatent literature 1). Therefore, a redundancy technique for improving the reliability against a plurality of failures has been studied.
現在HADOOP(登録商標)では、冗長性の担保のため3倍の複製を保存する方式が採用されている。しかし、複製により高可用性を実現するにはレプリカ数を増やす必要があり、ストレージの容量効率が下がることから大規模なストレージシステムへの適用は経済的ではない。ディスクの容量増加や計算資源の高性能化を背景に、消失訂正符号を用いたストレージ容量効率の高い冗長化手法が注目されている。消失訂正符号を適用することで複製と同等の耐久性および可用性を格段に低いネットワークコストおよびストレージコストで実現できることが知られており(例えば、非特許文献2参照)、消失訂正符号を利用した分散ストレージサービスが提供されている。 Currently, HADOOP (registered trademark) employs a method of storing three times as many copies for ensuring redundancy. However, in order to achieve high availability by replication, it is necessary to increase the number of replicas, and the capacity efficiency of the storage is lowered, so that it is not economical to apply to a large-scale storage system. With the background of increased disk capacity and higher performance of computing resources, attention is focused on a redundancy method with high storage capacity efficiency using erasure correction codes. It is known that by applying an erasure correction code, durability and availability equivalent to duplication can be realized at a significantly lower network cost and storage cost (for example, see Non-Patent Document 2), and dispersion using an erasure correction code Storage service is provided.
CLEVERSAFE(登録商標)では、リードソロモン符号(RS符号)をベースとした符号化技術を用いて分散ストレージの冗長化を行う(例えば、非特許文献3参照)。非組織符号であるRS符号の場合、データをk分割し符号化したn個の断片を保存し、n個中k個の断片を集めることでデータを復元する。この場合ストレージ容量の利用効率は高くなるが、故障ディスクの復旧時に他のディスクから送るデータの総量が大きくなる、またはガロア体の計算が必要なため復旧に係る計算量が多くなることが課題である。そこで、故障ディスク修復に必要な通信量を最小化可能な再生成符号(MBR符号)が提案された(例えば、非特許文献4参照)。 In CLEVERSAFE (registered trademark), distributed storage is made redundant by using an encoding technique based on a Reed-Solomon code (RS code) (for example, see Non-Patent Document 3). In the case of an RS code, which is a non-systematic code, data is restored by collecting k pieces of data obtained by dividing the data into k pieces and collecting k pieces of the n pieces. In this case, the storage capacity utilization efficiency is high, but the problem is that the total amount of data sent from other disks at the time of recovery of the failed disk becomes large, or the calculation amount related to recovery increases because the calculation of Galois field is required. is there. Therefore, a regenerated code (MBR code) that can minimize the amount of communication necessary for repairing the failed disk has been proposed (see, for example, Non-Patent Document 4).
MBR符号は再生成符号においてノードを再構成するために送るデータの総量を最小化した符号であり、ストレージ容量の利用効率を最適化したMSR符号も提案されている。しかし、再生成符号ではノード数が多くなるという課題があり、ディスク修復時にデータを送るヘルパーノードの数を最小化したピラミッド符号が提案された(例えば、非特許文献5参照)。しかし、これらは密行列に基づく符号であるため、符号化に伴う計算量が大きいことが課題となっている。 The MBR code is a code that minimizes the total amount of data that is sent to reconfigure the node in the regenerated code, and an MSR code that optimizes the utilization efficiency of storage capacity has also been proposed. However, there is a problem that the number of nodes increases in the regenerated code, and a pyramid code in which the number of helper nodes that send data at the time of disk restoration is minimized has been proposed (for example, see Non-Patent Document 5). However, since these are codes based on a dense matrix, there is a problem that the amount of calculation accompanying encoding is large.
一方で、XOR演算による符号化で計算負荷を抑えたFlat XOR符号が提案されている(例えば、非特許文献6参照)。しかし、HD Combination codesなどのFlat XOR符号では生成行列の構成が限られており、ディスク復旧時の通信量が最適化されていなかった。そこで、非正則構成の生成行列を用いたFlat XOR符号により通信量を削減する手法が提案された(例えば、非特許文献7参照)。しかし現在までのところ、通信量を最小化する非正則構成のFlat XOR符号は取り得る符号長が数十までの範囲に限定されており、分散数の大きいストレージシステムには適用できないという課題がある。 On the other hand, there has been proposed a Flat XOR code in which the calculation load is suppressed by encoding using an XOR operation (see, for example, Non-Patent Document 6). However, in the Flat XOR code such as HD Combination codes, the configuration of the generator matrix is limited, and the communication amount at the time of disk restoration has not been optimized. In view of this, a method has been proposed in which the communication amount is reduced by a Flat XOR code using a generation matrix having an irregular structure (see, for example, Non-Patent Document 7). However, to date, the non-regular configuration of Flat XOR code that minimizes the amount of communication is limited to a range of possible code lengths of up to several tens, and there is a problem that it cannot be applied to a storage system with a large number of distributions. .
従来のストレージシステムに適用されるFlat XOR符号は、故障ディスク修復時に必要な通信量が最小化されていなかった。そこで、行重みに偏りを持たせた非正則構成の生成行列を利用しRecovery Equation Algorithmを用いた復号を行うことで、通信量を削減することができる。 The Flat XOR code applied to the conventional storage system does not minimize the amount of communication required for repairing the failed disk. Therefore, the amount of communication can be reduced by performing decoding using the recovery equation algorithm using a generation matrix having an irregular configuration with biased row weights.
また、符号長n、分割数k、列重みwのFlat XOR符号を構成するとき、符号長が大きい場合にFlat XOR符号の生成行列を探索すると、n−k及びwの組み合わせからk種類を選ぶ組み合わせ爆発が起こり、k=n−kCw以外の分割数について実現可能な計算時間で符号を決定することができない。この場合、Flat XOR符号の生成行列は行重みおよび列重みを一定とする正則構成となり、演算負荷・通信量の小さい非正則構成の生成行列は構成できなかった。 Further, when a Flat XOR code having a code length n, a division number k, and a column weight w is configured, when a code matrix of a Flat XOR code is searched when the code length is large, k types are selected from combinations of n−k and w. A combination explosion occurs and the code cannot be determined with a feasible calculation time for a number of divisions other than k = n−k C w . In this case, the generation matrix of the Flat XOR code has a regular configuration in which the row weight and the column weight are constant, and a generation matrix having a non-regular configuration with a small calculation load / communication amount cannot be configured.
そこで、本発明は、n=100程度の大きな符号長であってもFlat XOR符号の非正則構成の生成行列を構成可能にすることを目的とする。 Therefore, an object of the present invention is to make it possible to construct a non-regular configuration generator matrix of a Flat XOR code even with a large code length of about n = 100.
本発明は、生成行列の部分的な領域に規則的に1を配置し、残りの領域を探索するという制限を設けることとした。 In the present invention, 1 is regularly arranged in a partial region of the generator matrix, and the restriction of searching the remaining region is provided.
具体的には、本発明に係る生成行列構成装置は、
データの分割数及びデータを格納するディスク数に基づいてゼロ行列を作成するゼロ行列作成部と、
前記ゼロ行列における所定行において、各列に配置する「1」の個数が一定値となるように、前記所定行の各列に「1」又は「0」を配置する所定行構成部と、
前記ゼロ行列における前記所定行を除く全ての行において、各列に配置する「1」の個数が予め定められた符号の最小距離から前記一定値を差し引いた値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記所定行を除く全ての行の各列に「1」又は「0」を配置する行列構成部と、
を備える。
Specifically, the generator matrix construction device according to the present invention is:
A zero matrix creation unit that creates a zero matrix based on the number of data divisions and the number of disks storing data;
A predetermined row configuration unit that arranges “1” or “0” in each column of the predetermined row so that the number of “1” arranged in each column has a constant value in the predetermined row in the zero matrix;
Arranged in all rows, is the value obtained by subtracting the predetermined value from the minimum distance of the code in which the number is predetermined in the "1" to place in each column, and a "1", except for the predetermined row before Symbol zero matrix A matrix configuration unit that arranges “1” or “0” in each column of all rows except the predetermined row so that the combination of rows to be different is different for each column;
Is provided.
本発明に係る生成行列構成装置では、前記所定行が2以上の場合、前記行列構成部が、前記ゼロ行列における前記所定行を除く全ての行における複数の列において、「1」を配置する行の組み合わせが同じになる場合、当該列同士で前記所定行における「1」を配置する行の組み合わせが異なるように、前記所定行を除く全ての行の各列に「1」又は「0」を配置してもよい。 In the generator matrix configuration device according to the present invention, when the predetermined row is 2 or more, the matrix configuration unit arranges “1” in a plurality of columns in all rows except the predetermined row in the zero matrix. If the combination of the same, "1" is as combinations of different row disposed at the predetermined row in the column between the "1" or "0" in each column of all rows except the predetermined row You may arrange.
具体的には、本発明に係る生成行列構成装置は、
データの分割数及びデータを格納するディスク数に基づいてゼロ行列を作成するゼロ行列作成部と、
前記ゼロ行列における特定の1行において、行に配置する「1」の個数が一定値以上となるように、前記特定の1行の各列に「1」又は「0」を配置する特定行構成部と、
前記特定の1行に「1」が配置された列については、前記ゼロ行列における前記特定の1行を除く全ての行において、各列に配置する「1」の個数が予め定められた符号の最小距離から1を差し引いた値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記特定の1行を除く全ての行の各列に「1」又は「0」を配置し、
前記特定の1行に「0」が配置された列については、前記ゼロ行列における前記特定の1行を除く全ての行において、各列に配置する「1」の個数が前記符号の最小距離に等しい値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記特定の1行を除く全ての行の各列に「1」又は「0」を配置する行列構成部と、
を備える。
Specifically, the generator matrix construction device according to the present invention is:
A zero matrix creation unit that creates a zero matrix based on the number of data divisions and the number of disks storing data;
Specific row configuration in which “1” or “0” is arranged in each column of the specific one row so that the number of “1” arranged in the row is equal to or greater than a certain value in the specific row in the zero matrix And
For the column in which “1” is arranged in the specific row, the number of “1” s to be arranged in each column in all rows except the specific row in the zero matrix is a predetermined code. The value obtained by subtracting 1 from the minimum distance , and “1” or “0” in each column of all rows except the specific one row so that the combination of rows in which “1” is arranged is different for each column. Place and
Regarding the column in which “0” is arranged in the specific row, the number of “1” arranged in each column is the minimum distance of the code in all the rows except the specific row in the zero matrix. It becomes equal, and "1" so that the combination of rows to place differs for each row, and the matrix component to place "1" or "0" in each column in every row except the particular one line ,
Is provided.
本発明に係る生成行列構成装置では、前記ゼロ行列は、データの分割数に等しい列数を有し、かつデータを格納するディスク数から前記データの分割数を差し引いて求められるパリティディスク数に等しい行数を有してもよい。 In the generator matrix configuration device according to the present invention, the zero matrix has the number of columns equal to the number of data divisions , and is equal to the number of parity disks obtained by subtracting the number of data divisions from the number of disks storing data. You may have the number of rows .
具体的には、本発明に係る生成行列構成方法は、
生成行列構成装置が実行する生成行列構成方法であって、
データの分割数及びデータを格納するディスク数に基づいてゼロ行列を作成するゼロ行列作成ステップと、
前記ゼロ行列における所定行において、各列に配置する「1」の個数が一定値となるように、前記所定行の各列に「1」又は「0」を配置する所定行構成ステップと、
前記ゼロ行列における前記所定行を除く全ての行において、各列に配置する「1」の個数が予め定められた符号の最小距離から前記一定値を差し引いた値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記所定行を除く全ての行の各列に「1」又は「0」を配置する行列構成ステップと、
を実行する。
Specifically, the generator matrix construction method according to the present invention is:
A generator matrix configuration method executed by a generator matrix configuration apparatus,
Creating a zero matrix based on the number of data divisions and the number of disks storing the data; and
A predetermined row configuration step of arranging “1” or “0” in each column of the predetermined row so that the number of “1” arranged in each column has a constant value in the predetermined row in the zero matrix;
Arranged in all rows, is the value obtained by subtracting the predetermined value from the minimum distance of the code in which the number is predetermined in the "1" to place in each column, and a "1", except for the predetermined row before Symbol zero matrix A matrix construction step of arranging “1” or “0” in each column of all rows except the predetermined row so that the combination of rows to be different is different for each column;
Execute.
具体的には、本発明に係る生成行列構成方法は、
生成行列構成装置が実行する生成行列構成方法であって、
データの分割数及びデータを格納するディスク数に基づいてゼロ行列を作成するゼロ行列作成ステップと、
前記ゼロ行列における特定の1行において、行に配置する「1」の個数が一定値以上となるように、前記特定の1行の各列に「1」又は「0」を配置する特定行構成ステップと、
前記特定の1行に「1」が配置された列については、前記ゼロ行列における前記特定の1行を除く全ての行において、各列に配置する「1」の個数が予め定められた符号の最小距離から1を差し引いた値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記特定の1行を除く全ての行の各列に「1」又は「0」を配置し、
前記特定の1行に「0」が配置された列については、前記ゼロ行列における前記特定の1行を除く全ての行において、各列に配置する「1」の個数が前記符号の最小距離に等しい値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記特定の1行を除く全ての行の各列に「1」又は「0」を配置する行列構成ステップと、
を実行する。
Specifically, the generator matrix construction method according to the present invention is:
A generator matrix configuration method executed by a generator matrix configuration apparatus,
Creating a zero matrix based on the number of data divisions and the number of disks storing the data; and
Specific row configuration in which “1” or “0” is arranged in each column of the specific one row so that the number of “1” arranged in the row is equal to or greater than a certain value in the specific row in the zero matrix Steps,
For the column in which “1” is arranged in the specific row, the number of “1” s to be arranged in each column in all rows except the specific row in the zero matrix is a predetermined code. The value obtained by subtracting 1 from the minimum distance , and “1” or “0” in each column of all rows except the specific one row so that the combination of rows in which “1” is arranged is different for each column. Place and
Regarding the column in which “0” is arranged in the specific row, the number of “1” arranged in each column is the minimum distance of the code in all the rows except the specific row in the zero matrix. It becomes equal, and "1" so that the combination of rows to place differs for each column, a matrix arrangement step of placing the "1" or "0" in each column in every row except the particular one line ,
Execute.
本発明は、n=100程度の大きな符号長であってもFlat XOR符号の非正則構成の生成行列の構成が可能であるため、多地点に分散したストレージシステムにおいて疎行列を用いた符号により小さい演算負荷で冗長化を行い、正則Flat XOR符号およびRS符号と比べてディスク復旧時の通信量および演算量を削減することができる。 Since the present invention can construct a non-regular configuration generator matrix of a Flat XOR code even with a large code length of about n = 100, it is smaller than a code using a sparse matrix in a multi-point distributed storage system. Redundancy is performed with a calculation load, and the communication amount and the calculation amount at the time of disk restoration can be reduced as compared with the regular Flat XOR code and the RS code.
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In addition, this invention is not limited to embodiment shown below. These embodiments are merely examples, and the present invention can be implemented in various modifications and improvements based on the knowledge of those skilled in the art. In the present specification and drawings, the same reference numerals denote the same components.
従来のFlat XOR符号は、(n−k)及びwの組み合わせからk種類を選ぶ数の行列から生成行列を選択する必要があり、符号長が大きいときに組合せ爆発となるため、とりうる符号長が限定されていた。本実施形態に係る発明は、符号長が大きい場合に広範囲の分割数でFlat XOR符号の非正則構成の生成行列Gを構成可能とする。これにより本実施形態に係る発明は、生成行列の部分的な領域に規則的に各列p個の1を配置し、残りの領域にw−p個の1を配置する問題に制限することで探索を可能とする。 Since the conventional Flat XOR code needs to select a generator matrix from the number of matrices that select k types from the combination of (n−k) and w, and a combination explosion occurs when the code length is large, the possible code length Was limited. The invention according to the present embodiment makes it possible to construct a non-regular configuration generation matrix G of Flat XOR codes with a wide range of division numbers when the code length is large. As a result, the invention according to this embodiment is limited to the problem of regularly arranging 1 p in each column in a partial region of the generator matrix and placing wp 1s in the remaining region. Allows searching.
本実施形態に係るストレージシステムは、符号化装置と、複数のディスクと、復号装置と、を備える。図1に、本実施形態に係る符号化装置の概略を示す。符号化装置10は、冗長化の対象となるデータを符号化する。複数のディスク20は、冗長化の対象となるデータを格納する。復号装置(不図示)は、非正則生成行列Gを用いて、複数のディスクに格納されているデータの修復を行う。
The storage system according to the present embodiment includes an encoding device, a plurality of disks, and a decoding device. FIG. 1 shows an outline of an encoding apparatus according to this embodiment. The
符号化装置10は、データ分割部11と、符号化部12と、データ分配部13と、を備える。データ分割部11は、冗長化するデータをk個に分割する。符号化部12は、非正則構成の生成行列Gを用いて、k個に分割したデータを符号化し、(n−k)個の冗長データおよびk個に分割したデータを含むn個の符号化データを生成する。データ分配部13は、符号化部12の符号化したn個のデータを、各ディスク20に送信する。
The
符号化装置は、コンピュータを、各機能部として機能させることで実現してもよい。この場合、符号化装置内のCPU(Central Processing Unit)が、記憶部(不図示)に記憶されたコンピュータプログラムを実行することで、各構成を実現する。図1では、ディスク20の数と生成する符号化データの数が等しい場合を示すが、ディスク20の数と生成する符号化データの数は同一でなくともよい。例えば、分散した各ディスクに複数の符号化データを保存するなどの使い方をすることも考えられる。また、ディスク20は地理的に分散して配置され、ネットワークにより接続されていてもよい。
The encoding device may be realized by causing a computer to function as each functional unit. In this case, each configuration is realized by a CPU (Central Processing Unit) in the encoding apparatus executing a computer program stored in a storage unit (not shown). Although FIG. 1 shows the case where the number of
(生成行列構成装置)
本実施形態に係る符号化部12は、生成行列構成装置として機能し、非正則構成の生成行列Gを構成する。本実施形態では、ストレージシステムを構成する全ディスク数を符号長に等しいn、データの分割数をk、パリティディスク数をn−k、符号の最小距離をwとする。n−k行k列のゼロ行列をZとする。
(Generator matrix construction device)
The
(a)全探索可能な範囲の非正則の生成行列Gの第1の構成方法
符号長nがある程度小さく、n−k及びwの組み合わせからk種類を選ぶ全組み合わせについて全探索可能である場合、k−n行n列のゼロ行列Zを作成し、Zの各列について探索した組み合わせに相当する行の値を1とする。構成した行列の中で、任意のf列{f=1,2,…,w}を修復可能な行列を生成行列Gとし、最も平均通信量の小さい生成行列を選択する。
(A) First configuration method of non-regular generator matrix G in a fully searchable range When the code length n is small to some extent and k search is possible for all combinations in which k types are selected from combinations of nk and w, A zero matrix Z of k−n rows and n columns is created, and a row value corresponding to a combination searched for each column of Z is set to 1. Among the constructed matrices, a matrix capable of repairing an arbitrary f column {f = 1, 2,..., W} is set as a generation matrix G, and a generation matrix having the smallest average traffic is selected.
図2に、第1の構成法によって構成した生成行列Gの一例を示す。n=16、k=10、w=3の場合を示す。生成行列の各列について、n−k行からw行を選ぶ組合せは列内で1を配置する行の組合せとなる。n−k=6、w=3の場合、各列内の1の配置パターン数は図に示すようにn−kCwとなり、20通り存在する。20通りの配置パターンからk列分を選択することで生成行列を構成するため、とりうる生成行列候補数は20Ckとなる。k=10であるため、とりうる生成行列候補数は184756通りとなる。f=2とすると、その中の2つの生成行列候補である行列(1)および行列(184756)が、生成行列Gとなる。 FIG. 2 shows an example of the generator matrix G configured by the first configuration method. The case where n = 16, k = 10, and w = 3 is shown. For each column of the generator matrix, the combination of selecting w rows from nk rows is a combination of rows in which 1 is arranged in the column. When n−k = 6 and w = 3, the number of one arrangement pattern in each column is n−k C w as shown in the figure, and there are 20 types. Since the generation matrix is configured by selecting k columns from the 20 arrangement patterns, the number of possible generation matrix candidates is 20 C k . Since k = 10, the number of possible generation matrix candidates is 184756. When f = 2, the matrix (1) and the matrix (184756) which are two generation matrix candidates among them are the generation matrix G.
(b)全探索不可能な範囲の非正則の生成行列Gの第2の構成方法
符号長nが大きい場合、n−k及びwの組み合わせからk種類を選ぶ数が非常に大きくなるため、生成行列Gの第1の構成法を用いて行列を構成することができない。そこで、生成行列を2つの領域に分割し、列重みを割り振ることで探索範囲に制約をつけ、非正則の生成行列を構成する。具体的には、以下の手順で非正則の生成行列Gを構成する。
(B) Second configuration method of non-regular generator matrix G in a range where full search is impossible When code length n is large, the number of k types to be selected from the combination of n−k and w becomes very large. A matrix cannot be constructed using the first construction method of the matrix G. Therefore, the generation matrix is divided into two regions, and the search range is restricted by assigning column weights, thereby forming a non-regular generation matrix. Specifically, the non-regular generator matrix G is constructed by the following procedure.
具体的には、符号化部12は、ゼロ行列作成ステップを実行するゼロ行列作成部と、所定行構成ステップを実行する所定行構成部と、行列構成ステップを実行する行列構成部と、を備える。ゼロ行列作成ステップにおいてステップS101を実行し、所定行構成ステップにおいてステップS102及びS103を実行し、行列構成ステップにおいてステップS104及びS105を実行する。
Specifically, the
ステップS101:n−k行k列のゼロ行列Zを作成する。 Step S101: A zero matrix Z of nk rows and k columns is created.
例えば、n=16、k=10、w=3の場合、図3に示すように、ゼロ行列Zは6行10列となる。 For example, when n = 16, k = 10, and w = 3, the zero matrix Z has 6 rows and 10 columns as shown in FIG.
ステップS102:行重みに偏りを持たせるため、1行目からx行目までの行重みをpとおき、式1を満たす[x,p]をすべて求める。
(数1)
xCp×n−k−xCw−p≧k (式1)
ただし、x>pである。
Step S102: In order to give bias to the row weights, the row weights from the first row to the x-th row are set as p, and all [x, p] satisfying
(Equation 1)
x C p × n-k- x C w-p ≧ k ( Equation 1)
However, x> p.
例えば、n=16、k=10、w=3の場合、[x,p]の組み合わせは[1,1]、[2,1]、[4,2]、[5,2]、[6,3]となる。[1,1]の場合は1行目、[2,1]の場合は2行目が所定行となる。 For example, when n = 16, k = 10, and w = 3, the combinations of [x, p] are [1,1], [2,1], [4,2], [5,2], [6 , 3]. In the case of [1, 1], the first row is designated, and in the case of [2, 1], the second row is designated.
ステップS103:Zの1行目からx行目までの範囲に列重みpとなるように1を配置した行列をZ3とする。xCpの組み合わせにより各列において1となる行を決定する。 Step S103: A matrix in which 1 is arranged in the range from the first row to the x-th row of Z so as to have the column weight p is defined as Z3. The row which becomes 1 in each column is determined by the combination of x C p .
例えば、列重みがp=1であるとする。
x=1のとき、Z31に示すように、1行目に「1111111111」が配置されている。
x=2のとき、Z32に示すように、1行目に「1010101010」が配置され、2行目に「0101010101」が配置されている。
For example, assume that the column weight is p = 1.
When x = 1, “1111111111” is arranged in the first row as indicated by Z31.
When x = 2, as shown in Z32, “1010101010” is arranged in the first row, and “0101010101” is arranged in the second row.
ステップS104:Z3のx+1行目からn−k行目までの範囲に列重みw−pとなるように以下の方法で1を配置する。n−k−xCw−p≦kの場合、1列目からn−k−xCw−p行目までの範囲に、n−k−xCw−pの組み合わせにより各列において1となる行を決定した行列Bを置き、r(n−k−xCw−p)+1列目から2r(n−k−xCw−p)列目にBをr列{r=1,2,…,x−1}循環させた行列Brを置く。Brの列数合計がkを超える場合はランダムにk列を選択しZ3の1列目からk列目に配置する。 Step S104: 1 is arranged by the following method so that the column weight wp is in the range from the x + 1th row to the nk row of Z3. In the case of nk −xC wp ≦ k, 1 in each column in the range from the first column to the nk−xC wp row by the combination of nk−xC wp Place the matrix B to determine the rows to, r (n-k-x C w-p) +1 row 2r (n-k-x C w-p) B into th column r columns {r = 1 , 2,..., X−1} and put the matrix B r that is circulated. When the total number of Br columns exceeds k, k columns are randomly selected and arranged in the first to kth columns of Z3.
例えば、列重みp=1であるとすると、w=3であるため、列重みw−pは2となる。
x=1のとき、Z41に示すように、2行目から6行目までの各列に「1」を2つずつ配置する。
x=2のとき、Z42に示すように、1列目から順に、3行目から6行目までの各列に「1」を2つずつ配置する。このとき、各列に「1」を2つずつ配置する組み合わせは6列目で終了する。この場合、7列目以降は、1行目及び2行目の「1」の配置との組み合わせが1列目から6列目までと異なるように、2行目から6行目までの各列に「1」を2つずつ配置する。
For example, if the column weight p = 1, w = 3, so the column weight w−p is 2.
When x = 1, two “1” s are arranged in each column from the second row to the sixth row as indicated by Z41.
When x = 2, as shown in Z42, two “1” s are arranged in each column from the third row to the sixth row in order from the first column. At this time, the combination in which two “1” s are arranged in each column ends in the sixth column. In this case, each column from the second row to the sixth row is different from the seventh column so that the combination of the arrangement of “1” in the first row and the second row is different from the first column to the sixth column. Two “1” s are arranged in each.
ステップS105:構成した行列の中で任意のf{f=1,2,…,w}列を修復可能な行列を生成行列Gとする。例えば、Z41及びZ42の両方が生成行列Gとなる。 Step S105: A matrix that can repair an arbitrary f {f = 1, 2,..., W} column in the constructed matrix is set as a generation matrix G. For example, both Z41 and Z42 are the generator matrix G.
以上説明したように、生成行列Gの第2の構成方法を用いることで、非正則の生成行列Gを構成することができる。なお、本実施形態では「所定行」が1行目及び2行目である例を示したが、「所定行」は2行目以降の任意の行であってもよい。 As described above, the non-regular generation matrix G can be configured by using the second configuration method of the generation matrix G. In the present embodiment, an example in which the “predetermined row” is the first row and the second row is shown, but the “predetermined row” may be an arbitrary row after the second row.
(c)全探索不可能な範囲の非正則の生成行列Gの第3の構成方法
符号長nが大きく、ステップS102において式1を満たす[x,p]の組合せが[x,p]=[n−k,w]のみである場合等において、xCpの組合せ数が大きくなり、生成行列Gの第2の構成法で行列を構成することができない。そこで、生成行列の1行目の行重みが平均行重み以上となるように構成することで、残りn−k−1行の探索範囲を制限し、非正則の生成行列Gを構成する。具体的には、以下の手順で非正則の生成行列Gを構成する。
(C) Third Method of Constructing Non-Regular Generator Matrix G That Cannot Be Fully Searched A combination of [x, p] that satisfies the
具体的には、符号化部12は、ゼロ行列作成ステップを実行するゼロ行列作成部と、特定行構成ステップを実行する特定行構成部と、行列構成ステップを実行する行列構成部と、を備える。ゼロ行列作成ステップにおいてステップS201を実行し、特定行構成ステップにおいてステップS202及びS203を実行し、行列構成ステップにおいてステップS204及びS205を実行する。
Specifically, the
ステップS201:n−k行k列のゼロ行列Zを作成する。 Step S201: A zero matrix Z of nk rows and k columns is created.
例えば、n=16、k=10、w=3の場合、図4に示すように、ゼロ行列Zは6行10列となる。 For example, when n = 16, k = 10, and w = 3, the zero matrix Z has 6 rows and 10 columns as shown in FIG.
ステップS202:生成行列の平均行重みEを式2により求める。
(数2)
E=w×k/(n−k) (式2)
Step S202: The average row weight E of the generator matrix is obtained by
(Equation 2)
E = w × k / (n−k) (Formula 2)
例えば、n=16、k=10、w=3の場合、E=5となる。 For example, when n = 16, k = 10, and w = 3, E = 5.
ステップS203:Zの1行目の行重みがW{W=E+1,E+2,…,k}となるように、kCWの組合せにより1行目の1となる列を配置した行列をZ’とする。1行目に1を配置した列の集合をAとする。 Step S203: A matrix in which 1 column of the first row is arranged by a combination of k C W so that the row weight of the first row of Z becomes W {W = E + 1, E + 2,. And A set of columns in which 1 is arranged in the first row is A.
例えば、E=5である場合、1行目の行重みWはW{6,7,8,9,10}となる。
1行目の行重みがW=6のとき、1行目に1を配置する列の組合せをkCwにより決定する。例えば、A={1,2,3,4,5,6}のとき、Z36に示すように、1行目の1列目から6列目までに「1」を配置する。また、1行目の行重みがW=7のとき、1行目に1を配置する列の組合せをkCwにより決定する。例えば、A={1,2,3,7,8,9,10}のとき、Z37に示すように、1行目の1列目から3列目までに「1」を配置し、1行目の7列目から10列目までに「1」を配置する。
For example, when E = 5, the row weight W of the first row is W {6, 7, 8, 9, 10}.
When the row weight of the first row is W = 6, a combination of columns in which 1 is arranged in the first row is determined by k C w . For example, when A = {1, 2, 3, 4, 5, 6}, “1” is arranged from the first column to the sixth column of the first row as indicated by Z36. When the row weight of the first row is W = 7, a combination of columns in which 1 is arranged in the first row is determined by k C w . For example, when A = {1, 2, 3, 7, 8, 9, 10}, as shown in Z37, “1” is arranged from the first column to the third column of the first row, and one row “1” is arranged from the seventh column to the tenth column.
ステップS204:Z’の2行目からn−k行目までの範囲に1を配置する。Aに含まれる列は、n−k−1Cw−1の組合せにより1となる行を決定する。n−k−1Cw−1>Wの場合は、n−k−1及びw−1の組み合わせからW種類を選び、各列を構成する。Aに含まれない列は、n−k−1Cwの組合せにより1となる行を決定する(図3)。n−k−1Cw>k−Wの場合は、n−k−1及びwの組み合わせからk−W種類を選び各列を構成する。 Step S204: 1 is arranged in the range from the second row of Z ′ to the nk row. The column included in A determines the row which becomes 1 by the combination of n−k−1 C w−1 . When n−k−1 C w−1 > W, the W type is selected from the combination of n−k−1 and w−1, and each column is configured. For a column not included in A, a row that is 1 is determined by a combination of n−k−1 C w (FIG. 3). When n−k−1 C w > k−W, k−W types are selected from combinations of n−k−1 and w to configure each column.
例えば、W=6のとき、Z46に示すように、Aに含まれる1列目から6列目までは5C2の組合せにより決定される行に「1」を配置し、Aに含まれない7列目から10列目までは5C3の組合せにより決定される行に「1」を配置する。
例えば、W=7のとき、Z47に示すように、Aに含まれる1列目から3列目まで及び7列目から10列目までは5C2の組合せにより決定される行に「1」を配置し、Aに含まれない4列目から6列目までは5C3の組合せにより決定される行に「1」を配置する。
For example, when W = 6, as shown in Z46, “1” is arranged in the row determined by the combination of 5 C 2 from the first column to the sixth column included in A, and is not included in A From the seventh column to the tenth column, “1” is arranged in a row determined by the combination of 5 C 3 .
For example, when W = 7, as indicated by Z47, the first to third columns and the seventh to tenth columns included in A are “1” in the rows determined by the combination of 5 C 2. And from the fourth column to the sixth column not included in A, “1” is arranged in a row determined by the combination of 5 C 3 .
ステップS205:構成した行列の中で任意のf{f=1,2,…,w}列を修復可能な行列を生成行列Gとする。例えば、Z46及びZ47の両方が生成行列Gとなる。構成した生成行列の中で最も平均通信量の小さい行列を選択する。 Step S205: A matrix that can repair an arbitrary f {f = 1, 2,..., W} column in the constructed matrix is set as a generation matrix G. For example, both Z46 and Z47 are the generator matrix G. A matrix having the smallest average traffic is selected from the generated generation matrices.
以上説明したように、生成行列Gの第3の構成方法を用いることで、非正則の生成行列Gを構成することができる。なお、本実施形態では「特定の1行」が1行目である例を示したが、「特定の1行」は2行目以降の任意の行であってもよい。 As described above, the non-regular generation matrix G can be configured by using the third configuration method of the generation matrix G. In the present embodiment, an example in which “specific one line” is the first line is shown, but “specific one line” may be an arbitrary line after the second line.
(復号装置)
復号装置は、生成行列Gにn−k行n−k列の単位行列を水平に接続しパリティ検査行列Hとする。
(数3)
H=[G I]
(Decryption device)
The decoding apparatus horizontally connects a unit matrix of nk rows and nk columns to the generator matrix G to obtain a parity check matrix H.
(Equation 3)
H = [GI]
Recovery Equation Algorithmにより、パリティ検査行列Hのn−k行からI{I=1,2,…,n−k}行を選び選択した行のXORにより得られる修復式の集合をREとする。本実施形態では、全ディスク数をn、データの分割数をk、パリティディスク数をn−k、符号の最小距離をw、同時故障ディスク数をf{f=1,2,3}、故障ディスクの集合をF{F=F1,…,Ff}とする。 Let RE be a set of restoration formulas obtained by XOR of selected rows by selecting I {I = 1, 2,..., Nk} rows from nk rows of the parity check matrix H by the Recovery Equation Algorithm. In this embodiment, the total number of disks is n, the number of data divisions is k, the number of parity disks is nk, the minimum code distance is w, the number of simultaneous failed disks is f {f = 1, 2, 3}, Let F {F = F 1 ,..., F f } be a set of disks.
図5に、I=1のときの修復式の集合REの一例を示す。本実施形態では、n=16、k=10、w=3であり、生成行列Gは6行10列である。この場合、生成行列Gに6行6列の単位行列を水平に接続する。 FIG. 5 shows an example of a set RE of repair formulas when I = 1. In this embodiment, n = 16, k = 10, and w = 3, and the generator matrix G has 6 rows and 10 columns. In this case, a 6 × 6 unit matrix is connected horizontally to the generator matrix G.
図6に、I=2のときの行の選択例を示す。図7に、I=2のときの修復式の集合REの一例を示す。パリティ検査行列Hの1行目及び2行目を選択した場合、図7の1行目に示すように、I=2のときのパリティ検査行列Hは、図5に示すパリティ検査行列Hの1行目と2行目のXORとなる。I=2のときの行の選択のバリエーションは15通りあるため、I=2のパリティ検査行列Hは15行となる。 FIG. 6 shows an example of row selection when I = 2. FIG. 7 shows an example of a set RE of repair formulas when I = 2. When the first and second rows of the parity check matrix H are selected, as shown in the first row of FIG. 7, the parity check matrix H when I = 2 is 1 of the parity check matrix H shown in FIG. XOR for the second and second rows. Since there are 15 variations of row selection when I = 2, the parity check matrix H of I = 2 is 15 rows.
図8に、I=3のときの行の選択例を示す。図9に、I=3のときの修復式の集合REの一例を示す。パリティ検査行列Hの1、2及び3行目を選択した場合、図9の1行目に示すように、I=3のときのパリティ検査行列Hは、図5に示すパリティ検査行列Hの1、2及び3行目のXORとなる。I=3のときの行の選択のバリエーションは20とおりあるため、I=3のパリティ検査行列Hは20行となる。 FIG. 8 shows an example of row selection when I = 3. FIG. 9 shows an example of a set RE of repair formulas when I = 3. When the first, second and third rows of the parity check matrix H are selected, the parity check matrix H when I = 3 is 1 of the parity check matrix H shown in FIG. XOR of the second and third rows. Since there are 20 variations of row selection when I = 3, the parity check matrix H of I = 3 is 20 rows.
f=1の場合、修復式の集合REの中でF1列目の値が1となる行の集合REFを求め、REFの中で最も行重みの小さい行をF1の修復式とする。例えば、図5、図7、図9のように修復式の集合REを求めたとき、列1に対応するディスクが故障した場合の修復式を求めるためには、まずREの1列目の値が1となるI=1の1,2,3行目およびI=2の3,4,5,7,8,9,10,11,12行目およびI=3の1,8,9,13,14,15,16,17,18行目の集合を抜き出しREFとする。REFの行重みは順に11,5,5,8,8,8,8,8,8,8,9,8,7,7,7,9,9,9,9,9,9であることから、最も行重みの小さいI=1の2,3行目のいずれかを修復式とする。I=1の2行目を修復式とすると、値が1となる列は1,2,3,4,12であることから、2,3,4,12列目に相当するディスクのデータのXORにより、1列目に相当する故障ディスクのデータを修復する。
For f = 1, determined a set RE F line the value of F 1 row becomes 1 in collective RE repair type, a small line most row degree in the RE F and repair formula F 1 To do. For example, when the repair formula set RE is obtained as shown in FIG. 5, FIG. 7, and FIG. 9, in order to obtain the repair formula when the disk corresponding to the
修復式において、故障列F1を除く値が1の列に対応するディスクに保存したデータのXORにより、故障ディスクF1のデータを修復する。
このとき、修復式の行重みから故障列に相当する1を引いた値を修復時の参照ディスク数、参照ディスク数から1を引いた値を修復時のXOR回数、参照ディスク数とディスク容量の積を修復に必要な通信量とする。修復式において値が1の行に該当するディスクのデータのXOR計算により、故障ディスクに保存されていたデータを修復する。
In the repair formula, the data of the failed disk F 1 is repaired by XOR of the data stored in the disk corresponding to the column whose value is 1 except for the failed column F 1 .
At this time, the value obtained by subtracting 1 corresponding to the failure column from the row weight of the restoration formula is the number of reference disks at the time of restoration, and the value obtained by subtracting 1 from the number of reference disks is the number of XORs at the time of restoration, the number of reference disks and the disk capacity. The product is the amount of communication necessary for restoration. Data stored in the failed disk is repaired by XOR calculation of the data of the disk corresponding to the row whose value is 1 in the repair formula.
f=2の場合、REの中でF{F=F1,F2}のF1列目の値が1、F2列目の値が0となる行の集合REFを求め、最も行重みの小さい式をF1の修復式とする。ただし、F1およびF2は入れ替えてもよい。ディスクF1を修復後、f=1の場合と同様にディスクF2の修復式を求め、ディスクF2を修復する。 For f = 2, obtains the F {F = F 1, F 2} set RE F line the value of F 1 row becomes 1, F 2 column value is 0 in the RE, most row small formula weighted and repair formula F 1. However, F 1 and F 2 may be interchanged. After repair the disk F 1, as in the case of f = 1 obtains a repair disc F 2, to repair the disk F 2.
f=3の場合、REの中でF{F=F1,F2,F3}のF1列目の値が1、F2、F3列目の値が0となる行の集合REFを求め、最も行重みの小さい式をF1の修復式とする。ただし、F1、F2およびF3は入れ替えてもよい。ディスクF1を修復後、f=2の場合と同様にF2,F3の修復式を求め、ディスクF2,F3を修復する。
In the case of f = 3, a set of rows RE in which the value of the F 1st column of F {F = F 1 , F 2 , F 3 } is 1 and the value of the F 2 , F 3 column is 0 in the RE. seeking F, the most row weight small equations repair formula F 1. However, F 1, F 2 and F 3 may be interchanged. After repair the disk F 1, as in the case of f = 2 obtains the
ストレージシステムを構成するnディスクの中でf{f=1,2,…,w}ディスクが故障する全組み合わせについて、Recovery Equation Algorithmにより修復式を求め、Belief Propagationによる復号を行い、fディスク修復に必要な通信量の平均値を計算する。 For all combinations in which the f {f = 1, 2,..., W} disk fails among the n disks constituting the storage system, the recovery equation is obtained by the recovery equation algorithm, and decryption is performed by the Belief Propagation to restore the f disk. Calculate the average amount of traffic required.
なお、通信量を最小とする生成行列Gが1通りに決定した場合にはそれを記録するとともに、故障ディスクの組合せごとに予め修復式の探索を行い、通信量が最小となる修復式を記録しておくことで、復号毎に修復式の探索を行うことを省略することができる。 In addition, when one generation matrix G that minimizes the traffic is determined, it is recorded, and a repair formula is searched for in advance for each combination of failed disks, and a repair formula that minimizes the traffic is recorded. By doing so, it is possible to omit searching for a repair formula for each decoding.
[第1実施例]
一例として、ストレージシステムを構成するディスク数nおよび分割数kが小さく、(n−k)及びwの組み合わせからk種類を選ぶ組み合わせを全通り探索可能な場合について、通信量を削減する符号化手法を示す。
[First embodiment]
As an example, an encoding method for reducing the amount of communication in the case where the number of disks n and the number of divisions k constituting the storage system are small and a combination of selecting k types from combinations of (nk) and w can be searched. Indicates.
ディスク容量1(TB)、ストレージを構成する全ディスク数12≦n≦24、データ分割数6≦k≦18、最大同時故障数w=3として冗長化を行う場合、符号長n、分割数k、列重みwのFlat XOR符号を用いてデータの分散保存を行う(図1)。
When redundancy is performed with the disk capacity 1 (TB), the total number of disks constituting the
前述の非正則の生成行列Gの第1の構成方法の手順に従い構成した生成行列Gを用いて符号化した非正則構成のFlat XOR符号の中で通信量が最小の行列を探索し(図2)、正則構成のFlat XOR符号の中で通信量が最小の行列を用いた場合とディスクの故障確率により重み付けした平均通信量を比較した。 A matrix with the smallest traffic is searched for in a non-regular Flat XOR code encoded using the generation matrix G configured according to the procedure of the first configuration method of the irregular generator matrix G described above (FIG. 2). ), The average communication amount weighted by the failure probability of the disk was compared with the case where the matrix having the smallest communication amount in the flat XOR code of the regular configuration was used.
図10に、本実施例における正則構成のFlat XOR符号との平均通信量の比較結果を示す。縦軸は、正則構成のFlat XOR符号を用いて測定した平均通信量に対する、本実施形態に係る非正則構成のFlat XOR符号を用いて測定した平均通信量の比を示す。本実施形態に係る非正則構成のFlat XOR符号を用いた場合、いずれの符号長nにおいても、より小さい通信量でデータを保護することができる。 FIG. 10 shows a comparison result of the average communication amount with the flat XOR code having a regular configuration according to the present embodiment. The vertical axis represents the ratio of the average communication amount measured using the non-regular configuration Flat XOR code according to the present embodiment to the average communication amount measured using the regular configuration Flat XOR code. When the non-regular Flat XOR code according to the present embodiment is used, data can be protected with a smaller communication amount at any code length n.
また、図11に、RS符号を用いた場合の通信量の比較結果を示す。縦軸は、Reed−Solomon符号を用いて測定した平均通信量に対する、本実施形態に係る非正則構成のFlat XOR符号を用いて測定した平均通信量の比を示す。本実施形態に係る非正則構成のFlat XOR符号を用いた場合、いずれの符号長nにおいても、より小さい通信量でデータを保護することができる。 Further, FIG. 11 shows a comparison result of the traffic when the RS code is used. The vertical axis indicates the ratio of the average traffic volume measured using the Flat XOR code of the irregular configuration according to this embodiment to the average traffic volume measured using the Reed-Solomon code. When the non-regular Flat XOR code according to the present embodiment is used, data can be protected with a smaller communication amount at any code length n.
[第2実施例]
多地点にデータを分散保存するストレージシステムにおいて、ディスク数nおよび分割数kが大きく、(n−k)及びwの組み合わせからk種類を選ぶ全組み合わせを探索不可能な場合について、RS符号と比較して通信量を削減する符号化手法を示す。
[Second Embodiment]
Compared with RS code in a storage system that distributes and stores data at multiple points, where the number of disks n and the number of partitions k are large and it is not possible to search for all combinations in which k types are selected from the combinations of (n−k) and w Thus, an encoding method for reducing the communication amount will be described.
ディスク容量1(TB)、ストレージを構成する全ディスク数36≦n≦116、データ分割数20≦k≦100、最大同時故障数w=3として冗長化を行う場合、符号長n、分割数k、列重みwのFlat XOR符号を用いてデータの分散保存を行う(図1)。
When redundancy is performed with the disk capacity 1 (TB), the total number of disks constituting the storage 36 ≦ n ≦ 116, the
前述の非正則生成行列Gの第2の構成方法の手順に従い構成した生成行列Gを用いて符号化した非正則構成のFlat XOR符号と、RS符号を用いた場合のそれぞれについて、故障ディスク数fごとに、修復に必要なXOR計算回数およびディスクの故障確率により重み付けした平均通信量を算出して比較した。 For each of the non-regular configuration Flat XOR code encoded using the generation matrix G configured according to the procedure of the second configuration method of the non-regular generation matrix G and the RS code, the number of failed disks f Each time, the average communication traffic weighted by the number of XOR calculations required for repair and the failure probability of the disk was calculated and compared.
図12に、RS符号とのXOR計算回数の比較結果を示す。縦軸は、RS符号を用いた場合の平均XOR計算回数に対する、本実施形態に係る非正則構成のFlat XOR符号を用いた場合の平均XOR計算回数の比を示す。 FIG. 12 shows a comparison result of the number of XOR calculations with the RS code. The vertical axis represents the ratio of the average number of XOR calculations when the non-regular configuration Flat XOR code according to the present embodiment is used to the average number of XOR calculations when the RS code is used.
図13に、RS符号との平均通信量の比較結果を示す。縦軸は、RS符号を用いて測定した平均通信量に対する、本実施形態に係る非正則構成のFlat XOR符号を用いて測定した平均通信量の比を示す。 FIG. 13 shows a comparison result of the average traffic with the RS code. The vertical axis represents the ratio of the average traffic measured using the Flat XOR code of the irregular configuration according to the present embodiment to the average traffic measured using the RS code.
図12及び図13に示すように、非正則構成の符号を用いた場合、より少ないXOR計算回数および通信量でデータを保護することができることが分かる。 As shown in FIGS. 12 and 13, it is understood that data can be protected with a smaller number of XOR calculations and communication traffic when using a code with a non-regular configuration.
[第3実施例]
多地点にデータを分散保存するストレージシステムにおいて、ディスク数nおよび分割数kが大きく、(n−k)及びwの組み合わせからk種類を選ぶ全組み合わせを探索不可能な場合について、正則構成のFlat XOR符号と比較して通信量を削減する符号化手法を示す。
[Third embodiment]
In a storage system in which data is distributed and stored at multiple points, the regular number of flats is used in the case where the number of disks n and the number of divisions k are large and it is impossible to search for all combinations in which k types are selected from the combinations of (n−k) and w. An encoding method for reducing the communication amount as compared with the XOR code will be described.
ディスク容量1(TB)、全ディスク数26≦n≦130、データ分割数18≦k≦113、最大同時故障数w=3として冗長化を行う場合、符号長n、分割数k、列重みwの非正則構成Flat XOR符号を非正則構成の生成行列Gの第2の構成方法の手順に従って構成する。また、このとき分割数k=n−kCwにおいて正則構成のFlat XOR符号の生成行列が1通りに決定される。
When redundancy is performed with the disk capacity 1 (TB), the total number of
非正則構成の生成行列Gおよびk=n−kCwの正則構成の生成行列Gを用いた場合について、fディスクの修復に必要なXOR計算回数およびディスクの故障確率により重み付けした平均通信量を比較した。 In the case of using a non-regular configuration generator matrix G and a regular configuration generation matrix G of k = n−k C w , the average communication amount weighted by the number of XOR calculations necessary for repairing the f disk and the failure probability of the disk Compared.
図14に、正則構成のFlat XOR符号とのXOR計算回数の比較結果を示す。縦軸は、正則構成のFlat XOR符号を用いた場合の平均XOR計算回数に対する、本実施形態に係る非正則構成のFlat XOR符号を用いた場合の平均XOR計算回数の比を示す。 FIG. 14 shows a comparison result of the number of XOR calculations with a regular configuration Flat XOR code. The vertical axis indicates the ratio of the average number of XOR calculations when the non-regular configuration Flat XOR code according to the present embodiment is used to the average number of XOR calculations when the regular configuration Flat XOR code is used.
図15に、正則構成のFlat XOR符号との平均通信量の比較結果を示す。縦軸は、正則構成のFlat XOR符号を用いて測定した平均通信量に対する、本実施形態に係る非正則構成のFlat XOR符号を用いて測定した平均通信量の比を示す。 FIG. 15 shows a comparison result of the average communication amount with the flat XOR code having a regular configuration. The vertical axis represents the ratio of the average communication amount measured using the non-regular configuration Flat XOR code according to the present embodiment to the average communication amount measured using the regular configuration Flat XOR code.
図14及び図15に示すように、非正則構成の符号を用いることで、同じ符号長の場合に正則構成の符号より少ないXOR計算回数および通信量でデータを保護することができる。 As shown in FIGS. 14 and 15, by using a code with a non-regular configuration, data can be protected with a smaller number of XOR calculations and a smaller traffic than a code with a regular configuration when the code length is the same.
以上説明したように、本実施形態に係る非正則構成の生成行列Gを用いて符号化したFlat XOR符号を用いることで、RS符号および正則Flat XOR符号と比べ、故障ディスク修復時の通信量および計算負荷を低減する符号を構成することができる。また、従来は非正則のFlat XOR符号を適用できなかった符号長100程度までの場合に広範囲の分割数で非正則符号を構成することができるため、分散数が大きなストレージシステムにおいて計算負荷を抑えた消失訂正符号の適用が可能となる。 As described above, by using the Flat XOR code encoded using the non-regular configuration generator matrix G according to the present embodiment, compared with the RS code and the regular Flat XOR code, the communication amount at the time of failure disk repair and A code that reduces the computational load can be configured. In addition, since the irregular code can be configured with a wide range of division numbers when the code length is up to about 100, where the irregular Flat XOR code could not be applied conventionally, the calculation load is suppressed in a storage system with a large number of distributions. The erasure correction code can be applied.
また、本実施形態では、符号化においてFlat XOR符号を用いる例を示したが、本発明は非正則構成の生成行列Gを用いた任意の符号化に適用できる。例えば、疎グラフに基づき、XORによる符号化を行い、Recovery Equation Algorithmによる復号が可能な他の組織符号にも適用可能である。そのような組織符号としては、例えば、LDPC(Low Density Parity Check)符号が例示できる。 In the present embodiment, an example in which the Flat XOR code is used in the encoding has been described. However, the present invention can be applied to any encoding using a generation matrix G having a non-regular configuration. For example, the present invention can also be applied to other systematic codes that can be encoded by XOR based on a sparse graph and decoded by Recovery Equation Algorithm. As such a systematic code, for example, an LDPC (Low Density Parity Check) code can be exemplified.
本発明は情報通信産業に適用することができる。 The present invention can be applied to the information communication industry.
10:符号化装置
11:データ分割部
12:符号化部
13:データ分配部
20:ディスク
10: Encoding device 11: Data dividing unit 12: Encoding unit 13: Data distributing unit 20: Disk
Claims (6)
前記ゼロ行列における所定行において、各列に配置する「1」の個数が一定値となるように、前記所定行の各列に「1」又は「0」を配置する所定行構成部と、
前記ゼロ行列における前記所定行を除く全ての行において、各列に配置する「1」の個数が予め定められた符号の最小距離から前記一定値を差し引いた値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記所定行を除く全ての行の各列に「1」又は「0」を配置する行列構成部と、
を備える生成行列構成装置。 A zero matrix creation unit that creates a zero matrix based on the number of data divisions and the number of disks storing data;
A predetermined row configuration unit that arranges “1” or “0” in each column of the predetermined row so that the number of “1” arranged in each column has a constant value in the predetermined row in the zero matrix;
Arranged in all rows, is the value obtained by subtracting the predetermined value from the minimum distance of the code in which the number is predetermined in the "1" to place in each column, and a "1", except for the predetermined row before Symbol zero matrix A matrix configuration unit that arranges “1” or “0” in each column of all rows except the predetermined row so that the combination of rows to be different is different for each column;
A generator matrix construction device comprising:
前記行列構成部が、前記ゼロ行列における前記所定行を除く全ての行における複数の列において、「1」を配置する行の組み合わせが同じになる場合、当該列同士で前記所定行における「1」を配置する行の組み合わせが異なるように、前記所定行を除く全ての行の各列に「1」又は「0」を配置する、
請求項1に記載の生成行列構成装置。 When the predetermined row is 2 or more,
When the matrix configuration unit has the same combination of rows in which “1” is arranged in a plurality of columns in all rows except the predetermined row in the zero matrix, “1” in the predetermined row between the columns. Arrange “1” or “0” in each column of all rows except the predetermined row so that the combinations of the rows in which are arranged are different.
The generator matrix construction device according to claim 1.
前記ゼロ行列における特定の1行において、行に配置する「1」の個数が一定値以上となるように、前記特定の1行の各列に「1」又は「0」を配置する特定行構成部と、
前記特定の1行に「1」が配置された列については、前記ゼロ行列における前記特定の1行を除く全ての行において、各列に配置する「1」の個数が予め定められた符号の最小距離から1を差し引いた値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記特定の1行を除く全ての行の各列に「1」又は「0」を配置し、
前記特定の1行に「0」が配置された列については、前記ゼロ行列における前記特定の1行を除く全ての行において、各列に配置する「1」の個数が前記符号の最小距離に等しい値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記特定の1行を除く全ての行の各列に「1」又は「0」を配置する行列構成部と、
を備える生成行列構成装置。 A zero matrix creation unit that creates a zero matrix based on the number of data divisions and the number of disks storing data;
Specific row configuration in which “1” or “0” is arranged in each column of the specific one row so that the number of “1” arranged in the row is equal to or greater than a certain value in the specific row in the zero matrix And
For the column in which “1” is arranged in the specific row, the number of “1” s to be arranged in each column in all rows except the specific row in the zero matrix is a predetermined code. The value obtained by subtracting 1 from the minimum distance , and “1” or “0” in each column of all rows except the specific one row so that the combination of rows in which “1” is arranged is different for each column. Place and
Regarding the column in which “0” is arranged in the specific row, the number of “1” arranged in each column is the minimum distance of the code in all the rows except the specific row in the zero matrix. It becomes equal, and "1" so that the combination of rows to place differs for each row, and the matrix component to place "1" or "0" in each column in every row except the particular one line ,
A generator matrix construction device comprising:
データの分割数及びデータを格納するディスク数に基づいてゼロ行列を作成するゼロ行列作成ステップと、
前記ゼロ行列における所定行において、各列に配置する「1」の個数が一定値となるように、前記所定行の各列に「1」又は「0」を配置する所定行構成ステップと、
前記ゼロ行列における前記所定行を除く全ての行において、各列に配置する「1」の個数が予め定められた符号の最小距離から前記一定値を差し引いた値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記所定行を除く全ての行の各列に「1」又は「0」を配置する行列構成ステップと、
を実行する生成行列構成方法。 A generator matrix configuration method executed by a generator matrix configuration apparatus,
Creating a zero matrix based on the number of data divisions and the number of disks storing the data; and
A predetermined row configuration step of arranging “1” or “0” in each column of the predetermined row so that the number of “1” arranged in each column has a constant value in the predetermined row in the zero matrix;
Arranged in all rows, is the value obtained by subtracting the predetermined value from the minimum distance of the code in which the number is predetermined in the "1" to place in each column, and a "1", except for the predetermined row before Symbol zero matrix A matrix construction step of arranging “1” or “0” in each column of all rows except the predetermined row so that the combination of rows to be different is different for each column;
A generator matrix construction method for executing
データの分割数及びデータを格納するディスク数に基づいてゼロ行列を作成するゼロ行列作成ステップと、
前記ゼロ行列における特定の1行において、行に配置する「1」の個数が一定値以上となるように、前記特定の1行の各列に「1」又は「0」を配置する特定行構成ステップと、
前記特定の1行に「1」が配置された列については、前記ゼロ行列における前記特定の1行を除く全ての行において、各列に配置する「1」の個数が予め定められた符号の最小距離から1を差し引いた値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記特定の1行を除く全ての行の各列に「1」又は「0」を配置し、
前記特定の1行に「0」が配置された列については、前記ゼロ行列における前記特定の1行を除く全ての行において、各列に配置する「1」の個数が前記符号の最小距離に等しい値となり、かつ「1」を配置する行の組み合わせが列ごとに異なるように、前記特定の1行を除く全ての行の各列に「1」又は「0」を配置する行列構成ステップと、
を実行する生成行列構成方法。 A generator matrix configuration method executed by a generator matrix configuration apparatus,
Creating a zero matrix based on the number of data divisions and the number of disks storing the data; and
Specific row configuration in which “1” or “0” is arranged in each column of the specific one row so that the number of “1” arranged in the row is equal to or greater than a certain value in the specific row in the zero matrix Steps,
For the column in which “1” is arranged in the specific row, the number of “1” s to be arranged in each column in all rows except the specific row in the zero matrix is a predetermined code. The value obtained by subtracting 1 from the minimum distance , and “1” or “0” in each column of all rows except the specific one row so that the combination of rows in which “1” is arranged is different for each column. Place and
Regarding the column in which “0” is arranged in the specific row, the number of “1” arranged in each column is the minimum distance of the code in all the rows except the specific row in the zero matrix. It becomes equal, and "1" so that the combination of rows to place differs for each column, a matrix arrangement step of placing the "1" or "0" in each column in every row except the particular one line ,
A generator matrix construction method for executing
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015110148A JP6396849B2 (en) | 2015-05-29 | 2015-05-29 | Generator matrix configuration apparatus and generator matrix configuration method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015110148A JP6396849B2 (en) | 2015-05-29 | 2015-05-29 | Generator matrix configuration apparatus and generator matrix configuration method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016224679A JP2016224679A (en) | 2016-12-28 |
JP6396849B2 true JP6396849B2 (en) | 2018-09-26 |
Family
ID=57748522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015110148A Active JP6396849B2 (en) | 2015-05-29 | 2015-05-29 | Generator matrix configuration apparatus and generator matrix configuration method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6396849B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107425857A (en) * | 2017-06-19 | 2017-12-01 | 华为技术有限公司 | One kind polarization code coding/decoding method and device |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058873B2 (en) * | 2002-11-07 | 2006-06-06 | Carnegie Mellon University | Encoding method using a low density parity check code with a column weight of two |
WO2005069492A1 (en) * | 2004-01-20 | 2005-07-28 | Nec Corporation | Inspection matrix generation method, data transmission system, encoding device, decoding device, and inspection matrix generation program |
KR100981503B1 (en) * | 2004-02-13 | 2010-09-10 | 삼성전자주식회사 | Low density parity check code encoding / decoding apparatus and method with maximum error correction / error detection capability |
US8145941B2 (en) * | 2006-10-31 | 2012-03-27 | Hewlett-Packard Development Company, L.P. | Detection and correction of block-level data corruption in fault-tolerant data-storage systems |
EP2264930B1 (en) * | 2009-06-15 | 2014-05-14 | Canon Kabushiki Kaisha | Distributed code generation method and device |
-
2015
- 2015-05-29 JP JP2015110148A patent/JP6396849B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016224679A (en) | 2016-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170192848A1 (en) | Distributed data storage with reduced storage overhead using reduced-dependency erasure codes | |
Kamath et al. | Codes with local regeneration | |
Papailiopoulos et al. | Simple regenerating codes: Network coding for cloud storage | |
US7904782B2 (en) | Multiple protection group codes having maximally recoverable property | |
JP5167243B2 (en) | Storage Allocation and Erasure Coding Techniques for Scalable and Fault Tolerant Storage Systems | |
US8392805B2 (en) | Non-MDS erasure codes for storage systems | |
US20170083603A1 (en) | Co-derived data storage patterns for distributed storage systems | |
US20140380114A1 (en) | Data encoding for data storage system based on generalized concatenated codes | |
US11748197B2 (en) | Data storage methods and systems | |
CN106100801A (en) | A kind of non-homogeneous erasure code method of cloud storage system | |
Kamath et al. | Codes with local regeneration | |
Park et al. | LDPC code design for distributed storage: Balancing repair bandwidth, reliability, and storage overhead | |
US10740182B2 (en) | Erased memory page reconstruction using distributed coding for multiple dimensional parities | |
Subedi et al. | A comprehensive analysis of XOR-based erasure codes tolerating 3 or more concurrent failures | |
Ivanichkina et al. | Mathematical methods and models of improving data storage reliability including those based on finite field theory | |
Balaji et al. | On partial maximally-recoverable and maximally-recoverable codes | |
JP6396849B2 (en) | Generator matrix configuration apparatus and generator matrix configuration method | |
US20200336157A1 (en) | Systematic and xor-based coding technique for distributed storage systems | |
WO2016201639A1 (en) | Distributed data storage method, control device and system | |
Bao et al. | Reducing network cost of data repair in erasure-coded cross-datacenter storage | |
Li et al. | On data parallelism of erasure coding in distributed storage systems | |
Yongmei et al. | Large LDPC codes for big data storage | |
Calis et al. | Architecture-aware coding for distributed storage: Repairable block failure resilient codes | |
Li et al. | Parallelism-aware locally repairable code for distributed storage systems | |
Wei et al. | expanCodes: Tailored LDPC codes for big data storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170629 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180530 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180612 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180809 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180828 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180830 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6396849 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |