KR101923116B1 - Apparatus for Encoding and Decoding in Distributed Storage System using Locally Repairable Codes and Method thereof - Google Patents
Apparatus for Encoding and Decoding in Distributed Storage System using Locally Repairable Codes and Method thereof Download PDFInfo
- Publication number
- KR101923116B1 KR101923116B1 KR1020170116506A KR20170116506A KR101923116B1 KR 101923116 B1 KR101923116 B1 KR 101923116B1 KR 1020170116506 A KR1020170116506 A KR 1020170116506A KR 20170116506 A KR20170116506 A KR 20170116506A KR 101923116 B1 KR101923116 B1 KR 101923116B1
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- sub
- parity check
- check matrix
- code
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G06F17/30194—
Abstract
Description
본 발명은 복구 부호를 이용하는 부호화/복호화 장치 및 방법에 관한 것이다. 보다 상세하게는, 분산 저장 시스템에서 부분접속 복구 부호를 이용하는 부호화/복호화 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for encoding / decoding using a restoration code. More particularly, the present invention relates to an encoding / decoding apparatus and method using a partial access recovery code in a distributed storage system.
분산 저장 시스템(Distributed Storage System)은 대용량의 데이터를 안정적으로 저장하기 위한 시스템으로서, 빅 데이터의 안전한 저장과 복구를 위하여 마이크로소프트, 구글, 페이스북 등의 주요 기업들은 고객의 데이터를 저장하기 위해 분산 저장 시스템을 운용한다.Distributed Storage System (Distributed Storage System) is a system to store large amount of data in a stable manner. Major companies such as Microsoft, Google, and Facebook are required to distribute The storage system is operated.
분산 저장 시스템은 네트워크로 연결된 수 많은 노드들에 대용량의 데이터를 나누어 저장하는데, 이때 개별 노드는 하드웨어적 결함이나 네트워크 연결 등의 문제로 인해 자주 사용할 수 없는 상태가 될 수 있다. 이러한 노드 장애에 대응하여 데이터를 안정적으로 저장하고, 전체 데이터의 손실을 막기 위하여 데이터를 단순히 분할하여 저장하는 대신, 오류정정 부호를 통해 데이터를 부호화한 후, 부호화된 데이터를 분할하여 개별 노드에 나누어 저장한다.Distributed storage systems divide and store large amounts of data in a large number of nodes connected to a network. Individual nodes may become unusable due to problems such as hardware defects or network connections. In order to stably store the data in response to such a node failure and to prevent the loss of the entire data, instead of simply dividing and storing the data, the data is encoded through the error correction code, and the encoded data is divided into individual nodes .
개별 노드에 장애가 발생하는 빈번한 상황에서 분산 저장 시스템의 안정성을 일정한 수준으로 유지하기 위하여 복구(Repair)과정을 거쳐 해당 노드에 저장된 데이터를 다시 만들어내야 한다. 분산 저장 시스템에서는 이러한 데이터의 소실과 복구가 빈번히 발생하므로 복구 과정의 효율성이 시스템 전체의 성능을 좌우한다.In order to maintain the stability of the distributed storage system at a constant level in the frequent occurrence of failure of the individual node, the data stored in the corresponding node must be rebuilt through a repair process. In a distributed storage system, the loss and recovery of such data occur frequently, and the efficiency of the recovery process depends on the performance of the system as a whole.
부분접속 복구 부호 (Locally Repairable Code: LRC)는 분산 저장 시스템에 적합한 효율적인 복구 과정을 갖는 부호로 많이 쓰이는데, 부분접속 복구 부호를 이용한 복구 과정의 효율성을 판단하는 척도로 부분접속수(Locality)가 사용된다. 부분접속수는 한 노드를 복구하기 위해 접속해야 하는 최소 노드의 수를 의미하고, 분산 저장 시스템에 효과적인 적용을 위해 작은 크기의 유한체에서의 부분접속 복구 부호에 관한 연구가 이루어 지고 있다.Locally Repairable Code (LRC) is often used as a code having an efficient recovery process suitable for a distributed storage system. As a measure for determining the efficiency of recovery using a partial access recovery code, a partial access number (Locality) is used do. The number of partial accesses refers to the minimum number of nodes that need to be connected to recover a node and partial access recovery codes in a small size finite element have been studied for effective application in distributed storage systems.
종래의 부분 접속 복구 부호는 최소거리가 항상 4로 유지되어 부호 길이가 길어지는 경우, 그 안정성이 떨어져서 기존의 반복 부호 기법을 대체할 수 없었다. The conventional partial access recovery code can not replace the conventional iterative coding scheme because the minimum distance is always kept at 4 and the code length becomes longer and its stability is lowered.
따라서, 복구 부호의 길이가 길어져도, 높은 안정성을 보장할 수 있도록 하는 복구 부호의 개발이 요구되고 있다. Therefore, it is required to develop a restoration code for ensuring high stability even if the length of the restoration code becomes long.
본 발명은 상기한 문제점을 해결하기 위하여 안출된 것으로서, 이진 부분접속 복구 부호를 이용하는 부호화/복호화 장치를 개시한다. 특히, 2이상의 부분 접속수를 가지고, 개선된 최소거리를 가지는 이진 부분 접속 복구 부호를 이용한 부호화/복호화 장치를 개시한다. 또한, 이진 부분접속 복구 부호를 이용하는 부호화 방법을 개시한다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an encoding / decoding apparatus using a binary partial access recovery code is disclosed. In particular, a coding / decoding apparatus using a binary partial access recovery code having at least two partial connection numbers and having an improved minimum distance is disclosed. Further, a coding method using a binary partial access recovery code is disclosed.
본 발명은 상기한 목적을 달성하기 위해 안출된 것으로서, 본 발명의 복구 부호를 이용하는 부호화 장치는 데이터 복구를 위해 접속하고자 하는 접속 노드수를 고려하여 상기 데이터를 부호화 하는 복구 부호를 정의하는 패리티 검사 행렬을 생성하는 패리티 검사 행렬 생성부; 및 상기 생성된 패리티 검사 행렬을 이용하여 상기 데이터의 부호화에 따른 부호어를 생성하고, 상기 생성된 부호어를 분산 저장 시스템에 분산 저장하는 분산 저장부; 를 포함한다.According to an aspect of the present invention, there is provided an encoding apparatus using a restoration code, comprising: a parity check matrix for defining a restoration code for encoding the data, A parity check matrix generator for generating a parity check matrix; And generating a codeword for encoding the data using the generated parity check matrix and distributing the generated codeword to a distributed storage system; .
본 발명에서, 상기 복구 부호는 이진 부분접속 복구 부호이고, 상기 패리티 검사 행렬 생성부는 상기 복구 부호의 길이 및 상기 데이터의 길이를 더 고려하여 상기 패리티 검사 행렬을 생성할 수 있다.In the present invention, the restoration code is a binary partial access restoration code, and the parity check matrix generator may generate the parity check matrix considering the length of the restoration code and the length of the data.
상기 패리티 검사 행렬 생성부는 부분 접속수를 확보하기 위한 제1 부행렬을 생성하는 제1 부행렬 생성부; 및 상기 제1 부행렬에 인접하여 배치되어, 상기 데이터의 최소거리를 확보하기 위한 제2 부행렬을 생성하는 제2 부행렬 생성부; 를 포함하고, 상기 제1 부행렬 및 제2 부행렬을 이용하여 상기 패리티 검사 행렬을 생성할 수 있다.Wherein the parity check matrix generator comprises: a first sub-matrix generator for generating a first sub-matrix for securing a partial connection number; And a second sub-matrix generator disposed adjacent to the first sub-matrix to generate a second sub-matrix for securing a minimum distance of the data; And the parity check matrix may be generated using the first sub-matrix and the second sub-matrix.
본 발명에서, 상기 제1 부행렬 생성부는 상기 부분 접속수 및 상기 데이터의 길이를 고려하여 상기 제1 부행렬 각각의 행의 길이를 정하고, 상기 제1 부행렬의 서로 다른 행의 넌-제로 엘리먼트(non-zeroelement)는 동일한 열에 배치되지 않도록 마련될 수 있다.In the present invention, the first sub-matrix generator may determine the length of each row of the first sub-matrix in consideration of the partial connection number and the length of the data, and determine a length of each non- non-zero elements may not be arranged in the same column.
상기 제1 부행렬은 상기 부분 접속수를 고려하여 상기 제1 부행렬 각각의 행에 포함된 넌-제로 엘리먼트(non-zeroelement)의 수를 설정할 수 있다.The first sub-matrix may set the number of non-zero elements included in each row of the first sub-matrix in consideration of the partial connection number.
본 발명에서 상기 제2 부행렬 생성부는 미리 결정된 차원을 가지는 이진 벡터 공간을 생성하고, 상기 생성된 이진 벡터 공간을 상기 부분 접속수에 따른 차원을 가지는 서브 벡터 공간들의 집합으로 분할하며, 상기 분할된 서브 벡터 공간들의 집합을 이용하여 상기 제2 부행렬을 생성할 수 있다. In the present invention, the second sub-matrix generation unit generates a binary vector space having a predetermined dimension, and divides the generated binary vector space into a set of subvector spaces having a dimension according to the partial connection number, The second sub-matrix can be generated using a set of subvector spaces.
상기 미리 결정된 차원은 상기 부분 접속수 및 상기 서브벡터 공간들의 집합의 크기를 고려하여 설정되고, 상기 서브 벡터 공간들은 상기 부분 접속수에 따른 차원에 대응하는 기저벡터 및 상기 기저벡터의 합을 상기 서브 벡터 공간들의 원소로 포함할 수 있다.Wherein the predetermined dimension is set in consideration of the number of partial connections and the size of the set of subvector spaces, the subvector spaces having a base vector corresponding to a dimension according to the partial connection and a sum of the base vectors, Can be included as elements of vector spaces.
본 발명에서 상기 제2 부행렬 생성부는 상기 미리 결정된 차원에 따라 결정되는 차수를 갖는 갈로아 필드에서 원시 원소의 거듭제곱으로 표현된 원소들을 상기 원시 원소를 근으로 가지는 원시 다항식을 이용하여 상기 미리 결정된 차원 보다 작은 승수의 상기 원시 원소의 거듭제곱들의 합으로 변환하고, 상기 변환된 갈로아 필드의 원소들의 각 항의 계수를 이용하여 이진 벡터로 표현된 상기 제2 부행렬을 생성할 수 있다.In the present invention, the second sub-matrix generator may generate the second sub-matrix using the primitive polynomial having the elements represented by powers of the primitive elements in the Galois field having an order determined according to the predetermined dimension, The second sub-matrix expressed by a binary vector may be generated using a coefficient of each term of elements of the transformed Galois field.
상기 이진 벡터 공간을 분할하는 서브 벡터 공간들의 집합의 크기는 상기 부분 접속수, 상기 부분 접속수에 따른 상기 서브 벡터 공간의 차원 및 상기 미리 결정된 차원이 상기 부분 접속수에 따른 상기 서브 벡터 공간의 차원으로 나누어지는지 여부를 고려하여 설정되고, 상기 원시 다항식은 상기 미리 결정된 차원에 따라 존재 가능한 모든 형태의 원시 다항식을 포함하도록 마련될 수 있다.Wherein the size of the set of subvector spaces dividing the binary vector space is determined by the number of partial connections, the dimension of the subvector space according to the partial connection number, and the dimension of the subvector space according to the partial connection number , And the primitive polynomial may be arranged to include all types of primitive polynomials that can exist according to the predetermined dimension.
본 발명에서 상기 분산 저장부는 상기 생성된 패리티 검사 행렬을 제1 단위 행렬과 나머지 부행렬을 포함하는 조직적 형태로 변환하고, 상기 변환된 패리티 검사 행렬의 부행렬을 전치하며, 상기 전치된 부행렬 및 제2 단위 행렬을 포함하는 부호화 행렬을 생성하고, 상기 생성된 부호화 행렬을 이용하여 상기 부호어를 생성할 수 있다.In the present invention, the distributed storage unit converts the generated parity check matrix into a systematic form including a first unitary matrix and a remaining sub-matrix, transposes a sub-matrix of the transformed parity check matrix, An encoding matrix including a second unitary matrix may be generated, and the codeword may be generated using the generated encoding matrix.
또한 상기한 목적을 달성하기 위하여 본 발명의 복구 부호를 이용하는 복호화 장치는 데이터 복구를 위해 접속하고자 하는 접속 노드수를 고려하여 상기 데이터를 부호화 하는 복구 부호를 정의하는 패리티 검사 행렬을 생성하는 패리티 검사 행렬 생성부; 상기 생성된 패리티 검사 행렬을 이용하여 상기 데이터의 부호화에 따른 부호어를 생성하고, 상기 생성된 부호어를 분산 저장 시스템에 분산 저장하는 분산 저장부; 및 상기 분산 저장 시스템에 저장된 코드 블록의 인덱스를 수신하여, 상기 수신된 인덱스에 관한 열을 포함하는 부행렬을 상기 패리티 검사 행렬에서 선정하고, 상기 선정된 부행렬에 가우스 소거 연산을 수행하여 복호화를 수행하는 복호화부; 를 포함한다.According to another aspect of the present invention, there is provided a decoding apparatus using a restoration code. The decoding apparatus includes a parity check matrix generating a parity check matrix defining a restoration code for coding the data, Generating unit; Generating a codeword for encoding the data using the generated parity check matrix, and distributing the generated codeword to the distributed storage system; And an index of a code block stored in the distributed storage system, selecting a sub-matrix including a column related to the received index from the parity check matrix, performing a Gaussian elimination operation on the selected sub-matrix, A decoding unit to perform decoding; .
또한 상기한 목적을 달성하기 위하여 본 발명의 복구 부호를 이용하는 부호화 방법은 데이터 복구를 위해 접속하고자 하는 접속 노드수를 고려하여 상기 데이터를 부호화 하는 복구 부호의 오류를 검출하기 위한 패리티 검사 행렬을 생성하는 단계; 및 상기 생성된 패리티 검사 행렬을 이용하여 상기 데이터의 부호화에 따른 부호어를 생성하고, 상기 생성된 부호어를 분산 저장 시스템에 분산 저장하는 단계; 를 포함한다.According to another aspect of the present invention, there is provided an encoding method using a restoration code, the method including generating a parity check matrix for detecting an error of a restoration code for encoding the data, step; Generating a codeword according to the encoding of the data using the generated parity check matrix, and distributing the generated codeword to the distributed storage system; .
상기 복구 부호는 이진 부분접속 복구 부호이고, 상기 패리티 검사 행렬을 생성하는 단계는 상기 복구 부호의 길이 및 상기 데이터의 길이를 더 고려하여 상기 패리티 검사 행렬을 생성하도록 마련될 수 있다.The restoration code is a binary partial access restoration code. In the step of generating the parity check matrix, the parity check matrix may be generated by considering the length of the restoration code and the length of the data.
본 발명에서 상기 패리티 검사 행렬을 생성하는 단계는 부분 접속수를 확보하기 위한 제1 부행렬을 생성하는 단계; 및 상기 제1 부행렬에 인접하여 배치되어, 상기 데이터의 최소거리를 확보하기 위한 제2 부행렬을 생성하는 단계; 를 포함하고, 상기 제1 부행렬 및 제2 부행렬을 이용하여 상기 패리티 검사 행렬을 생성할 수 있다. The step of generating the parity check matrix may include: generating a first sub-matrix for securing a partial connection number; And generating a second sub-matrix adjacent to the first sub-matrix, the second sub-matrix for ensuring a minimum distance of the data; And the parity check matrix may be generated using the first sub-matrix and the second sub-matrix.
상기 제1 부행렬을 생성하는 단계는 상기 부분 접속수를 고려하여 상기 제1 부행렬 각각의 행에 포함된 넌-제로 엘리먼트(non-zeroelement)의 수를 정하고, 상기 부분 접속수 및 상기 데이터의 길이에 따라 상기 제1 부행렬 각각의 행의 길이를 정하며, 상기 제1 부행렬의 서로 다른 행에 포함된 넌-제로 엘리먼트(non-zeroelement)는 동일한 열에 배치되지 않도록 마련될 수 있다.Wherein the step of generating the first sub-matrix defines the number of non-zero elements included in each row of the first sub-matrix in consideration of the partial access number, The length of each row of the first sub-matrix is determined according to the length of the first sub-matrix, and non-zero elements included in different rows of the first sub-matrix are not arranged in the same column.
본 발명에서 상기 제2 부행렬을 생성하는 단계는 미리 결정된 차원을 가지는 이진 벡터 공간을 생성하고, 상기 생성된 이진 벡터 공간을 상기 부분 접속수에 따른 차원을 가지는 서브 벡터 공간들의 집합으로 분할하며, 상기 분할된 서브 벡터 공간들의 집합을 이용하여 상기 제2 부행렬을 생성할 수 있다.The generating of the second sub-matrix may include generating a binary vector space having a predetermined dimension, dividing the generated binary vector space into a set of subvector spaces having a dimension according to the partial connection number, The second sub-matrix may be generated using the set of divided sub-vector spaces.
상기 미리 결정된 차원은 상기 부분 접속수 및 상기 서브벡터 공간들의 집합의 크기를 고려하여 설정되고, 상기 서브 벡터 공간들은 상기 부분 접속수에 따른 차원에 대응하는 기저벡터 및 상기 기저벡터의 합을 상기 서브 벡터 공간들의 원소로 포함할 수 있다.Wherein the predetermined dimension is set in consideration of the number of partial connections and the size of the set of subvector spaces, the subvector spaces having a base vector corresponding to a dimension according to the partial connection and a sum of the base vectors, Can be included as elements of vector spaces.
상기 제2 부행렬을 생성하는 단계는 상기 미리 결정된 차원에 따라 결정되는 차수를 가지는 갈로아 필드에서 원시 원소의 거듭 제곱으로 표현된 원소들을 상기 원시 원소를 근으로 가지는 원시 다항식을 이용하여 상기 미리 결정된 차원 보다 작은 승수의 상기 원시 원소의 거듭제곱들의 합으로 변환하고, 상기 변환된 갈로아 필드의 원소들의 각 항의 계수를 이용하여 이진 벡터로 표현된 상기 제2 부행렬을 생성할 수 있다.Wherein the step of generating the second sub-matrix further comprises the steps of: using the primitive polynomial having the elements represented by powers of the primitive elements in the Galois field having an order determined according to the predetermined dimension, The second sub-matrix expressed by a binary vector may be generated using a coefficient of each term of elements of the transformed Galois field.
상기 서브 벡터 공간들의 집합의 크기는 상기 부분 접속수, 상기 부분 접속수에 따른 상기 서브 벡터 공간의 차원 및 상기 미리 결정된 차원이 상기 부분 접속수에 따른 상기 서브 벡터 공간의 차원으로 나누어지는지 여부를 고려하여 설정되고, 상기 원시 다항식은 상기 미리 결정된 차원에 따라 존재 가능한 모든 형태의 원시 다항식을 포함하도록 마련될 수 있다. Wherein the size of the set of subvector spaces considers whether the partial connection number, the dimension of the subvector space according to the partial connection number, and whether the predetermined dimension is divided by the dimension of the subvector space according to the partial connection number And the primitive polynomial may be provided to include all types of primitive polynomials that may exist according to the predetermined dimension.
상기 분산 저장하는 단계는 상기 생성된 패리티 검사 행렬을 제1 단위 행렬과 나머지 부행렬을 포함하는 조직적 형태로 변환하고, 상기 변환된 패리티 검사 행렬의 부행렬을 전치하며, 상기 전치된 부행렬 및 제2 단위 행렬을 포함하는 부호화 행렬을 생성하고, 상기 생성된 부호화 행렬을 이용하여 상기 부호어를 생성할 수 있다.The distributed storage stores the generated parity check matrix into a systematic form including a first unit matrix and a remaining sub-matrix, transposes a sub-matrix of the converted parity check matrix, A coding matrix including a 2-unit matrix may be generated, and the codeword may be generated using the generated coding matrix.
또한, 본 발명은 컴퓨터에서 상기한 복구 부호를 이용하는 부호화 방법을 실행시키기 위한 컴퓨터에서 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 개시한다.The present invention also discloses a computer program stored in a computer readable recording medium for causing a computer to execute a coding method using the above restoration code.
본 발명에 따르면, 복구 부호를 이용하는 부호화/복호화 장치는 개선된 최소 거리를 가지는 복구 부호를 이용하여 안정적으로 분산 저장 시스템에 대용량의 데이터를 저장할 수 있는 잇점이 있다.According to the present invention, an encoding / decoding apparatus using a restoration code can advantageously store a large amount of data in a distributed storage system stably using a restoration code having an improved minimum distance.
특히, 로컬 복구 특성을 이용하여 효율적으로 복호화를 수행할 수 있는 잇점이 있다.In particular, there is an advantage that decryption can be efficiently performed by using the local recovery characteristic.
도 1은 본 발명의 일 실시 예에 따른 복구 부호를 이용하는 부호화 장치의 블록도이다.
도 2는 도 1의 실시예에서 패리티 검사 행렬 생성부의 확대 블록도이다.
도 3a는 도 1의 실시 예에서 제1 부행렬 생성부(100)에서 생성된 제1 부행렬의 예시도이다.
도 3b는 제1 부행렬 및 제2 부행렬을 포함하는 패리티 검사 행렬의 예시도이다.
도 4a 는 차수(Degree)에 따라 존재하는 원시 다항식의 계수를 이진 시퀀스로 표현한 예시도이다.
도 4b 는 차수(Degree)에 따라 존재하는 원시 다항식의 계수를 이진 시퀀스로 표현한 예시도이다.
도 4c 는 차수(Degree)에 따라 존재하는 원시 다항식의 계수를 이진 시퀀스로 표현한 예시도이다.
도 5는 갈로아 필드 의 원시 원소의 거듭제곱으로 표현된 원소들을 원시 원소의 3이하의 지수를 갖는 거듭제곱들의 합으로 표현하고, 각 항의 계수를 이용하여 이진 벡터로 표현한 예시도이다.
도 6은 본 발명의 일 실시 예에 따른 벡터 공간과 그의 2-스프레드의 예시도이다.
도 7은 본 발명의 일 실시 예에 따라 생성된 패리티 검사 행렬의 예시이다.
도 8은 일 실시 예에 따른 패리티 검사 행렬을 부호화 행렬로 변환하는 과정을 나타내는 예시도이다.
도 9는 본 발명에서 제시된 복구 부호의 안정성을 나타내는 차트이다.
도 10은 본 발명의 일 실시 예에 따른 복구 부호를 이용하는 부호화 방법의 흐름도이다.
도 11은 본 발명의 일 실시 예에 따른 복구 부호를 이용하는 복호화 장치의 블록도이다.1 is a block diagram of an encoding apparatus using a restoration code according to an embodiment of the present invention.
2 is an enlarged block diagram of a parity check matrix generation unit in the embodiment of FIG.
FIG. 3A is an exemplary diagram of a first sub-matrix generated by the first
3B is an exemplary diagram of a parity check matrix including a first sub-matrix and a second sub-matrix.
FIG. 4A is an example of a binary sequence of primitive polynomial coefficients according to a degree. FIG.
FIG. 4B is an example of a binary sequence of primitive polynomial coefficients according to a degree. FIG.
FIG. 4C is an example of a binary sequence of primitive polynomial coefficients according to a degree. FIG.
Figure 5 is a cross- Is represented by the sum of powers having exponents of 3 or less of the primitive elements and expressed by binary vectors using the coefficients of the terms.
6 is an illustration of a vector space and its 2-spread according to an embodiment of the present invention.
7 is an illustration of a parity check matrix generated according to an embodiment of the present invention.
8 is a diagram illustrating a process of converting a parity check matrix into an encoding matrix according to an embodiment.
9 is a chart showing the stability of the restoration code shown in the present invention.
10 is a flowchart of a coding method using a restoration code according to an embodiment of the present invention.
11 is a block diagram of a decoding apparatus using a restoration code according to an embodiment of the present invention.
이하, 본 발명의 일 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following description with reference to the accompanying drawings, the same or corresponding components are denoted by the same reference numerals, and a duplicate description thereof will be omitted.
또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 용어를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope. The singular expressions include plural expressions unless the context clearly dictates otherwise.
이하에서 설명하는 각 단계는 하나 또는 여러 개의 소프트웨어 모듈로도 구비가 되거나 또는 각 기능을 담당하는 하드웨어로도 구현이 가능하며, 소프트웨어와 하드웨어가 복합된 형태로도 가능하다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 각 용어의 구체적인 의미와 예시는 각 도면의 순서에 따라 이하 설명 한다. 이하에서는 본 발명의 실시예에 따른 복구 부호를 이용하는 부호화 장치의 구성을 관련된 도면을 참조하여 상세히 설명한다.Each of the steps described below may be implemented by one or a plurality of software modules, or hardware that is responsible for each function, or a combination of software and hardware. Throughout the specification, when an element is referred to as " including " an element, it does not exclude other elements unless specifically stated to the contrary. The terms "part", "unit", "module", "block", and the like described in the specification mean units for processing at least one function or operation, And a combination of software. Specific meanings and examples of the terms will be described below in accordance with the order of each drawing. Hereinafter, a configuration of an encoding apparatus using a restoration code according to an embodiment of the present invention will be described in detail with reference to related drawings.
도 1은 본 발명의 일 실시 예에 따른 복구 부호를 이용하는 부호화 장치의 블록도이다. 1 is a block diagram of an encoding apparatus using a restoration code according to an embodiment of the present invention.
복구 부호를 이용하는 부호화 장치(10)는 패리티 검사 행렬 생성부(100) 및 분산 저장부(200)를 포함한다.The
복구 부호를 이용하는 부호화 장치(10)는 패리티 검사 행렬을 생성하고, 생성된 패리티 검사 행렬을 이용하여 데이터를 부호화하여 부호어를 생성하며, 생성된 부호어를 분산 저장 시스템에 나누어 저장한다. 보다 상세하게는, 복구 부호를 이용하는 부호화 장치(10)는 패리티 검사 행렬을 생성하고, 생성된 패리티 검사 행렬을 이용하여 부호화 행렬을 생성하며, 상기 생성된 부호화 행렬을 이용하여 데이터를 부호화할 수 있다.The
예를 들어, 복구 부호를 이용하는 부호화 장치(10)는 대규모의 자료를 저장하고 유지해야 하는 분산 저장 시스템에서 데이터의 안전한 저장과 효율적인 관리를 위하여 사용될 수 있다. 복구 부호를 이용하는 부호화 장치(10)를 이용하여 데이터를 부호화하여 저장하고, 부호화된 데이터가 소실된 경우에 분산 저장 시스템에 저장된 데이터 노드들에 접속하여 소실된 데이터를 복구 할 수 있다. 본 발명에서 복구 부호는 연산 복잡도가 낮은 이진 부호로써 이진 부분접속 복구 부호를 사용하고, 기존의 최소거리 4를 갖는 부분접속 복구 부호를 개선하여 최소거리 6을 갖는 복구 부호를 사용할 수 있다.For example, an
또 다른 실시 예로, 복구 부호를 이용하는 부호화 장치(10)는 반복 부호 및 소실 부호와 같은 전통적인 오류정정부호를 이용할 수 있다. 하지만, 본 발명의 복구 부호를 이용하는 부호화 장치(10)는 분산 저장 시스템의 특성상 시스템의 안정성을 일정하게 유지하기 위해 장애가 발생한 노드를 수시로 복구 해야 할 필요가 있고, 이는 전통적인 오류정정부호가 사용되었던 시스템과는 차이가 있다. In another embodiment, the
패리티 검사 행렬 생성부(100)는 제1 부행렬 생성부(120) 및 제2 부행렬 생성부(140)를 포함한다.The parity check
패리티 검사 행렬 생성부(100)는 데이터 복구를 위해 접속하고자 하는 접속 노드수를 고려하여 상기 데이터를 부호화 하는 복구 부호의 오류를 검출하기 위한 패리티 검사 행렬을 생성한다. 상기 복구 부호는 이진 부분 접속 복구 부호이고, 상기 패리티 검사 행렬 생성부(100)는 상기 복구 부호의 길이 및 상기 데이터의 길이를 더 고려하여 상기 패리티 검사 행렬을 생성할 수 있다.The parity
예를 들어, 패리티 검사 행렬 생성부(100)는 복구 부호를 이용하여 부호화된 데이터인 부호어의 유효성을 검출하기 위한 패리티 검사 행렬을 생성하고, 복구 부호는 부호어의 집합을 의미하므로, 패리티 검사 행렬 생성부(100)는 복구 부호의 오류를 검출하는 패리티 검사 행렬을 생성할 수 있다. 도 2, 도 3a 및 도 3b를 참조하여 설명한다.For example, the parity
예를 들어, 패리티 검사 행렬 생성부(100)에서 생성된 패리티 검사 행렬은 후술하는 바와 같이 부호화 행렬로 변환할 수 있고, 부호화 행렬을 이용하여 데이터를 부호화할 수 있다. 패리티 검사 행렬 생성부(100)는 제1 부행렬 및 제2 부행렬을 포함하고, 제1 부행렬에 인접한 제2 부행렬을 이용하여 패리티 검사 행렬을 생성한다.For example, the parity check matrix generated by the parity check
제1 부행렬 생성부(120)는 부분 접속수를 확보하기 위한 제1 부행렬을 생성한다. 부분 접속수는 한 노드에 저장된 데이터를 복구 하기 위하여 접속하여야 하는 최소 접속 노드수를 의미한다.The first
예를 들어, 제1 부행렬 생성부(120)는 과 같이 0과 1을 포함하는 이진 시퀀스가 나열된 형태로 생성되고 상기 제1 부행렬의 서로 다른 행에서 1(넌-제로 엘리먼트, non-zeroelement)이 동일한 열에 배치되지 않게 함으로써 코드 레이트를 향상시킬 수 있다. 제1 부행렬 생성부(120)는 부분 접속수(r)을 고려하여 제1 부행렬의 한 행에서 나열되는 1의 수를 정하고, 행의 나머지 부분은 0을 배치하여 제1 부행렬을 생성한다. 구체적으로, 부분 접속수가 2인 경우 3개의 1(넌-제로 엘리먼트, non-zeroelement)을 연속하여 나열하고, 행의 나머지 부분은 0을 배치할 수 있다. 또한, 제1 부행렬 생성부(120)는 후술하는 바와 같이 부분 접속수, 복구 부호의 차원 및 서브벡터 공간의 크기(t-스프레드의 크기)를 고려하여 설정할 수 있다. t-스프레드는 미리 결정된 차원(m)의 벡터 공간을 분할하는 t차원의 서브 벡터 공간들의 집합을 의미한다.For example, the first
예를 들어, 제1 부행렬 생성부(120)는 r+1개의 1이 나열된 행을 가짐으로써 부분 접속수 r을 확보할 수 있다. 제1 부행렬을 포함하는 패리티 검사 행렬의 각각의 열은 하나의 부호화된 심볼을 의미하고, 각각의 행은 패리티 검사식에 해당한다. 즉, 제1 부행렬의 첫번째 행에 따른 패리티 검사식은 이고, 부호어 이 소실되는 경우 의 관계식을 이용하여 나머지 r개의 부호 심볼들로부터 c1을 구할 수 있다. 따라서, 상기의 제1 부행렬은 부분 접속수가 r임을 확인할 수 있다.For example, the first
또한, 제1 부행렬 생성부(120)에서 생성된 상기와 같은 제1 부행렬을 포함하는 패리티 검사 행렬은 최소거리 2를 만족한다. 공지의 정리에 따르면 패리티 검사 행렬의 임의의 z-1개의 열벡터가 항상 선형 독립(Linearly Independent)이고, 선형독립이 아닌 z개의 열벡터가 존재한다면(어떤 z개의 열벡터는 선형독립이 아니라면) 부호의 최소거리는 z이다. In addition, the parity check matrix including the first sub-matrix generated by the first
따라서, 와 같은 제1 부행렬을 가지는 패리티 검사 행렬은 임의의 1개의 열벡터가 항상 0이 아닌 벡터이고, 따라서 임의의 1개의 열벡터는 항상 선형 독립이며, 어떤(some) 2개의 행렬은 선형 독립이 아니기 때문에, 전술한 패리티 검사 행렬을 갖는 부호는 최소거리 2를 만족한다.therefore, , A parity check matrix having a first sub-matrix such that any one column vector is always a non-zero vector, so that any one column vector is always linearly independent and some two matrices are linearly independent , The code having the above-mentioned parity check matrix satisfies the
제2 부행렬 생성부(140)는 미리 결정된 차원을 가지는 이진 벡터 공간을 생성하고, 상기 생성된 이진 벡터 공간을 상기 부분 접속수에 따른 차원을 가지는 서브 벡터 공간들의 집합으로 분할하며, 상기 분할된 서브 벡터 공간들의 집합을 이용하여 상기 제2 부행렬을 생성할 수 있다. 상기 미리 결정된 차원은 부분 접속수 r및 t-스프레드의 크기 l을 고려하여 설정될 수 있다. The second
예를 들어, 제2 부행렬 생성부(140)는 전술한 제1 부행렬이 갖는 최소거리 2를 늘리기 위하여 제1 부행렬 아래에 인접하는 제2 부행렬을 생성할 수 있다. 최소거리는 임의의 소실(Erasure)이 발생할 경우에도 항상 원래 데이터로 복호가 가능한 최대 소실(Erasure)개수를 의미한다. 길이가 n, 부호의 차원이 k, 최소거리가 d인 임의의 부호는 d-1개의 소실(erasure)을 최대우도 복호를 통해 복구할 수 있다. 따라서, 동일한 최소거리에서 부호 전체의 길이가 길어지는 경우 시스템의 안정성을 확보할 수 없기 때문에, 개선된 최소거리를 가지는 부호의 생성이 요구된다.For example, the second
일 실시 예로, 제2 부행렬 생성부(140)는 부분 접속수 2 및 최소거리 2를 확보하는 제1 부행렬에 더하여 제2 부행렬을 생성함으로써 최소거리 6을 확보할 수 있다. 제2 부행렬을 생성하기 위한 벡터 공간 및 서브 벡터 공간으로 이루어지는 t-스프레드 생성법은 다음과 같다.In one embodiment, the second
여기에서, r은 부분 접속수, t는 서브 벡터 공간의 차원을 의미한다. 서브 벡터 공간의 차원은 서브 벡터 공간의 기저벡터의 수와 같다. 기저 벡터는 독립 벡터이면서 해당 벡터 공간을 생성할 수 있는 벡터를 의미한다. 예를 들어, 부분 접속수 r이 2인경우 상기 수학식 1을 만족하는 최소 t의 값은 2이다. 따라서, 부분 접속수 r이 2인경우 제2 부행렬 생성부(140)는 m차원 이진 벡터 공간의 2-스프레드를 생성하고, 이를 이용하여 제2 부행렬을 채울 수 있다. 부분 접속수 r에 따라 정해지는 t값을 구하고, 구해진 t값을 이용하여 m차원 이진 벡터 공간의 t차원 서브 벡터 공간들의 집합인t-스프레드를 구하는 방법은 m이 t로 나누어 떨어지는지 여부를 고려하여 설정한다. 부분접속수 r과 그에 따른 t값을 구한 후, 서브 벡터 공간들의 집합의 크기(l)은 부분 접속수(r), 상기 부분 접속수에 따른 상기 서브 벡터 공간의 차원(t) 및 상기 미리 결정된 차원이 상기 부분 접속수에 따른 상기 서브 벡터 공간의 차원으로 나누어 지는지 여부를 고려하여 설정할 수 있다.Where r is the number of partial connections and t is the dimension of the subvector space. The dimension of the subvector space is equal to the number of basis vectors of the subvector space. The base vector means an independent vector and a vector capable of generating the corresponding vector space. For example, if the partial connection number r is 2, the value of the minimum t satisfying the expression (1) is 2. Accordingly, if the partial connection number r is 2, the second
제2 부행렬 생성부(140)는 미리 결정된 차원(m)을 가지는 이진 벡터 공간을 생성하고, 상기 생성된 이진 벡터 공간을 부분접속수(r)에 따른 차원(t)을 가지는 서브 벡터 공간들의 집합으로 분할하는데, 서브 벡터 공간의 차원 t는 상기 수학식 1에서 r을 고려하여 설정되는 최소의 정수를 의미한다. The second
상기 수학식 2는 t가 m을 나누는 경우에 t-스프레드의 크기(m차원 이진 벡터 공간을 분할하는 t차원 서브 벡터 공간의 개수)를 구하는 관계식이다. 여기에서 m은 이진 벡터 공간의 차원이고, l은 t-스프레드의 크기로서, m차원 이진 벡터 공간을 분할하는 t-차원 서브 벡터 공간의 개수를 의미한다. Equation (2) is a relational expression for obtaining the size of the t-spread (the number of t-dimensional subvector spaces dividing the m-dimensional binary vector space) when t divides m. Where m is the dimension of the binary vector space and l is the size of the t-spread, which means the number of t-dimensional subvector spaces that divide the m-dimensional binary vector space.
여기에서 는 t가 m을 나누는 경우 t-스프레드의 i번째 서브 벡터 공간을 의미한다. 상기 수학식 3에서 는 주어진 차수가 m인 확장체 의 원시 원소, 원시 원소의 거듭제곱을 이라고 표현하며, t는 부분접속수 r에 따른 서브 벡터 공간의 차원, l은 t-스프레드의 크기, i는 0에서 l-1까지의 정수 의미한다. 주어진 을 이용하여 t가 m을 나누는 경우 t-스프레드의 i번째 서브 벡터 공간 는 수학식 3과 같이 생성될 수 있다. 또한, =<a,b>는 기저벡터 a 및 b로 생성되는 벡터 공간을 의미한다.From here Denotes the i-th subvector space of the t-spread when t divides m. In Equation (3) Lt; RTI ID = 0.0 > m < / RTI & Of a primitive element, the power of a primitive element T is the dimension of the subvector space according to the partial connection number r, l is the size of the t-spread, and i is an integer from 0 to l-1. given If t is divided by m using the i-th sub-vector space of the t-spread Can be generated as shown in Equation (3). Also, = < a, b > represents a vector space generated by the basis vectors a and b.
상기 수학식 4은 t가 m을 나누지 않는 경우에 t-스프레드의 크기(m차원 이진 벡터 공간을 분할하는 t 차원 서브 벡터 공간의 개수)l을 구하는 관계식이다. 여기에서, l은 t-스프레드의 크기이고, q는 유한체의 크기로 부호의 심볼 알파벳 사이즈, m은 미리 결정된 벡터 공간의 차원, t는 m차원의 벡터 공간을 분할하는 서브 벡터 공간의 차원, z는 m을 t로 나눈 나머지, h를 로 정의하면, 갈로아 필드 의 모든 원소를 과 같이 표현할 수 있고, 본 발명에서는 상기의 표현법을 사용한다Equation (4) is a relational expression for obtaining the magnitude of the t-spread (the number of t-dimensional subvector spaces dividing the m-dimensional binary vector space) l when t does not divide m. Here, 1 is the size of the t-spread, q is the size of the finite field, the symbol alphabet size of the sign, m is the dimension of the predetermined vector space, t is the dimension of the subvector space dividing the m- z is the remainder of dividing m by t, h Lt; RTI ID = 0.0 > All elements of , And the present invention uses the above-mentioned expression method
여기에서, S는 t가 m을 나누지 않는 경우에 생성되는 t-스프레드이고, w, , 및 은 각각 t차원의 서브 벡터 공간의 기저벡터 집합에 해당한다. 먼저, 를 의 원시 원소, 를 의 원시 원소, 및 로 정의한다. w는 유한체 의 원시 원소로 표현되는 기저벡터를 갖는 서브벡터 공간으로서 와 같다. 는 유한체 의 원시 원소로 표현되는 기저벡터를 갖는 서브 벡터공간으로서 와 같다. 는 전술한 원시 원소 및 및 로 표현되는 기저벡터를 갖는 서브 벡터 공간으로서, 와 같다. 전술한 바와 같이 <a,b>는 기저벡터 a 및 b로 생성되는 벡터 공간을 의미한다. 여기에서, i는 0에서 g-1까지의 정수 및 j는 0에서 임의의 정수 이며, m은 미리 결정된 이진 벡터 공간의 차원이고, t는 m차원의 이진 벡터 공간을 분할하는 서브 벡터 공간의 차원이며, h는 식을 만족하는 정수이다. 따라서, t가 m을 나누지 않는 경우 크기 l의 t-스프레드는 수학식 5와 같이 생성될 수 있다. 도 4a, 도 4b 및 도 4c 를 참조하여 설명한다.Where S is the t-spread generated when t does not divide m, and w, , And Correspond to the set of basis vectors of the sub-vector space of the t-dimensional, respectively. first, To Of the raw elements, To Of the raw elements, And . w is a finite element Raw element of As a subvector space having a basis vector expressed by < RTI ID = 0.0 > . Is a finite element Raw element of As a subvector space having a basis vector expressed by < RTI ID = 0.0 > . The above-mentioned raw element And And As a subvector space having a basis vector expressed by < RTI ID = 0.0 > . As described above, < a, b > denotes a vector space generated by the basis vectors a and b. Where i is an integer from 0 to g-1 and j is an integer from 0 to M is a dimension of a predetermined binary vector space, t is a dimension of a subvector space that divides an m-dimensional binary vector space, h is an integer It is an integer that satisfies the expression. Thus, if t does not divide m, then a t-spread of size l can be generated as shown in equation (5). Will be described with reference to Figs. 4A, 4B and 4C.
여기에서, r은 부분 접속수, m은 미리 결정된 벡터 공간의 차원, l은 t-스프레드의 크기이다. 상기 수학식 6은 수학식 2 및 수학식 4와 함께 벡터 공간의 차원 m을 정하는데 사용될 수 있다. 예를 들어, 부분 접속수 r을 정하고, 상기 수학식 1에 의하여 t값이 정해지면, t가 m을 나누는지 여부를 고려하여 수학식 2 또는 4를 선택하고, 상기 선택된 수학식 2 또는 4에 의해 결정된 l값을 찾아서, 수학식 6을 만족하는 m값을 찾을 수 있다. Where r is the partial connection number, m is the dimension of the predetermined vector space, and l is the size of the t-spread. Equation (6) can be used to determine the dimension m of the vector space together with Equations (2) and (4). For example, if the partial connection number r is determined and the t value is determined according to Equation (1), then Equation (2) or Equation (4) is selected in consideration of whether t divides m, And find the value of m, which satisfies Equation (6).
또 다른 실시 예로, 부분 접속수 r이 2인경우를 살펴보면, r=2이면 수학식 1에 의하여 t는 2의 값을 가진다. 이때 미리 결정된 벡터 공간의 차원 m값을 변화시키면서 수학식 2 또는 4 및 수학식 6을 만족하는지 여부를 판단한다. m=1인 경우 l=0 이고, m=2인 경우 수학식 2에 의하여 l=1이고, m=3인경우 수학식 4에 의하여 l=1인데, 이는 수학식 6을 만족하지 않는다. 하지만 m=4인경우 l은 수학식 2에 따라 5이고 이는 수학식 6을 만족하는 m 및 l값에 해당한다. 따라서, 제2 부행렬 생성부(140)는 부분접속수 r=2, t=2, m=4 및 l=5를 이용하여 이진 벡터 공간의 2-스프레드를 생성할 수 있다. In another embodiment, if the partial connection number r is 2, the value of t is 2 according to Equation (1) if r = 2. At this time, it is determined whether the
제2 부행렬 생성부(140)는 미리 결정된 차원을 가지는 이진 벡터 공간을 생성하고, 상기 생성된 이진 벡터 공간을 부분 접속수에 따른 차원을 가지는 서브 벡터 공간으로 분할하며, 상기 분할된 서브 벡터 공간을 이용하여 상기 제2 부행렬을 생성할 수 있다. 상기 분할된 부분접속수에 따른 차원을 가지는 서브 벡터 공간들의 집합을 t-스프레드라 한다. 여기에서, t-스프레드에 속하는 t차원의 서브 벡터 공간의 기저(basis)는 유한체의 원시 원소의 곱으로 표현이 되고, 제2 부행렬 생성부(140)는 이를 이진 벡터로 변환하여 제2 부행렬을 생성하므로, 이하 원시 원소의 곱으로 표현이 된 t차원 서브 벡터 공간의 기저(basis)를 이진 벡터로 표현하는 방법을 설명한다.The second
제2 부행렬 생성부(140)는 각 유한체의 차수(degree)에 따른 원시 다항식의 형태에 따라 서로 다른 이진 벡터로 표현된 이진 서브 벡터 공간을 생성할 수 있다. 예를 들어, 도 4a, 도 4b 및 도 4c에 도시된 바와 같이, 유한체의 차수가 5인 경우 존재 가능한 원시 다항식의 계수만을 이진 시퀀스로 표현하면 100101/101001/101111/110111/111011/111101로 표현 가능하다. 100101은 원시 다항식의 계수를 이진 벡터로 표현한 것이고, 100101을 미지수 x를 이용한 원시 다항식의 형태로 표현하면 와 같다. The second
또 다른 실시 예로, 차수가 2인 원시 다항식의 계수를 이진벡터로 표현하면 111이고, 이는 과 같다. 상기 원시 다항식은 원시 원소 를 근으로 가지기 때문에 와 같이 표현될 수 있다. 이진 연산을 이용하여 상기 다항식을 정리하면 이고, 유한체 의 모든 원소를 1이하의 지수를 갖는 의 거듭제곱들의 합으로 표현할 수 있다. 즉 차수가 2인 유한체 는 와 같이 정리할 수 있다.In another embodiment, the coefficient of the source polynomial having
제2 부행렬 생성부(140)는 미리 결정된 차수를 가지는 갈로아 필드 의 원시 원소의 거듭제곱으로 표현된 원소들을 상기 원시 원소를 근으로 가지는 원시 다항식을 이용하여 상기 차수 보다 작은 승수의 상기 원시 원소의 거듭제곱들의 합으로 변환하고, 상기 변환된 갈로아 필드의 원소들의 계수를 이용하여 이진 벡터로 표현된 제2 부행렬을 생성할 수 있다. 상기 미리 결정된 차수를 가지는 갈로아 필드는 미리 결정된 차수의 이진체의 확대체를 의미할 수 있다. 도 5를 참조하여 설명한다.The second
예를 들어, 차수가4인 유한체는 와 같이 표현되고, 차수가4인 경우 존재 가능한 원시 다항식의 형태는 10011 및 11001이 존재한다. 두가지 존재 가능한 원시 다항식의 계수 형태 중에서 10011을 선택하면 원시 다항식은 와 같고, 원시 원소를 근으로 가지므로 의 식을 만족한다. 따라서 이진 연산을 이용하여로 변환하고, 이를 이용하여 차수가4인 유한체의 모든 원소들을 상기 차수4보다 작은 승수의 원시 원소의 거듭제곱들의 합으로 정리하면 도 5의 와 같다. 원시 원소의 거듭제곱들의 합으로 표현된 원소 각 항의 계수를 이진 벡터로 변환하면 의 모든 원소는 이진 벡터 0000, 0001, 0010, 0100, 1000, 0011,….,1101, 1001로 표현될 수 있다. For example, a finite field with a degree of 4 And if the degree is 4, there exist 10011 and 11001 types of primitive polynomials that can exist. If you select 10011 from two possible exponential polynomial coefficients, the primitive polynomial , And since they have roots in their roots . Therefore, And by summing up all the elements of the finite field having the order of 4 using the sum of powers of the primitive elements of the multiplier smaller than the order of 4, . Converting the coefficients of each term of the element represented by the sum of powers of the primitive elements into a binary vector All elements of the binary vector 0000, 0001, 0010, 0100, 1000, 0011, ... ., 1101, and 1001, respectively.
예를 들어, 부분 접속수가 2인경우, 수학식 1을 만족하는 최소의 t는 2이고, t가 m을 나누는 경우 이므로, m=4로 가정하면 수학식 2및 수학식 6을 모두 만족하는 l값은 l=5이다. 따라서, m=4를 선택한 경우 차원이 4인 이진 벡터 공간의 2-스프레드 S는 다음과 같이 생성할 수 있다. For example, if the partial connection number is 2, the minimum t satisfying the expression (1) is 2 and t is the division of the m. Therefore, assuming that m = 4, The value is l = 5. Therefore, if m = 4 is selected, the 2-spread S of the binary vector space with
t-스프레드 S에 속하는 각각의 서브 벡터 공간의 기저(Basis)벡터 및 상기 서브 벡터 공간의 기저벡터의 합을 이용하여 제2 부행렬을 생성할 수 있다. 즉, 전술한 차원이 4인 이진 벡터 공간의 2-스프레드 S에서 5개의 각각의 서브 벡터 공간은 기저 벡터에 더하여 상기 기저 벡터들의 합을 원소로 포함할 수 있다. 예를 들어, m차원 이진 벡터 공간의 크기 l인 t-스프레드 S를 , 0에서 l-1까지 인덱스 넘버를 가지는 i를 이용하여 로 정의하고, t차원 서브 벡터 공간 Wi의 기저(Basis)를 로 정의한다. t차원 서브 벡터 공간의 기저 는 t개의 기저 벡터 로 이루어진 집합로 표현 가능하다. 기저 를 이용하여 새로운 집합 는 로 정의하고, 이때 각 원소는 하기의 수학식 7에서 도출될 수 있다. the second sub-matrix can be generated using the basis vectors of the respective subvector spaces belonging to the t-spread S and the sum of the basis vectors of the subvector space. That is, each of the five subvector spaces in the 2-spread S of the binary vector space having the dimension of 4 described above may include, in addition to the basis vectors, the sum of the basis vectors as an element. For example, the t-spread S, which is the size of the m-dimensional binary vector space, l , I with an index number from 0 to l-1 And Basis of the t-dimensional subvector space Wi is defined as . The basis of the t-dimensional subvector space T < / RTI > A set of . Base To create a new set The , Where each element can be derived from Equation (7) below.
여기에서 i는 0에서 l-1까지의 정수, j는 를 만족하는 정수, t는 부분접속수 r에 따라 정해지는 서브 벡터 공간들의 차원을 의미한다. 수학식 7을 이용하여 새로운 집합 의 원소를 정의할 수 있다상기 집합 및 를 이용하여 새로운 집합를 생성하고, 새로운 집합 에 포함된 길이가 m인 개의 벡터를 이용해 제2 부행렬을 생성할 수 있다. Where i is an integer from 0 to l-1, j is And t denotes a dimension of the subvector spaces determined according to the partial connection number r. Using equation (7), a new set The above set of elements And To create a new set And a new set The length included in A second sub-matrix can be generated by using a vector of two vectors.
집합 는 다음의 정리를 만족한다. set Satisfies the following theorem.
첫째, 집합 의 임의의 두개의 열벡터의 벡터합은 영벡터가 되지 않는다. 둘째, 집합 에서 임의의 네 개의 열벡터의 벡터합은 영벡터가 되지 않는다. First, The vector sum of any two column vectors of < RTI ID = 0.0 > Second, The vector sum of any four column vectors does not become a zero vector.
제2 부행렬 생성부(140)는 상기 생성된 를 이용하여 0에서 s-1까지의 값을 가지는 인덱스 i로 표현되는 부행렬 을 채울 수 있다. 집합에는 길이가 m인 개의 벡터들이 존재하고, 수학식 1을 만족하도록 t가 선택되었으므로, 의 원소 r+1개를 의 r+1개의 열벡터로 넣어서 패리티 검사 행렬을 생성할 수 있다. 상기 생성된 패리티 검사 행렬에 의하여 정의되는 부호는 부분 접속수가 r, 부호길이 n=(r+1)s, 부호차원 k=rs-m이고, 최소거리가 6이상임이 보장되는 부호가 된다.The second
여기에서 r은 부분 접속수, m은 이진 벡터 공간의 차원, l은 t-스프레드의 크기, s는 수학식 8의 범위를 만족하는 정수로서, 한 행의 길이를 n이라 할 때 와 같다. Where r is the partial number of connections, m is the dimension of the binary vector space, 1 is the size of the t-spread, and s is an integer that satisfies the range of
예를 들어, 부분 접속수가 2인경우, 수학식 1을 만족하는 최소의 t는 2이고, 수학식 2에 의하여 l은 5이다. 따라서, 수학식 5를 만족하는 s는 3,4 및 5를 포함한다. 제2 부행렬 생성부(140)는 s가 3인 경우 와 같은 행렬을 생성할 수 있다. 상기 패리티 검사 행렬을 갖는 부호는 길이가 9, 차원이 2, 부분접속수가 2, 최소거리가 6을 만족한다.For example, if the number of partial connections is 2, the minimum t
또 다른 실시 예로, s가 4인 경우 패리티 검사 행렬은 와 같다. 상기 패리티 검사 행렬은 길이 12, 차원이 4, 부분접속수 2, 최소거리가 6인 부호에 대응된다.In another embodiment, when s is 4, the parity check matrix is . The parity check matrix corresponds to a code having a length of 12, a dimension of 4, a partial connection number of 2, and a minimum distance of 6.
또 다른 실시 예로, s가 5인 경우 패리티 검사 행렬은 와 같다. 상기 패리티 검사 행렬은 길이 12, 차원이 6, 부분접속수2 및 최소거리 6을 가지는 부호에 대응된다.In another embodiment, when s is 5, the parity check matrix is . The parity check matrix corresponds to a code having a length of 12, a dimension of 6, a partial connection number of 2, and a minimum distance of 6.
분산 저장부(200)는 패리티 검사 행렬부(100)에서 생성된 패리티 검사 행렬을 이용하여 부호어를 생성하고, 상기 생성된 부호어를 분산 저장 시스템에 분산 저장한다. The distributed
예를 들어, 분산 저장부(200)는 상기 생성된 패리티 검사 행렬을 이용하여 부호화 행렬을 생성하고, 상기 생성된 부호화 행렬을 이용하여 상기 데이터를 부호화하여 부호어를 생성할 수 있다. 보다 상세하게는, 분산 저장부(200)는 생성된 패리티 검사 행렬을 제1 단위 행렬과 나머지 부행렬을 포함하는 조직적 형태로 변환하고, 상기 변환된 패리티 검사 행렬의 부행렬을 전치하며, 상기 전치된 부행렬 및 제2 단위 행렬을 포함하는 부호화 행렬을 생성하고, 상기 생성된 부호화 행렬을 이용하여 상기 부호어를 생성할 수 있다. 상기 조직적 형태의 행렬은 단위 행렬을 포함하는 형태의 행렬을 의미한다. 조직적 형태의 패리티 검사 행렬은 패리티 검사 행렬 H에 기본행 연산(Elementary row operation)을 적용하여 구할 수 있다. 패리티 검사 행렬을 이용하여 부호화 행렬을 생성하는 방법은 도 8을 참조하여 후술한다.For example, the distributed
도 2는 도 1의 실시예에서 패리티 검사 행렬 생성부(100)의 확대 블록도이다.2 is an enlarged block diagram of a parity check
패리티 검사 행렬 생성부(100)는 제1 부행렬 생성부(120) 및 제2 부행렬 생성부(140)을 포함한다. 패리티 검사 행렬 생성부(100)는 최소 접속 노드수를 고려하여 상기 데이터를 부호화 하는 복구 부호의 오류를 검출하기 위한 패리티 검사 행렬을 생성할 수 있다. The parity check
일 실시 예로, 패리티 검사 행렬 생성부(100)는 데이터 복구를 위해 접속하고자 하는 최소 접속 노드수인 부분 접속수, 상기 복구 부호의 길이 및 상기 데이터의 길이를 고려하여 패리티 검사 행렬을 생성할 수 있다. 패리티 검사 행렬 생성부(100)에서 중복되는 사항은 전술한 바와 같으므로 생략한다.In one embodiment, the parity
도 3a는 제1 부행렬 생성부(120)에서 생성된 제1 부행렬의 예시도이다.3A is an exemplary diagram of a first sub-matrix generated by the first
제1 부행렬 생성부(120)는 최소 접속 노드수인 부분 접속수를 확보하기 위한 제1 부행렬을 생성한다. The first
예를 들어, 부분접속수가 r인 경우 패리티 검사 행렬 H의 각 행에는 넌-제로 엘리먼트(non-zeroelement) r+1개가 존재한다. 패리티 검사 행렬 H의 각 행은 패리티 검사 식이고, 상기 패리티 검사 행렬의 서로 다른 행의 넌-제로 엘리먼트는 동일한 열에 존재하지 않음으로써 부분 접속수를 확보함과 동시에 코드 레이트를 향상 시킬 수 있다. 제1 부행렬을 포함하는 패리티 검사 행렬은 부분접속수 r이고 최소거리 2를 만족하는 부호를 가질 수 있다. 제1 부행렬에 관한 사항은 전술한 바와 같으므로 생략한다.For example, if the partial connection number is r, there are r + 1 non-zero elements in each row of the parity check matrix H. [ Each row of the parity check matrix H is a parity check matrix, and the non-zero elements of the different rows of the parity check matrix are not present in the same column, thereby securing the partial connection count and improving the code rate. The parity check matrix including the first sub-matrix may have a code satisfying the
도 3b는 제1 부행렬 및 제2 부행렬을 포함하는 패리티 검사 행렬의 예시도이다. 제2 부행렬 생성부(140)는 제1 부행렬에 인접하여 배치되는 제2 부행렬을 생성한다. 패리티 검사 행렬 생성부(100)는 생성된 제1 부행렬 및 제2 부행렬을 이용하여 패리티 검사 행렬을 생성한다.3B is an exemplary diagram of a parity check matrix including a first sub-matrix and a second sub-matrix. The second
패리티 검사 행렬 생성부(100)에서 생성된 패리티 검사 행렬이 포함하는 제1 부행렬은 HL, 제2 부행렬은 HG로 표기될 수 있고, 제1 부행렬은 상단, 제2 부행렬은 제1 부행렬의 하단에 인접하여 배치될 수 있다. 제2 부행렬을 생성하는 방법은 전술 한 바와 같으므로 생략한다.The first sub-matrix included in the parity check matrix generated by the parity-check
도 4a 는 차수(Degree)에 따라 생성될 수 있는 원시 다항식의 계수를 이진 시퀀스로 표현한 예시도이다.FIG. 4A is an example of a binary sequence representing coefficients of a primitive polynomial that can be generated according to a degree. FIG.
제2 부행렬 생성부(140)는 미리 결정된 차수에 따라 결정되는 크기를 갖는 갈로아 필드에서 원시 원소의 거듭제곱으로 표현된 원소들을 상기 원시 원소를 근으로 가지는 원시 다항식을 이용하여 상기 미리 결정된 차원 보다 작은 승수의 상기 원시 원소의 거듭제곱들의 합으로 변환하고, 상기 변환된 갈로아 필드의 원소들의 각 항의 계수를 이용하여 이진 벡터로 표현된 상기 제2 부행렬을 생성할 수 있다. The second
상기 원시 원소를 근으로 가지는 원시 다항식은 차원에 따라 다양한 형태가 존재할 수 있고, 복구 부호를 이용하는 부호화 장치(10)는 모든 존재 가능한 다항식을 이용하여 원시 원소의 거듭제곱으로 갈로아 필드의 원소들을 변환할 수 있다. 상기 미리 결정된 차원은 상기 부분 접속수 및 상기 벡터 공간을 분할하는 서브 벡터 공간들의 집합의 크기를 고려하여 설정될 수 있음은 전술한 바와 같다.The primitive polynomial having the root of the primitive element may exist in various forms according to the dimension, and the
도 4b 는 차수(Degree)에 따라 생성될 수 있는 원시 다항식의 계수를 이진 시퀀스로 표현한 예시도이다.FIG. 4B is an example of a binary sequence representing coefficients of a primitive polynomial that can be generated according to a degree. FIG.
각 차수(Degree)에 따라 생성되는 원시 다항식과 이를 이용하는 제2 부행렬 생성부(140)의 내용은 전술한 바와 같으므로 생략한다.The primitive polynomial generated according to each degree and the contents of the second
도 4c 는 차수(Degree)에 따라 생성될 수 있는 원시 다항식의 계수를 이진 시퀀스로 표현한 예시도이다. 각 차원(Degree)에 따라 생성되는 원시 다항식과 이를 이용하는 제2 부행렬 생성부(140)의 내용은 전술한 바와 같으므로 생략한다.FIG. 4C is an example of a binary sequence representing coefficients of a primitive polynomial that can be generated according to a degree. FIG. The primitive polynomial generated according to each degree and the contents of the second
도 5는 갈로아 필드 의 원시 원소의 거듭제곱으로 표현된 원소들을 원시 원소의 3이하의 지수를 갖는 거듭제곱들의 합으로 표현한 예시도이다.Figure 5 is a cross- And the elements represented by the powers of the primitive elements of the primitive elements are expressed as a sum of powers having exponents of 3 or less of the primitive elements.
예를 들어, 제2 부행렬 생성부(140)는 도 4a, 도 4b 및 도 4c의 각 차수에 따른 원시 다항식을 이용하여 해당 차수보다 작은 승수를 갖는 원시 원소의 거듭제곱들의 합으로 유한체의 원소를 변환하고, 변환된 유한체의 원소들의 각 항의 계수를 이용하여 유한체의 원소들을 이진 벡터로 표현할 수 있다.For example, the second
일 실시 예로, 제2 부행렬 생성부(140)는 차수가 4인 이진 확장체 의 각 원소들을 차수가 4인 원시 다항식 중 10011을 이용하여 승수가 4보다 작은 원시 원소의 거듭제곱들의 합으로 변환하고, 변환된 원소들의 각 항의 계수를 이용하여 상기 원시 원소들을 이진 벡터로 표현할 수 있다.In one embodiment, the second
도 6은 본 발명의 일 실시 예에 따른 벡터 공간과 그의 2-스프레드의 예시도이다.6 is an illustration of a vector space and its 2-spread according to an embodiment of the present invention.
은 3차원 이진 벡터 공간을 의미하고, 하기의 W는 크기가 1인 2-스프레드를 의미한다. 는 4차원 이진 벡터 공간을 의미하고, 하기의 S는 크기가 5인 2-스프레드를 의미한다. 여기에서, 여기에서 w1, w2, w3, w4 및 w5는 2차원 서브 벡터 공간들을 표현한 것이다. Means a three-dimensional binary vector space, and W denotes a two-spread having a size of 1. Means a four-dimensional binary vector space, and S in the following represents a two-spread having a size of 5. Here, w1, w2, w3, w4 and w5 represent two-dimensional subvector spaces.
도 7은 본 발명의 일 실시 예에 따라 생성된 패리티 검사 행렬의 예시이다.7 is an illustration of a parity check matrix generated according to an embodiment of the present invention.
H1의 패리티 검사 행렬을 갖는 부호 C1은 길이9, 차원2, 부분접속수 2 및 최소거리 6을 가지고, H2의 패리티 검사 행렬을 갖는 부호 C2는 길이 12, 차원 4, 부분접속수 2 및 최소거리 6을 가지며, H3의 패리티 검사 행렬을 가지는 부호 C3는 길이 15, 차원6, 부분접속수 2 및 최소거리 6을 만족한다.The code C1 having a parity check matrix of H1 has a length of 9, a dimension of 2, a partial connection number of 2 and a minimum distance of 6, and a code of C2 having a parity check matrix of H2 has a length of 12, a dimension of 4, 6, and the code C3 having the parity check matrix of H3 satisfies the length 15, the
예를 들어, 패리티 검사 행렬 생성부(100)는 H1, H2 및 H3의 패리티 검사 행렬을 생성할 수 있고, 분산 저장부(200)는 생성된 패리티 검사 행렬을 이용하여 데이터를 부호화한다. 보다 상세하게는, 복구 부호를 이용하는 부호화 장치(10)는 상기 생성된 패리티 검사 행렬을 이용하여 부호화 행렬을 생성하고, 상기 생성된 부호화 행렬을 이용하여 데이터를 부호화할 수 있다. 생성된 패리티 검사 행렬 H1, H2 및 H3의 최소거리가 6을 만족하기 위해서는 다음의 정리를 만족하여야 한다.For example, the parity check
패리티 검사 행렬 생성부(100)에서 생성된 패리티 검사 행렬에 포함되는 제2 부행렬의 열벡터들이 s개의 그룹(한 그룹은 r+1개의 열벡터들을 포함함)으로 분할된다고 가정할때, 제2 부행렬의 열벡터들은 다음의 세가지 조건을 만족하여야 한다.Assuming that the column vectors of the second sub-matrix included in the parity check matrix generated by the parity check
첫째, 동일한 그룹에 속하는 모든 열벡터 중 임의의 두개의 열벡터의 벡터합이 영벡터가 되지 않는다. 둘째, 동일한 그룹에 속하는 모든 열벡터 중 임의의 네 개의 열벡터의 벡터합이 영벡터가 되지 않는다. 셋째, 하나의 그룹에서 선택된 임의의 두 개의 열벡터와 또 다른 하나의 그룹에서 선택된 임의의 두 개의 열벡터로 이루어진 네 개의 열벡터의 벡터합이 영벡터가 되지 않는다.First, the vector sum of any two column vectors of all column vectors belonging to the same group does not become a zero vector. Second, the vector sum of any four column vectors of all column vectors belonging to the same group does not become a zero vector. Third, the vector sum of the four column vectors consisting of any two column vectors selected in one group and any two column vectors selected in another group does not become a zero vector.
패리티 검사 행렬 생성부(100)에서 생성된 패리티 검사 행렬이 최소거리 6임을 증명하기 위해서는 패리티 검사 행렬에서 선택된 임의의 5개 이하의 열벡터가 항상 선형 독립임을 보임으로써 증명할 수 있다. 제1 부행렬 생성부(120)에서 생성된 제1 부행렬의 구조적 특징에 의해, 생성된 패리티 검사 행렬의 홀수 개의 열벡터들의 벡터합은 항상 영이 아닌 벡터가 된다. 따라서, 다섯 개 이하의 짝수 개의 열벡터들의 벡터합이 영이 아닌 벡터가 됨을 보이면 된다. In order to prove that the parity check matrix generated by the parity check
패리티 검사 행렬 생성부(100)에서 생성된 패리티 검사 행렬이 상기 3가지의 조건을 만족하는 경우, 패리티 검사 행렬의 모든 5개 이하의 짝수 개의 임의의 열벡터들의 벡터합은 항상 영이 아닌 벡터가 됨이 보장된다. 따라서, 상기 생성된 패리티 검사 행렬을 갖는 부호의 최소거리는 6이상임이 보장된다.If the parity check matrix generated by the parity check
수학식 9는 최소거리가 d인 (n,k,r)q 부분접속 복구 부호의 차원 k의 상한계를 나타내는 식이다. 여기에서 n은 복구 부호의 길이, k는 복구 부호의 차원, r은 부분접속수, d는 최소거리이고, q는 유한체의 크기로 부호의 심볼 알파벳 사이즈이다. (n,k,r)q부분접속 복구 부호는 크기q인 유한체에서 정의되는 길이 n, 차원k, 그리고 부분접속수가 r인 부호이고, 는 길이가 n, 최소거리가 d, 알파벳 사이즈가 q인 부호가 가질 수 있는 최대 차원이다. Equation (9) represents an upper limit of the dimension k of the (n, k, r) q partial access restoration code having the minimum distance d. Where n is the length of the restoration code, k is the dimension of the restoration code, r is the number of partial connections, d is the minimum distance, and q is the size of the finite field and is the symbol's alphabet size. (n, k, r) q The partial access recovery code is a code with length n, dimension k, and partial access number r defined in finite field q, Is the largest dimension that a code of length n, minimum distance d, and alphabet size q can have.
상기 표 1은 최소거리가 6으로 주어졌을 때, 부호의 길이 n에 따라, 이진 부호의 가능한 최대 차원 의 값을 나타낸다. 여기에서, n은 부호의 길이를 의미한다. 수학식 9의 상한계를 이용하여 패리티 검사 행렬 H1, H2 및 H3를 가지는 부호 C1, C2 및 C3가 최적임을 확인하기 위해, 표1의 을 이용하여 최적임을 확인한다. 표1은 'M. Grassl, Bounds on the minimum distance of linear codes and quantum codes, Online available at http://www.codetables.de.'을 참조한 것이다. 예를 들어, 부호 C1은 부분접속수 특성을 고려하지 않더라도 주어진 길이 n=12와 최소거리 d=6을 갖는 모든 이진 선형 부호가 가질 수 있는 최대 가능한 차원 를 달성하는 부호이므로 최적이다. 부호 C2를 수학식 9에 대입할 경우, t=1일 때 수학식 9의 우변이 최소가 되고, 이때의 값이 4이고 C2의 차원과 같다. 따라서 부호 C2 역시 최적이다. 부호 C3를 수학식 9에 대입하면 t=1일 때 수학식 9의 우변이 최소가 되고, 부호 C3의 차원은 이때의 값 6과 같다. 따라서 부호 C3 역시 최적임을 확인할 수 있다.Table 1 shows the maximum possible dimension of the binary code according to the length n of the code when the minimum distance is given as 6 Lt; / RTI > Here, n means the length of the code. In order to confirm that the codes C1, C2 and C3 having the parity check matrices H1, H2 and H3 are optimal by using the upper limit of the expression (9) To confirm that it is optimal. Table 1 shows' M. Grassl, Bounds on the minimum distance of linear codes and quantum codes, online available at http://www.codetables.de. For example, the code C1 indicates the maximum possible dimension that all binary linear codes having a given length n = 12 and a minimum distance d = 6 can have, And is therefore optimal. When the code C2 is substituted into the equation (9), the right side of the equation (9) becomes minimum when t = 1, and the value at this time is 4 and equal to the dimension of C2. Therefore, code C2 is also optimal. When the code C3 is substituted into
도 8은 일 실시 예에 따른 패리티 검사 행렬을 부호화 행렬로 변환하는 과정을 나타내는 예시도이다.8 is a diagram illustrating a process of converting a parity check matrix into an encoding matrix according to an embodiment.
분산 저장부(200)는 패리티 검사 행렬을 이용하여 상기 데이터의 부호화에 따른 부호어를 생성하고, 생성된 부호어를 분산 저장 시스템에 저장한다. The distributed
예를 들어, 분산 저장부(200)는 상기 생성된 패리티 검사 행렬을 제1 단위 행렬과 나머지 부행렬을 포함하는 조직적 형태로 변환하고, 상기 변환된 패리티 검사 행렬의 부행렬을 전치하며, 상기 전치된 부행렬 및 제2 단위 행렬을 포함하는 부호화 행렬을 생성하고, 상기 생성된 부호화 행렬을 이용하여 상기 부호어를 생성할 수 있다. 분산 저장부(200)는 전술한 바와 같이 패리티 검사 행렬에 기본행 연산을 적용하여 조직적 형태(Systematic)로 변환하여 H' 행렬을 생성할 수 있다. 조직적 형태로 변환된 패리티 검사 행렬 H'는 도8에 도시된 바와 같이 우측에 단위 행렬을 가지는데, 분산 저장부(200)는 단위 행렬을 제외한 조직적 형태로 변환된 패리티 검사 행렬 H'의 부행렬을 전치하고, 전치된 부행렬의 좌측에 단위 행렬을 결합하여 조직적 형태의 부호화 행렬 G'를 구하며 부호화 행렬 G'에 역 열 교환을 적용하여 G'' 부호화 행렬을 구하고, 이를 이용하여 데이터를 부호화 할 수 있다.For example, the distributed
여기에서, c는 부호어 벡터, m은 메시지 벡터, G는 부호화 행렬 또는 생성행렬이다. 상기 수학식 10은 일반적인 부호의 패리티 검사 행렬 H와 부호화행렬 G, 데이터 벡터 m, 부호어 벡터 c사이에 항상 성립하는 관계식이다. 에서 행렬 G를 대신하여 G''를 부호화 행렬 G로써 대입하여도 만족한다.Where c is a codeword vector, m is a message vector, and G is an encoding matrix or generator matrix. Equation (10) is a relational expression always established between the parity check matrix H of a general code, the encoding matrix G, the data vector m, and the codeword vector c. G " is substituted into the encoding matrix G instead of the matrix G in Fig.
도 9는 본 발명에서 제시된 복구 부호의 안정성을 나타내는 차트이다.9 is a chart showing the stability of the restoration code shown in the present invention.
본 발명에서 제안된 복구 부호의 장점을 알아보기 위해 MTTDL(Mean Time To Data Loss)을 이용한다. 종래 부호의 MTTDL을 구하고, 각 부호의 MTTDL을 구하여, 이들 사이의 비율을로 정의하여 사용한다. 즉, 종래 분산 저장 시스템에 사용되어 왔던 3회 반복 부호의 MTTDL값을 분모로 하고, 이 부호와의 비교를 원하는 새로운 부호의 MTTDL값을 분자로 정의하여을 구할 수 있다. MTTDL(Mean Time To Data Loss) 및 을 구하는데 필요한 파라미터의 설정은 "J. Hao, S.-T. Xia, and B. Chen, "Some results on optimal locally repairable codes," in Proc. IEEE Int. Symp. Inf. Theory (ISIT), pp. 440-444, Jun.2016.에 따른다.The mean time to data loss (MTTDL) is used to find out the merits of the recovering code proposed in the present invention. The MTTDL of the conventional code is obtained, the MTTDL of each code is obtained, and the ratio between them . That is, the MTTDL value of the third repetition code which has been used in the conventional distributed storage system is denominator, and the MTTDL value of a new code which is desired to be compared with this code is defined as a numerator Can be obtained. Mean time to data loss (MTTDL) and (ISIT), " IEEE Int. Symp. Inf. Theory (ISIT), " pp. 440-444, Jun.2016.
도 9에는 3회 반복 부호를 기준으로 하여, 종래의 최소거리가 항상 4인 부분접속 복구 부호와 본 발명에서 제안하는 최소거리가 항상 6인 부분접속 복구 부호의 가 도시되어 있다. 여기에서, 각 부호는 길이 n이 증가함에도 최소거리는 항상 상수 4와 6으로 고정되어 있기 때문에, n이 증가함에 따라 가 감소하는 형태를 보인다.9 shows a partial access recovery code with a minimum minimum distance of 4 and a partial access recovery code with a minimum distance always 6 according to the present invention, Are shown. Here, since the minimum distance is always fixed to
기준선으로 3회 반복 부호의 을 두꺼운 실선으로 표기하였고, 부분접속수가 2이고 최소거리가 4인 이진 부분접속 복구 부호의 를 점선으로 표시하였다. 제안된 복구 부호는 동그라미로 표기하였다. 부분접속수가 2이고 최소거리가 4인 이진 부분접속 복구 부호의 는 n이 14이상이 되면 3회 반복 부호에 비해 MTTDL이 더 작아지는 반면, 제안하는 부호는 n이 103이하의 부호 길이 까지는 3회 반복 부호보다 큰 MTTDL값을 가진다.The baseline consists of three And a binary partial connection restoration code having a partial connection number of 2 and a minimum distance of 4 Are indicated by dotted lines. The proposed restoration codes are indicated by circles. Of the binary partial access repair code with a partial connection number of 2 and a minimum distance of 4 The MTTDL is smaller than the 3-iteration code when n is 14 or more, while the MTTDL is larger than the 3-iteration code until the code length of n is 103 or less.
도 10은 본 발명의 일 실시 예에 따른 복구 부호를 이용하는 부호화 방법(S10)의 흐름도이다.10 is a flowchart of a coding method (S10) using a restoration code according to an embodiment of the present invention.
S100에서, 패리티 검사 행렬 생성부(100)는 데이터 복구를 위해 접속하고자 하는 접속 노드수를 고려하여 상기 데이터를 부호화 하는 복구 부호의 오류를 검출하기 위한 패리티 검사 행렬을 생성하는 패리티 검사 행렬을 생성한다. 패리티 검사 행렬 생성부(100)는 하나의 노드를 복구하기 위해 접속해야 하는 최소 노드수인 부분 접속수에 더하여 상기 복구 부호의 길이 및 상기 데이터의 길이를 더 고려하여 상기 패리티 검사 행렬을 생성할 수 있다. In step S100, the parity
S200에서, 분산 저장부(200)는 패리티 검사 행렬부(100)에서 생성된 패리티 검사 행렬을 이용하여 부호어를 생성하고, 상기 생성된 부호어를 분산 저장 시스템에 분산 저장한다. 분산 저장부(200)에 관한 사항은 전술한 바와 같으므로 생략한다.In S200, the distributed
도 11은 본 발명의 일 실시 예에 따른 복구 부호를 이용하는 복호화 장치의 블록도이다.11 is a block diagram of a decoding apparatus using a restoration code according to an embodiment of the present invention.
복구 부호를 이용하는 복호화 장치(20)는 패리티 검사 행렬 생성부(100), 분산 저장부(200) 및 복호화부(300)를 포함한다.The
복구 부호를 이용하는 복호화 장치(20)는 분산저장시스템에 저장된 부호화된 일부의 데이터가 임의로 소실된 경우에도 복호를 통해 원래의 데이터를 복구할 수 있다. The
예를 들어, 복구 부호를 이용하는 복호화 장치(20)는 길이가 n, 부호의 차원이 k, 최소거리가 d인 블록 코드인 경우 최대 d-1개의 임의의 소실을 최대우도복호를 통해 복구 할 수 있다. 이는 분산 저장 시스템에서 임의의 n-d+1개의 데이터 노드에 접속해 저장된 블록을 다운로드 받아와서 가우스 소거 연산을 적용하는 것과 같다. 복구 부호를 이용하는 복호화 장치(20)는 (n,k,d)부호 C의 패리티 검사 행렬 H를 이용하여 부호화 행렬 G를 구하고, 이를 이용하여 메시지 벡터 m을 부호화하고, 부호어 c=(c1,c2,…cn)을 생성해낼 수 있다.For example, the
여기에서 H는 (n,k,d)부호 C의 패리티 검사 행렬이고, c는 부호어이다. 임의의 n-d+1개의 데이터 노드에 접속하여 받아온 코드 블록의 인덱스들의 집합을 K라고 하면, 는 K의 여집합이고, 이때 이고, 이다. 는 에 속하는 인덱스를 갖는 열벡터들로 이루어진 H의 부행렬을 의미한다.수학식11로부터 수학식 12를 도출해 낼 수 있다.Where H is a parity check matrix of (n, k, d) code C, and c is a codeword. Let K be a set of indices of code blocks received and connected to any
여기에서, 는 에 속하는 인덱스를 갖는 열벡터들로 이루어진 H의 부행렬을 의미한다. 또한, K는 인덱스들의 집합이고, c는 부호어 및 T는 전치 행렬 연산을 의미한다.From here, The Quot; is a sub-matrix of H consisting of column vectors having indexes belonging to " H " Also, K is a set of indices, c is a codeword, and T is a transpose matrix operation.
수학식 12를 푸는 것은 해당 부호의 복호 알고리즘이 된다. 즉, 수학식 12를 푸는 것은 크기의 행렬에 대해 가우스 소거법을 적용하는 것과 같다. 일반적으로 크기의 행렬에 가우스 소거법을 적용하는 경우, 필요한 덧셈의 횟수는 이고, 필요한 곱셈의 횟수는 가 된다. Solving Equation (12) becomes a decoding algorithm of the corresponding code. That is, solving equation (12) It is equivalent to applying a Gaussian elimination method for a matrix of size. Generally When applying Gaussian elimination to a matrix of size, the number of additions required is , And the number of necessary multiplications is .
일 실시 예에 따른 복구 부호를 이용하는 복호화 장치(20)가 수행하는 로컬 복구를 이용한 복호 알고리즘의 예를 설명한다. 먼저, 다음과 같은 행렬 H를 패리티 검사 행렬로 갖는 부호 C를 가정한다. 상기 패리티 검사 행렬 를 패리티 검사 행렬로 가지는 부호 C는 길이가 9, 차원이 2, 최소거리가 6인 부호이다. 이 부호의 부호어를 라고 하면, 수학식 11을 이용하여 최대 5개의 소실이 발생한 경우에도 최대우도복호를 통해 원래의 메시지 벡터를 복호할 수 있다.An example of a decoding algorithm using local recovery performed by the
예를 들어, 사용자가 4개의 저장 노드에 접속하여 저장된 부호 심볼들을 다운로드 받아오는 상황을 가정하면, 의 다섯개 심볼을 수신했고, 4개의 심볼을 받아 오지 않아서 모른다고 가정하면, 을 다음과 같이 쓸 수 있다.For example, assuming that a user connects to four storage nodes to download stored code symbols, Lt; RTI ID = 0.0 > symbol, Assuming you do not know that you have not received four symbols, Can be written as
상기 패리티 검사 행렬의 윗 부분 3개의 행을 이용하여 로컬 패리티 검사식은 로 정의된다. 상기 패리티 검사 행렬의 윗 부분의 3개의 행은 이 부호에 부분접속 복구 특성을 부여한다. 상기 3개의 패리티 검사식에서 c1, c2 및c3를 포함하는 첫 번째 식의 세 개의 심볼은 아는 값이고, 두 번째 식에서는 c6만 미지수이다. 두 번째 식에서 c6을 이진 연산을 통하여 구할 수 있다. c7, c8 및 c9를 포함하는 세번째 식의 세 개의 심볼은 모두 미지수이므로 이식을 통해 알 수 있는 심볼의 값은 없다. 따라서, 두번째 패리티 검사식만을 통해 소실된 심볼 c6을 가우스 소거법을 적용하기 전에 미리 찾아낼 수 있다.The parity check matrix The local parity check expression using the three rows above . The three rows at the top of the parity check matrix give the partial access recovery property to this code. In the three parity check equations, three symbols of the first equation including c1, c2 and c3 are known values, and in the second equation, only c6 is unknown. In the second equation, c6 can be obtained through a binary operation. Since the three symbols of the third equation including c7, c8, and c9 are all unknown, there is no symbol value that can be known through the graft. Therefore, the lost symbol c6 can be found before applying the Gaussian elimination method only through the second parity check expression.
복구 부호를 이용하는 복호화 장치(20)는 종래의 가우스 소거법을 이용한 최대 우도 복호 알고리즘과 달리 미지수 심볼의 개수를 4개(c6, c7, c8, c9)에서 3개(c7, c8, c9)로 줄일 수 있다. 상기 세개의 심볼만을 미지수로 갖는 관계식을 행렬로 표현하면 다음과 같다. The
상기 세개의 심볼만을 미지수로 갖는 관계식을 행렬로표현하면와 같고, 가우스 소거법을 적용하여 나머지 3개의 미지수 심볼 c7, c8 및 c9의 값을 구할 수 있다. 복구 부호를 이용하는 복호화 장치(20)가 이용하는 행렬의 크기는 종래의 복호 알고리즘을 바로 적용하는 경우 보다 작기 때문에, 가우스 소거 연산시에 연산의 횟수가 적어지고, 복호 복잡도가 낮다고 할 수 있다. 바람직하게는, 복구 부호를 이용하는 복호화 장치(20)는 다운 로드 하지 않은 5개의 심볼을 로컬 패리티 검사식에 의해 구할 수 있고, 이때는 가우스 소거 연산을 적용하지 않을수 있어 연산 복잡도를 크게 낮출 수 있는 장점이 있다.If a relational expression having only three symbols as an unknown number is represented by a matrix And the values of the remaining three unknown symbols c7, c8 and c9 can be obtained by applying the Gauss elimination method. Since the size of the matrix used by the
본 발명에서 복구 부호를 이용하는 복호화 장치(20)는 부분접속 복구 부호의 로컬 복구 특성을 이용하여 상기의 연산 횟수를 더 줄일 수 있다. 복구 부호를 이용하는 복호화 장치(20)는 부분접속 복구 부호의 모든 심볼 인덱스 i를 포함하는 크기가 최대 r+1이하인 복구 집합 R(i)를 이용하여 간단한 로컬 복구를 수행함으로써 복구를 수행할 수 있다. 예를 들어, 복구 부호를 이용하는 복호화 장치(20)가 이진 부분접속 복구 부호를 이용하는 경우 R(i)에 속하는 r+1개 중 i번째 심볼 블록만이 소실된 경우 의 r개의 심볼블록들의 xor연산만을 통해 해당 블록 ci를 복구해낼 수 있다. 따라서에 속하는 블록들 중 로컬 복구가 가능한 블록을 복구한 후, 로컬 복구되지 못한 나머지 소실에 대해서만 가우스 소거법을 적용하면보다 더 작은 크기의 행렬에 가우스 소거법을 적용하여 최대우도 복호를 완벽히 수행할 수 있다.In the present invention, the
복구 부호를 이용하는 복호화 장치(20)는 부분접속수가 2인 (27,13,6) 부호가 적용된 시스템에서, 사용자가 임의의 22개의 노드에 접속해 코드 블록을 받아오고 이를 이용해 복호화 함에 있어, 기존의 가우스 소거법을 바로 적용하는 경우 평균 28회 덧셈을 필요로 하는 것과는 달리, 평균 7.18회의 덧셈을 수행하기 때문에 연산 횟수가 감소된 복호화를 수행할 수 있다. 상기 복구 부호를 이용하는 복호화 장치(20)가 수행하는 평균 덧셈의 횟수는 실험을 통해 구하였다. 즉, 복구 부호를 이용하는 복호화 장치(20)는 부분접속 복구 부호의 로컬 복구 특성을 이용함으로써 더 낮은 복잡도를 갖는 효율적인 복호 알고리즘을 수행함으로써 효율적인 복호화가 가능하다.In the
상기 설명된 본 발명의 일 실시예의 방법의 전체 또는 일부는, 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 기록 매체의 형태(또는 컴퓨터 프로그램 제품)로 구현될 수 있다. 여기에서, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)를 포함할 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다.All or part of the method of an embodiment of the present invention described above can be implemented in the form of a computer-executable recording medium (or a computer program product) such as a program module executed by a computer. Here, the computer-readable medium may include computer storage media (e.g., memory, hard disk, magnetic / optical media or solid-state drives). Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media.
또한, 본 발명의 일 실시예에 따르는 방법의 전체 또는 일부는 컴퓨터에 의해 실행 가능한 명령어를 포함하며, 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다.Also, all or part of the method according to an embodiment of the present invention may include instructions executable by a computer, the computer program comprising programmable machine instructions to be processed by a processor, Language, an object-oriented programming language, an assembly language, or a machine language.
본 명세서에서의 부(means) 또는 모듈(Module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.Means or module in the present specification may mean hardware capable of performing the functions and operations according to the respective names described herein and may be implemented by computer program code , Or may refer to an electronic recording medium, e.g., a processor or a microprocessor, having computer program code embodied thereon to perform particular functions and operations.
다시 말해, 부(means) 또는 모듈(Module)은 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.In other words, a means or module may mean a functional and / or structural combination of hardware for carrying out the technical idea of the present invention and / or software for driving the hardware.
따라서 본 발명의 일 실시예에 따르는 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.Thus, a method according to an embodiment of the present invention may be implemented by a computer program as described above being executed by a computing device. The computing device may include a processor, a memory, a storage device, a high-speed interface connected to the memory and a high-speed expansion port, and a low-speed interface connected to the low-speed bus and the storage device. Each of these components is connected to each other using a variety of buses and can be mounted on a common motherboard or mounted in any other suitable manner.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.It will be apparent to those skilled in the art that various modifications, substitutions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims. will be. Therefore, the embodiments disclosed in the present invention and the accompanying drawings are intended to illustrate and not to limit the technical spirit of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments and the accompanying drawings . The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.
Claims (21)
상기 생성된 패리티 검사 행렬을 이용하여 상기 데이터의 부호화에 따른 부호어를 생성하고, 상기 생성된 부호어를 분산 저장 시스템에 분산 저장하는 분산 저장부; 를 포함하고,
상기 복구 부호는 이진 부분접속 복구 부호이고,
상기 패리티 검사 행렬 생성부는 상기 복구 부호의 길이 및 상기 데이터의 길이를 더 고려하여 상기 패리티 검사 행렬을 생성하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 장치.A parity check matrix generator for generating a parity check matrix defining a restoration code for encoding the data in consideration of the number of access nodes to be accessed for data recovery; And
Generating a codeword for encoding the data using the generated parity check matrix, and distributing the generated codeword to the distributed storage system; Lt; / RTI >
The restoration code is a binary partial access restoration code,
Wherein the parity check matrix generator generates the parity check matrix considering the length of the restoration code and the length of the data.
부분 접속수를 확보하기 위한 제1 부행렬을 생성하는 제1 부행렬 생성부; 및
상기 제1 부행렬에 인접하여 배치되어, 상기 복구 부호의 최소거리를 확보하기 위한 제2 부행렬을 생성하는 제2 부행렬 생성부; 를 포함하고,
상기 제1 부행렬 및 제2 부행렬을 이용하여 상기 패리티 검사 행렬을 생성하며,
상기 복구 부호의 최소거리인 d(상기 d는 자연수)는 상기 부호어의 심볼이 최대 d-1개까지 소실되더라도 상기 데이터의 복호가 가능하도록 정의된 상기 복구 부호에 포함된 복수 개의 부호어들 중에서 임의로 선출된 부호어들 간의 거리를 비교하여 상기 임의로 선출된 부호어들 간의 거리 중에서 가장 작은 거리를 나타내는 것을 특징으로 하는 복구부호를 이용하는 부호화 장치.The apparatus of claim 1, wherein the parity check matrix generator
A first sub-matrix generator for generating a first sub-matrix for securing a partial connection number; And
A second sub-matrix generation unit arranged adjacent to the first sub-matrix to generate a second sub-matrix for securing a minimum distance of the restoration code; Lt; / RTI >
Generates the parity check matrix using the first sub-matrix and the second sub-matrix,
The minimum distance d (d is a natural number) of the restoration code is set to a value obtained by subtracting a minimum distance d from a plurality of codewords included in the restoration code defined to be able to decode the data even if up to a maximum of d- Wherein the distance between the arbitrarily selected codewords is smaller than the distance between the arbitrarily selected codewords by comparing the distances between arbitrarily selected codewords.
상기 부분 접속수 및 상기 데이터의 길이를 고려하여 상기 제1 부행렬 각각의 행의 길이를 정하고,
상기 제1 부행렬의 서로 다른 행의 넌-제로 엘리먼트(non-zeroelement)는 동일한 열에 배치되지 않는 것을 특징으로 하는 복구 부호를 이용하는 부호화 장치.4. The apparatus of claim 3, wherein the first sub-
Determining a length of each row of the first sub-matrix in consideration of the partial connection number and the length of the data,
Wherein non-zeroelements of the different rows of the first sub-matrix are not arranged in the same column.
상기 부분 접속수를 고려하여 상기 제1 부행렬 각각의 행에 포함된 넌-제로 엘리먼트(non-zeroelement)의 수를 설정하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 장치.5. The apparatus of claim 4, wherein the first sub-
And sets the number of non-zero elements included in each row of the first sub-matrix in consideration of the partial connection number.
미리 결정된 차원을 가지는 이진 벡터 공간을 생성하고, 상기 생성된 이진 벡터 공간을 상기 부분 접속수에 따른 차원을 가지는 서브 벡터 공간들의 집합으로 분할하며, 상기 분할된 서브 벡터 공간들의 집합을 이용하여 상기 제2 부행렬을 생성하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 장치.4. The apparatus of claim 3, wherein the second sub-
A method of generating a binary vector space having a predetermined dimension and dividing the generated binary vector space into a set of subvector spaces having a dimension according to the partial connection number, And generates a two-part matrix.
상기 미리 결정된 차원은 상기 부분 접속수 및 상기 서브벡터 공간들의 집합의 크기를 고려하여 설정되고,
상기 서브 벡터 공간들의 상기 부분 접속수에 따른 차원에 대응하는 기저 및 상기 기저에 속하는 두 벡터들의 벡터합들이 상기 제2 부행렬의 열에 포함되는 것을 특징으로 하는 복구 부호를 이용하는 부호화 장치. The method according to claim 6,
Wherein the predetermined dimension is set considering the size of the partial connection number and the set of the subvector spaces,
And a vector sum of two vectors belonging to the base and the basis corresponding to the dimension according to the partial access number of the subvector spaces is included in the column of the second sub-matrix.
상기 미리 결정된 차원에 따라 결정되는 차수를 갖는 갈로아 필드에서 원시 원소의 거듭제곱으로 표현된 원소들을 상기 원시 원소를 근으로 가지는 원시 다항식을 이용하여 상기 차수보다 작은 승수의 상기 원시 원소의 거듭제곱들의 합으로 변환하고, 상기 변환된 갈로아 필드의 원소들의 각 항의 계수를 이용하여 이진 벡터로 표현된 상기 제2 부행렬을 생성하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 장치.7. The apparatus of claim 6, wherein the second sub-
Using a primitive polynomial having the elements represented by powers of the primitive elements in the Galois field having an order determined according to the predetermined dimension as the power of the primitive elements, And generates the second sub-matrix expressed as a binary vector using coefficients of the terms of the elements of the transformed Galois field.
상기 서브 벡터 공간들의 집합의 크기는 상기 부분 접속수, 상기 부분 접속수에 따른 상기 서브 벡터 공간의 차원 및 상기 미리 결정된 차원이 상기 부분 접속수에 따른 상기 서브 벡터 공간의 차원으로 나누어지는지 여부를 고려하여 설정되고,
상기 원시 다항식은 상기 미리 결정된 차수에 따라 존재 가능한 모든 형태의 원시 다항식을 포함하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 장치.9. The method of claim 8,
Wherein the size of the set of subvector spaces considers whether the partial connection number, the dimension of the subvector space according to the partial connection number, and whether the predetermined dimension is divided by the dimension of the subvector space according to the partial connection number Lt; / RTI >
Wherein the primitive polynomial includes all possible primitive polynomials according to the predetermined order.
상기 생성된 패리티 검사 행렬을 제1 단위 행렬과 나머지 부행렬을 포함하는 조직적 형태로 변환하고, 상기 변환된 패리티 검사 행렬의 부행렬을 전치하며, 상기 전치된 부행렬 및 제2 단위 행렬을 포함하는 부호화 행렬을 생성하고, 상기 생성된 부호화 행렬을 이용하여 상기 부호어를 생성하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 장치.The apparatus of claim 1, wherein the dispersion storage unit
Transforming the generated parity check matrix into a systematic form including a first unit matrix and a remaining sub-matrix, transposing a sub-matrix of the transformed parity check matrix, and transforming the transformed sub- Generates an encoding matrix, and generates the codeword using the generated encoding matrix.
상기 생성된 패리티 검사 행렬을 이용하여 상기 데이터의 부호화에 따른 부호어를 생성하고, 상기 생성된 부호어를 분산 저장 시스템에 분산 저장하는 분산 저장부; 및
상기 분산 저장 시스템에 저장된 코드 블록에 관한 열을 포함하는 부행렬을 상기 패리티 검사 행렬에서 선정하고, 상기 선정된 부행렬에 가우스 소거 연산을 수행하여 복호화를 수행하는 복호화부; 를 포함하고,
상기 복구 부호는 이진 부분접속 복구 부호이고,
상기 패리티 검사 행렬 생성부는 상기 복구 부호의 길이 및 상기 데이터의 길이를 더 고려하여 상기 패리티 검사 행렬을 생성하는 것을 특징으로 하는 복구 부호를 이용하는 복호화 장치.A parity check matrix generator for generating a parity check matrix defining a restoration code for encoding the data in consideration of the number of access nodes to be accessed for data recovery;
Generating a codeword for encoding the data using the generated parity check matrix, and distributing the generated codeword to the distributed storage system; And
A decoding unit which selects a sub-matrix including a column related to a code block stored in the distributed storage system in the parity check matrix and performs a Gaussian elimination operation on the selected sub-matrix to perform decoding; Lt; / RTI >
The restoration code is a binary partial access restoration code,
Wherein the parity check matrix generator generates the parity check matrix considering the length of the restoration code and the length of the data.
데이터의 복구를 위해 접속하고자 하는 접속 노드수를 고려하여 상기 데이터를 부호화 하는 복구 부호를 정의하는 패리티 검사 행렬을 생성하는 단계; 및
상기 생성된 패리티 검사 행렬을 이용하여 상기 데이터의 부호화에 따른 부호어를 생성하고, 상기 생성된 부호어를 분산 저장 시스템에 분산 저장하는 단계;를 포함하고,
상기 복구 부호는 이진 부분접속 복구 부호이고,
상기 패리티 검사 행렬을 생성하는 단계는 상기 복구부호의 길이 및 상기 데이터의 길이를 더 고려하여 상기 패리티 검사 행렬을 생성하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 방법.A coding method using a restoration code in a distributed storage system,
Generating a parity check matrix defining a restoration code to encode the data in consideration of the number of access nodes to be accessed for data recovery; And
Generating a codeword according to the encoding of the data using the generated parity check matrix and distributing the generated codeword to a distributed storage system,
The restoration code is a binary partial access restoration code,
Wherein the step of generating the parity check matrix generates the parity check matrix considering the length of the restoration code and the length of the data.
부분 접속수를 확보하기 위한 제1 부행렬을 생성하는 단계; 및
상기 제1 부행렬에 인접하여 배치되어, 상기 복구 부호의 최소거리를 확보하기 위한 제2 부행렬을 생성하는 단계; 를 포함하고,
상기 제1 부행렬 및 제2 부행렬을 이용하여 상기 패리티 검사 행렬을 생성하며,
상기 복구 부호의 최소거리인 d(상기 d는 자연수)는 상기 부호어의 심볼이 최대 d-1개까지 소실되더라도 상기 데이터의 복호가 가능하도록 정의된 상기 복구 부호에 포함된 복수 개의 부호어들 중에서 임의로 선출된 부호어들 간의 거리를 비교하여 상기 임의로 선출된 부호어들 간의 거리 중에서 가장 작은 거리를 나타내는 것을 특징으로 하는 복구부호를 이용하는 부호화 방법.13. The method of claim 12, wherein generating the parity check matrix comprises:
Generating a first sub-matrix for securing a partial connection number; And
Generating a second sub-matrix adjacent to the first sub-matrix to secure a minimum distance of the restoration code; Lt; / RTI >
Generates the parity check matrix using the first sub-matrix and the second sub-matrix,
The minimum distance d (d is a natural number) of the restoration code is set to a value obtained by subtracting a minimum distance d from a plurality of codewords included in the restoration code defined to be able to decode the data even if up to a maximum of d- And a distance between arbitrarily selected codewords is compared to indicate a smallest distance among distances between the arbitrarily selected codewords.
상기 부분 접속수를 고려하여 상기 제1 부행렬 각각의 행에 포함된 넌-제로 엘리먼트(non-zeroelement)의 수를 정하고, 상기 부분 접속수 및 상기 데이터의 길이에 따라 상기 제1 부행렬 각각의 행의 길이를 정하며,
상기 제1 부행렬의 서로 다른 행에 포함된 넌-제로 엘리먼트(non-zeroelement)는 동일한 열에 배치되지 않는 것을 특징으로 하는 복구 부호를 이용하는 부호화 방법.15. The method of claim 14, wherein generating the first sub-
Determining a number of non-zero elements included in a row of each of the first sub-matrices in consideration of the partial connection number, determining a number of non-zero elements included in each row of the first sub- Determines the length of the row,
Wherein the non-zeroelements included in the different rows of the first sub-matrix are not arranged in the same column.
미리 결정된 차원을 가지는 이진 벡터 공간을 생성하고, 상기 생성된 이진 벡터 공간을 상기 부분 접속수에 따른 차원을 가지는 서브 벡터 공간들의 집합으로 분할하며, 상기 분할된 서브 벡터 공간들의 집합을 이용하여 상기 제2 부행렬을 생성하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 방법.15. The method of claim 14, wherein generating the second sub-
A method of generating a binary vector space having a predetermined dimension and dividing the generated binary vector space into a set of subvector spaces having a dimension according to the partial connection number, And generating a 2 < nd > sub-matrix.
상기 미리 결정된 차원은 상기 부분 접속수 및 상기 서브벡터 공간들의 집합의 크기를 고려하여 설정되고,
상기 서브 벡터 공간들은 상기 부분 접속수에 따른 차원에 대응하는 기저벡터 및 상기 기저벡터의 합을 상기 서브 벡터 공간들의 원소로 포함하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 방법. 17. The method of claim 16,
Wherein the predetermined dimension is set considering the size of the partial connection number and the set of the subvector spaces,
Wherein the subvector spaces include a basis vector corresponding to a dimension according to the number of partial connections and a sum of the basis vectors as elements of the subvector spaces.
상기 미리 결정된 차원에 따라 결정되는 차수를 가지는 갈로아 필드에서 원시 원소의 거듭 제곱으로 표현된 원소들을 상기 원시 원소를 근으로 가지는 원시 다항식을 이용하여 상기 미리 결정된 차수 보다 작은 승수의 상기 원시 원소의 거듭제곱들의 합으로 변환하고, 상기 변환된 갈로아 필드의 원소들의 각 항의 계수를 이용하여 이진 벡터로 표현된 상기 제2 부행렬을 생성하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 방법.17. The method of claim 16, wherein generating the second sub-
And a multiplier of the multiplier of the multiplier less than the predetermined order using a primitive polynomial having the elements represented by powers of the primitive elements in the Galois field having an order determined according to the predetermined dimension, And generating the second sub-matrix expressed as a binary vector using the coefficient of each term of the elements of the transformed Galois field.
상기 서브 벡터 공간들의 집합의 크기는 상기 부분 접속수, 상기 부분 접속수에 따른 상기 서브 벡터 공간의 차원 및 상기 미리 결정된 차원이 상기 부분 접속수에 따른 상기 서브 벡터 공간의 차원으로 나누어지는지 여부에 따라 결정되고,
상기 원시 다항식은 상기 미리 결정된 차원에 따라 존재 가능한 모든 형태의 원시 다항식을 포함하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 방법.19. The method of claim 18,
Wherein the size of the set of subvector spaces is determined based on the number of partial connections, the dimension of the subvector space according to the number of partial connections, and whether the predetermined dimension is divided by the dimension of the subvector space according to the partial connection number. Lt; / RTI &
Wherein the primitive polynomial includes all possible primitive polynomials according to the predetermined dimension. ≪ RTI ID = 0.0 > 31. < / RTI >
상기 생성된 패리티 검사 행렬을 제1 단위 행렬과 나머지 부행렬을 포함하는 조직적 형태로 변환하고, 상기 변환된 패리티 검사 행렬의 부행렬을 전치하며, 상기 전치된 부행렬 및 제2 단위 행렬을 포함하는 부호화 행렬을 생성하고, 상기 생성된 부호화 행렬을 이용하여 상기 부호어를 생성하는 것을 특징으로 하는 복구 부호를 이용하는 부호화 방법.13. The method of claim 12, wherein the distributing and storing step
Transforming the generated parity check matrix into a systematic form including a first unit matrix and a remaining sub-matrix, transposing a sub-matrix of the transformed parity check matrix, and transforming the transformed sub- Generating an encoding matrix, and generating the codeword using the generated encoding matrix.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170116506A KR101923116B1 (en) | 2017-09-12 | 2017-09-12 | Apparatus for Encoding and Decoding in Distributed Storage System using Locally Repairable Codes and Method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170116506A KR101923116B1 (en) | 2017-09-12 | 2017-09-12 | Apparatus for Encoding and Decoding in Distributed Storage System using Locally Repairable Codes and Method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101923116B1 true KR101923116B1 (en) | 2018-11-28 |
Family
ID=64561289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170116506A KR101923116B1 (en) | 2017-09-12 | 2017-09-12 | Apparatus for Encoding and Decoding in Distributed Storage System using Locally Repairable Codes and Method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101923116B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210077414A (en) * | 2019-12-17 | 2021-06-25 | 한양대학교 산학협력단 | Erasure Coding Method and Device for Irregular Error Situation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009050761A1 (en) * | 2007-10-15 | 2009-04-23 | Fujitsu Limited | Storage system, storage controller, and method and program for controlling storage system |
-
2017
- 2017-09-12 KR KR1020170116506A patent/KR101923116B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009050761A1 (en) * | 2007-10-15 | 2009-04-23 | Fujitsu Limited | Storage system, storage controller, and method and program for controlling storage system |
Non-Patent Citations (1)
Title |
---|
Optimal Linear and Cyclic Locally Repairable Codes over Small Fields (IEEE Information Theory Workshop, April 2015) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210077414A (en) * | 2019-12-17 | 2021-06-25 | 한양대학교 산학협력단 | Erasure Coding Method and Device for Irregular Error Situation |
KR102347189B1 (en) | 2019-12-17 | 2022-01-03 | 한양대학교 산학협력단 | Erasure Coding Method and Device for Irregular Error Situation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10146618B2 (en) | Distributed data storage with reduced storage overhead using reduced-dependency erasure codes | |
JP4062435B2 (en) | Error correction code decoding apparatus | |
JP3893383B2 (en) | LDPC code parity check matrix generation method and parity check matrix generation apparatus | |
WO2016181980A1 (en) | Secret sharing method, secret sharing system, sharing device, and program | |
JP3810766B2 (en) | Method and apparatus for generating additional information for error correction | |
JP4602406B2 (en) | Method and apparatus for encoding and decoding data | |
WO2010073922A1 (en) | Error correction encoding apparatus, decoding apparatus, encoding method, decoding method, and programs thereof | |
US20200081778A1 (en) | Distributed storage system, method and apparatus | |
JP2005252820A (en) | Encoding method and device | |
Hou et al. | A new construction and an efficient decoding method for Rabin-like codes | |
Lin et al. | Novel repair-by-transfer codes and systematic exact-MBR codes with lower complexities and smaller field sizes | |
JP2011198253A (en) | Memory system and method of data writing and reading in memory systems | |
CN113296999B (en) | RAID6 coding method and coding circuit | |
KR19980702551A (en) | Improved 3, 4 error correction systems | |
WO2014117836A1 (en) | Ldpc code design and encoding apparatus enabling the adjustment of code rate and codelength | |
JP5269936B2 (en) | Encoder and storage device | |
KR101923116B1 (en) | Apparatus for Encoding and Decoding in Distributed Storage System using Locally Repairable Codes and Method thereof | |
JP5918884B1 (en) | Decoding device, decoding method, and program | |
KR20190003315A (en) | Encoding method of efficient generalized tensor product codes, and apparatus there-of | |
Lin et al. | An Efficient $(n, k) $ Information Dispersal Algorithm Based on Fermat Number Transforms | |
Hou et al. | New regenerating codes over binary cyclic codes | |
CN107534450B (en) | Matrix application device, matrix application method, and storage medium | |
Schindelhauer et al. | Maximum distance separable codes based on circulant cauchy matrices | |
CN115237662A (en) | Distributed storage node error correction method and system | |
JPH0476540B2 (en) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |