KR101865101B1 - Method and Apparatus for Using Punctured Simplex Code in Distributed Storage System - Google Patents

Method and Apparatus for Using Punctured Simplex Code in Distributed Storage System Download PDF

Info

Publication number
KR101865101B1
KR101865101B1 KR1020170105942A KR20170105942A KR101865101B1 KR 101865101 B1 KR101865101 B1 KR 101865101B1 KR 1020170105942 A KR1020170105942 A KR 1020170105942A KR 20170105942 A KR20170105942 A KR 20170105942A KR 101865101 B1 KR101865101 B1 KR 101865101B1
Authority
KR
South Korea
Prior art keywords
code
matrix
hamming weight
symbols
combination
Prior art date
Application number
KR1020170105942A
Other languages
Korean (ko)
Inventor
송홍엽
김정현
Original Assignee
연세대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 연세대학교 산학협력단 filed Critical 연세대학교 산학협력단
Priority to KR1020170105942A priority Critical patent/KR101865101B1/en
Application granted granted Critical
Publication of KR101865101B1 publication Critical patent/KR101865101B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • H03M13/005
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/31Coding, 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 combining coding for error detection or correction and efficient use of the spectrum

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Medicinal Preparation (AREA)

Abstract

Embodiments of the present invention provide a method and a device for using a combination code which use a combination code or a punctured combination code newly defined to restore data in a distributed storage system, generate a generating matrix related to the combination code based on a critical hamming weight or generate a generating matrix related to the punctured combination code based on a punctured length, thereby generating a repairable code having an excellent joint locality and having a code rate close to a theoretical upper limit with respect to various usability. The method for using a combination code comprises the following steps of: generating the generating matrix related to the combination code based on the critical hamming weight (wt) which is determined according to a requirement of the system and is smaller than a dimension (k) of the combination code; and generating the combination code by using the generating matrix, and distributing and storing the generated combination code in the distributed storage system.

Description

분산 저장 시스템에서 천공 심플렉스 부호 사용 방법 및 장치 {Method and Apparatus for Using Punctured Simplex Code in Distributed Storage System}[0001] The present invention relates to a method and apparatus for using a punctured simplex code in a distributed storage system,

본 실시예가 속하는 기술 분야는 분산 저장 시스템에서 복구 부호를 사용하는 방법 및 장치에 관한 것이다.The technical field to which this embodiment pertains is a method and apparatus for using a recovery code in a distributed storage system.

이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this section merely provide background information on the present embodiment and do not constitute the prior art.

빅 데이터의 안전한 저장과 복구를 위한 클라우드 저장 시스템이 도입되어 활발하게 이용되고 있다. 전세계적으로 검색 및 자료 제공 서비스를 제공하는 Google, Facebook, Amazon, Microsoft 등의 회사들은 막대한 양의 자료를 저장하기 위해 클라우드 저장 시스템, 즉, 분산 저장 시스템을 이용하고 있다. A cloud storage system for secure storage and recovery of Big Data has been introduced and is actively being used. Companies such as Google, Facebook, Amazon, and Microsoft, which provide search and data services around the world, use cloud storage systems, or distributed storage systems, to store vast amounts of data.

분산 저장 시스템에 있어서는 분산 노드 내 장비의 결함 또는 소프트웨어, 하드웨어적인 업데이트 등과 같은 요인으로 인하여 데이터의 손실이 발생하게 된다. 따라서 이러한 데이터 손실에 대응하여 손실된 데이터를 복구하기 위하여, 다양한 종류의 코딩 기법이 개발되어 사용되고 있다.In a distributed storage system, data loss occurs due to factors such as defects in the devices in the distributed node, software, and hardware updates. Therefore, various types of coding techniques have been developed and used to recover lost data in response to such data loss.

분산 저장 시스템에서 손실된 데이터를 복구하는 가장 기본적인 기존 부호화 방법으로 반복(Repetition) 부호화 방식이 있다. 이러한 방식은 데이터를 여러 개의 동일한 복사본을 만들어 여러 분산 노드에 저장하여, 복사된 노드들 중 어느 하나가 손실되더라도 나머지 노드를 이용하여 손실된 노드를 복구하는 방식이다.Repetition coding is the most basic existing coding method for recovering lost data in a distributed storage system. In this method, multiple identical copies of data are created and stored in several distributed nodes, and the lost nodes are recovered using the remaining nodes, regardless of which one of the duplicated nodes is lost.

데이터 손실 복구를 위한 부호화 기법에서 중요한 지표는 분산 저장 시스템의 노드 중 일부가 손실되었을 때 최소 몇 개의 다른 노드를 이용하여 손실된 노드들을 복구할 수 있는지를 나타내는 부분접속수(Locality) 값이다. 특정 부분접속수를 지원하기 위한 데이터 소실 복구 코딩에 의하여 코딩된 데이터의 용량 또는 부호화율(Code Rate) 역시 중요한 지표이다.An important indicator in the coding scheme for data loss recovery is the partial connectivity value (Locality) value indicating whether the lost nodes can be recovered using at least a few other nodes when some of the nodes of the distributed storage system are lost. The capacity or coding rate of coded data by data loss recovery coding to support a specific number of partial connections is also an important indicator.

부분접속 복구 부호(Locally Repairable Code, LRC) 중에서 심플렉스 부호는 필드크기(Field Size), 부분접속수(Locality), 가용도(Availability)를 고려한 부호의 차원과 최소거리에서 이론적인 상한식에 근접한다. Simplex codes among Locally Repairable Codes (LRCs) are classified into two categories: the size of a code considering field size, partiality, and availability, do.

심플렉스 부호는 결합 부분접속수(Joint Locality) (r1, r2)=(2, 3)을 갖는다. 이 결합 부분접속수는 네트워크 상의 문제로 인해 임의의 한 개의 부호 심볼 소실시 다른 두 개의 부호 심볼 조합으로 복구할 수 있고, 임의의 두 개의 부호 심볼 소실시 다른 세 개의 부호 심볼 조합으로 복구할 수 있음을 의미한다. The simplex code has a joint locality (r 1 , r 2 ) = (2, 3). This join partial connection number can be recovered by combining two different code symbols when an arbitrary code symbol is lost due to a problem in the network and can be recovered by combining the other three code symbols when any two code symbols are lost .

심플렉스 부호는 결합 부분접속수와 가용도 측면에서 장점이 있으나, 부호어의 길이가 늘어날수록 낮은 부호화율을 갖는 문제가 있다.Simplex codes are advantageous in terms of the number of joints connected and availability, but there is a problem in that the coding rate becomes lower as the length of the codeword increases.

본 발명의 실시예들은 분산 저장 시스템에서 데이터 복구가 가능하도록 새롭게 정의된 조합 부호 또는 천공 조합 부호를 사용하고, 임계 해밍 무게를 기반으로 조합 부호에 관한 생성 행렬을 생성하거나 천공 길이를 기반으로 천공 조합 부호에 관한 생성 행렬을 생성함으로써, 결합 부분접속수가 우수하고 다양한 가용성에 대해 부호화율이 이론적 상한식에 근접한 복구 부호를 생성하는 데 발명의 주된 목적이 있다.Embodiments of the present invention use a newly defined combination code or puncturing combination code to enable data recovery in a distributed storage system, generate a generation matrix for a combination code based on the critical hamming weight, The main purpose of the invention is to generate a recovery code with a good coding rate for a variety of usability and with a good combination of partial accesses by generating a generator matrix for codes.

본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.Other and further objects, which are not to be described, may be further considered within the scope of the following detailed description and easily deduced from the effects thereof.

본 실시예의 일 측면에 의하면, 분산 저장 시스템에서 조합 부호를 사용하는 방법에 있어서, 상기 시스템의 요구사항에 따라 정해지고 상기 조합 부호의 차원(k)보다 작은 임계 해밍 무게(wt)를 기반으로 상기 조합 부호에 관한 생성 행렬을 생성하는 단계, 및 상기 생성 행렬을 이용하여 상기 조합 부호를 생성하고 상기 생성된 조합 부호를 상기 분산 저장 시스템에 분산 저장하는 단계를 포함하는 조합 부호 사용 방법을 제공한다.According to an aspect of the present invention, there is provided a method of using a combinatorial code in a distributed storage system, the method comprising the steps of: determining, based on a threshold Hamming weight (wt) Generating a combination matrix for the combination code, and generating the combination code using the generation matrix and distributing the generated combination code to the distributed storage system.

본 실시예의 다른 측면에 의하면, 분산 저장 시스템의 요구사항에 따라 정해지고 조합 부호의 차원(k)보다 작은 임계 해밍 무게(wt)를 기반으로 상기 조합 부호에 관한 생성 행렬을 생성하는 행렬 생성부, 및 상기 생성 행렬을 이용하여 상기 조합 부호를 생성하고 상기 생성된 조합 부호를 상기 분산 저장 시스템에 분산 저장하는 분산 저장부를 포함하는 조합 부호 사용 장치를 제공한다.According to another aspect of the present invention, there is provided a method for generating a combination matrix including a matrix generator for generating a generator matrix for a combination code based on a threshold Hamming weight (wt) determined according to requirements of a distributed storage system and smaller than a dimension k of a combination code, And a distributed storage unit for generating the combined codes using the generated matrix and distributing the generated combined codes to the distributed storage system.

이상에서 설명한 바와 같이 본 발명의 실시예들에 의하면, 분산 저장 시스템에서 데이터 복구가 가능하도록 새롭게 정의된 조합 부호 또는 천공 조합 부호를 사용하고, 임계 해밍 무게를 기반으로 조합 부호에 관한 생성 행렬을 생성하거나 천공 길이를 기반으로 천공 조합 부호에 관한 생성 행렬을 생성함으로써, 결합 부분접속수가 우수하고 다양한 가용성에 대해 부호화율이 이론적 상한식에 근접한 복구 부호를 생성할 수 있는 효과가 있다.As described above, according to the embodiments of the present invention, a newly defined combination code or puncturing combination code is used so that data can be recovered in the distributed storage system, and a generation matrix related to the combination code is generated based on the critical hamming weight Or generating puncturing combination codes based on the puncturing length, it is possible to generate a restoring code having a good coupling part number of connections and a coding rate close to the theoretical upper limit for various usability.

여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급된다.Even if the effects are not expressly mentioned here, the effects described in the following specification which are expected by the technical characteristics of the present invention and their potential effects are handled as described in the specification of the present invention.

도 1a 내지 도 1c는 분산 저장 시스템을 설명하기 위한 참고도이다.
도 1d는 반복 부호화 방법의 동작을 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 분산 저장 시스템에서의 조합 부호 사용 장치를 예시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 분산 저장 시스템에서의 조합 부호 사용 장치가 조합 부호에 관한 생성 행렬을 생성하는 동작을 예시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 분산 저장 시스템에서의 조합 부호 사용 장치가 천공 조합 부호에 관한 생성 행렬을 생성하는 동작을 예시한 도면이다.
도 5a 내지 도 5f는 본 발명의 일 실시예에 따른 분산 저장 시스템에서의 조합 부호 사용 장치가 생성한 생성 행렬을 예시한 것이다.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 분산 저장 시스템에서의 조합 부호 사용 장치가 생성한 생성 행렬의 평가 지표를 예시한 것이다.
도 7은 본 발명의 다른 실시예에 따른 분산 저장 시스템에서의 조합 부호 사용 방법을 예시한 흐름도이다.
도 8은 본 발명의 실시예들에 따라 수행된 모의실험 결과를 도시한 것이다.
1A to 1C are reference views for explaining a distributed storage system.
FIG. 1D is a diagram illustrating the operation of the repetition coding method. FIG.
2 is a block diagram illustrating an apparatus for using a combination code in a distributed storage system according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating an operation of generating a generator matrix for a combinatorial code using a combinatorial code using apparatus in a distributed storage system according to an embodiment of the present invention.
FIG. 4 is a diagram illustrating an operation for generating a generator matrix for puncturing combination codes in a combined code using apparatus in a distributed storage system according to an embodiment of the present invention. Referring to FIG.
5A to 5F illustrate generation matrices generated by a combination code using apparatus in a distributed storage system according to an embodiment of the present invention.
6A and 6B illustrate an evaluation index of a generation matrix generated by a combination code using apparatus in a distributed storage system according to an embodiment of the present invention.
7 is a flowchart illustrating a method of using a combination code in a distributed storage system according to another embodiment of the present invention.
Figure 8 shows simulation results performed in accordance with embodiments of the present invention.

이하, 본 발명을 설명함에 있어서 관련된 공지기능에 대하여 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하고, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Will be described in detail with reference to exemplary drawings.

분산 저장 시스템은 데이터를 하나 이상의 노드에 저장하는 저장 시스템을 의미한다. A distributed storage system refers to a storage system that stores data in one or more nodes.

도 1a는 분산 저장 시스템에서 원본 데이터가 일정한 개수의 데이터 블록으로 분할된 다음 부호화 과정을 거쳐 분산된 각 노드들에 저장되는 과정을 나타낸다. 도 1b는 분산되어 존재하는 노드들(n개) 중에서 일부(k개)를 선택하고 선택한 노드들로부터 데이터를 수집하여 원본 데이터를 획득하는 과정을 나타낸다. 도 1c는 노드 중 어느 하나(예를 들어 D1)가 손실된 경우 나머지 D2 내지 Dn의 노드들 중 일부(d개)를 선택하고 선택한 노드들로부터 데이터를 수집하고 수집한 데이터를 이용하여 손실된 노드(D1)의 데이터를 복구하여 대체 노드에 저장하는 과정을 나타낸다.1A shows a process in which a source data is divided into a predetermined number of data blocks in a distributed storage system and then stored in distributed nodes through an encoding process. FIG. 1B shows a process of selecting a part (k) of distributed nodes (n) and collecting data from selected nodes to obtain original data. FIG. 1C illustrates a method of selecting a part (d) of remaining nodes D2 to Dn when one of the nodes (for example, D1) is lost, collecting data from the selected nodes, Lt; RTI ID = 0.0 > D1 < / RTI >

분산 저장 시스템에서 데이터 손실을 복구하는 부호화 방법을 이용하면, 원본 데이터를 분할하여 저장하고 있는 복수개의 노드들 중 일부가 손실되는 경우라도 나머지 노드를 이용하여 손실된 노드를 복구할 수 있고, 사용자는 이와 같이 손실된 노드가 주기적으로 복구되어 관리되는 분산 저장 시스템에서 필요로 하는 원본 데이터를 획득할 수 있다.When a coding method for recovering a data loss in a distributed storage system is used, even when a part of a plurality of nodes dividing and storing original data is lost, the lost node can be recovered by using the remaining nodes. Thus, it is possible to acquire original data that is needed in a distributed storage system in which the lost nodes are periodically restored and managed.

도 1d는 반복 부호화 방법의 동작을 예시한 도면이다. 분산 저장 시스템에서 손실된 데이터를 복구하는 가장 기본적인 기존 부호화 방법으로 반복(Repetition) 부호화 방법이 있다. 이러한 방법은 원본 데이터를 분할할 때 여러 개의 동일한 복사본을 만들어 여러 분산 노드에 저장하여, 복사된 노드들 중 어느 하나가 손실되면 나머지 노드를 이용하여 손실된 노드를 복구한다.FIG. 1D is a diagram illustrating the operation of the repetition coding method. FIG. A repetition coding method is the most basic existing coding method for recovering lost data in a distributed storage system. In this method, when the original data is divided, several identical copies are made and stored in various distributed nodes, and when one of the copied nodes is lost, the remaining nodes are used to recover the lost node.

분산 저장 시스템에서 손실 데이터를 복구하는 부호화 방법의 성능을 평가하는 지표로는 원본 데이터의 수집 성공률, 손실 데이터의 복구 성공률, 분산 노드의 저장 공간 용량, 복구 대역폭, 부호화율(Code Rate), 복구를 위한 접속 노드의 수 등이 있다. 여기서 복구 대역폭은 손실된 노드를 복구하기 위하여 다운로드하여야 하는 데이터의 량을 나타내는 지표이다. In order to evaluate the performance of the coding method for recovering lost data in a distributed storage system, there are a collection success rate of original data, a recovery success rate of lost data, a storage capacity of a distributed node, a recovery bandwidth, a code rate, And the number of access nodes for access. Here, the recovery bandwidth is an index indicating the amount of data to be downloaded in order to recover the lost node.

복구를 위한 접속 노드의 수는 임의의 손실된 노드를 복구하기 위하여 이용하여야 하는 최소 노드의 수를 의미하며, 부분접속수(Locality)로 표현한다. 분산 저장 시스템에서 부분접속수는 임의의 손실된 노드를 복구하는 과정에서 연결하여 이용하여야 하는 최소 노드의 수가 된다. 여기서 임의의 노드 l개가 손실된 경우 손실된 l개의 노드들을 복구하기 위하여 이용되어야 하는 최소 노드의 개수는 l-부분접속수(rl)로 정의될 수 있다. The number of access nodes for recovery refers to the minimum number of nodes that should be used to recover any lost node, expressed as a partial connection number (Locality). In a distributed storage system, the number of partial accesses is the number of the minimum number of nodes to be connected and used in the process of recovering any lost node. Here, the number of the minimum number of nodes that should be used to recover one lost node when one node is lost can be defined as the number of one-part connections (r 1 ).

예를 들어 n개의 노드들 중 어느 하나가 손실되어 이를 복구하는데 최소 3개의 노드가 필요하다면, 이 때 1-부분접속수는 3이 된다. 보다 적은 부분접속수를 보장하는 부호화 방법을 사용하는 경우, 손실된 노드를 복구하는데 보다 적은 수의 노드만이 필요하기 때문에 손실된 노드를 보다 빠르게 복구할 수 있고 네트워크 트래픽을 줄일 수 있다는 장점이 있다.For example, if one of the n nodes is lost and at least three nodes are needed to recover it, then the 1-part number of connections is three. Using a coding scheme that guarantees a smaller number of partial connections has the advantage that it can recover lost nodes faster and reduce network traffic because fewer nodes are needed to recover lost nodes .

부분접속 복구 부호(Locally Repairable Code, LRC)는 복구과정에서 적은 노드를 사용한다. 부분접속 복구 부호에서 특정 심볼이 최소 r개의 다른 심볼로 표현되면 심볼 부분접속수가 r이고, 모든 심볼에 대해 r 값들을 비교하여 최대값이 그 부호의 부분접속수가 된다.Locally Repairable Code (LRC) uses fewer nodes in the recovery process. If a particular symbol is represented by at least r other symbols in the partial access recovery code, the symbol partial access number is r, and the r values are compared for all symbols, and the maximum value is the partial access number of the symbol.

두 개 이상의 특정된 개수의 노드 손실에 대해 이를 복구하기 위해 필요한 최소 노드의 개수를 함께 나타내는 결합 부분접속수(Joint Locality)로 정의한다. 노드 1개가 손실된 경우와 노드 2개가 손실된 경우 각각 부분접속수 2와 3을 보장하는 결합 부분접속수는 (r1, r2)=(2, 3)로 표시한다. 즉, 결합 부분접속수 (r1, r2)=(2, 3)는 네트워크 상의 문제로 인해 임의의 한 개의 부호 심볼 소실시 다른 두 개의 부호 심볼 조합으로 복구할 수 있고, 임의의 두 개의 부호 심볼 소실시 다른 세 개의 부호 심볼 조합으로 복구할 수 있음을 의미한다.(Joint Locality), which indicates the minimum number of nodes required to recover a specified number of nodes from two or more lost nodes. ( 1 , 2 ) = (2, 3), which guarantees partial connections 2 and 3, respectively, when one node is lost and two nodes are lost. That is, the joint partial connection number (r 1 , r 2 ) = (2, 3) can be recovered by combining two different code symbols when an arbitrary code symbol is lost due to a problem on the network, Symbol loss can be recovered by combining the other three symbol symbols.

부분접속 복구 부호는 (r1, t) 가용도를 갖는다. 이는 1개의 심볼을 복구하기 위해 필요한 최소 심볼의 개수가 r1인데 이러한 복구 집합이 서로소하게 t개 있는 경우이다. 가용도는 소실된 심볼을 복구하기 위해 노드의 접속이 빈번한 인기있는 데이터(Hot Data)에 대한 병렬접속을 허용한다.The partial access recovery code has (r 1 , t) availability. This is the case when the number of minimum symbols needed to recover one symbol is r 1 , and there are so few recovery sets. The availability allows for parallel access to hot data with frequent connection of nodes to recover lost symbols.

도 2는 본 발명의 일 실시예에 따른 분산 저장 시스템에서의 조합 부호 사용 장치를 예시한 블록도이다.2 is a block diagram illustrating an apparatus for using a combination code in a distributed storage system according to an embodiment of the present invention.

도 2에 도시한 바와 같이, 조합 부호 사용 장치(200)는 행렬 생성부(210) 및 분산 저장부(220)를 포함한다. 조합 부호 사용 장치(200)는 도 2에서 예시적으로 도시한 다양한 구성요소들 중에서 일부 구성요소를 생략하거나 다른 구성요소를 추가로 포함할 수 있다.As shown in FIG. 2, the combined code using apparatus 200 includes a matrix generator 210 and a distributed storage unit 220. The combination code using apparatus 200 may omit some of the various components illustrated in FIG. 2 or may further include other components.

조합 부호 사용 장치(200)는 분산 저장 시스템에서 데이터 복구가 가능하도록 새롭게 정의된 조합 부호 또는 천공 조합 부호를 사용함으로써, 결합 부분접속수가 우수하고 다양한 가용성에 대해 부호화율이 이론적 상한식에 근접한 복구 부호를 생성한다.The combination code employing apparatus 200 uses a newly defined combination code or puncturing combination code to enable data recovery in a distributed storage system, and thereby, a restoration code having a good combination of partial connection counts and a coding rate close to a theoretical upper limit .

행렬 생성부(210)는 임계 해밍 무게를 기반으로 조합 부호에 관한 생성 행렬을 생성하거나 천공 길이를 기반으로 천공 조합 부호에 관한 생성 행렬을 생성한다. 행렬 생성부(210)는 시스템의 요구사항에 따라 정해지고 조합 부호의 차원(k)보다 작은 임계 해밍 무게(wt)를 기반으로 조합 부호에 관한 생성 행렬을 생성한다. 임계 해밍 무게(wt)는 2보다 크고 상기 조합 부호의 차원(k)보다 작다. 생성된 조합 부호는 시스테메틱(Systematic) 부호이고, 정보 심볼 및 패리티 심볼을 포함한다. The matrix generator 210 generates a generator matrix for a combining code based on the critical hamming weight or a generator matrix for a puncturing combination code based on the puncturing length. The matrix generator 210 generates a generator matrix for the combinatorial code based on the threshold Hamming weight (wt) determined according to the requirements of the system and smaller than the dimension k of the combinatorial code. The critical hamming weight (wt) is greater than 2 and less than the dimension (k) of the combination code. The generated combination code is a systematic code, and includes information symbols and parity symbols.

부분접속 복구 부호는 [n, k, d]q로 표기할 수 있다. [n, k, d]q에서 n은 부호의 길이, k는 부호의 차원, d는 부호의 최소 거리, q는 진수를 나타낸다. 즉, n은 저장 노드의 수이고, k는 저장 데이터의 사이즈이고, d는 최대 고칠 수 있는 손실 노드의 수보다 1만큼 큰 값을 나타낸다. 분산 저장 시스템의 복호화기는 k 길이 정보를 n 길이로 부호화하여 저장하고, 사용자 장치가 요구하면 이를 전송한다. 사용자 장치는 수신한 정보를 복호화하여 k 길이 정보를 생성한다. The partial access recovery code can be denoted by [n, k, d] q . [n, k, d] where q is the length of the code, k is the dimension of the sign, d is the minimum distance of the sign, and q is the decimal. That is, n is the number of storage nodes, k is the size of the storage data, and d represents a value larger by one than the number of lost nodes that can be fixed. The decoder of the distributed storage system encodes the k-length information into n lengths and stores it, and transmits the encoded information when the user apparatus requests it. The user equipment decodes the received information to generate k-length information.

부호화 및 복호화 과정은 생성 행렬과 패리티 검사 행렬로 표현된다. 생성 행렬은 정보 부분행렬 및 패리티 부분행렬을 포함한다. 패리티 부분행렬을 트랜스포즈(Transpose)한 후 단위 행렬과 연접하면 패리티 검사 행렬이 생성된다. 모든 생성 행렬은 단위 행렬을 포함하는 시스터메틱(Systematic) 형태로 변환이 가능하다.The encoding and decoding processes are represented by a generation matrix and a parity check matrix. The generator matrix includes an information sub-matrix and a parity sub-matrix. A parity check matrix is generated by transposing a parity submatrix and concatenating it with a unit matrix. All generation matrices can be converted into a systematic form including a unit matrix.

조합 부호는 시스터메틱(Systematic) 부호이고 정보 심볼 및 패리티 심볼을 포함한다. 조합 부호의 생성 행렬 G=[G1|G2|...|Gj|...|Gwt]은 각 열벡터의 해밍 무게에 따라 임계 해밍 무게(wt) 개수 만큼의 그룹으로 나뉜다. 여기서 임계 해밍 무게(wt)는 2보다 크고 상기 조합 부호의 차원(k)보다 작은 값이다. 열벡터의 해밍 무게가 j인 그룹(Gj)의 열벡터들의 개수는 kCj=k!/(k!(k-j)!)이다.The combining code is a systematic code and includes information symbols and parity symbols. The generator matrix G = [G 1 | G 2 | ... | G i | ... | G wt ] of the combination codes is divided into groups corresponding to the number of critical hamming weights (wt) according to the hamming weight of each column vector. Where the critical hamming weight (wt) is greater than 2 and less than the dimension (k) of the combination code. The number of column vectors of the group Gj with the Hamming weight j of the column vector is kCj = k! / (K! (Kj)!).

분산 저장부(220)는 생성 행렬을 이용하여 조합 부호를 생성하고 생성된 조합 부호를 분산 저장 시스템에 분산 저장한다. 예컨대, 정보 심볼 x=(x1, x2, x3)이고, [7, 3, 4]2 심플렉스 부호의 생성 행렬 G가

Figure 112017081004410-pat00001
이면, 부호어 c는 (x1, x2, x3, x1+x2, x1+x3, x2+x3, x1+x2+x3)으로 표현된다.The distributed storage unit 220 generates a combined code using a generator matrix and stores the generated combined code in a distributed storage system. For example, if the information symbol x = (x1, x2, x3) and the generation matrix G of the [7, 3, 4] 2 simplex code is
Figure 112017081004410-pat00001
, The codeword c is represented by (x 1 , x 2 , x 3 , x 1 + x 2 , x 1 + x 3 , x 2 + x 3 , x 1 + x 2 + x 3 ).

저장된 n개 중 한 개의 정보 심볼이 사용할 수 없는 상태가 되면 새로운 저장 공간에 이를 대신할 정보 심볼을 복구해야 한다. 복구와 관련된 파라미터가 부분접속수 r과 가용도 t이다. r1은 1개의 심볼이 손실되었을 때 복구를 위해 필요한 다른 심볼의 수, r2는 2개의 심볼이 손실되었을 때 복구를 위해 필요한 다른 심볼의 수를 나타낸다. t1은 1개의 심볼이 손실되었을 때 복구할 수 있는 서로소인 복구 집합의 수, t2는 2개의 심볼이 손실되었을 때 복구할 수 있는 서로소인 복구 집합의 수를 나타낸다. 여기서, 복구 집합은 손실된 심볼을 복구하기 위해 필요한 다른 심볼의 집합이다.If one of the n stored information symbols becomes unusable, the information symbol that should be replaced in the new storage space must be restored. The parameters related to recovery are partial access r and availability t. r 1 denotes the number of other symbols required for recovery when one symbol is lost, and r 2 denotes the number of other symbols required for recovery when two symbols are lost. t 1 is the number of mutually resolved recovery sets that can be recovered when one symbol is lost, and t 2 is the number of mutually resolved recovery sets that can be recovered when two symbols are lost. Here, a recovery set is a set of other symbols needed to recover a lost symbol.

도 3은 본 발명의 일 실시예에 따른 분산 저장 시스템에서의 조합 부호 사용 장치가 조합 부호에 관한 생성 행렬을 생성하는 동작을 예시한 도면이다.FIG. 3 is a diagram illustrating an operation of generating a generator matrix for a combinatorial code using a combinatorial code using apparatus in a distributed storage system according to an embodiment of the present invention.

결합 부분접속수를 고려한 복구 부호로는 심플렉스 부호(Simplex Code)가 있다. 정보 심볼의 수가 k인 심플렉스 부호의 길이는 2k-1이고, 부호율은 k/(2k-1)다. 심플렉스 부호의 생성 행렬은 [G1|G2|...|Gj|...|Gwt|...|Gk]과 같이 표현된다. 심플렉스 부호의 생성 행렬과 달리, 조합 부호의 생성 행렬은 2보다 크고 조합 부호의 차원(k)보다 작은 임계 해밍 무게(wt)에 따른 패리티 행렬을 갖는다. 조합 부호의 생성 행렬은 [G1|G2|...|Gj|...|Gwt|과 같이 표현된다.A simplex code is a restoration code considering the number of connected partial connections. The length of the simplex code with the number of information symbols k is 2 k -1 and the coding rate is k / (2 k -1). The generation matrix of the simplex code is expressed as [G 1 | G 2 | ... | G j | ... | G wt | ... | G k ]. Unlike the generating matrix of the simplex code, the generating matrix of the combining codes has a parity matrix according to the critical hamming weight (wt) which is larger than 2 and smaller than the dimension (k) of the combining code. Generating matrix of combination code is [G 1 | is expressed as | G 2 | ... | G j | ... | G wt.

행렬 생성부(210)는 천공(Puncturing) 과정을 통해서 부호화율을 높일 수 있다. 행렬 생성부(210)는 임계 해밍 무게(wt), 천공 길이(p)를 기반으로 천공(Puncturing) 과정을 수행한다. 도 3을 참조하면, 생성 행렬부(210)는 심플렉스 부호에 관한 생성 행렬에서 조합 부호의 임계 해밍 무게(wt)보다 큰 해밍 무게(w)를 갖는 열벡터들을 제거한다. 부호의 길이, 부호화율, 최대 복구 가능한 심볼의 수 등과 같은 시스템 요구조건에 따라 부호의 파라미터 n, k, d가 정해진다. 행렬 생성부(210)는 n, k, d와 wt, p 간의 관계식에 의해 wt, p 값을 결정한다.The matrix generation unit 210 may increase the coding rate through a puncturing process. The matrix generation unit 210 performs a puncturing process based on the critical hamming weight (wt) and the puncturing length (p). Referring to FIG. 3, the generating matrix unit 210 removes column vectors having a Hamming weight (w) larger than a threshold Hamming weight (wt) of a combining code in a generating matrix related to a simplex code. The parameters n, k, and d of the code are determined according to system requirements such as the length of the code, the coding rate, the number of recoverable symbols, and the like. The matrix generation unit 210 determines wt and p values by a relational expression between n, k, d and wt, p.

정보 심볼의 수 k와 임계 해밍 무게 w를 갖는 조합 부호의 최소 거리 d는 수학식 1과 같이 표현된다.The minimum distance d of the combination code having the number k of information symbols and the critical hamming weight w is expressed by Equation (1).

Figure 112017081004410-pat00002
Figure 112017081004410-pat00002

정보 심볼의 수 k와 임계 해밍 무게 w를 갖는 조합 부호의 모든 심볼에 대한 결합 부분접속수는 수학식 2와 같이 표현된다.The number of joint part connections for all symbols of the combination code having the number k of information symbols and the critical hamming weight w is expressed by Equation (2).

Figure 112017081004410-pat00003
Figure 112017081004410-pat00003

정보 심볼의 수 k와 임계 해밍 무게 w를 갖는 조합 부호의 정보 심볼에 대한 결합 부분접속수는 수학식 3과 같이 표현된다.The number of joint part connections for the information symbol of the combination code having the number k of information symbols and the critical hamming weight w is expressed by Equation (3).

Figure 112017081004410-pat00004
Figure 112017081004410-pat00004

정보 심볼의 수 k와 임계 해밍 무게 w를 갖는 조합 부호의 가용도 t1은 수학식 4와 같이 표현된다.The availability t 1 of the combination code having the number k of information symbols and the critical hamming weight w is expressed by Equation (4).

Figure 112017081004410-pat00005
Figure 112017081004410-pat00005

여기서 w=2, k-1, k이면 t1=d-1이다. w=(k-2>2)이면 t1=d-2이다. Wherein the w = 2, k-1, k is t 1 = d-1. w = a (k-2> 2) if t 1 = d-2.

정보 심볼에 관한 결합 가용도는 수학식 5와 같이 표현된다.The combining usability for the information symbol is expressed as Equation (5).

Figure 112017081004410-pat00006
Figure 112017081004410-pat00006

예컨대, k=8이고, 2≤w≤k인 조합 부호에 대한 파라미터는 표 1의 값을 갖는다.For example, the parameters for the combination code where k = 8 and 2? W? K have the values in Table 1.

Figure 112017081004410-pat00007
Figure 112017081004410-pat00007

부호화율을 더욱 증가시키기 위해서, 조합 부호로부터 천공 조합 부호를 생성할 수 있다.In order to further increase the coding rate, a puncturing combination code can be generated from the combination code.

도 4는 조합 부호 사용 장치가 천공 조합 부호에 관한 생성 행렬을 생성하는 동작을 예시한 도면이다.4 is a diagram illustrating an operation in which a combining code using apparatus generates a generating matrix related to a puncturing combination code.

천공 조합 부호는 조합 부호의 임계 해밍 무게(wt)에 해당하는 패리티 부분행렬에서 적어도 하나의 열벡터를 천공한 생성 행렬로 생성한 부호이다.The puncturing combination code is a code generated by puncturing at least one column vector in a parity partial matrix corresponding to the critical Hamming weight (wt) of the combination code.

행렬 생성부(210)는 임계 해밍 무게(wt)에 해당하는 패리티 행렬에서 천공 길이(p) 개의 열벡터를 임의로 선택한다. 행렬 생성부(210)는 천공 길이(p) 개의 열벡터들을 붙여 부분행렬을 생성하고, 생성한 부분행렬에서 각 행의 해밍 무게의 최대값과 최소값 간의 차이를 산출한다. 행렬 생성부(210)는 차이가 최소가 되는 천공 길이(p) 개의 열벡터를 선택하고, 선택된 천공 길이(p) 개의 열벡터를 생성 행렬에서 제거한다.The matrix generation unit 210 arbitrarily selects a column vector of puncture length (p) from the parity matrix corresponding to the critical hamming weight (wt). The matrix generation unit 210 generates a partial matrix by adding punctured length (p) column vectors, and calculates a difference between a maximum value and a minimum value of the hamming weight of each row in the generated partial matrix. The matrix generation unit 210 selects puncturing length p column vectors having the minimum difference, and removes the column vectors of the selected puncturing length p from the generating matrix.

천공 조합 부호의 생성 행렬을 생성하는 알고리즘은 다음과 같다.The algorithm for generating the generation matrix of puncturing combination codes is as follows.

Figure 112017081004410-pat00008
Figure 112017081004410-pat00008

조합 부호 및 천공 조합 부호에 관한 생성 행렬이 도 5a 내지 도 5f에 도시되어 있다.Generation matrices for combination codes and puncturing combination codes are shown in Figs. 5A to 5F.

도 5a 내지 도 5f에서는 [k, n, d]가 [11, 4, 4], [12, 4, 5], [13, 4, 6], [14, 4, 7], [11, 5, 3], [13, 5, 4], [14, 5, 4], [16, 5, 5], [17, 5, 6], [18, 5, 6], [19, 5, 7], [20, 5, 8], [21, 5, 8], [22, 5, 9], [23, 5, 9], [24, 5, 10], [25, 5, 12], [26, 5, 11], [27, 5, 12], [28, 5, 14], [29, 5, 14], [30, 5, 15]인 조합 부호 및 천공 조합 부호에 관한 생성 행렬이 예시되어 있으나 이에 한정되는 것은 아니고 길이가 더 긴 부호에 관한 생성 행렬이 사용될 수 있다. 부호의 길이가 긴 부호에 관한 생성 행렬은 심플렉스 부호의 생성행렬에서 패리티 부분행렬의 일부를 천공하거나 조합 부호의 생성 행렬에서 패리티 부분행렬의 열벡터 일부를 천공하여 생성된다.5, 5, 6, 7, 7, 11, 5, 5, 6, 7, , 3], [13, 5, 4], [14, 5, 4], [16, 5, 5], [17, 5, 6], [18, 5, 6] ], [20, 5, 8], [21, 5, 8], [22, 5, 9], [23, 5, 9] A generation matrix for combination codes and puncturing combination codes of [26, 5, 11], [27, 5, 12], [28, 5, 14], [29, 5, 14] However, the present invention is not limited to this, and a generation matrix for a code having a longer length may be used. The generator matrix for a code having a long code length is generated by puncturing a part of a parity partial matrix in a generator matrix of a simplex code or puncturing part of a column vector of a parity partial matrix in a generator matrix of a combinatorial code.

조합 부호 및 천공 조합 부호에 관한 생성 행렬은 생성 행렬의 열의 순서를 바꿔 만드는 다른 행렬을 포함할 수 있다. 생성 행렬은 생성 행렬의 열벡터 간에 순서를 바꿔 만들어질 수 있는 모든 행렬들, 즉 모든 가능한 열-섞음(Column-Permutation)으로 만들어지는 행렬들, 또는 생성 행렬의 행벡터 간에 순서를 바꿔 만들어질 수 있는 모든 행렬들, 즉 모든 가능한 행-섞음(Row-Permutation)으로 만들어지는 행렬들을 포함할 수 있고, 이들 중 어느 하나를 생성 행렬로 사용할 수 있다.The generator matrix for the combinatorial code and puncture combinatorial code may include another matrix that reorders the columns of the generator matrix. The generation matrix may be any matrix that can be reordered among the column vectors of the generator matrix, that is, all possible column-permutation matrices, All of the matrices, that is, matrices made of all possible row-permutations, and any one of them may be used as a generation matrix.

도 6a 및 도 6b는 실시예들에 의해 생성된 생성 행렬의 평가 지표를 예시한 것이다.6A and 6B illustrate an evaluation index of the generation matrix generated by the embodiments.

도 6a 및 도 6b에서, (r1, r2)i는 정보 심볼(n개 중 단위행렬 부분에 대응되는 k)에 대한 결합 부분접속수이고, (t1, t2)i는 정보 심볼에 대한 가용도이고, (r1, r2)a는 모든 심볼에 대한 결합 부분접속수이고, (t1, t2)a는 모든 심볼에 대한 가용도이다. In Figure 6a, Figure 6b, (r 1, r 2 ) it is the information symbols and the number of coupling portions connected to the (n k that corresponds to the unit matrix portion of the dog), (t1, t2) i is available for the information symbol and also, (r 1, r 2) a is a number of coupling portions connected to all the symbols, (t1, t2) a is the availability for all the symbols.

도 6a 및 도 6b를 참조하면, 조합 부호의 결합 부분접속수는 정보 심볼 및 패리티 심볼 모두에 대해 (2, 3)이거나 정보 심볼에 대해 (2,3)이다. 즉, 천공 후에도 결합 부분 접속수(r1, r2)를 만족한다.Referring to FIGS. 6A and 6B, the number of combined partial connections of the combination code is (2, 3) for both information symbols and parity symbols or (2, 3) for information symbols. That is, even after the penetration, the coupling partial connection r 1 , r 2 is satisfied.

△k와 △d는 이론적인 한계식에 의한 최적값 대비 제안하는 부호의 k와 d값 각각의 차이를 나타낸다. 즉, 0이면 최적이고 0보다 클수록 최적값에서 멀어진다. △k와 △d이 0이거나 0에 가깝기 때문에, 알려진 부호들 중 가장 좋은 특성을 갖는다.Δk and Δd represent the difference between the k and d values of the proposed code relative to the optimal value by the theoretical limit equation. That is, 0 is optimal, and larger than 0 is far from the optimal value. Because Δk and Δd are 0 or close to 0, they have the best characteristics among the known codes.

조합 부호 사용 장치에 포함된 구성요소들이 도 1에서는 분리되어 도시되어 있으나, 복수의 구성요소들은 상호 결합되어 적어도 하나의 모듈로 구현될 수 있다. 구성요소들은 장치 내부의 소프트웨어적인 모듈 또는 하드웨어적인 모듈을 연결하는 통신 경로에 연결되어 상호 간에 유기적으로 동작한다. 이러한 구성요소들은 하나 이상의 통신 버스 또는 신호선을 이용하여 통신한다.Although the components included in the combination code using apparatus are shown separately in FIG. 1, a plurality of components may be combined with each other and implemented with at least one module. The components are connected to a communication path connecting a software module or a hardware module inside the device and operate organically with each other. These components communicate using one or more communication buses or signal lines.

조합 부호 사용 장치는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로 내에서 구현될 수 있고, 범용 또는 특정 목적 컴퓨터를 이용하여 구현될 수도 있다. 장치는 고정배선형(Hardwired) 기기, 필드 프로그램 가능한 게이트 어레이(Field Programmable Gate Array, FPGA), 주문형 반도체(Application Specific Integrated Circuit, ASIC) 등을 이용하여 구현될 수 있다. 또한, 장치는 하나 이상의 프로세서 및 컨트롤러를 포함한 시스템온칩(System on Chip, SoC)으로 구현될 수 있다.Combination code using devices may be implemented in logic circuits by hardware, firmware, software or a combination thereof, and may be implemented using general purpose or special purpose computers. The device may be implemented using a hardwired device, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or the like. Further, the device may be implemented as a System on Chip (SoC) including one or more processors and controllers.

조합 부호 사용 장치는 하드웨어적 요소가 마련된 컴퓨팅 디바이스 또는 서버에 소프트웨어, 하드웨어, 또는 이들의 조합하는 형태로 탑재될 수 있다. 컴퓨팅 디바이스 또는 서버는 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신장치, 프로그램을 실행하기 위한 데이터를 저장하는 메모리, 프로그램을 실행하여 연산 및 명령하기 위한 마이크로프로세서 등을 전부 또는 일부 포함한 다양한 장치를 의미할 수 있다.The combination code using device may be mounted in a form of software, hardware, or a combination thereof, in a computing device or a server equipped with a hardware element. The computing device or server may be a communication device such as a communication modem for performing communication with various devices or wired / wireless communication networks, a memory for storing data for executing a program, a microprocessor for executing and calculating a program, May refer to a variety of devices including.

도 7은 본 발명의 다른 실시예에 따른 분산 저장 시스템에서의 조합 부호 사용 방법을 예시한 흐름도이다. 조합 부호 사용 방법은 조합 부호 사용 장치에 의하여 수행될 수 있다.7 is a flowchart illustrating a method of using a combination code in a distributed storage system according to another embodiment of the present invention. A method of using a combination code can be performed by a combination code using apparatus.

단계 S710에서, 조합 부호 사용 장치는 분산 저장 시스템의 요구사항에 따라 정해지고 조합 부호의 차원(k)보다 작은 임계 해밍 무게(wt)를 기반으로 조합 부호에 관한 생성 행렬을 생성한다. In step S710, the combination code using device generates a generation matrix for the combination code based on the threshold Hamming weight (wt) determined according to the requirements of the distributed storage system and smaller than the dimension (k) of the combination code.

임계 해밍 무게(wt)는 2보다 크고 조합 부호의 차원(k)보다 작다. 조합 부호는 시스터메틱(Systematic) 부호이고, 정보 심볼 및 패리티 심볼을 포함하며, 생성 행렬은 정보 부분행렬 및 패리티 부분행렬을 포함한다. 조합 부호의 결합 부분접속수는 정보 심볼 및 패리티 심볼 모두에 대해 (2, 3)이거나 정보 심볼에 대해 (2,3)이다.The critical hamming weight (wt) is greater than 2 and less than the dimension (k) of the combination code. The combination code is a systematic code, and includes information symbols and parity symbols, and the generation matrix includes an information partial matrix and a parity partial matrix. The number of joint part accesses of the combination code is (2, 3) for both information symbols and parity symbols or (2,3) for information symbols.

생성 행렬은 원소의 값이 1 또는 0 이고 (i) 조합 부호의 차원(k)에 관한 단위 행렬로 표현되는 정보 부분행렬에 (ii) 해밍 무게가 2부터 임계 해밍 무게(wt)까지인 모든 열백터들로 구성된 패리티 부분행렬을 붙인 행렬이다.The generation matrix is defined as an information submatrix in which the value of the element is 1 or 0 and (i) the information submatrix is represented by a unit matrix with respect to the dimension (k) of the combination code, (ii) all columns whose Hamming weight is from 2 to the critical hamming weight It is a matrix with a partial parity matrix composed of vectors.

생성 행렬은 조합 부호의 임계 해밍 무게(wt) 값의 해밍 무게를 갖는 열벡터들 중 기 산출된 천공 길이(p)만큼을 선택하여 천공한 행렬일 수 있다.The generating matrix may be a matrix obtained by selecting and puncturing the calculated puncturing length p among the column vectors having the Hamming weight of the critical Hamming weight (wt) value of the combining code.

조합 부호에 관한 생성 행렬을 생성하는 단계(S710)는 심플렉스 부호에 관한 생성 행렬에서 조합 부호의 임계 해밍 무게(wt)보다 큰 해밍 무게(w)를 갖는 모든 열벡터들을 제거한다. 여기서, 심플렉스 부호의 차원과 심플렉스 부호에 관한 생성 행렬의 열벡터가 갖는 최대 해밍 무게는 서로 동일하다.Step S710 of generating a generator matrix for the combinatorial code removes all the column vectors having a hammer weight w greater than the threshold Hamming weight wt of the combinatorial code in the generator matrix for the simplex code. Here, the dimension of the simplex code and the maximum hamming weight of the column vector of the generator matrix related to the simplex code are the same.

조합 부호에 관한 생성 행렬을 생성하는 단계(S710)는 심플렉스 부호의 생성 행렬에서 해밍 무게가 임계 해밍 무게(wt)와 같은 열백터들 중 천공 길이(p) 개의 열벡터를 임의로 선택하고, 천공 길이(p) 개의 열벡터들을 붙여 부분행렬을 생성하고, 생성한 부분행렬에서 각 행의 해밍 무게의 최대값과 최소값 간의 차이를 산출하고, 차이가 최소가 되는 천공 길이(p) 개의 열벡터를 선택하고, 선택된 천공 길이(p) 개의 열벡터를 생성 행렬에서 제거할 수 있다.In step S710, a generating matrix for the combination code is generated by arbitrarily selecting a column vector having a puncture length (p) among row vectors having a Hamming weight equal to the critical hamming weight (wt) in a simplex code generating matrix, (P) column vectors to generate a partial matrix, calculate the difference between the maximum value and the minimum value of the hamming weight of each row in the generated partial matrix, , And the selected puncture length (p) column vectors can be removed from the generator matrix.

단계 S720에서, 조합 부호 사용 장치는 생성 행렬을 이용하여 조합 부호를 생성하고 상기 생성된 조합 부호를 분산 저장 시스템에 분산 저장한다.In step S720, the combination code using apparatus generates a combination code using the generation matrix, and distributes the generated combination code to the distributed storage system.

도 8은 본 발명의 실시예들에 따라 수행된 모의실험 결과를 도시한 것이다. 도 8을 참조하면, 조합 부호 또는 천공 조합 부호는 이론적인 상한식에 가장 근접한 부호임을 파악할 수 있다.Figure 8 shows simulation results performed in accordance with embodiments of the present invention. Referring to FIG. 8, it can be understood that the combination code or puncturing combination code is the closest to the theoretical upper limit formula.

본 실시예들에 따라 생성된 조합 부호 또는 천공 조합 부호는 심플렉스 부호의 장점을 유지하면서 심플렉스 부호보다 다양한 파라미터의 부호를 얻을 수 있고 부호화율을 높일 수 있다는 장점이 있다.The combined code or puncture combination code generated according to the present embodiments has an advantage that the code of various parameters can be obtained and the coding rate can be increased more than the simplex code while maintaining the merit of the simplex code.

도 7에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나 이는 예시적으로 설명한 것에 불과하고, 이 분야의 기술자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 7에 기재된 순서를 변경하여 실행하거나 또는 하나 이상의 과정을 병렬적으로 실행하거나 다른 과정을 추가하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이다.7, it is described that each process is sequentially executed. However, those skilled in the art will appreciate that those skilled in the art can change and execute the procedure described in FIG. 7 without departing from the essential characteristics of the embodiments of the present invention Or may be variously modified and modified by executing one or more processes in parallel or by adding other processes.

본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다. 컴퓨터 판독 가능한 매체는 실행을 위해 프로세서에 명령어를 제공하는 데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예를 들면, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.The operations according to the present embodiments may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. A computer-readable medium represents any medium that participates in providing instructions to a processor for execution. The computer readable medium may include program instructions, data files, data structures, or a combination thereof. For example, there may be a magnetic medium, an optical recording medium, a memory, and the like. The computer program may be distributed and distributed on a networked computer system so that computer readable code may be stored and executed in a distributed manner. Functional programs, codes, and code segments for implementing the present embodiment may be easily deduced by programmers of the technical field to which the present embodiment belongs.

본 실시예들은 본 실시예의 기술 사상을 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The present embodiments are for explaining the technical idea of the present embodiment, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of the present embodiment should be construed according to the following claims, and all technical ideas within the scope of equivalents thereof should be construed as being included in the scope of the present invention.

200: 조합 부호 사용 장치
210: 행렬 생성부
220: 분산 저장부
200: Combination code using device
210:
220: dispersion storage unit

Claims (18)

분산 저장 시스템에서 조합 부호를 사용하는 방법에 있어서,
상기 시스템의 요구사항에 따라 정해지고 상기 조합 부호의 차원(k)보다 작은 임계 해밍 무게(wt)를 기반으로 상기 조합 부호에 관한 생성 행렬을 생성하는 단계; 및
상기 생성 행렬을 이용하여 상기 조합 부호를 생성하고 상기 생성된 조합 부호를 상기 분산 저장 시스템에 분산 저장하는 단계
를 포함하는 조합 부호 사용 방법.
A method of using a combinatorial code in a distributed storage system,
Generating a generator matrix for the combinatorial code based on a threshold Hamming weight (wt) determined according to the requirements of the system and smaller than a dimension (k) of the combinatorial code; And
Generating the combination code using the generation matrix and distributing the generated combination code to the distributed storage system
≪ / RTI >
제1항에 있어서,
상기 조합 부호는 시스터메틱(Systematic) 부호이고, 정보 심볼 및 패리티 심볼을 포함하며, 상기 생성 행렬은 정보 부분행렬 및 패리티 부분행렬을 포함하는 것을 특징으로 하는 조합 부호 사용 방법.
The method according to claim 1,
Wherein the combining code is a systematic code and includes information symbols and parity symbols, and the generating matrix includes an information partial matrix and a parity partial matrix.
제2항에 있어서,
상기 조합 부호의 결합 부분접속수는 (i) 모든 심볼에 대해서 임의의 한 개의 부호 심볼 소실시 다른 두 개의 부호 심볼 조합으로 복구할 수 있고 임의의 두 개의 부호 심볼 소실시 다른 세 개의 부호 심볼 조합으로 복구할 수 있고, (ii) 상기 정보 심볼에 대해서 임의의 한 개의 부호 심볼 소실시 다른 두 개의 부호 심볼 조합으로 복구할 수 있고 임의의 두 개의 부호 심볼 소실시 다른 세 개의 부호 심볼 조합으로 복구할 수 있는 것을 특징으로 하는 조합 부호 사용 방법.
3. The method of claim 2,
The number of joint part accesses of the combination code is (i) recovered by combining two other code symbols when any one code symbol is lost for all symbols, and by combining the other three code symbols when any two code symbols are lost (Ii) can recover the other two symbol symbol combinations upon loss of any one symbol symbol with respect to the information symbol, and can recover the other three symbol symbol combinations upon loss of any two symbol symbols And the second code is used.
제1항에 있어서,
상기 임계 해밍 무게(wt)는 2보다 크고 상기 조합 부호의 차원(k)보다 작은 것을 특징으로 하는 조합 부호 사용 방법.
The method according to claim 1,
Wherein the threshold Hamming weight (wt) is greater than 2 and less than the dimension (k) of the combination code.
제1항에 있어서,
상기 생성 행렬은 원소의 값이 1 또는 0 이고 (i) 상기 조합 부호의 차원(k)에 관한 단위 행렬로 표현되는 정보 부분행렬에 (ii) 해밍 무게가 2부터 상기 임계 해밍 무게(wt)까지인 모든 열벡터들로 구성된 패리티 부분행렬을 붙인 행렬인 것을 특징으로 하는 조합 부호 사용 방법.
The method according to claim 1,
(Ii) a Hamming weight of from 2 to the threshold Hamming weight (wt); and (i) a value of the element is 1 or 0 and (i) And a parity partial matrix composed of all column vectors.
제5항에 있어서,
상기 생성 행렬은 상기 임계 해밍 무게(wt) 값의 해밍 무게를 갖는 열벡터들 중 기 산출된 천공 길이(p)만큼을 선택하여 제거한 행렬인 것을 특징으로 하는 조합 부호 사용 방법.
6. The method of claim 5,
Wherein the generator matrix is a matrix obtained by selecting and removing a pre-computed puncturing length (p) among column vectors having a Hamming weight of the critical hamming weight (wt) value.
제1항에 있어서,
부호 특성을 [부호의 길이(n), 부호의 차원(k), 부호의 최소 거리(d)]로 표현하고, 2x2 행렬을 [a11, a12; a21, a22]로 표현할 때,
상기 생성 행렬은
(1) [11, 4, 4]에 관한
[1,0,0,0,1,1,1,0,0,0,1;
0,1,0,0,1,0,0,1,1,0,1;
0,0,1,0,0,1,0,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,0],
(2) [12, 4, 5]에 관한
[1,0,0,0,1,1,1,0,0,0,1,0;
0,1,0,0,1,0,0,1,1,0,0,1;
0,0,1,0,0,1,0,1,0,1,1,1;
0,0,0,1,0,0,1,0,1,1,1,1],
(3) [13, 4, 6]에 관한
[1,0,0,0,1,1,1,0,0,0,1,1,0;
0,1,0,0,1,0,0,1,1,0,1,0,1;
0,0,1,0,0,1,0,1,0,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,1,1,1],
(4) [14, 4, 7]에 관한
[1,0,0,0,1,1,1,0,0,0,1,1,1,0;
0,1,0,0,1,0,0,1,1,0,1,1,0,1;
0,0,1,0,0,1,0,1,0,1,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,0,1,1,1],
(5) [11, 5, 3]에 관한
[1,0,0,0,0,1,1,0,0,0,0;
0,1,0,0,0,0,0,1,1,0,0;
0,0,1,0,0,0,0,0,0,1,1;
0,0,0,1,0,1,0,1,0,1,0;
0,0,0,0,1,0,1,0,1,0,1],
(6) [13, 5, 4]에 관한
[1,0,0,0,0,1,1,1,0,0,0,0,0;
0,1,0,0,0,0,0,0,1,1,1,0,0;
0,0,1,0,0,1,0,0,1,0,0,1,0;
0,0,0,1,0,0,1,0,0,1,0,0,1;
0,0,0,0,1,0,0,1,0,0,1,1,1],
(7) [14, 5, 4]에 관한
[1,0,0,0,0,1,1,1,0,0,0,0,0,0;
0,1,0,0,0,0,0,0,1,1,1,0,0,0;
0,0,1,0,0,1,0,0,1,0,0,1,1,0;
0,0,0,1,0,0,1,0,0,1,0,1,0,1;
0,0,0,0,1,0,0,1,0,0,1,0,1,1],
(8) [16, 5, 5]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0],
(9) [17, 5, 6]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,1],
(10) [18, 5, 6]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1],
(11) [19, 5, 7]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1],
(12) [20, 5, 8]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,1],
(13) [21, 5, 8]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,1,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,0,1,1],
(14) [22, 5, 9]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1,1,0,1,1],
(15) [23, 5, 9]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,1,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,0,1,0,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,0,1,0,1,1,1],
(16) [24, 5, 10]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,1,0,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,0,1,1,0,1,1,1],
(17) [25, 5, 11]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1],
(18) [26, 5, 11]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,0],
(19) [27, 5, 12]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1,1],
(20) [28, 5, 13]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1,1,1],
(21) [29, 5, 14]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,1,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1,1,1,1],
(22) [30, 5, 15]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,1,1,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1,1,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,1,0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1] 중에서 적어도 하나인 것을 특징으로 하는 조합 부호 사용 방법.
The method according to claim 1,
The code property is represented by [length of code (n), dimension of code (k), minimum distance of code (d)], and 2x2 matrix is expressed by [a11, a12; a21, a22]
The generator matrix
(1) [11, 4, 4]
[1,0,0,0,1,1,1,0,0,0,1;
0,1,0,0,1,0,0,1,1,0,1;
0,0,1,0,0,1,0,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,0],
(2) on [12, 4, 5]
[1,0,0,0,1,1,1,0,0,0,1,0;
0,1,0,0,1,0,0,1,1,0,0,1;
0,0,1,0,0,1,0,1,0,1,1,1;
0,0,0,1,0,0,1,0,1,1,1,1],
(3) On [13, 4, 6]
[1,0,0,0,1,1,1,0,0,0,1,1,0;
0,1,0,0,1,0,0,1,1,0,1,0,1;
0,0,1,0,0,1,0,1,0,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,1,1,1],
(4) regarding [14, 4, 7]
[1,0,0,0,1,1,1,0,0,0,1,1,1,0;
0,1,0,0,1,0,0,1,1,0,1,1,0,1;
0,0,1,0,0,1,0,1,0,1,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,0,1,1,1],
(5) On [11, 5, 3]
[1,0,0,0,0,1,1,1,0,0,0;
0,1,0,0,0,0,0,1,1,0,0;
0,0,1,0,0,0,0,0,0,1,1;
0,0,0,1,0,1,0,1,0,1,0;
0,0,0,0,1,0,1,0,1,0,1],
(6) Regarding [13, 5, 4]
[1,0,0,0,0,1,1,1,0,0,0,0,0;
0,1,0,0,0,0,0,1,1,1,1,0,0;
0,0,1,0,0,1,0,0,1,0,0,1,0;
0,0,0,1,0,0,1,0,0,1,0,0,1;
0,0,0,0,1,0,0,1,0,0,1,1,1],
(7) On [14, 5, 4]
[1,0,0,0,0,1,1,1,0,0,0,0,0,0;
0,1,0,0,0,0,0,1,1,1,1,0,0,0;
0,0,1,0,0,1,0,0,1,0,0,1,1,0;
0,0,0,1,0,0,1,0,0,1,0,1,0,1;
0,0,0,0,1,0,0,1,0,0,1,0,1,1],
(8) Regarding [16, 5, 5]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0],
(9) On [17, 5, 6]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,1],
(10) [18, 5, 6]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1;
0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1],
(11) regarding [19, 5, 7]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1],
(12) [20, 5, 8]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,1],
(13) Regarding [21, 5, 8]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,1,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,0,1,1],
(14) [22, 5, 9]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,1,0,0,1,1,0,0,0,1,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1,1,0,1,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0,1;
1, 0, 1, 0, 1, 0, 1, 1]
(15) [23, 5, 9]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0;
0,1,0,0,1,1,0,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,1,1,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,0,1,0,1,1;
1, 0, 1, 0, 1, 1, 1, 1]
(16) [24, 5, 10]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0;
0,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,1,0,1,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1;
1, 0, 1, 1, 0, 1, 1, 1]
(17) On [25, 5, 11]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 ;
0,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1] ,
(18) [26, 5, 11]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 ,One;
1, 0, 1, 0, 1, 1, 0, One;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1, One;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1, One;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1 0],
(19) On [27, 5, 12]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 , 1.0;
1, 0, 1, 0, 1, 1, 0, 0.1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1, 1.1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1, 1.1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1 1,1]
(20) [28, 5, 13]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 , 1,1,0;
1, 0, 1, 0, 1, 1, 0, 1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1, 0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1, 1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1 1,1,1],
(21) [29, 5, 14]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 , 1,1,1,0;
1, 0, 1, 0, 1, 1, 0, 1,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1, 1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1, 0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1 1,1,1,1],
(22) [30, 5, 15]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 , 1,1,1,1,0;
1, 0, 1, 0, 1, 1, 0, 1,1,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1, 1,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1, 1, 1, 1, 1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1 0,1,1,1,1]. ≪ / RTI >
제1항에 있어서,
상기 조합 부호에 관한 생성 행렬을 생성하는 단계는,
원소의 값이 1 또는 0 이고 (i) 상기 조합 부호의 차원(k)에 관한 단위 행렬로 표현되는 정보 부분행렬에 (ii) 해밍 무게가 2부터 상기 조합 부호의 차원(k)까지의 모든 열벡터들로 구성된 패리티 부분행렬을 결합하도록 정의된 심플렉스 부호에 관한 생성 행렬에서 상기 조합 부호의 임계 해밍 무게(wt)보다 큰 해밍 무게(w)를 갖는 모든 열벡터들을 제거하며, 상기 심플렉스 부호의 차원과 상기 심플렉스 부호에 관한 생성 행렬의 열벡터가 갖는 최대 해밍 무게는 서로 동일한 것을 특징으로 하는 조합 부호 사용 방법.
The method according to claim 1,
Wherein generating a generator matrix for the combination code comprises:
Wherein the value of the element is 1 or 0, and (i) the information submatrix is represented by a unit matrix relating to the dimension (k) of the combination code, (ii) all columns from the Hamming weight of 2 to the dimension Removing all column vectors having a Hamming weight (w) greater than the threshold Hamming weight (wt) of the combination code in a generator matrix for a simplex code defined to combine parity submatrices comprised of vectors, And the maximum Hamming weight of the column vector of the generator matrix related to the simplex code is equal to each other.
제1항에 있어서,
상기 조합 부호에 관한 생성 행렬을 생성하는 단계는,
원소의 값이 1 또는 0 이고 (i) 상기 조합 부호의 차원(k)에 관한 단위 행렬로 표현되는 정보 부분행렬에 (ii) 해밍 무게가 2부터 상기 조합 부호의 차원(k)까지의 모든 열벡터들로 구성된 패리티 부분행렬을 결합하도록 정의된 심플렉스 부호의 생성 행렬에서 해밍 무게가 임계 해밍 무게(wt)와 같은 열벡터들 중 기 산출된 천공 길이(p)만큼 열벡터들을 임의로 선택하고, 선택된 열벡터들을 붙여 부분행렬을 생성하고, 생성한 부분행렬에서 각 행의 해밍 무게의 최대값과 최소값 간의 차이를 산출하고, 차이가 최소가 되는 열벡터를 상기 심플렉스 부호의 생성 행렬에서 제거하는 것을 특징으로 하는 조합 부호 사용 방법.
The method according to claim 1,
Wherein generating a generator matrix for the combination code comprises:
Wherein the value of the element is 1 or 0, and (i) the information submatrix is represented by a unit matrix relating to the dimension (k) of the combination code, (ii) all columns from the Hamming weight of 2 to the dimension (P) of the column vectors such as the critical hamming weight (wt) in the generating matrix of the simplex code defined to combine the parity partial matrix composed of the vectors, A partial matrix is generated by attaching the selected column vectors, a difference between a maximum value and a minimum value of the hamming weight of each row in the generated partial matrix is calculated, and a column vector with the smallest difference is removed from the generation matrix of the simplex code And a second code.
분산 저장 시스템의 요구사항에 따라 정해지고 조합 부호의 차원(k)보다 작은 임계 해밍 무게(wt)를 기반으로 상기 조합 부호에 관한 생성 행렬을 생성하는 행렬 생성부; 및
상기 생성 행렬을 이용하여 상기 조합 부호를 생성하고 상기 생성된 조합 부호를 상기 분산 저장 시스템에 분산 저장하는 분산 저장부
를 포함하는 조합 부호 사용 장치.
A matrix generator for generating a generator matrix for the combinatorial code based on a threshold Hamming weight (wt) determined according to requirements of a distributed storage system and smaller than a dimension (k) of a combinatorial code; And
Generating a combined code using the generated matrix and distributing the generated combined code to the distributed storage system;
And a second code generator.
제10항에 있어서,
상기 조합 부호는 시스터메틱(Systematic) 부호이고, 정보 심볼 및 패리티 심볼을 포함하며, 상기 생성 행렬은 정보 부분행렬 및 패리티 부분행렬을 포함하는 것을 특징으로 하는 조합 부호 사용 장치.
11. The method of claim 10,
Wherein the combining code is a systematic code and includes information symbols and parity symbols, and the generating matrix includes an information partial matrix and a parity partial matrix.
제11항에 있어서,
상기 조합 부호의 결합 부분접속수는 (i) 모든 심볼에 대해서 임의의 한 개의 부호 심볼 소실시 다른 두 개의 부호 심볼 조합으로 복구할 수 있고 임의의 두 개의 부호 심볼 소실시 다른 세 개의 부호 심볼 조합으로 복구할 수 있고, (ii) 상기 정보 심볼에 대해서 임의의 한 개의 부호 심볼 소실시 다른 두 개의 부호 심볼 조합으로 복구할 수 있고 임의의 두 개의 부호 심볼 소실시 다른 세 개의 부호 심볼 조합으로 복구할 수 있는 것을 특징으로 하는 조합 부호 사용 장치.
12. The method of claim 11,
The number of joint part accesses of the combination code is (i) recovered by combining two other code symbols when any one code symbol is lost for all symbols, and by combining the other three code symbols when any two code symbols are lost (Ii) can recover the other two symbol symbol combinations upon loss of any one symbol symbol with respect to the information symbol, and can recover the other three symbol symbol combinations upon loss of any two symbol symbols And the second code is used.
제10항에 있어서,
상기 임계 해밍 무게(wt)는 2보다 크고 상기 조합 부호의 차원(k)보다 작은 것을 특징으로 하는 조합 부호 사용 장치.
11. The method of claim 10,
Wherein the critical hamming weight (wt) is greater than 2 and smaller than the dimension (k) of the combination code.
제10항에 있어서,
상기 생성 행렬은 원소의 값이 1 또는 0 이고 (i) 상기 조합 부호의 차원(k)에 관한 단위 행렬로 표현되는 정보 부분행렬에 (ii) 해밍 무게가 2부터 상기 임계 해밍 무게(wt)까지인 모든 열벡터들로 구성된 패리티 부분행렬을 붙인 행렬인 것을 특징으로 하는 조합 부호 사용 장치.
11. The method of claim 10,
(Ii) a Hamming weight of from 2 to the threshold Hamming weight (wt); and (i) a value of the element is 1 or 0 and (i) And a parity partial matrix composed of all column vectors.
제14항에 있어서,
상기 생성 행렬은 상기 임계 해밍 무게(wt) 값의 해밍 무게를 갖는 열벡터들 중 기 산출된 천공 길이(p)만큼을 선택하여 제거한 행렬인 것을 특징으로 하는 조합 부호 사용 장치.
15. The method of claim 14,
Wherein the generator matrix is a matrix obtained by selecting and removing a pre-computed puncturing length (p) among column vectors having a Hamming weight of the critical hamming weight (wt) value.
제10항에 있어서,
부호 특성을 [부호의 길이(n), 부호의 차원(k), 부호의 최소 거리(d)]로 표현하고, 2x2 행렬을 [a11, a12; a21, a22]로 표현할 때,
상기 생성 행렬은
(1) [11, 4, 4]에 관한
[1,0,0,0,1,1,1,0,0,0,1;
0,1,0,0,1,0,0,1,1,0,1;
0,0,1,0,0,1,0,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,0],
(2) [12, 4, 5]에 관한
[1,0,0,0,1,1,1,0,0,0,1,0;
0,1,0,0,1,0,0,1,1,0,0,1;
0,0,1,0,0,1,0,1,0,1,1,1;
0,0,0,1,0,0,1,0,1,1,1,1],
(3) [13, 4, 6]에 관한
[1,0,0,0,1,1,1,0,0,0,1,1,0;
0,1,0,0,1,0,0,1,1,0,1,0,1;
0,0,1,0,0,1,0,1,0,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,1,1,1],
(4) [14, 4, 7]에 관한
[1,0,0,0,1,1,1,0,0,0,1,1,1,0;
0,1,0,0,1,0,0,1,1,0,1,1,0,1;
0,0,1,0,0,1,0,1,0,1,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,0,1,1,1],
(5) [11, 5, 3]에 관한
[1,0,0,0,0,1,1,0,0,0,0;
0,1,0,0,0,0,0,1,1,0,0;
0,0,1,0,0,0,0,0,0,1,1;
0,0,0,1,0,1,0,1,0,1,0;
0,0,0,0,1,0,1,0,1,0,1],
(6) [13, 5, 4]에 관한
[1,0,0,0,0,1,1,1,0,0,0,0,0;
0,1,0,0,0,0,0,0,1,1,1,0,0;
0,0,1,0,0,1,0,0,1,0,0,1,0;
0,0,0,1,0,0,1,0,0,1,0,0,1;
0,0,0,0,1,0,0,1,0,0,1,1,1],
(7) [14, 5, 4]에 관한
[1,0,0,0,0,1,1,1,0,0,0,0,0,0;
0,1,0,0,0,0,0,0,1,1,1,0,0,0;
0,0,1,0,0,1,0,0,1,0,0,1,1,0;
0,0,0,1,0,0,1,0,0,1,0,1,0,1;
0,0,0,0,1,0,0,1,0,0,1,0,1,1],
(8) [16, 5, 5]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0],
(9) [17, 5, 6]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,1],
(10) [18, 5, 6]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1],
(11) [19, 5, 7]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1],
(12) [20, 5, 8]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,1],
(13) [21, 5, 8]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,1,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,0,1,1],
(14) [22, 5, 9]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1,1,0,1,1],
(15) [23, 5, 9]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,1,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,0,1,0,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,0,1,0,1,1,1],
(16) [24, 5, 10]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,1,0,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,0,1,1,0,1,1,1],
(17) [25, 5, 11]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1],
(18) [26, 5, 11]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,0],
(19) [27, 5, 12]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1,1],
(20) [28, 5, 13]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1,1,1],
(21) [29, 5, 14]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,1,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1,1,1,1],
(22) [30, 5, 15]에 관한
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,1,1,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1,1,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,1,0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1] 중에서 적어도 하나인 것을 특징으로 하는 조합 부호 사용 장치.
11. The method of claim 10,
The code property is represented by [length of code (n), dimension of code (k), minimum distance of code (d)], and 2x2 matrix is expressed by [a11, a12; a21, a22]
The generator matrix
(1) [11, 4, 4]
[1,0,0,0,1,1,1,0,0,0,1;
0,1,0,0,1,0,0,1,1,0,1;
0,0,1,0,0,1,0,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,0],
(2) on [12, 4, 5]
[1,0,0,0,1,1,1,0,0,0,1,0;
0,1,0,0,1,0,0,1,1,0,0,1;
0,0,1,0,0,1,0,1,0,1,1,1;
0,0,0,1,0,0,1,0,1,1,1,1],
(3) On [13, 4, 6]
[1,0,0,0,1,1,1,0,0,0,1,1,0;
0,1,0,0,1,0,0,1,1,0,1,0,1;
0,0,1,0,0,1,0,1,0,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,1,1,1],
(4) regarding [14, 4, 7]
[1,0,0,0,1,1,1,0,0,0,1,1,1,0;
0,1,0,0,1,0,0,1,1,0,1,1,0,1;
0,0,1,0,0,1,0,1,0,1,1,0,1,1;
0,0,0,1,0,0,1,0,1,1,0,1,1,1],
(5) On [11, 5, 3]
[1,0,0,0,0,1,1,1,0,0,0;
0,1,0,0,0,0,0,1,1,0,0;
0,0,1,0,0,0,0,0,0,1,1;
0,0,0,1,0,1,0,1,0,1,0;
0,0,0,0,1,0,1,0,1,0,1],
(6) Regarding [13, 5, 4]
[1,0,0,0,0,1,1,1,0,0,0,0,0;
0,1,0,0,0,0,0,1,1,1,1,0,0;
0,0,1,0,0,1,0,0,1,0,0,1,0;
0,0,0,1,0,0,1,0,0,1,0,0,1;
0,0,0,0,1,0,0,1,0,0,1,1,1],
(7) On [14, 5, 4]
[1,0,0,0,0,1,1,1,0,0,0,0,0,0;
0,1,0,0,0,0,0,1,1,1,1,0,0,0;
0,0,1,0,0,1,0,0,1,0,0,1,1,0;
0,0,0,1,0,0,1,0,0,1,0,1,0,1;
0,0,0,0,1,0,0,1,0,0,1,0,1,1],
(8) Regarding [16, 5, 5]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0],
(9) On [17, 5, 6]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,1],
(10) [18, 5, 6]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1;
0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1],
(11) regarding [19, 5, 7]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1],
(12) [20, 5, 8]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,0;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,1,0,1,0,1],
(13) Regarding [21, 5, 8]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,1,0,1,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,1,0,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,0,1,1],
(14) [22, 5, 9]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0;
0,1,0,0,0,1,0,0,0,1,1,1,1,0,0,1,1,0,0,0,1,1,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1,1,0,1,1,0;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0,1;
1, 0, 1, 0, 1, 0, 1, 1]
(15) [23, 5, 9]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0;
0,1,0,0,1,1,0,0,0,1,1,1,0,0,0,1,1,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,1,1,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,0,1,0,1,1;
1, 0, 1, 0, 1, 1, 1, 1]
(16) [24, 5, 10]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0;
0,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,1,1,0,1,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1;
1, 0, 1, 1, 0, 1, 1, 1]
(17) On [25, 5, 11]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 ;
0,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,0,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1] ,
(18) [26, 5, 11]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 ,One;
1, 0, 1, 0, 1, 1, 0, One;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1, One;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1, One;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1 0],
(19) On [27, 5, 12]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 , 1.0;
1, 0, 1, 0, 1, 1, 0, 0.1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1, 1.1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1, 1.1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1 1,1]
(20) [28, 5, 13]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 , 1,1,0;
1, 0, 1, 0, 1, 1, 0, 1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1, 0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1, 1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1 1,1,1],
(21) [29, 5, 14]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 , 1,1,1,0;
1, 0, 1, 0, 1, 1, 0, 1,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1, 1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1, 0,1,1,1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1 1,1,1,1],
(22) [30, 5, 15]
[1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0 , 1,1,1,1,0;
1, 0, 1, 0, 1, 1, 0, 1,1,1,0,1;
0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,1,0,0,1,1,0,1,1,1,0,1, 1,1,0,1,1;
0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1, 1, 1, 1, 1;
0,0,0,0,1,0,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,1,1 0,1,1,1,1]. ≪ / RTI >
제10항에 있어서,
상기 행렬 생성부는,
원소의 값이 1 또는 0 이고 (i) 상기 조합 부호의 차원(k)에 관한 단위 행렬로 표현되는 정보 부분행렬에 (ii) 해밍 무게가 2부터 상기 조합 부호의 차원(k)까지의 모든 열벡터들로 구성된 패리티 부분행렬을 결합하도록 정의된 심플렉스 부호에 관한 생성 행렬에서 상기 조합 부호의 임계 해밍 무게(wt)보다 큰 해밍 무게(w)를 갖는 모든 열벡터들을 제거하며, 상기 심플렉스 부호의 차원과 상기 심플렉스 부호에 관한 생성 행렬의 열벡터가 갖는 최대 해밍 무게는 서로 동일한 것을 특징으로 하는 조합 부호 사용 장치.
11. The method of claim 10,
Wherein the matrix generator comprises:
Wherein the value of the element is 1 or 0, and (i) the information submatrix is represented by a unit matrix relating to the dimension (k) of the combination code, (ii) all columns from the Hamming weight of 2 to the dimension Removing all column vectors having a Hamming weight (w) greater than the threshold Hamming weight (wt) of the combination code in a generator matrix for a simplex code defined to combine parity submatrices comprised of vectors, And the maximum hamming weight possessed by the column vector of the generation matrix relating to the simplex code are equal to each other.
제10항에 있어서,
상기 행렬 생성부는,
원소의 값이 1 또는 0 이고 (i) 상기 조합 부호의 차원(k)에 관한 단위 행렬로 표현되는 정보 부분행렬에 (ii) 해밍 무게가 2부터 상기 조합 부호의 차원(k)까지의 모든 열벡터들로 구성된 패리티 부분행렬을 결합하도록 정의된 심플렉스 부호의 생성 행렬에서 해밍 무게가 임계 해밍 무게(wt)와 같은 열벡터들 중 기 산출된 천공 길이(p)만큼 열벡터들을 임의로 선택하고, 선택된 열벡터들을 붙여 부분행렬을 생성하고, 생성한 부분행렬에서 각 행의 해밍 무게의 최대값과 최소값 간의 차이를 산출하고, 차이가 최소가 되는 열벡터를 상기 심플렉스 부호의 생성 행렬에서 제거하는 것을 특징으로 하는 조합 부호 사용 장치.
11. The method of claim 10,
Wherein the matrix generator comprises:
Wherein the value of the element is 1 or 0, and (i) the information submatrix is represented by a unit matrix relating to the dimension (k) of the combination code, (ii) all columns from the Hamming weight of 2 to the dimension In a matrix of simplex codes defined to combine parity submatrices composed of vectors, the Hamming weight is computed from among the column vectors such as the critical Hamming weight (wt) The column vectors are arbitrarily selected by the puncturing length p, the selected column vectors are added to generate a partial matrix, the difference between the maximum value and the minimum value of the hamming weight of each row in the generated partial matrix is calculated, And the column vector is removed from the generation matrix of the simplex code.
KR1020170105942A 2017-08-22 2017-08-22 Method and Apparatus for Using Punctured Simplex Code in Distributed Storage System KR101865101B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170105942A KR101865101B1 (en) 2017-08-22 2017-08-22 Method and Apparatus for Using Punctured Simplex Code in Distributed Storage System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170105942A KR101865101B1 (en) 2017-08-22 2017-08-22 Method and Apparatus for Using Punctured Simplex Code in Distributed Storage System

Publications (1)

Publication Number Publication Date
KR101865101B1 true KR101865101B1 (en) 2018-06-07

Family

ID=62621908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170105942A KR101865101B1 (en) 2017-08-22 2017-08-22 Method and Apparatus for Using Punctured Simplex Code in Distributed Storage System

Country Status (1)

Country Link
KR (1) KR101865101B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200045919A (en) * 2018-10-23 2020-05-06 네이버 주식회사 Method and system for storing data locally repairable and efficient multiple encoding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100434467B1 (en) * 2000-10-06 2004-06-05 삼성전자주식회사 APPARATUS FOR GENERATING (n,3) CODEWORD, (n,4) CODEWORD BY USING SIMPLEX CODE AND METHOD THEREOF
KR20090049512A (en) * 2007-11-13 2009-05-18 엘지전자 주식회사 Method for generating block codes from golay code and coding data, and apparatus thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100434467B1 (en) * 2000-10-06 2004-06-05 삼성전자주식회사 APPARATUS FOR GENERATING (n,3) CODEWORD, (n,4) CODEWORD BY USING SIMPLEX CODE AND METHOD THEREOF
KR20090049512A (en) * 2007-11-13 2009-05-18 엘지전자 주식회사 Method for generating block codes from golay code and coding data, and apparatus thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200045919A (en) * 2018-10-23 2020-05-06 네이버 주식회사 Method and system for storing data locally repairable and efficient multiple encoding
KR102109015B1 (en) 2018-10-23 2020-05-11 네이버 주식회사 Method and system for storing data locally repairable and efficient multiple encoding

Similar Documents

Publication Publication Date Title
US11119849B2 (en) Erasure code-based partial write-in
US9864550B2 (en) Method and apparatus of recovering and encoding for data recovery in storage system
US11531593B2 (en) Data encoding, decoding and recovering method for a distributed storage system
US20160294419A1 (en) Coding and decoding methods and apparatus
CN106484559B (en) A kind of building method of check matrix and the building method of horizontal array correcting and eleting codes
CN111078460B (en) Fast erasure code calculation method
JP2016212319A (en) Secret sharing method, secret sharing system, sharing device and program
US20140152476A1 (en) Data encoding methods, data decoding methods, data reconstruction methods, data encoding devices, data decoding devices, and data reconstruction devices
US20200319973A1 (en) Layered error correction encoding for large scale distributed object storage system
KR20180030935A (en) Apparatus and method for implementing X-FEP erase code in a distributed storage system
CN107689983B (en) Cloud storage system and method based on low repair bandwidth
Mazumdar et al. Update-efficiency and local repairability limits for capacity approaching codes
CN105811996B (en) data processing method and system based on quasi-cyclic LDPC
KR101731832B1 (en) Method and Apparatus of Encoding and Decoding for Data Recovery in Storage System
US20150227425A1 (en) Method for encoding, data-restructuring and repairing projective self-repairing codes
Bao et al. An adaptive erasure code for jointcloud storage of internet of things big data
KR101865101B1 (en) Method and Apparatus for Using Punctured Simplex Code in Distributed Storage System
Gu et al. Optimizing the parity check matrix for efficient decoding of rs-based cloud storage systems
US20200336157A1 (en) Systematic and xor-based coding technique for distributed storage systems
US10110258B2 (en) Accelerated erasure coding for storage systems
CN116312726B (en) Data storage method and device, electronic equipment and storage medium
KR101923116B1 (en) Apparatus for Encoding and Decoding in Distributed Storage System using Locally Repairable Codes and Method thereof
CN107615248B (en) Distributed data storage method, control equipment and system
CN114691414A (en) Check block generation method and data recovery method
CN115357425A (en) Code configuration conversion method, erasure code coding method, device and system

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant