KR102475784B1 - 1개의 서브-심볼의 선형 복구 스킴 - Google Patents

1개의 서브-심볼의 선형 복구 스킴 Download PDF

Info

Publication number
KR102475784B1
KR102475784B1 KR1020180065536A KR20180065536A KR102475784B1 KR 102475784 B1 KR102475784 B1 KR 102475784B1 KR 1020180065536 A KR1020180065536 A KR 1020180065536A KR 20180065536 A KR20180065536 A KR 20180065536A KR 102475784 B1 KR102475784 B1 KR 102475784B1
Authority
KR
South Korea
Prior art keywords
vector
storage node
node
matrix
surviving
Prior art date
Application number
KR1020180065536A
Other languages
English (en)
Other versions
KR20190059827A (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 삼성전자주식회사
Publication of KR20190059827A publication Critical patent/KR20190059827A/ko
Application granted granted Critical
Publication of KR102475784B1 publication Critical patent/KR102475784B1/ko

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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/157Polynomial evaluation, i.e. determination of a polynomial sum at a given value
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing
    • 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
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

복수의 n개의 스토리지 노드들 및 컨트롤러에 대한 시스템에서, RS코드로 단일한 소거를 복구하는 방법에 있어서, 스토리지 노드 각각의 내용은 코드 워드이고 각각의 노드는 벡터 v를 저장한다. 이러한 방법은 페일된 스토리지 노드를 식별하는 단계, 노드 i 각각의 내용과 살아남은 스토리지 노드들에 대응되는 벡터 v의 원소들의 순열인 벡터의 j번째 성분을 곱하는 단계, 이러한 결과의 트레이스 맵을 결정하고 mXr 비트 표현에 의한 결과를 r비트들의 감소된 표현으로 변환하는 단계, 살아남은 노드들의 내용 각각의 감소된 표현으로부터 페일된 스토리지 노드의 내용을 재건하는 단계, 및 페일된 스토리지 노드의 재건된 내용을 출력하는 단계를 포함한다.

Description

1개의 서브-심볼의 선형 복구 스킴{ONE-SUB-SYMBOL LINEAR REPAIR SCHEMES}
본 발명은 손상된 디지털 데이터를 복구하는 방법에 관한 것이다.
코딩 이론에서, RS(Reed-Solomon) 코드들은 유한체들(finite fields)을 사용하여 구성되는 에러 정정 코드들(error-correcting codes, ECCs)의 클래스를 형성한다. RS 코드는 다음과 같이 정의될 수 있다. q는 소수 거듭제곱(prime power)이고,
Figure 112018055955833-pat00001
는 q원소들의 유한체라고 하자. 부분 집합
Figure 112018055955833-pat00002
, n:=|I|에서, I에 대한 열거식 I:={x1,...,xn}, 양수
Figure 112018055955833-pat00003
Figure 112018055955833-pat00004
k≤n에 대하여, 평가 집합
Figure 112018055955833-pat00005
Figure 112018055955833-pat00006
I 및 차원
Figure 112018055955833-pat00007
Figure 112018055955833-pat00008
k를 갖는 RS 코드는 I의 점들 상에 k-1까지의 차수의 모든 다항식들
Figure 112018055955833-pat00009
을 평가함으로써 획득되는
Figure 112018055955833-pat00010
에서, 길이 n인 벡터들의 집합으로 정의된다. 명시적으로, 평가 집합
Figure 112018055955833-pat00011
Figure 112018055955833-pat00012
I 및 차원
Figure 112018055955833-pat00013
Figure 112018055955833-pat00014
k를 갖는 RS 코드는
Figure 112018055955833-pat00015
로 정의된다.
RS 코드들은 코드 설계 동안, 코드에 의하여 정정 가능한 심볼 소거들의 개수에 대한 정확한 제어가 가능하게 한다. 특히, 다수의 심볼 소거들을 정정할 수 있는 RS 코드들의 설계가 가능하다.
GRS(generalized RS)코드는, RS 코드가 정의된 동일한 체(field)에서, 0이 아닌 엔트리들을 갖는 몇몇 기정의된 벡터(a1,…,an)의 엔트리들에 의하여, 길이 n인 RS 코드의 모든 코드워드들의 좌표형 곱셈(coordinate-wise multiplication)에 의하여 획득된다. GRS 코드의 삭제 디코딩은 다음의 단계들에 의하여 RS 코드의 소거 디코딩으로 감소될 수 있다. (1) 살아남은 노드 각각은 이의 내용을 상응하는 ai로 나눈다. (2) 시스템은, 단일한 소거의 경우에, 가능한 낮은-대역폭으로 RS 소거 디코딩을 수행한다. (3) 재구성된 RS 심볼들은, 요구되는 재구성된 GRS 심볼들로 변환되기 위하여, 상응하는 ai로 곱하여진다.
RS 코드들의 예시적인 응용은 저장된 데이터를 인코딩하는 것이다. 예를 들어, 호스트는 입력된 메시지들을 신뢰할 수 없는 “노드들”의 스토리지 어레이에 쓴다. 일 실시예에 따르면, 노드는 메모리 및 일부 처리 능력을 포함한다. 플래시 어레이에서, 노드는, 예를 들어, 개별적인 SSD 컨트롤러에 의하여 수행되는 일반적인 작업들의 최상위의 인코딩 계산들을 수행하기 위한 “증가된” 컨트롤러가 있는 또는 “증가된” 컨트롤러 없는, 개별적인 SSD를 포함한다. 또는, 클라우드 스토리지에서, 노드는, 예를 들어 하나 이상의 드라이브들을 갖는 컴퓨터일 수 있다.
입력된 메시지들은 사용자들이 저장하려는 데이터이고, 어떠한 값도 자유롭게 선택할 수 있다. 영화와 같이, 실제 저장된 메시지는, 다양한 사이즈들을 가질 수 있으나, 코딩 관점에서 중요한 것은 때때로 “스트라이프들(stripes)”로 불리우는 인코딩된 청크(chunk)들이다. 스트라이프는 정보 심볼들 및 패리티 심볼들을 포함한다.
신뢰할 수 있는 스토리지를 달성하기 위하여, 호스트는 데이터를 저장하기 전에 인코딩한다. 이후, 하나 이상의 스토리지 노드들이 페일(fail)된다면, 호스트는 손실된 데이터를 복원(디코딩)하여야 한다. 사용자가 저장된 데이터를 읽기 희망하는지 여부에 상관없이, 호스트는, 예를 들어, 페일된 노드들을 계속적으로 검색하는 스캐닝 매커니즘에 의하여, 그것들이 발견될 때, 소거들을 정정할 수 있다. 전형적인 경우에, 인코딩 과정은 충분한 중복을 도입하여, 다수의 페일을 극복한다. 그러나, 페일에 대하여 가장 일반적인 경우는 단일한 페일(소거)의 경우이며, 본 발명의 실시예들은, 후술할 바와 같이, 낮은-대역폭 디코딩 알고리즘을 제공한다.
예시적인 시스템 동작의 대략적이고 개념적인 설명은 후술된다. 이러한 예시가 구체적이게 하기 위해, 클라우드 스토리지 셋업이 고려될 것이나, 예를 들어, 플레시 어레이, 즉, 전형적으로 랙 상에 배치되는 몇 개의 개별적인 SSD들로 구성된 “슈퍼 디스크(super disk)”의 다른 잠재적인 시나리오들이 또한 존재한다.
스토리지:
1. 사용자는 영화와 같은 클라우드 스토리지를 위한 파일을 업로드한다.
2. 클라우드 호스트는 영화를 저장한다. 신뢰할 수 있는 스토리지를 위하여, 메시지가 예를 들어, RS 코드에 의하여 인코딩된다. 전형적인 체계적 인코딩에서, 인코딩된 메시지는 원본 메시지 + 패리티 심볼들로 이루어진다. 실제 실행시에, (전형적으로 매우 큰) 메시지는 더 작은 청크들로 나누어지고, 청크 각각은 따로 인코딩된다. 예를 들어, 하나의 클라우드 스토리지 프로바이더는, 10개의 8비트 정보 심볼들을, 체계적 인코딩에서 10개의 정보 심볼들 + 4개의 패리티 심볼들을 갖는, 14개의 8비트 심볼들의 코드워드로 가져오는 RS 인코딩을 사용한다. 따라서, 원본 메시지는 10개의 8비트 심볼들의 청크들로 나누어지고, 청크 각각은 개별적으로 인코딩된다.
3. 호스트는 RS 심볼 각각을 다른 개별적인 드라이브에 저장한다. 예를 들어, 상술된
Figure 112018055955833-pat00016
예시에서, 14개의 코딩된 심볼들은 14개의 다른 드라이브들에 저장된다.
유지:
1. 페일을 검색하는 몇몇 스캐닝 소프트웨어에 의하여, 또는 사용자가 데이터를 읽으려 하는데 페일 지시를 얻음으로 인하여, 페일이 감지된 것으로 추정한다.
2. 계속해서
Figure 112018055955833-pat00017
예시에서, 최대 4개의 드라이브들이 페일된다면, 호스트는 4개의 손실된 심볼들을 복원한다. 복원 과정을 위하여, 호스트는 아래의 데이터를 필요로 한다.
(i) 페일된 드라이브들의 개수가 2 내지 4 사이라면, 손실된 데이터를 복원하기 위하여, 살아남은 노드들 중 10개는 호스트에 그들의 완전한 내용을 전송하여야 한다.
(ii) 단일한 드라이브가 페일된다면, 본 발명의 일 적용례로, 13개의 살아남은 드라이브들 각각은 호스트에 이들의 내용의 1/2만을 전송하여야 한다.
3. 복원된 데이터는 예를 들어, 다른 노드들에 다시 저장되거나, 사용자에 전송될 수 있다.
본 발명의 예시적인 실시예는 단순한 선형 복구 스킴을 갖도록, RS 코드를 이용하여 단일한 소거를 복구하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 실시예에 따르면, d<mr에 대하여, 사이즈 n=2d인 부분 공간이고 m으로 나누어질 수 있는 평가 집합 V={u0 = 0, u1, …un- 1}를 갖는 유한체 F2 mr상에서의 RS(Reed-Solomon) 코드로 단일한 소거를 복구하는 방법이 제공되며, 복수의 n개의 스토리지 노드들과 컨트롤러에 대한 시스템에서, 정규화된 복구 대역폭
Figure 112018055955833-pat00018
Figure 112018055955833-pat00019
(n-1)/m이고 정보 심볼들의 개수 k<=2d-2d-d/ m이고, 각각의 스토리지 노드 i의 내용 c i 는 유한체 F2 mr의 원소이고, 노드 각각은 벡터 v를 저장하되, 벡터 v의 엔트리들은 평가 집합 V의 0이 아닌 원소들의 역원들이다. 상기 방법은 컨트롤러가, 페일된 스토리지 노드를 식별하는 단계; 컨트롤러가, 페일된 스토리지 노드의 인덱스 j0를 살아남은 스토리지 노드 각각에 전송하는 단계;
Figure 112018055955833-pat00020
이고, 모든
Figure 112018055955833-pat00021
에 대하여,
Figure 112018055955833-pat00022
Figure 112018055955833-pat00023
는 살아남은 스토리지 노드들에 대응되는 벡터 v의 원소들의 순열이고, j'는
Figure 112018055955833-pat00024
인,
Figure 112018055955833-pat00025
의 고유 인덱스인 경우에, 살아남은 스토리지 노드 i 각각이, 상기 노드 i 각각의 내용 ci와, 벡터 w(i)의 j번째 성분을 곱하는 단계; 곱셈의 결과 outi의 트레이스 맵을 결정하고, 살아남은 스토리지 노드 각각이, mXr 비트 표현에 의한 결과를 r비트들의 감소된 표현
Figure 112018055955833-pat00026
로 변환하는 단계; 컨트롤러가, 살아남은 스토리지 노드의 내용 각각의 감소된 표현으로부터, 페일된 스토리지 노드의 내용을 재건하는 단계; 및 페일된 스토리지 노드의 재건된 내용을 출력하는 단계를 포함한다.
본 발명의 추가 실시예에 따르면, j'는 컨트롤러에 의하여 계산되고, 살아남은 스토리지 노드들로 전송된다.
본 발명의 추가 실시예에 따르면, 살아남은 스토리지 노드 각각은 살아남은 스토리지 노드 각각의 인덱스 및 페일된 스토리지 노드의 인덱스에 기초하여 j'를 계산한다.
본 발명의 추가 실시예에 따르면, j'는 스토리지 노드 각각에 대하여 미리 계산된다.
본 발명의 추가 실시예에 따르면, 살아남은 스토리지 노드 i 각각이, 노드 i 각각의 내용 ci와, 벡터 w(i)의 j번째 성분을 곱하는 단계는,
Figure 112018055955833-pat00027
인 노드 i 각각이,
Figure 112018055955833-pat00028
를 계산하는 단계를 포함하되, j0는 페일된 노드의 식별자이다.
본 발명의 추가 실시예에 따르면, mXr 비트 표현에 의한 결과를 r 비트들의 감소된 표현으로 변환하는 단계는, 체 F2 mr의 원소들이, F2 r상에서의 F2 mr의 기저
Figure 112018055955833-pat00029
에 따른 벡터 공간 (F2 r)m에서, 길이 m인 벡터들로 표현되는 경우,
Figure 112018055955833-pat00030
인 노드 i 각각이, outi의 제1 좌표를 컨트롤러에 전송하는 단계를 포함한다.
본 발명의 추가 실시예에 따르면, mXr 비트 표현에 의한 결과를 r비트들의 감소된 표현으로 변환하는 단계는, 체 F2 mr의 원소들이, F2상에서의 F2 mr의 기저
Figure 112018055955833-pat00031
에 따른 벡터 공간 F2 mr에서, 길이 mr인 비트들의 벡터들로 표현되되, α는 체 F2 mr의 원시 원소인 경우,
Figure 112018055955833-pat00032
인 노드i 각각이, 곱 M
Figure 112018055955833-pat00033
Figure 112018055955833-pat00034
outi를 상기 컨트롤러에 전송하는 단계를 포함하되, 행렬
Figure 112018055955833-pat00035
이다.
본 발명의 추가 실시예에 따르면, 행렬
Figure 112018055955833-pat00036
은 TM1에서 rXr 단위 행렬을 지원하는 인덱스들을 갖는
Figure 112018055955833-pat00037
행렬의 r개의 행들이고,
Figure 112018055955833-pat00038
는,
Figure 112018055955833-pat00039
인 경우에 j번째 열이 체 F2상에서의 체 E의 기저
Figure 112018055955833-pat00040
에 따른 길이 mr인 βj의 이진 표현인, 행렬이고, E:=F2 mr이고, β는 F2 r=F의 원시 원소이다.
본 발명의 추가 실시예에 따르면, 살아남은 스토리지 노드의 내용 각각의 감소된 표현으로부터, 페일된 스토리지 노드의 내용을 재건하는 단계는, 행렬
Figure 112018055955833-pat00041
를 사용하여
Figure 112018055955833-pat00042
를 계산하는 단계; 체 E:=F2 mr 에서
Figure 112018055955833-pat00043
의 원소들을 임베딩하여, 벡터
Figure 112018055955833-pat00044
를 획득하는 단계; 및
Figure 112018055955833-pat00045
를 계산함으로써 상기 페일된 스토리지 노드의 내용을 복원하는 단계를 포함하되,
Figure 112018055955833-pat00046
이고, p1(X)는 β의 극소 다항식이고, 벡터
Figure 112018055955833-pat00047
이고, 모든
Figure 112018055955833-pat00048
이고 j'=a인 경우의
Figure 112018055955833-pat00049
에 대하여
Figure 112018055955833-pat00050
이고, n은 스토리지 노드들의 총 개수이고,
Figure 112018055955833-pat00051
는 생존한 노드i의 내용의 감소된 표현이고, 행렬 A'는, A의 엔트리 aij가 F2상에서의 F2 mr의 기저
Figure 112018055955833-pat00052
에 따른 F2 mr에서 열 벡터로 간주되는 경우, aij 각각을 Maij로 대체함으로써 획득되는 행렬이고, 행렬
Figure 112018055955833-pat00053
는, C''의 기저를 완전하게 하여 C'의 기저가 되게 하는 m개의 선형 독립 벡터들
Figure 112018055955833-pat00054
인, c1, … , cm행들을 갖는 행렬이고, 패리티-체크 행렬 H'를 갖는 코드의 F-부분체 서브 코드인
Figure 112018055955833-pat00055
이고, 패리티-체크 행렬 H''를 갖는 코드의 F-부분체 서브 코드인
Figure 112018055955833-pat00056
이고,
Figure 112018055955833-pat00057
Figure 112018055955833-pat00058
이고,
Figure 112018055955833-pat00059
이고,
Figure 112018055955833-pat00060
이고, (v1, …vn - 1)는 벡터 v의 원소들이고, (u1, …un- 1)는 평가 집합 V의 0이 아닌 원소들이고, 행렬
Figure 112018055955833-pat00061
은 TM1에서 rXr 단위 행렬을 지원하는 인덱스들을 갖는
Figure 112018055955833-pat00062
행렬의 r개의 행들이고,
Figure 112018055955833-pat00063
는,
Figure 112018055955833-pat00064
인 경우에 j번째 열이 체 F2상에서의 체 E의 기저
Figure 112018055955833-pat00065
에 따른 길이 mr인 βj의 이진 표현인, 행렬이고, E:=F2 mr이고, β는 F2 r=F의 원시 원소이고, α는 상기 체 F2 mr의 원시 원소이고,
Figure 112018055955833-pat00066
는, 원소들이 벡터의 엔트리들인 기저에 관하여, F상에서 E에 대한 쌍대 기저를 형성한다.
본 발명의 추가 실시예에 따르면, E에서
Figure 112018055955833-pat00067
의 원소들을 임베딩하여, 벡터
Figure 112018055955833-pat00068
를 획득하는 단계는, t의 좌표 ta 각각이 F2상에서의 F'의 기저
Figure 112018055955833-pat00069
에 따른 길이 r인 이진 열 벡터로 간주되는 경우,
Figure 112018055955833-pat00070
에 대하여
Figure 112018055955833-pat00071
를 계산하는 단계, 및 w의 엔트리 각각이 기저
Figure 112018055955833-pat00072
에 따른 E의 원소의 벡터 표현인 경우,
Figure 112018055955833-pat00073
를 출력하는 단계를 포함한다.
본 발명의 다른 실시예에 따르면, d<mr에 대하여, 사이즈 n=2d인 부분 공간이고 m으로 나누어질 수 있는 평가 집합 V={u0 = 0, u1, …un- 1}를 갖는 유한체 F2 mr상에서의 RS(Reed-Solomon) 코드로 단일한 소거를 복구하는 방법 단계들을 수행하는, 컴퓨터에 의하여 실행되는 명령어들의 프로그램을 유형적으로 구현하는, 컴퓨터에 의하여 판독 가능한 비-일시적 프로그램 저장 장치가 제공되며, 복수의 n개의 스토리지 노드들과 컨트롤러에 대한 시스템에서, 정규화된 복구 대역폭
Figure 112018055955833-pat00074
(n-1)/m이고 정보 심볼들의 개수 k<=2d-2d-d/ m이고, 각각의 스토리지 노드 i의 내용 c i 는 상기 유한체 F2 mr의 원소이고, 노드 각각은 벡터 v를 저장하되, 상기 벡터 v의 엔트리들은 상기 평가 집합 V의 0이 아닌 원소들의 역원들이다.
본 발명의 단일한 소거를 복구하는 방법 및 장치에 따르면, 선형 복구 스킴이 단순화될 수 있다.
도 1a 및 도 1b는 본 발명의 실시예들에 따른 손상된 RS 코드들을 복구하기 위한 알고리즘의 오프라인부에 대한 순서도이다.
도 2는 본 발명의 실시예들에 따른 손상된 RS 코드들을 복구하기 위한 알고리즘의 온라인부에 대한 순서도이다.
도 3은 본 발명의 실시예에 따른 감소된-사이즈를 갖는 데이터로부터 소거된 심볼을 재건하기 위한 방법에 대한 순서도이다.
도 4는 본 발명의 실시예에 따른 손상된 RS 코드들을 복구하기 위한 시스템에 대한 블록도이다.
여기에서 설명되는 본 발명의 예시적인 실시예들은 손상된 RS(Reed-Solomon) 코드들을 복구하기 위한 시스템들 및 방법들을 제공한다. 실시예들은 다양한 변경들 및 대체 형식들이 가능하나, 이의 특정 실시예들이 도면들에서 예시로 도시되고, 여기에서 상세하게 설명될 것이다. 그러나, 개시된 특정 형식들로 본 발명을 제한하려는 의도는 없는 것으로 이해되어야 한다. 반면, 본 발명은 본 발명의 사상 및 범위 내의 모든 변경들, 균등물들, 및 대체들을 포함하는 것으로 이해되어야 한다. 여기에서, 두 개 이상의 구성 요소들이 A≒B와 같이, 서로 거의 같은 것으로 설명되는 경우, 구성 요소들은 서로 동일하거나, 서로 구분되지 않거나, 서로 구분되나 당업자에 의하여 기능적으로 서로 동일한 것으로 이해될 정도인 것으로 이해될 것이다.
1. 개요
C는
Figure 112018055955833-pat00075
(이하, Fq m)상에서 길이
Figure 112018055955833-pat00076
Figure 112018055955833-pat00077
n:=qm인 RS(Reed-Solomon) 코드이고 (q는 소수 거듭제곱(prime power)이고,
Figure 112018055955833-pat00078
), n-dim(C)≥n/q라면, C에서 임의의 소거된 좌표는 소거되지 않은 좌표들 중 각각으로부터 하나의 Fq-원소만을 "전송"함으로써 복구될 수 있음이 V. Guruswami 및 M. Wootters의 “Repairing Reed-Solomon Codes”, arXiv:1509.04764v1에 나타난다. 본 발명의 실시예들은 이러한 간단한 복구 스킴들: Fq m-선형 코드에서 단일한 소거된 좌표를 복구하는 것은 소거되지 않은 좌표 각각으로부터 최대 하나의 Fq-심볼의 전송을 요구하는 Fq-선형 복구 스킴들을 고려한다.
실시예들에 따르면, 코드가 간단한 복구 스킴을 갖는 코드를 위한 필요충분조건이 제공된다. 일 실시예에 따른 조건은 부분체-서브 코드들의 차원을 발견하는 작업과 밀접하게 관련된다. 복구될 코드가 RS 코드인 경우, 일 실시예에 따른 조건은 교호 코드들(alternant codes)의 차원을 계산하는 작업과 밀접하게 관련된다. 이러한 조건의 일 적용례로, 이는 Guruswami의 상술된 결과를 다시 입증하는데 사용된다.
실시예들에 따르면,
Figure 112018055955833-pat00079
(이하, F2 2r)의 F2-부분 공간인 평가 집합을 갖는 F2 2r상에서의 RS 코드들의 경우가 고려된다. 여기서, m=2이고, q=2r이다. 이러한 맥락에서, 모든 짝수 d≥4에 대하여, r≥d-1+log2(d) 라면, U로 정의되는
Figure 112018055955833-pat00080
RS 코드가 단순한 복구 스킴을 갖도록, F2 2r의 d차원의 F2-부분 공간 U가 존재하는 것으로 나타난다.
d=4인 특별한 경우에, 모든 r≥2에 대하여, U로 정의되는
Figure 112018055955833-pat00081
RS 코드가 단순한 복구 스킴을 갖도록, 적절한 F2-부분 공간 U⊆F2 2r가 존재하는 것으로 나타난다. 이러한
Figure 112018055955833-pat00082
코드를 단축하면, 임의의 단일한 소거된 좌표를 복구하기 위하여 총 52비트들만 읽는 것을 요구하는
Figure 112018055955833-pat00083
로 단축된 RS 코드가 획득된다.
Figure 112018055955833-pat00084
HDFS(Hadoop distributed file system) 코드를 위한 최상의 존재하는 복구 스킴에서, 단일한 소거된 좌표를 복구하는 것은 소거된 좌표에 의존하여, 소거되지 않은 좌표들로부터 총 64 또는 60 비트들을 읽는 것을 요구한다. 게다가, Rashmi 등의 “Hitchhiker-nonXOR” 코드 (“A ‘Hitchhiker’s’ Guide to Fast and Efficient Data Reconstruction in Erasure-coded Data Centers”, SIGCOMM’14, August 17-22, 2014, Chicago, USA)는, 10개의 정보 좌표들에 대하여만, 그리고 바이트들을 결합하는 비용에서, 실시예들에 따른 코드로 동일한 복구 대역폭의 절감 효과를 달성한다.
F2 2r상에서의 RS 코드들의 상술된 경우에 더하여, 차원 k가 k≤2d-2d/2를 만족하는 한, 많은 부분 공간들이 임의의 r 및 짝수 d에 대한 단순한 복구 스킴을 발생시키는 입증이 존재하며, 또한 본 발명의 실시예들은 m>2인 경우 F2 mr상에서의 RS 코드들의 경우를 고려한다. 이러한 경우에, m개로 나누어질 수 있는 차원 d의 부분 공간들 U의 일부 구체적인 예시들이 존재하며, 평가 집합 U를 갖는 차원 k≤2d-2d-d/m의 RS 코드에 대하여, 단순한 F2 r-선형 복구 스킴이 존재한다. 이러한 스킴으로, 단일한 노드가 페일될 때, 살아남은 노드들은 페일된 노드를 복원하기 위하여, 그것들의 내용의 1/m만의 전송을 필요로 한다.
2. 서론
본 설명에 걸쳐, q는 소수 거듭제곱(prime power)이고,
Figure 112018055955833-pat00085
이다.
Figure 112018055955833-pat00086
인 경우, F가 체(field)이고
Figure 112018055955833-pat00087
라면, ker(M)는
Figure 112018055955833-pat00088
.으로 정의되는 맵
Figure 112018055955833-pat00089
의 커널을 표현한다. F가 유한체라면,
Figure 112018055955833-pat00090
,인 경우 [n, k]F 코드는 Fn에서 차원
Figure 112018055955833-pat00091
Figure 112018055955833-pat00092
k의 F-선형 코드이다.
2.1. 트레이스 맵(Trace Map)
정의 2.1: 트레이스 맵,
Figure 112018055955833-pat00093
은 아래와 같이 정의된다.
Figure 112018055955833-pat00094
Figure 112018055955833-pat00095
Figure 112018055955833-pat00096
Figure 112018055955833-pat00097
상에서의
Figure 112018055955833-pat00098
의 프로베니우스 자기 동형 사상(Frobenius automorphism)이다.
Figure 112018055955833-pat00099
인 경우, 표기법
Figure 112018055955833-pat00100
가 사용될 것이다. 게다가,
Figure 112018055955833-pat00101
이고, 임의의
Figure 112018055955833-pat00102
에 대하여
Figure 112018055955833-pat00103
인 경우,
Figure 112018055955833-pat00104
로 쓰고, 열 벡터들도 이와 유사하다.
차수 qm -1에 대한 다항식이 qm의 근(root)들을 가질 수 없으므로, 트레이스는 동일하게 0이 아니고, 이로 인하여
Figure 112018055955833-pat00105
는 비퇴화 대칭
Figure 112018055955833-pat00106
-쌍선형 형식(non-degenerate symmetric
Figure 112018055955833-pat00107
-bilinear form)이다. 유한 차원의 경우 늘 그렇듯이, 맵
Figure 112018055955833-pat00108
Figure 112018055955833-pat00109
Figure 112018055955833-pat00110
Figure 112018055955833-pat00111
과 이의 쌍대 공간(dual space) 사이의
Figure 112018055955833-pat00112
-벡터 공간들의 동형(isomorphism)이다.
b1,...,bm
Figure 112018055955833-pat00113
상에서의
Figure 112018055955833-pat00114
의 기저라고 하자.
Figure 112018055955833-pat00115
에 대하여 b1,...,bm의 쌍대 기저로 매핑한 원소들b'1,...,b'm은 b1,...,bm의 트레이스-쌍대 기저로 지칭된다. 정의상,
Figure 112018055955833-pat00116
이므로,
Figure 112018055955833-pat00117
가 모든 i에 대하여
Figure 112018055955833-pat00118
인 경우
Figure 112018055955833-pat00119
로 표현된다면, 모든 i에 대하여
Figure 112018055955833-pat00120
.일 것이다.
비고 2.2: 모든
Figure 112021063980610-pat00121
Figure 112021063980610-pat00122
에 대하여,
Figure 112021063980610-pat00123
이다.
2.2. 선형 복구 스킴들
선형 복구 스킴들은 위에서 참조된 Guruswami에서 후술되는 바와 같이 정의된다.
정의 2.3:
Figure 112018055955833-pat00124
이고,
Figure 112018055955833-pat00125
는 선형 코드이고, i∈{0,...,n-1}이다. C의 좌표 i에 대한
Figure 112018055955833-pat00126
-선형 복구 스킴은,
1. 모든
Figure 112018055955833-pat00127
에 대하여,
Figure 112018055955833-pat00128
-선형 함수들
Figure 112018055955833-pat00129
의 집합Lj;
2. 모든 (c0,c1,...,cn -1)∈C:
Figure 112018055955833-pat00130
에 대하여,
Figure 112018055955833-pat00131
-선형 함수
Figure 112018055955833-pat00132
를 포함한다.
C의 좌표 i에 대한 상술한 복구 스킴의 복구 대역폭 bi
Figure 112018055955833-pat00133
로 정의된다. 이는 소거된 좌표 i를 복원하도록, 소거되지 않은 좌표들로부터 읽혀져야 하는 비트들의 총 개수이다. 정규화된 복구 대역폭
Figure 112018055955833-pat00134
은 단일한 노드에 저장된 비트들의 개수로 나누어진 복구 대역폭이다.
모든 j≠i에 대하여, |Lj|≤1라면, 좌표 i에 대한 선형 복구 스킴은 단순하다.
따라서, 좌표i에 대한 단순한 선형 복구 스킴에서, 최대 1개의 서브-심볼, 즉, 부분체
Figure 112018055955833-pat00135
에서의 심볼은 좌표 i를 복원하도록 소거되지 않은 좌표 각각으로부터 읽혀져야 한다. 이로 인하여, 복구 대역폭은 (n-1)log2(q)보다 크지 않다.
비고 2.4: 선형 코드
Figure 112018055955833-pat00136
가 추이적 자기 동형 사상군(transitive automorphism group)을 갖는다면, C의 임의의 좌표에 대한 단순한
Figure 112018055955833-pat00137
-선형 복구 스킴의 존재는 모든 좌표들에 대한 단순한
Figure 112018055955833-pat00138
-선형 복구 스킴의 존재와 동등하다. C의 자기 동형 사상군이
Figure 112018055955833-pat00139
이도록 {0,...,n-1}의 모든 순열들 τ에 대한 집합 Aut(C)로 상기되며, c=(c0,...,cn -1)∈C에 대하여, τ의 동작은
Figure 112018055955833-pat00140
로 정의되고, Aut(C)에 대한 그룹(군, group) 연산은 합성(composition)이다. 모든 i,j에 대하여, τ(i)=j인 τ∈Aut(C)가 존재한다면, Aut(C)는 추이적(transitive)으로 지칭된다. 더욱 일반적으로, C의 임의의 좌표i에 대한 선형 복구 스킴이 존재하고, C가 추이적 자기 동형 사상군을 갖는다면, 복구 스킴은 순열로 배치되어 임의의 좌표i'에 대한 선형 복구 스킴이 될 수 있다. 상세하게, τ는 τ(i)=i'인 경우 C의 자기 동형 사상이라고 하자. 좌표들을 다시 레이블링(re-labeling) 함으로써, c=(c0,...,cn -1)∈C의 좌표i'를 복원하는 작업은 d:=(cτ(0),...,cτ(i),...,cτ(n-1))∈C의 좌표 i를 복원하는 작업으로 변환된다. 따라서, 정의 2.3의 표기법을 사용하여, 좌표 i'를 복원하기 위하여, 모든 j≠i(⇔τ(j)≠τ(i)=i')에 대하여, 노드 τ(j)는 Lj에서의 함수들을 사용하여 이것을 전송하는 서브-패킷들을 계산하여야 한다.
비고 2.5: 코드 C는 임의의 좌표i에 대하여 단순한
Figure 112018055955833-pat00141
-선형 복구 스킴을 갖는 것으로 추정한다. 또한, 동일한 것이 임의의 서브 코드에 대하여도 적용된다. 따라서, C가 모든 좌표들에 대하여 단순한 복구 스킴을 갖는다면, C를 단축함으로써 획득되는 임의의 코드도 마찬가지이다.
3. 복구 정리(Repairing Theorem)
본 발명의 실시예에 따르면, 단순한
Figure 112018055955833-pat00142
-선형 복구 스킴의 존재에 대한 필요충분조건이 제시된다. 본 발명의 실시예에 따른 결과는 정리 3.2이며, 임의의 부분체 서브 코드들의 차원으로 조건을 지정한다.
벡터 v에 대하여, 이의 주 대각선 상의 v를 갖는 대각 행렬에 대하여 diag(v)로 쓴다.
보조 정리 3.1:
Figure 112018055955833-pat00143
인 경우,
Figure 112018055955833-pat00144
는 동일하게 0이 아닌 제1 좌표를 갖는 차원 k의 선형 코드이며, C는 수학식 1의 형식의 생성 행렬을 갖는다.
Figure 112018055955833-pat00145
코드 C는, 아래의 조건이 성립하는 경우에 한하여, 제1 좌표에 대해 단순한
Figure 112018055955833-pat00146
-선형 복구 스킴을 갖는다.
조건 (*): 패리티-체크 행렬 H':=G'diag(v)를 갖는 코드에 대한
Figure 112018055955833-pat00147
를 쓰기 위한 벡터
Figure 112018055955833-pat00148
가 존재하며, C'는 ker(H')의
Figure 112018055955833-pat00149
-부분체 서브 코드이고,
Figure 112018055955833-pat00150
-선형 서브 코드 D⊆C'가
(1) dim(D)=m이고
(2) D∩ker(g0 diag(v))={0}인 경우에 존재한다.
증명: C의 일반적인 코드 워드는 임의의
Figure 112018055955833-pat00151
에 대하여, c=(c0,c1,...,cn-1):=(x0,x1,...,xk-1)G형식을 갖는다. 작업은 알려진 c1,...,cn -1로부터 c0=x0를 복원하기 위함이다. 모든 j∈{1,...,n-1}에 대하여,
Figure 112018055955833-pat00152
가 존재한다.
수학식 2를 얻기 위한 비고 2.2를 상기하면, 임의의
Figure 112018055955833-pat00153
에 대하여,
Figure 112018055955833-pat00154
형식의 일반적인
Figure 112018055955833-pat00155
-선형 함수는 cj에 적용될 수 있다.
Figure 112018055955833-pat00156
모든 j∈{1,...,n-1}에 대하여 수학식 2를 수집하면, 수학식 3이 얻어진다.
Figure 112018055955833-pat00157
Figure 112018055955833-pat00158
-벡터 공간으로
Figure 112018055955833-pat00159
이므로, 정의 2.3의 맵 f는 마찬가지로
Figure 112018055955833-pat00160
의 공역을 가질 수 있다. 따라서,
Figure 112018055955833-pat00161
이고,
벡터
Figure 112018055955833-pat00162
가 고려되며, 등식이 수학식 3 및
Figure 112018055955833-pat00163
Figure 112018055955833-pat00164
-쌍선형으로부터 도출되며, 모든 i 및 모든 l에 대하여, 아래의 수식을 암시한다.
Figure 112018055955833-pat00165
Figure 112018055955833-pat00166
Figure 112018055955833-pat00167
xi가 임의적이므로, 재구성을 위한 필요조건은,
(i)
Figure 112018055955833-pat00168
(ii) 벡터
Figure 112018055955833-pat00169
의 m 개의 원소들은
Figure 112018055955833-pat00170
-선형 독립(일차독립, linearly independent)이고, 즉, 이러한 원소들은
Figure 112018055955833-pat00171
에 대한 기저를 형성한다.
그러나, (i) 및 (ii)는 또한 명백하게 충분조건이며,
(i)
Figure 112018055955833-pat00172
로 주어지고,
(ii) 이러한 벡터의 원소들은 (ii)의 쌍대 기저의 원소들의 선형 결합(일차 결합, linear combination)으로써, x0의 설명에서의 계수들이다. 따라서, 조건 (i) 및 (ii) 들이 성립하기 위한 v 및 A가 존재하는 경우에 한하여, C의 제1 좌표에 대한 단순한 복구 스킴이 존재한다.
조건 (i)은 아래와 같다.
Figure 112018055955833-pat00173
H':=G'diag(v)를 상기하면, 조건 (i)은 H'AT=0 와 같음이 나타날 수 있다.
증명을 완전하게 하기 위하여, 조건 (*) ⇔ (i) 및 (ii) 조건들이 성립하기 위한 v 및 A가 존재하는 것이 입증될 것이다.
Figure 112018055955833-pat00174
: 조건 (*)이 성립하는 것으로 추정한다. A의 m 행들을 코드 D의 기저로 한다. 그렇다면, D의 정의상, 조건 (i)이 성립하도록, H'AT=0 가 도출된다. 조건 (ii)에 대하여, t(A(g0 diag(v))T)=0 이도록, 행 벡터
Figure 112018055955833-pat00175
가 존재하는 것으로 추정한다. ATtT는 D∩ker(g0 diag(v)) 에서 존재하고, 이로 인하여 ATtT는 0 벡터 이어야 한다. A의 행들이 독립이므로, 이는 t가 필요에 따라, 0 벡터임을 암시한다.
Figure 112018055955833-pat00176
: 조건들 (i) 및 (ii)가 성립하기 위한 v 및 A가 존재하는 것으로 추정한다. 조건(ii)로 인하여, A의 행들은
Figure 112018055955833-pat00177
-선형 독립이다. D는 A의 행들의
Figure 112018055955833-pat00178
-공간(span)이다. 그렇다면, dim(D)=m이다. 게다가, 조건 (i) H'AT=0 에 의하여, D⊆C' 가 성립한다. 결국, D의 벡터는 임의의 행 벡터
Figure 112018055955833-pat00179
에 대하여 tA의 형식을 갖는다. (tA)T∈ker(g0 diag(v)) 라면, (g0 diag(v)AT)tT=0 이다. 벡터 (g0 diag(v)AT)의 원소들이 조건 (ii)에 의하여
Figure 112018055955833-pat00180
-선형 독립이므로, t는 필요에 따라, 0 벡터인 것으로 보여질 수 있다.
정리 3.2: 보조 정리 3.1의 코드 C는, 아래의 조건이 성립되는 경우에 한하여, 제1 좌표에 대하여 단순한
Figure 112018055955833-pat00181
-선형 복구 스킴을 갖는다.
조건 (**): 아래의 조건이 성립하기 위한 벡터
Figure 112018055955833-pat00182
가 존재한다.
패리티-체크 행렬 H':=G'diag(v)를 갖는 코드에 대한
Figure 112018055955833-pat00183
, 및 패리티-체크 행렬
Figure 112018055955833-pat00184
를 갖는 코드에 대한
Figure 112018055955833-pat00185
를 쓰기 위하여, 이는 dim(C'')≤dim(C')-m 가 도출된다.
Figure 112018055955833-pat00186
상에서의 코드를 위하여,
Figure 112018055955833-pat00187
상에서의 체크 행렬에 하나의 라인을 더하는 것은 최대 m만큼 차원을 감소시킬 수 있다.
이는 정리 3.2의 조건 (**) ⇔ 보조 정리 3.1의 조건 (*)로 나타날 것이다.
Figure 112018055955833-pat00188
: 조건 (**)이 성립하는 것으로 추정한다. 그렇다면, C'의 dim(C'')+m 개의 선형 독립 원소들의 집합으로 C''의 기저를 완전하게 하는
Figure 112018055955833-pat00189
를 선택하는 것이 가능하다. D는 {c1,...,cm}의
Figure 112018055955833-pat00190
-공간(span)이다. 그렇다면, 구성 D⊆C'에 의하여, dim(D)=m이다. 또한, 아래와 같은 마지막 등식이 D의 기저가 구성되는 방식으로부터 도출된다.
Figure 112018055955833-pat00191
Figure 112018055955833-pat00192
Figure 112018055955833-pat00193
Figure 112018055955833-pat00194
: 조건 (*)이 성립하는 것으로 추정한다. 그렇다면,
Figure 112018055955833-pat00195
이다. 그러나,
Figure 112018055955833-pat00196
이도록, C'∩ker(g0 diag(v))는 C''이다. 가정에 의하여 dim(D)=m이므로, dim(C'')≤dim(C')-m가 도출된다.
4.
Figure 112018055955833-pat00197
상에서의 길이 qm인 RS 코드들
정리 3.2의 적용을 위한 일례로, 상술된 Guruswami의 정리 1이 다시 입증될 것이다. 본 발명의 실시예들에 따르면, 이 시점부터,
Figure 112018055955833-pat00198
상에서의 차원
Figure 112018055955833-pat00199
의 RS 코드는
Figure 112018055955833-pat00200
에 대한 적어도 k 개의 점들을 포함하는 부분 집합에서,
Figure 112018055955833-pat00201
로부터 차수≤k-1의 다항식들을 평가함으로써 획득되는 코드이다.
정리 4.1 (Guruswami의 정리 1): n-k≥n/q 이도록, 즉, k≤qm-qm -1 이도록,
Figure 112018055955833-pat00202
이고, n:=qm로 쓴다. 그렇다면,
Figure 112018055955833-pat00203
상에서의 길이 n 이고 차원 k 인 RS 코드는 임의의 좌표에 대하여 단순한
Figure 112018055955833-pat00204
-선형 복구 스킴을 갖는다.
증명: 우선, 코드에 대한 선형 복구 스킴은 자동으로 또한 임의의 서브 코드에 대한 선형 복구 스킴이므로, k=qm-qm -1 경우를 고려하기에 충분하다. 또한, 코드는 (이중으로) 추이적 자기 동형 사상군을 가지므로, 제1 좌표에 대한 단순한 선형 복구 스킴을 설정하기에 충분하다(상술한 비고 2.4).
현재, k≤qm-qm -1인 것으로 추정하고,
Figure 112018055955833-pat00205
는 원시 원소(primitive element)라 하자. 그렇다면, 차원 k이고 길이 qm인 RS 코드에 대한 아래의 생성 행렬은 이미 수학식 1의 형식에 있다.
Figure 112018055955833-pat00206
Figure 112018055955833-pat00207
g0=1, 길이 qm-1의 모두 1인 행 벡터이다.
j∈{1,...,qm-1}에 대하여,
Figure 112018055955833-pat00208
이다. 그렇다면, H'=G'diag(v)는 길이 qm-1인
Figure 112018055955833-pat00209
상에서의 순환 코드의 체크 행렬이고,
Figure 112018055955833-pat00210
의 원소들 및
Figure 112018055955833-pat00211
상에서의 그것들의 공액(conjugate)들을 0으로 맞춘다. 반면,
Figure 112018055955833-pat00212
Figure 112018055955833-pat00213
의 원소들 및 그것들의 공액들이 0을 갖는
Figure 112018055955833-pat00214
상에서의 순환 코드의 체크 행렬이다.
정리 3.2에 의하여, Z'는
Figure 112018055955833-pat00215
의 동작 하에서 α-1의 궤도의 원소를 포함하지 않고, α-1의 궤도가 m 개의 원소들을 갖는다는 것을 나타내기에 충분하다. 이러한 점에서, 생성 다항식 g를 갖는 길이 n'의 순환 코드 C에 대하여, dim(C)=n'-deg(g)가 도출된다는 것이 상기된다. 원분 잉여류(cyclotomic coset)들의 언어로 변역하면, {0,1,...,qm-qm -1-2}의 숫자들의 원분 잉여류 modulo qm-1 는 (-1)≡qm-2의 원분 잉여류를 포함하지 않고, 이러한 마지막 원분 잉여류는 m 개의 원소들을 갖는다는 것을 나타난다.
본 발명의 실시예들에 따르면, {0,...,qm-2}의 숫자들을 그들의 길이 m 기저 q인 전개식들로 나타내는 것이 편리할 것이다. 따라서, i∈{0,...,qm-2}에 대하여,
Figure 112018055955833-pat00216
이도록, 이의 기저 q인 전개식을 위한 [i]q=(im-1,im-2,...,i0)로 쓴다.
Figure 112018055955833-pat00217
이러한 벡터의 모든 m 개의 순환 쉬프트들이 구별되므로, 실제 qm-2의 원분 잉여류는 m 개의 원소들을 갖는다.
또한, qm-qm -1-1=(qm-1)-qm - 1 이므로, 수학식 5가 도출된다.
Figure 112018055955833-pat00218
qm-qm -1-1 가 qm-2의 원분 잉여류에서 가장 작은 원소임이 수학식 4 및 수학식 5로부터 도출된다. 이로 인하여, 원분 잉여류는 {0,1,...,qm-qm -1-2}의 어떤 숫자도 포함하지 않는다.
5.
Figure 112018055955833-pat00219
Figure 112018055955833-pat00220
-부분 공간 상의 RS 코드들
실시예들에 따르면, 본 섹션은 q=2r인,
Figure 112018055955833-pat00221
Figure 112018055955833-pat00222
-부분 공간에 정의되는 RS 코드들에 대한 단순한 복구 스킴을 표현한다. 실시예에 따른 결과는 정리 5.11에 있으며, 모든 짝수 차원 d 및 모든 r≥d-1+log2(d)에 대하여, U에 정의되는
Figure 112018055955833-pat00223
RS 코드가 단순한 복구 스킴을 갖도록,
Figure 112018055955833-pat00224
Figure 112018055955833-pat00225
-부분 공간
Figure 112018055955833-pat00226
가 존재하는 것으로 명시된다. 나아가, 무작위로 선택된 부분 공간이 단순한 복구 스킴을 유발시키는 확률은 1-O(1/2r)이다.
일반적으로, 조건 (**)이 성립하는지 체크하기 위하여, 하한이 불충분하므로, 부분체 서브 코드들의 차원에 대한 정확한 수식이 필요로 한다. 이를 위하여, H. Stichtenoth, “the dimension of Subfield Subcodes”6, No. 1, Jan. 1990의 일부 결론들이 후술되는 바와 같이 사용될 것이다. 다음으로,
Figure 112018055955833-pat00227
는 벡터들의 좌표형 연산이다.
명제 5.1 (보조 정리 1, 2 및 Stichtenoth의 결과): q 소수 거듭제곱 및
Figure 112018055955833-pat00228
에 대하여,
Figure 112018055955833-pat00229
Figure 112018055955833-pat00230
의 프로베니우스 자기 동형 사상이다.
Figure 112018055955833-pat00231
에 대하여,
Figure 112018055955833-pat00232
는 선형 코드이다.
Figure 112018055955833-pat00233
Figure 112018055955833-pat00234
로 쓴다. 그렇다면, 아래와 같다.
1.
Figure 112018055955833-pat00235
2.
Figure 112018055955833-pat00236
3.
Figure 112018055955833-pat00237
이는 명제 5.1의 특수한 경우를 명시적으로 진술하기에 편리할 것이다.
결과 5.2: 명제 5.1의 표기법으로, m=2로 추정한다. 그렇다면, 수학식 6 및 수학식 7이 도출된다.
Figure 112018055955833-pat00238
Figure 112018055955833-pat00239
Figure 112018055955833-pat00240
Figure 112018055955833-pat00241
-벡터 부분 공간에 정의되는 RS 코드들을 고려하기 전에, 일부 추가적인 배경이 요구될 필요가 있다.
정의 5.3: K⊂L는 유한체들이다. L에서의 K-선형화된 다항식은
Figure 112018055955833-pat00242
형식의 다항식이다. 이러한 다항식은 K-선형 맵 L→L을 정의한다.
정리 5.4 (R. Lidl and H. Niederreiter, Finite Fields, Vol. 20 of Encyclopedia of Math. and its Applications, 2nd Ed., CUP, 1997, p. 110의 정리 3.52): K⊂L는 유한체들이다. U⊂L는 K-선형 부분 공간이다. 그렇다면,
Figure 112018055955833-pat00243
는 L에서의 K-선형화된 다항식이다.
이 시점부터, q는 항상 2의 거듭제곱이다. 이제,
Figure 112018055955833-pat00244
Figure 112018055955833-pat00245
-벡터 부분 공간에 정의되는 RS 코드들로 넘어간다. 이러한 코드들은 추이적 자기 동형 사상군을 갖는다. 부분 공간 U 및 y∈U에 대하여, 맵
Figure 112018055955833-pat00246
은, U를 순열로 배치하고, 변수 변환
Figure 112018055955833-pat00247
이 다항식의 차수를 증가시키지 않으므로, 맵
Figure 112018055955833-pat00248
은 U에서 정의되는 RS 코드의 자기 동형 사상이다.
U는
Figure 112018055955833-pat00249
Figure 112018055955833-pat00250
-부분 공간이고, d:=dim(U)를 설정한다. n:=|U|=2d이고, n':=n-1이다.
Figure 112018055955833-pat00251
,
Figure 112018055955833-pat00252
에 대하여, C=C(U,l)는 U의 점들 상에
Figure 112018055955833-pat00253
로부터 차수≤l 의 다항식들을 평가함으로써 획득되는 RS 코드이다. C는 추이적 자기 동형 사상군을 가지므로, O∈U에 상응하는 좌표에 대한 복구 스킴들을 고려하기에 충분하다.
이 시점부터, 실시예들에 따르면, 정리 3.2의 벡터 v가 모든
Figure 112018055955833-pat00254
에 대하여, vu:=1/u로 정의되는 것으로 가정될 것이다. 좌표들은 U의 원소들로 레이블링되는 것으로 가정한다. 이러한 v의 선택으로, 정리 3.2의 행렬H'의 행들은 차수≤l-1의
Figure 112018055955833-pat00255
의 다항식들로부터 비롯되는 다항식 함수들
Figure 112018055955833-pat00256
의 공간에 대한 기저로 간주될 수 있다.
Figure 112018055955833-pat00257
이다. 그렇다면, 정리 5.4에 의하여,
Figure 112018055955833-pat00258
이고, a0≠0 (f는 정의상 분리 가능하므로)이도록 하는, 임의의
Figure 112018055955833-pat00259
가 존재한다. 아래와 같이,
Figure 112018055955833-pat00260
-대수학의 동형(isomorphism)이 존재한다.
Figure 112018055955833-pat00261
Figure 112018055955833-pat00262
다항식
Figure 112018055955833-pat00263
에 대하여,
Figure 112018055955833-pat00264
에서 g의 이미지에 대하여
Figure 112018055955833-pat00265
로 쓴다.
Figure 112018055955833-pat00266
는 정리 3.2의 행렬 H'에 대하여 D':=ker(H')로 정의되며, 벡터 v는 고정되고 모든
Figure 112018055955833-pat00267
에 대하여 vu:=1/u로 정의됨이 상기된다.
Figure 112018055955833-pat00268
이다. 그렇다면,
Figure 112018055955833-pat00269
Figure 112018055955833-pat00270
에 대한 기저이다. 이로 인하여, 수학식 8이 도출된다.
Figure 112018055955833-pat00271
Figure 112018055955833-pat00272
Figure 112018055955833-pat00273
Figure 112018055955833-pat00274
유사하게,
Figure 112018055955833-pat00275
는 정리 3.2의 행렬 H'에 대하여, 그리고 고정된 v에 대하여, D'':=ker(H'')로 정의된다. 그렇다면,
Figure 112018055955833-pat00276
Figure 112018055955833-pat00277
를 생성하고, (이는 사실,
Figure 112018055955833-pat00278
에 대한 기저:
Figure 112018055955833-pat00279
로 인하여(후술됨), l-1<2d-2 라는 가정은
Figure 112018055955833-pat00280
를 암시한다.)
Figure 112018055955833-pat00281
Figure 112018055955833-pat00282
를 생성(span)한다.
Figure 112018055955833-pat00283
(a0≠0)를 상기하면,
Figure 112018055955833-pat00284
이고,
Figure 112018055955833-pat00285
이다. 이는 아래의 보조 정리를 암시한다.
보조 정리 5.5: 상술된 표기법으로, l-1≥2d-1-2라면,
Figure 112018055955833-pat00286
이고,
Figure 112018055955833-pat00287
이다.
증명: 명확하다.
정의 5.6:
Figure 112018055955833-pat00288
에 대하여, wt2(j)는 j의 이항 전개(binary expansion)에서 1의 개수이다. 모든 i에 대하여, ai∈{0,1}인 경우에
Figure 112018055955833-pat00289
라면,
Figure 112018055955833-pat00290
이다.
보조 정리 5.7: 모든
Figure 112018055955833-pat00291
에 대하여, wt2(j1+j2)≤wt2(j1)+wt2(j2)이다.
증명: 우선 임의의 s에 대하여 j2=2s인 것으로 추정한다. r:=max{[log2(j1)],s}+1인 경우, r>s 이고 ar=0이도록
Figure 112018055955833-pat00292
로 쓴다. as=0이라면, 명확하게 wt2(j1+j2)=wt2(j1)+wt2(j2)이다. 그렇지 않다면, s'>s는 as'=0과 같이 가장 작다. j2의 이항 전개로부터 단일한 1은, 모든 에 대하여, i∈{s,s+1,...,s'-1}의 이항 전개의 i번째 숫자가 0이고, 이러한 이항 전개의 s'번째 숫자가 1이고, 이러한 전개의 모든 다른 숫자들이 j1의 전개의 숫자들과 같도록, 올림(carry)으로 전달한다. 대체로, 1의 총 개수는 필요에 따라, wt2(j1)+1-(s'-s)=wt2(j1)+wt2(j2)-(s'-s)<wt2(j1)+wt2(j2)이다.
일반적인 경우에, wt2(j2)≥2인 것으로 추정하고, 더 작은 가중치를 가진 모든 j2에 대하여, 주장은 참(assertion true)임을 (j2=0인 경우는 명백하다.) 가정한다. 그렇다면, wt2(j'2)=1 및 wt2(j''2)=wt2(j2)-1 와 함께 j2=j'2+j''2로 쓴다. 그렇다면, 필요에 따라, 아래의 수식과 같다.
Figure 112018055955833-pat00293
Figure 112018055955833-pat00294
Figure 112018055955833-pat00295
Figure 112018055955833-pat00296
명제 5.8: 앞선 수학식 8 단락들의 용어를 사용하면, 모든 d≥2, wt2(j)≤d-1 인 모든
Figure 112018055955833-pat00297
, 그리고 모든
Figure 112018055955833-pat00298
에 대하여, 수학식 9가 도출된다.
Figure 112018055955833-pat00299
비고:
Figure 112018055955833-pat00300
Figure 112018055955833-pat00301
를 생성(span)하고, 모든 i∈{0,...,2d-2}에 대하여, wt2(j)≤d-1 임이 명확하다. 이로 인하여, wt2(j)>d-1 이더라도, 생성 집합(spanning set)에서 지수부의 최대 가중치는≤d-1 이다. 그러나, 본 발명의 나머지 부분에서 실제로 필요로 하지 않지만, wt2(j)≤d-1 조건은
Figure 112018055955833-pat00302
이 수학식 9의 우변의 생성 집합에 있지 않음을 명시하는데 필요하다.
명제 5.8의 증명: 우선 wt2(2sj)=wt2(j)이므로, s=0인 가정에서 대부분의 손실이 없다. 실시예들에 따르면, s=0이고, wt2(j)에 대한 유도(induction)에 의하여 진행한다. 기저에 대하여, wt2(j)=1, 즉, 임의의 r에 대하여 j=2r인 것으로 추정한다. 이로 인하여, 모든 r에 대하여
Figure 112018055955833-pat00303
로 나타나며, r에 대한 유도가 사용될 것이다. r<d 라면, 이러한 주장은 명확하다. 그러므로, r≥d 이고,
Figure 112018055955833-pat00304
이도록 하는 가 존재하는 것을 추정한다. 이러한 수식을 제곱하면,
Figure 112018055955833-pat00305
이다. 그러나, 필요에 따라,
Figure 112018055955833-pat00306
이므로,
Figure 112018055955833-pat00307
이다. 이는 wt2(j)에 대한 유도 기저(induction basis)를 설정한다.
유도 단계를 위하여, wt2(j)≥2이고, 주장은 wt2(j')<wt2(j)인 모든 i'에 대하여 참인 것으로 추정한다. j1<...<jw이고 w=wt2(j)≥2인 경우에, j의 이항 전개에 대하여 j=2j1+...+2jw로 쓴다. 그렇다면, 유도 기저에 의하여, 임의의
Figure 112018055955833-pat00308
에 대하여 수학식 10이 도출된다.
Figure 112018055955833-pat00309
Figure 112018055955833-pat00310
이로 인하여,
Figure 112018055955833-pat00311
는 수학식 11과 같은 형식의 원소들의 선형 결합이다.
Figure 112018055955833-pat00312
두 가지 경우들이 다음과 같이 구별될 수 있다.
첫번째 경우,
Figure 112018055955833-pat00313
이도록 하는 임의의 l1, l2가 존재한다면, 수학식 12를 만족하도록,
Figure 112018055955833-pat00314
이다.
Figure 112018055955833-pat00315
보조 정리 5.7에 의하여,
Figure 112018055955833-pat00316
이며, 이는 유도 가설(induction hypothesis) 및 임의의 {βi},{rk}에 대한 아래의 수식을 만족하는 수학식 12로부터 도출된다.
Figure 112018055955833-pat00317
이러한 마지막 표현은 보조 정리 5.7에 의하여, 그 자체로 wt2(2i+k)≤1+wt2(k)≤wt2(j)-1 인
Figure 112018055955833-pat00318
형식의 원소들의
Figure 112018055955833-pat00319
-선형 결합이다. 다시 유도 가설을 사용하면, 원하는 결과가 획득된다.
두번째 경우, 모든 il는 구별된다. 가정에 의하여, w=wt2(j)≤d-1및 wt2(2d-1)=d이므로,
Figure 112018055955833-pat00320
이다. 또한,
Figure 112018055955833-pat00321
의 경우에, 수학식 11은 이미 원하는 형식에 있도록 한다.
명제 5.9: 상술된 표기법을 유지하도록, 모든
Figure 112018055955833-pat00322
에 대하여,
Figure 112018055955833-pat00323
인 경우에 한하여
Figure 112018055955833-pat00324
이다. 또한,
Figure 112018055955833-pat00325
Figure 112018055955833-pat00326
선형 독립이라면,
Figure 112018055955833-pat00327
도 마찬가지이다.
증명: 제1 주장에 대하여,
Figure 112018055955833-pat00328
이며, 가장 우변의 결과는, fv, 그리고 또한 fv/x가 분리 가능하므로, 성립한다. 이로 인하여, 필요에 따라,
Figure 112018055955833-pat00329
이다.
제2 주장에 대하여, 임의의
Figure 112018055955833-pat00330
에 대하여,
Figure 112018055955833-pat00331
인 것으로 추정한다. 그렇다면, 제1 부분에 의하여
Figure 112018055955833-pat00332
이도록,
Figure 112018055955833-pat00333
이다.
Figure 112018055955833-pat00334
가 선형 독립이므로, 모든 i에 대하여
Figure 112018055955833-pat00335
이고, 그리고 또한 모든 i에 대하여 ai=0이다.
명제 5.10: 앞선 수학식 8 단락들의 용어를 사용한다. U에서 정의되는 RS 코드 C가
Figure 112018055955833-pat00336
코드이도록,
Figure 112018055955833-pat00337
Figure 112018055955833-pat00338
-부분 공간U의 차원이 d인 것으로 추정한다. 정리 3.2의 벡터 v가 모든
Figure 112018055955833-pat00339
에 대하여 vu=I/u로 주어진 것으로 추정한다. 또한, 아래의 수식을 만족하는 것으로 추정한다.
Figure 112018055955833-pat00340
그렇다면, 정리 3.2의 C'에 대하여, dim(C')≥2이다.
비고:
1. 약식으로, 이러한 명제는, l≤l0라면, 조건 (**)의 “절반(half)이 차원 d의 임의의 부분 공간에 대하여 만족되는 것으로 명시한다. l0가 d에 의존하나, q에 의존하지 않는다. 예를 들어, 짝수 d에 대하여, 그리고 q2≥2d인 모든 q에 대하여, 명제는 조건(**)의 절반이 길이 n=2d의 코드들 및
Figure 112018055955833-pat00341
에서의
Figure 112018055955833-pat00342
까지의 차원에 대하여 만족되는 것으로 나타난다. 그 결과, 충분히 큰 r에 대하여, “모든” 조건(**)이 임의의
Figure 112018055955833-pat00343
RS 코드들에 대하여 만족된다.
2. 홀수 d에 대하여, 여차원(codimension)은 d+1에 대한 것과 동일하다. 이로 인하여, 홀수 d의 파라미터들은 짝수 차원 d+1에 대하여 설계되는 코드를 단축함으로써 달성될 수 있다. 그러므로, 현재 명제를 제외하고, 짝수 d만이 고려될 것이다.
3. v의 실시예에 따른 선택에 대하여, dim(U)=d인 임의의 부분 공간들
Figure 112018055955833-pat00344
이 존재하며, 이러한 조건 (**)은 성립하지 않는다. 예를 들어, d=q 라면, 조건(**)은
Figure 112018055955833-pat00345
에 대하여 성립하지 않는다. 왜냐하면 체크 행렬에서
Figure 112018055955833-pat00346
로부터의 엔트리들을 갖는 단일한 추가적인 행은 1보다 크게
Figure 112018055955833-pat00347
-차원을 감소시킬 수 없기 때문이다. 유사하게, 조건은
Figure 112018055955833-pat00348
에 대하여
Figure 112018055955833-pat00349
형식의 부분 공간에 대하여 성립하지 않는다.
명제 5.10의 증명: 결과 5.2의 수학식 7에 의하여
Figure 112018055955833-pat00350
이도록,
Figure 112018055955833-pat00351
는 패리티-체크 행렬 H'을 갖는 코드임이 상기된다.
Figure 112018055955833-pat00352
Figure 112018055955833-pat00353
Figure 112018055955833-pat00354
가 사용되고,
Figure 112018055955833-pat00355
Figure 112018055955833-pat00356
에 대한 기저임이 상기된다. 이로 인하여, 이러한 주장을 증명하기 위해,
Figure 112018055955833-pat00357
을 입증하는 것으로 충분하다. 수학식 8의 관점에서, 수학식 14로 나타난다.
Figure 112018055955833-pat00358
다시 말해서, 수학식 15가
Figure 112018055955833-pat00359
의 선형 결합들로 쓰여질 수 있는 2l+3-2d 독립 원소들을 포함하는 것으로 나타난다.
Figure 112018055955833-pat00360
우선
Figure 112018055955833-pat00361
는 선형 독립이고, 명제 5.9에 의하여, 맵
Figure 112018055955833-pat00362
은 이러한 특성을 보존하므로,
Figure 112018055955833-pat00363
Figure 112018055955833-pat00364
-선형 독립이다.
Figure 112018055955833-pat00365
Figure 112018055955833-pat00366
로 쓴다.
wt2(i)≤wt2(l-1)인 {1,...,l-1}에서 i의 l-A 값들 각각에 대하여,
Figure 112018055955833-pat00367
는 wt2(j)≤wt2(l-1)인 클래스들
Figure 112018055955833-pat00368
의 선형 결합임이, 명제 5.8로부터 도출된다. 이러한 선형 결합 각각은 j≥l인 최대 B 개의 클래스들
Figure 112018055955833-pat00369
을 포함한다. 이로 인하여, l-A 개 중 최대 B 개까지의 원소들
Figure 112018055955833-pat00370
은 나머지 l-A-B 개의 원소들에서 j≥l인 모든 클래스들
Figure 112018055955833-pat00371
을 소거하는데 사용될 수 있다. 이는 원소들
Figure 112018055955833-pat00372
을 선택함으로써 수행될 수 있으며, j≥l 및 wt2(j)≤wt2(l-1)인 좌표들
Figure 112018055955833-pat00373
로의 원소들
Figure 112018055955833-pat00374
의 투영들이, 동일한 좌표들로의 모든 l-A 개의 원소들
Figure 112018055955833-pat00375
의 투영으로 기저를 형성한다. 투영이 B개의 좌표들에 있으므로, 이러한 기저의 원소들의 개수는 최대 B개이다. 이는 수학식 14에 나타나는 교차 지점에서, 적어도 l-A-B 개인 선형 독립 원소들을 유발시킨다. 이로 인하여, l-B-A≥2l+d-2d 라면, 수학식 14는 만족되고, dim(C')≥2이다. 부록 A에서, l=l0에 대하여, 2d-3-l≥A+B가 실제로 성립함이 나타난다. 따라서, l=l0에 대하여, dim(C')≥2이므로, 모든 l≤l0에 대하여 마찬가지로 성립한다.
정리 5.11: d≥4는 짝수이다. q=2r이고, d개의 원소들 x0,...,xd -1
Figure 112018055955833-pat00376
로부터 균일하고 독립적으로 도시되는 것으로 추정한다.
Figure 112018055955833-pat00377
이다. dim(U)=d 라면, U에서 정의되는 RS 코드 C가
Figure 112018055955833-pat00378
코드이도록, l=l0=2d-2d/2-1인 것으로 추정한다. 벡터 v는 모든
Figure 112018055955833-pat00379
에 대하여 vu=1/u로 주어지는 것으로 추정한다. 그렇다면, dim(U)=d 및 조건 (**)성립하는 확률은 적어도
Figure 112018055955833-pat00380
이고, r≥d-1+log2(d)인 경우에 양수이다.
비고 5.12:
1. r=d/2의 경우는 상술한 정리 4.1의 특수한 경우이다.
2. 일부 예시들(후술됨)은 결과가 모든 r≥d/2에 대하여 성립하여야 하며, “훌륭한” 부분 공간 U를 도시하는 확률이 정리에서 보다 훨씬 높다는 것을 제안하는 것으로 나타난다.
3. d=4인 경우, 정리는 모든 r≥5에 대하여 훌륭한 부분 공간의 존재를 증명하고, 정리 4.1은 r=2인 경우를 포함한다. r=3,4인 두 개의 나머지 경우들이 아래의 예시들에서 고려되므로, d=4인 경우, r≥d/2에 대하여 훌륭한 부분 공간이 존재하는 것으로 나타날 수 있다.
이러한 정리를 증명하기 전에, 일부 예비적인 결과들이 요구된다.
명제 5.13: 명제 5.10의 용어를 사용하고, 계속해서 벡터v는 모든
Figure 112018055955833-pat00381
에 대하여 vu=1/u로 주어지는 것으로 가정을 한다. l-1≥2d-1-2은, d≥2라면, l=l0인 경우에 성립하는 것으로 추정한다. 그렇다면, U에서 정의되는
Figure 112018055955833-pat00382
RS 코드에 대한 조건 (**)은 아래의 조건과 동일하다. 모든
Figure 112018055955833-pat00383
에 대하여,
Figure 112018055955833-pat00384
Figure 112018055955833-pat00385
이거나, 수학식 16 및 수학식 17과 동일하다.
Figure 112018055955833-pat00386
Figure 112018055955833-pat00387
증명: 결과 5.2의 수학식 6에 의하여,
Figure 112018055955833-pat00388
Figure 112018055955833-pat00389
이다.
Figure 112018055955833-pat00390
이므로,
Figure 112018055955833-pat00391
이다. 이로 인하여, 조건 (**)은
Figure 112018055955833-pat00392
에 대하여,
Figure 112018055955833-pat00393
인 경우에 한하여 성립한다.
동형
Figure 112018055955833-pat00394
을 적용하면, 조건 (**)은
Figure 112018055955833-pat00395
에 대하여,
Figure 112018055955833-pat00396
Figure 112018055955833-pat00397
인 경우에 한하여 성립하는 것으로 나타나며, 이는 보조 정리 5.5로부터
Figure 112018055955833-pat00398
Figure 112018055955833-pat00399
와 동일하다. 이것으로 증명에 대한 결론이 내려진다.
정의 5.14: (숫자들 ij) d는 짝수로 가정됨을 상기하고, wt2(i)=d-1 인 숫자들 i∈{0,...,2d-2}는 j∈{0,...,d-1}인 경우에 형식 2d-1-2j의 숫자들 i이다. 이로 인하여, 이러한 숫자들 d가 있고, 그것들의 d/2-1은 <l0=2d-2d/2-1 이고, 즉, j∈{d/2+1,...,d-1}인 경우의 것들이다. 상술된 범위의 j에 대하여, 2d-1-1=i0<i1<...<id-1=2d-2 가 wt2(i)=d-1 인 모든 숫자들 i∈{0,...,2d-2}이도록, 그리고 i0,...,id/2-2는 wt2(i)=d-1 인 모든 숫자들 i∈{0,...,l0-1}이도록, ij:=2d-1-2d-1-j로 쓴다.
정의 5.15: (행렬들
Figure 112018055955833-pat00400
Figure 112018055955833-pat00401
) r≥0및 i,j∈{0,...,2d-2}에 대하여,
Figure 112018055955833-pat00402
를 설정함으로써, 계수들
Figure 112018055955833-pat00403
가 정의된다. 수학식 18과 같이, 행렬
Figure 112018055955833-pat00404
가 정의된다.
Figure 112018055955833-pat00405
Mr의 열 각각은 i=2d-2이거나 i<l0이고 wt2(i)=d-1인, 임의의 i에 대하여
Figure 112018055955833-pat00406
에 상응하는 계수들의 일부를 포함하고, 열 각각에 나타나는 계수들은 wt2(j)=d-1인 모든 기저 원소들
Figure 112018055955833-pat00407
에 상응한다.
또한,
Figure 112018055955833-pat00408
이 Mr의 마지막 d/2행들, 수학식 18의 수평선 아래 부분을 포함함으로써, 행렬
Figure 112018055955833-pat00409
가 정의된다.
명제 5.16: 명제 5.13의 용어를 사용하면, r=log2(q)에 대하여
Figure 112018055955833-pat00410
라면, 조건(**)은 l=l0에 대하여, 그리고 이로 인한 l≤l0에 대하여, 성립한다.
증명: 수학식 16 및 수학식 17의 조건들이 아래와 같이 쓰여질 수 있음이 관찰된다.
(i)
Figure 112018055955833-pat00411
는 좌표들
Figure 112018055955833-pat00412
Figure 112018055955833-pat00413
의 투영들의
Figure 112018055955833-pat00414
-공간에 있지 않고,
(ii) 좌표들
Figure 112018055955833-pat00415
Figure 112018055955833-pat00416
의 투영은 동일한 좌표들로
Figure 112018055955833-pat00417
의 투영들의
Figure 112018055955833-pat00418
-공간에 있지 않다.
상술한 (i)을 고려하면, 명제 5.8에 의하여,
Figure 112018055955833-pat00419
Figure 112018055955833-pat00420
형식의 합으로 나타난다면, wt2(i)=d-1인 적어도 하나의 βi가 0이 아니어야 한다. 게다가, 동일한 명제에 의하여, wt2(i)=d-1인
Figure 112018055955833-pat00421
형식의 원소들만이 wt2(j)=d-1인 j∈{l0,...,2d-3}에 대하여, 좌표들
Figure 112018055955833-pat00422
로의 투영에 기여할 수 있다. 이로 인하여, 상술된 좌표들로, wt2(i)=d-1인 i∈{1,...,l0-1}에 대하여,
Figure 112018055955833-pat00423
의 투영들이
Figure 112018055955833-pat00424
-선형 독립이라면, (i)는 성립하여야 한다. 다시 말해서,
Figure 112018055955833-pat00425
의 마지막 d/2-1열들의 선형 독립은 (i)에 대하여 충분하다.
유사하게, 명제 5.8에 의하여, wt2(j)=d-1인 j∈{l0,...,2d-3}에 대하여, 좌표들
Figure 112018055955833-pat00426
Figure 112018055955833-pat00427
의 투영이 동일한 좌표들로, wt2(i)=d-1인 i∈{1,...,l0-1}에 대하여,
Figure 112018055955833-pat00428
의 투영들의 공간에 있지 않다면, (ii)는 성립하여야 하며, 명제 5.8에 의하여, wt2(j)=d-1인 좌표들j만 고려되므로, wt2(i)=d-1인 i들만이 고려될 필요가 있다. 다른 i들에 대하여,
Figure 112018055955833-pat00429
는 명제에 의하여, 상술된 좌표들로 0점 투영을 갖는다. 이는
Figure 112018055955833-pat00430
라면, 필요에 따라, (i) 및 (ii) 모두 성립하는 것으로 나타난다.
계속해서, 이러한 문제를 파라미터로 표시한다.
Figure 112018055955833-pat00431
로 작업하는 대신에, 자유 변수들
Figure 112018055955833-pat00432
에 대하여
Figure 112018055955833-pat00433
로 작업한다. 이를 위하여,
Figure 112018055955833-pat00434
Figure 112018055955833-pat00435
상에서의 자유 변수들의 벡터이고,
Figure 112018055955833-pat00436
Figure 112018055955833-pat00437
로 정의된다.
Figure 112018055955833-pat00438
는 표준 준동형 사상(canonical homomorphism)
Figure 112018055955833-pat00439
로 다시 정의된다.
Figure 112018055955833-pat00440
는 일대일 사상(injection)이며,
Figure 112018055955833-pat00441
로부터 도출되므로,
Figure 112018055955833-pat00442
Figure 112018055955833-pat00443
의 부분환(subring)으로 여겨질 수 있다. 게다가,
Figure 112018055955833-pat00444
는 기저
Figure 112018055955833-pat00445
를 갖는 자유
Figure 112018055955833-pat00446
-모듈이다.
Figure 112018055955833-pat00447
Figure 112018055955833-pat00448
-모듈로
Figure 112018055955833-pat00449
를 생성하는데, 왜냐하면
Figure 112018055955833-pat00450
에서
Figure 112018055955833-pat00451
의 계수는 하나의 단위이기 때문이다.
이러한 생각은
Figure 112018055955833-pat00452
의 임의의 확대체K (예를 들어,
Figure 112018055955833-pat00453
)의 임의의 유한 차원의
Figure 112018055955833-pat00454
-부분 공간U에 대하여,
Figure 112018055955833-pat00455
Figure 112018055955833-pat00456
의 계수들로 치환할 수 있다는 것이다.
정의 5.17: (행렬
Figure 112018055955833-pat00457
Figure 112018055955833-pat00458
) 정수 r에 대하여, 아래와 같이, 행렬들
Figure 112018055955833-pat00459
Figure 112018055955833-pat00460
가 정의된다. 행렬
Figure 112018055955833-pat00461
은 수학식 18의 우변으로 정의되며, 현재
Figure 112018055955833-pat00462
Figure 112018055955833-pat00463
의 유일한 다항식들이다. 행렬
Figure 112018055955833-pat00464
Figure 112018055955833-pat00465
의 마지막 d/2 행들로 정의된다. 보조 정리 B.1에 의하여,
Figure 112018055955833-pat00466
-부분 공간
Figure 112018055955833-pat00467
에 대하여,
Figure 112018055955833-pat00468
Figure 112018055955833-pat00469
라면,
Figure 112018055955833-pat00470
이고
Figure 112018055955833-pat00471
이다. 따라서,
Figure 112018055955833-pat00472
이다.
다음으로,
Figure 112018055955833-pat00473
에 대하여,
Figure 112018055955833-pat00474
Figure 112018055955833-pat00475
에서 0 다항식이 아니다. 이를 위하여 아래의 보조 정리가 시작된다.
보조 정리 5.18: (업데이트 보조 정리) 아래와 같이 쓴다.
Figure 112018055955833-pat00476
모든 i 및 r에 대하여, 그리고, 정의 5.14의
Figure 112018055955833-pat00477
들에 대하여, 정의 5.17의
Figure 112018055955833-pat00478
는 수학식 19를 만족한다.
Figure 112018055955833-pat00479
증명: 아래의 수식이 성립한다.
Figure 112018055955833-pat00480
Figure 112018055955833-pat00481
Figure 112018055955833-pat00482
명제 5.8로부터,
Figure 112018055955833-pat00483
인 j들만
Figure 112018055955833-pat00484
인 k에 대하여
Figure 112018055955833-pat00485
에 기여할 수 있다. 합
Figure 112018055955833-pat00486
에서, 오직 이러한j, 즉
Figure 112018055955833-pat00487
가 존재한다. 합
Figure 112018055955833-pat00488
에서, 관련된 j들은 정의 5.14로부터,
Figure 112018055955833-pat00489
에 대하여,
Figure 112018055955833-pat00490
형식에 대한 것들이다. 이로 인하여, 부분 합
Figure 112018055955833-pat00491
Figure 112018055955833-pat00492
인 k에 대하여
Figure 112018055955833-pat00493
에 대한 모든 기여분들을 포함한다.
현재, 수식은 아래와 같다.
Figure 112018055955833-pat00494
Figure 112018055955833-pat00495
Figure 112018055955833-pat00496
Figure 112018055955833-pat00497
에서
Figure 112018055955833-pat00498
를 얻도록 치환한다. 다시 한번,
Figure 112018055955833-pat00499
인 그것들의 지수부들만이
Figure 112018055955833-pat00500
인 k에 대하여
Figure 112018055955833-pat00501
에 기여할 수 있고, 유지되어야 한다.
Figure 112018055955833-pat00502
에 대하여,
Figure 112018055955833-pat00503
의 이진 표현은 정확히 두개의 0들 (
Figure 112018055955833-pat00504
Figure 112018055955833-pat00505
의 계수들)을 갖고,
Figure 112018055955833-pat00506
Figure 112018055955833-pat00507
인 경우에 한하여, 마찬가지이다.
Figure 112018055955833-pat00508
인 k에 대하여
Figure 112018055955833-pat00509
에 대한 모든 기여분들은 아래의 수식으로 나타남이 도출된다.
Figure 112018055955833-pat00510
Figure 112018055955833-pat00511
Figure 112018055955833-pat00512
이고, 최종 합에서 변수 변환
Figure 112018055955833-pat00513
을 사용하여, 상술된 표현이 아래 수식으로 읽게 됨이 상기된다.
Figure 112018055955833-pat00514
이것으로 증명에 대한 결론이 내려진다.
정의 5.19: (행렬들 A 1 2 A) 보조 정리 5.18의 행렬A에 대하여,
Figure 112018055955833-pat00515
는 A의 첫번째 d/2열들을 포함하고,
Figure 112018055955833-pat00516
는 A의 마지막 d/2 행들을 포함한다. 명시적으로,
Figure 112018055955833-pat00517
이고, 특히, 숫자 행들에 0,1,…를 사용하면, 행들의 번호 d/2-1,…,d-2는 0이고, 아래와 같다.
Figure 112018055955833-pat00518
정의 5.20: (연산
Figure 112018055955833-pat00519
)
임의의 환(ring)에서 엔트리들을 갖는 행렬
Figure 112018055955833-pat00520
에 대하여, 그리고 정수 k에 대하여,
Figure 112018055955833-pat00521
는 k의 거듭제곱으로 M의 엔트리 각각을 제곱함으로써 획득되는 행렬이며,
Figure 112018055955833-pat00522
이다.
비고 5.21: 특성 2의 환에서 엔트리들을 갖는 행렬들에 대하여, 특히,
Figure 112018055955833-pat00523
에서, 모든
Figure 112018055955833-pat00524
에 대하여,
Figure 112018055955833-pat00525
가 정의될 때마다
Figure 112018055955833-pat00526
가 성립한다. 이러한 사실은 더 후술됨이 없이 사용될 것이다. 또한, 특성 2의 경우에, 정사각 행렬M에 대하여,
Figure 112018055955833-pat00527
이다.
보조 정리 5.22: 수학식 20이 성립한다.
Figure 112018055955833-pat00528
그리고,
Figure 112018055955833-pat00529
에 대하여, 총 r개의 곱하여지는 행렬들인, 수학식 21이 성립한다.
Figure 112018055955833-pat00530
따라서, 수학식 22가 성립한다.
Figure 112018055955833-pat00531
비고 5.23: 명확화를 위하여, 수학식 21은
Figure 112018055955833-pat00532
인 경우, 즉,
Figure 112018055955833-pat00533
인 경우에, 명시적으로
Figure 112018055955833-pat00534
,
Figure 112018055955833-pat00535
,
Figure 112018055955833-pat00536
로 표현된다.
보조 정리 5.23의 증명: 수학식 20은
Figure 112018055955833-pat00537
의 정의로부터 직접 도출되며, 수학식 21은 유도에 의하여 보조 정리 5.18로부터 도출된다. 결국, 수학식 22는 수학식 21 및
Figure 112018055955833-pat00538
의 마지막 d/2 행들과 같은
Figure 112018055955833-pat00539
의 정의로부터 도출된다.
이는
Figure 112018055955833-pat00540
는 0 다항식이 아닌 것으로 현재 증명될 수 있다.
보조 정리 5.24: 짝수
Figure 112018055955833-pat00541
Figure 112018055955833-pat00542
에 대하여,
Figure 112018055955833-pat00543
는 총 차수
Figure 112018055955833-pat00544
의 0이 아닌 다항식이다.
증명: 우선, r에 대한 유도에 의하여,
Figure 112018055955833-pat00545
는 0 다항식이 아님이 증명될 것이다. 기저에 대하여,
Figure 112018055955833-pat00546
인 경우가 고려된다.
Figure 112018055955833-pat00547
는 좌측으로 순환 쉬프트하는 연산자를 나타낸다. 이로 인하여,
Figure 112018055955833-pat00548
이라면,
Figure 112018055955833-pat00549
Figure 112018055955833-pat00550
는 좌측으로
Figure 112018055955833-pat00551
순환 쉬프트하는 연산자를 나타낸다. 그러므로,
Figure 112018055955833-pat00552
는 아래와 같이 주어진다.
Figure 112018055955833-pat00553
Figure 112018055955833-pat00554
임이 도출되고, 수학식 23이 도출된다.
Figure 112018055955833-pat00555
Figure 112018055955833-pat00556
에 대하여,
Figure 112018055955833-pat00557
인 경우, 수학식 23 또한 이러한 경우에 성립하도록,
Figure 112018055955833-pat00558
가 직접 입증될 수 있다. 이는
Figure 112018055955833-pat00559
이고, 유도 기저를 설정함을 나타낸다.
유도 단계를 위하여,
Figure 112018055955833-pat00560
이고, 주장은 r-1에 대하여 참인 것으로 가정한다.
Figure 112018055955833-pat00561
로 쓰며,
Figure 112018055955833-pat00562
이다. 그렇다면, 수학식 22에 의하여, 수학식 24가 도출된다.
Figure 112018055955833-pat00563
Figure 112018055955833-pat00564
현재, 0, 1, …를 사용하여 행들의 인덱스를 지정하면, 아래와 같다.
Figure 112018055955833-pat00565
행들을 순환적으로 쉬프트하는 것은 수학식 25와 같은 행렬을 유발시킨다.
Figure 112018055955833-pat00566
수학식 25에서 행렬에 대하여
Figure 112018055955833-pat00567
로 쓰며,
Figure 112018055955833-pat00568
이다. 수학식 24로부터,
Figure 112018055955833-pat00569
인 경우에 한하여
Figure 112018055955833-pat00570
이 도출된다. 제1 행에서 행렬식의
Figure 112018055955833-pat00571
-선형성에 의하여, 아래와 같이 나타난다.
Figure 112018055955833-pat00572
Figure 112018055955833-pat00573
Figure 112018055955833-pat00574
아래의 사실은 행들
Figure 112018055955833-pat00575
및 행렬 M을 위하여 사용된다.
Figure 112018055955833-pat00576
또한, 상술한 합에서 제1 행렬식은
Figure 112018055955833-pat00577
와 같고, 그러므로 유도 가설에 의하여 0이 아니다. 게다가, 제1 피가수(summand) (
Figure 112018055955833-pat00578
)는
Figure 112018055955833-pat00579
가 홀수 차수에서 나타날 수 있는 유일한 것이다. 그리고, 제1 행렬식이 0이 아니고
Figure 112018055955833-pat00580
는 짝수 차수에서 모두 이것의 단항식들로 나타나므로, 제1 피가수는
Figure 112018055955833-pat00581
-차수가 홀수인 단항식들을 포함하여야 한다. 이러한 단항식들은,
Figure 112018055955833-pat00582
-차수가 본질적으로 짝수인, 제2 행렬식에서 단항식들에 의하여 소거될 수 없으므로,
Figure 112018055955833-pat00583
이도록,
Figure 112018055955833-pat00584
로 결론이 내려질 수 있다. 이는 모든
Figure 112018055955833-pat00585
에 대하여,
Figure 112018055955833-pat00586
인 것으로 증명을 완전하게 한다.
총 차수에 대한 주장에 대하여, 우선 수학식 22, A에서의 모든 다항식들이 1 또는 임의의
Figure 112018055955833-pat00587
라는 사실, 및 총 차수의 덧셈을 결합함으로써,
Figure 112018055955833-pat00588
의 엔트리 각각의 총 차수가 최대
Figure 112018055955833-pat00589
임이 나타날 수 있다.
Figure 112018055955833-pat00590
행렬의 행렬식이 d/2 엔트리들의 곱들의 합이므로, 필요에 따라,
Figure 112018055955833-pat00591
임이 도출된다.
정리 5.11은 이에 현재 증명될 수 있다.
정리 5.11의 증명: 임의의
Figure 112018055955833-pat00592
가 선택된다.
Figure 112018055955833-pat00593
Figure 112018055955833-pat00594
-선형 독립인 조건은
Figure 112018055955833-pat00595
선형 다항식들의 곱인,
Figure 112018055955833-pat00596
에 대하여
Figure 112018055955833-pat00597
로 표현될 수 있다. 게다가,
Figure 112018055955833-pat00598
Figure 112018055955833-pat00599
-선형 독립인 것으로 가정하고, 그것들이 생성(span)하는 부분 공간에 대한 U를 쓰면,
Figure 112018055955833-pat00600
의 계수들
Figure 112018055955833-pat00601
Figure 112018055955833-pat00602
에서, 각각,
Figure 112018055955833-pat00603
에 대한 총 차수들
Figure 112018055955833-pat00604
의 다항식들에서
Figure 112018055955833-pat00605
로 치환함으로써 획득된다.
Figure 112018055955833-pat00606
Figure 112018055955833-pat00607
에서
Figure 112018055955833-pat00608
Figure 112018055955833-pat00609
의 이러한 다항식들로 치환하는 것은 최대 수학식 26과 같은 총 차수의 다항식
Figure 112018055955833-pat00610
을 유발시킨다.
Figure 112018055955833-pat00611
수학식 26은 보조 정리 5.24 및 체(field) k, 다항식
Figure 112018055955833-pat00612
및 다항식들
Figure 112018055955833-pat00613
에 대한 아래의 사실로부터 도출된다.
Figure 112018055955833-pat00614
Figure 112018055955833-pat00615
이전 수학식의 타당성을 보기 위하여, u로 나타나는 단항식
Figure 112018055955833-pat00616
이 선택된다. 그렇다면, 정의상,
Figure 112018055955833-pat00617
이다.
Figure 112018055955833-pat00618
Figure 112018055955833-pat00619
로 치환하고,
Figure 112018055955833-pat00620
를 사용하면, 치환 후의 총 차수가
Figure 112018055955833-pat00621
보다 크지 않다는 것이 명확하다.
Figure 112018055955833-pat00622
로 쓴다. 실시예에 따르면,
Figure 112018055955833-pat00623
Figure 112018055955833-pat00624
에서 0이 아님이 나타난다. 이는 Schwartz-Zippel 보조 정리와 함께 달성될 것이며, Schwartz-Zippel 보조 정리는
Figure 112018055955833-pat00625
가 0이 아니고 총 차수
Figure 112018055955833-pat00626
를 갖고 (K는 임의의 체(field)이고,
Figure 112018055955833-pat00627
이고,
Figure 112018055955833-pat00628
이다.),
Figure 112018055955833-pat00629
가 유한 집합이라면,
Figure 112018055955833-pat00630
인 경우에
Figure 112018055955833-pat00631
의 개수는 최대
Figure 112018055955833-pat00632
인 것으로 명시한다. 그러나, 우선
Figure 112018055955833-pat00633
임을 보여줄 필요가 있다.
Figure 112018055955833-pat00634
는 명백하게 0이 아니므로, 오직
Figure 112018055955833-pat00635
임을 보여주면 된다.
Figure 112018055955833-pat00636
Figure 112018055955833-pat00637
에서 0 다항식이라면,
Figure 112018055955833-pat00638
의 임의의 확대체K에 대하여, 그리고 K의 임의의 d-차원의
Figure 112018055955833-pat00639
-부분 공간 U에 대하여,
Figure 112018055955833-pat00640
에서
Figure 112018055955833-pat00641
Figure 112018055955833-pat00642
로부터 비롯된
Figure 112018055955833-pat00643
로 치환한 결과는
Figure 112018055955833-pat00644
이다.
Figure 112018055955833-pat00645
Figure 112018055955833-pat00646
는 2의 임의의 거듭제곱인 것으로 추정한다. 구별된 부분 공간들이 구별된 벡터들
Figure 112018055955833-pat00647
을 유발시키면, 이는 0이 아닌 다항식
Figure 112018055955833-pat00648
가 적어도 아래 수식의 영점들을 갖는다는 것을 의미한다.
Figure 112018055955833-pat00649
그러나,
Figure 112018055955833-pat00650
이고
Figure 112018055955833-pat00651
이므로,
Figure 112018055955833-pat00652
에서
Figure 112018055955833-pat00653
의 영점들의 개수가 최대
Figure 112018055955833-pat00654
이며, 이는 고정된 d 및 q에 대하여
Figure 112018055955833-pat00655
에 있다는 것이, Schwartz-Zippel 보조 정리로부터 도출된다.
Figure 112018055955833-pat00656
이므로, 충분히 큰 Q에 대하여 모순이 획득된다. 이는
Figure 112018055955833-pat00657
인 것으로 나타난다.
Figure 112018055955833-pat00658
는 0이 아닌 다항식이고
Figure 112018055955833-pat00659
이므로,
Figure 112018055955833-pat00660
로부터 무작위로 도시된 점
Figure 112018055955833-pat00661
이 gh의 0이 아닌 확률은 적어도 아래 수식과 같다는 것이, Schwartz-Zippel 보조 정리로부터 도출된다.
Figure 112018055955833-pat00662
고정된 d에 대하여,
Figure 112018055955833-pat00663
라면,
Figure 112018055955833-pat00664
이다.
R이 q로 단조롭게 증가하는 동안 L은 q로 단조롭게 감소하므로, 임의의 r에 대하여,
Figure 112018055955833-pat00665
라면, 모든
Figure 112018055955833-pat00666
에 대하여 참이다.
현재, 짝수
Figure 112018055955833-pat00667
Figure 112018055955833-pat00668
에 대하여, 필요에 따라, 아래 수식이 도출된다.
Figure 112018055955833-pat00669
Figure 112018055955833-pat00670
Figure 112018055955833-pat00671
Figure 112018055955833-pat00672
6. d=4인 경우 및 추가적인 예시들
d=4에 대하여,
Figure 112018055955833-pat00673
이고,
Figure 112018055955833-pat00674
인 유일한 정수들
Figure 112018055955833-pat00675
Figure 112018055955833-pat00676
이며, 그 중 7만이
Figure 112018055955833-pat00677
임이 도출된다. 이로 인하여, 정의상, 아래의 행렬및 수학식 27이 도출된다.
Figure 112018055955833-pat00678
Figure 112018055955833-pat00679
이는,
Figure 112018055955833-pat00680
Figure 112018055955833-pat00681
의 자유 계수이며, (*)는 정의상,
Figure 112018055955833-pat00682
이므로,
Figure 112018055955833-pat00683
인 것이 보조 정리 5.18로부터 도출됨이 상기된다. 아래의 예시들에서, 단순화된 표기법
Figure 112018055955833-pat00684
Figure 112018055955833-pat00685
를 위하여 사용될 것이다. 이러한 표기법으로,
Figure 112018055955833-pat00686
인 경우에 한하여
Figure 112018055955833-pat00687
임이 수학식 27로 부터 도출된다. 명제 5.16에 의하여, 이는 부분 공간U에서 정의되는
Figure 112018055955833-pat00688
RS 코드에 대한 단순한 복구 스킴을 위한 충분한 조건이다.
예시 6.1:
Figure 112018055955833-pat00689
-선형화된 다항식
Figure 112018055955833-pat00690
가 고려된다. 이러한 다항식이
Figure 112018055955833-pat00691
에서 갈라지는 것은 직접적인 치환에 의하여 입증될 수 있다. 이로 인하여,
Figure 112018055955833-pat00692
인 경우에,
Figure 112018055955833-pat00693
에서 f의 제곱근의 집합U는
Figure 112018055955833-pat00694
-부분 공간이다. 또한, 상술된 표기법으로,
Figure 112018055955833-pat00695
,
Figure 112018055955833-pat00696
, 및
Figure 112018055955833-pat00697
이도록 하는,
Figure 112018055955833-pat00698
가 직접 입증될 수 있고,
Figure 112018055955833-pat00699
임이 도출된다. 이로 인하여, 조건(**)이 성립하고, U에서 정의되는
Figure 112018055955833-pat00700
RS 코드는 단순한 복구 스킴을 갖는다.
예시 6.2: r=4인
Figure 112018055955833-pat00701
경우가 고려되고,
Figure 112018055955833-pat00702
로써
Figure 112018055955833-pat00703
로 표현되고,
Figure 112018055955833-pat00704
는 X의 이미지이다.
Figure 112018055955833-pat00705
Figure 112018055955833-pat00706
의 원시 원소인 것으로 입증될 수 있다.
Figure 112018055955833-pat00707
에 의하여 생성(span)되는
Figure 112018055955833-pat00708
-부분 공간U 및 U에서 정의되는 RS 코드 C가 고려된다. 임의의 컴퓨터 대수학 소프트웨어를 사용하면,
Figure 112018055955833-pat00709
,
Figure 112018055955833-pat00710
,
Figure 112018055955833-pat00711
, 및
Figure 112018055955833-pat00712
가 입증될 수 있다. 이로 인하여, C는 단순한 복구 스킴을 갖는다. 이를 나타내는 대체적인 방법은, 직접적으로 말하자면 가우시안 소거법(Gaussian elimination)에 의한, 조건(**)에 포함된 차원들을 계산하는 것이다.
C는
Figure 112018055955833-pat00713
로 단축된 RS코드를 획득하도록 단축될 수 있다. 이러한 단축된 코드를 위하여, 임의의 단일한 소거된 좌표를 복구하는 것은 나머지 좌표들로부터 총
Figure 112018055955833-pat00714
비트들만을 읽는 것을 요구한다.
Figure 112018055955833-pat00715
Facebook HDFS 코드에 대하여, 최상의 존재하는 복구 스킴들에서, 단일한 소거된 좌표를 복구하는 것은, 소거되지 않는 좌표들로부터, 소거된 좌표에 의존하여, 총 64 또는 60비트들을 읽는 것을 요구한다.
예시 6.3:
Figure 112018055955833-pat00716
Figure 112018055955833-pat00717
의 경우들은 유사한 방식으로 고려될 수 있다. 아래의 표 1은 상술된 설명과 관련된 계수들뿐만 아니라,
Figure 112018055955833-pat00718
각각에 대한
Figure 112018055955833-pat00719
의 원시 원소
Figure 112018055955833-pat00720
의 극소 다항식(minimal polynomial)을 나타낸다. 모든 경우들에서, U는
Figure 112018055955833-pat00721
에 의하여 생성된
Figure 112018055955833-pat00722
-부분 공간이다. 이는 모든 경우들에서
Figure 112018055955833-pat00723
인 것으로 나타날 수 있고, 이로 인하여, U에서 정의되는 RS 코드는 단순한 복구 스킴을 갖는다.
r
Figure 112018055955833-pat00724
의 극소 다항식
Figure 112018055955833-pat00725
Figure 112018055955833-pat00726
Figure 112018055955833-pat00727
Figure 112018055955833-pat00728
Figure 112018055955833-pat00729
Figure 112018055955833-pat00730
Figure 112018055955833-pat00731
Figure 112018055955833-pat00732
파라미터들
5
Figure 112018055955833-pat00733
Figure 112018055955833-pat00734
Figure 112018055955833-pat00735
Figure 112018055955833-pat00736
Figure 112018055955833-pat00737
Figure 112018055955833-pat00738
Figure 112018055955833-pat00739
Figure 112018055955833-pat00740
Figure 112018055955833-pat00741
Figure 112018055955833-pat00742
Figure 112018055955833-pat00743
Figure 112018055955833-pat00744
6
Figure 112018055955833-pat00745
Figure 112018055955833-pat00746
Figure 112018055955833-pat00747
Figure 112018055955833-pat00748
Figure 112018055955833-pat00749
Figure 112018055955833-pat00750
Figure 112018055955833-pat00751
Figure 112018055955833-pat00752
Figure 112018055955833-pat00753
Figure 112018055955833-pat00754
Figure 112018055955833-pat00755
Figure 112018055955833-pat00756
7
Figure 112018055955833-pat00757
Figure 112018055955833-pat00758
Figure 112018055955833-pat00759
Figure 112018055955833-pat00760
Figure 112018055955833-pat00761
Figure 112018055955833-pat00762
Figure 112018055955833-pat00763
Figure 112018055955833-pat00764
Figure 112018055955833-pat00765
Figure 112018055955833-pat00766
Figure 112018055955833-pat00767
Figure 112018055955833-pat00768
예시 6.4: 이러한 예시는 차원 d=6의 경우를 고려한다.
Figure 112018055955833-pat00769
이도록,
Figure 112018055955833-pat00770
이고, U는
Figure 112018055955833-pat00771
에 의하여 생성된
Figure 112018055955833-pat00772
-부분 공간이며,
Figure 112018055955833-pat00773
는 예시 6.2와 같다. 그렇다면, 가우시안 소거법에 의하여, 조건(**)가
Figure 112018055955833-pat00774
에 대하여 성립함이 입증될 수 있다. 이는 단순한
Figure 112018055955833-pat00775
-선형 복구 스킴을 갖는
Figure 112018055955833-pat00776
RS 코드를 제공한다.7. 차수>2의 확대
이전의 섹션들에 주어진 증명들이 차수 2의
Figure 112018055955833-pat00777
확대들의 경우만을 고려하는 반면, 아래의 일부 구체적인 예시들은 차수 m>2의
Figure 112018055955833-pat00778
확대들로 작업이 또한 가능함을 나타낸다. 이러한 경우에, m으로 나누어질 수 있는 차수d의
Figure 112018055955833-pat00779
-부분 공간
Figure 112018055955833-pat00780
가 고려된다. 아래의 예시들에서 설명되는 바와 같이, 평가 집합U를 갖는 차원k의 RS 코드가,
Figure 112018055955833-pat00781
인 한, 단순한
Figure 112018055955833-pat00782
-선형 복구 스킴을 갖도록, 상술된 부분 공간U를 선택하는 것이 많은 경우들에서 가능하다. 이러한 경우에, 단일한 좌표가 소거된다면, 소거되지 않은 좌표들 각각이 이의 내용의 1/m만을 전송하여 소거된 좌표를 재건하여야 함이 상기된다.
예시 7.1: 체(field)
Figure 112018055955833-pat00783
Figure 112018055955833-pat00784
로 표현되고,
Figure 112018055955833-pat00785
는 X의 이미지이다. 그렇다면,
Figure 112018055955833-pat00786
가 원시 원소임이 입증될 수 있다.
Figure 112018055955833-pat00787
Figure 112018055955833-pat00788
Figure 112018055955833-pat00789
-공간(span)이다. 그렇다면,
Figure 112018055955833-pat00790
이다.
Figure 112018055955833-pat00791
인,
Figure 112018055955833-pat00792
의 부분체
Figure 112018055955833-pat00793
가 고려된다. 그렇다면, 가우시안 소거법에 의하여, 조건(**)이 U에서 정의되는 차원
Figure 112018055955833-pat00794
의 RS 코드에 대하여 성립함이 입증될 수 있다. 이는 단순한
Figure 112018055955833-pat00795
-선형 복구 스킴을 갖는
Figure 112018055955833-pat00796
RS 코드를 제공한다. 단일한 좌표가 소거된다면, 소거되지 않는 좌표 각각은, 소거된 좌표를 복구하기 위하여, 3비트들, 즉, 이것의 내용의 1/4만 전송하여야 한다.
예시 7.2: 이전의 예시에서 표현된 체(field)
Figure 112018055955833-pat00797
에 대하여,
Figure 112018055955833-pat00798
에 대한 부분체
Figure 112018055955833-pat00799
가 고려된다.
Figure 112018055955833-pat00800
Figure 112018055955833-pat00801
인,
Figure 112018055955833-pat00802
Figure 112018055955833-pat00803
-공간이다. 그렇다면, 가우시안 소거법에 의하여, 조건(**)이 U에서 정의되는 차원
Figure 112018055955833-pat00804
의 RS 코드에 대하여 성립함이 입증될 수 있다. 이는 단순한
Figure 112018055955833-pat00805
-선형 복구 스킴을 갖는
Figure 112018055955833-pat00806
RS 코드를 제공한다. 단일한 좌표가 소거된다면, 소거되지 않는 좌표 각각은, 소거된 좌표를 복구하기 위하여, 4비트들, 즉 이것의 내용의 1/3만 전송하여야 한다.
예시 7.3: 체(field)
Figure 112018055955833-pat00807
Figure 112018055955833-pat00808
로 표현되고, 는 X의 이미지이다. 그렇다면,
Figure 112018055955833-pat00809
는 원시 원소인 것으로 입증될 수 있다.
Figure 112018055955833-pat00810
Figure 112018055955833-pat00811
Figure 112018055955833-pat00812
-공간이다. 그렇다면,
Figure 112018055955833-pat00813
이다. 확대 차수 m=3인,
Figure 112018055955833-pat00814
의 부분체
Figure 112018055955833-pat00815
가 고려된다. 그렇다면, 가우시안 소거법에 의하여, 조건(**)이 U에서 정의되는 차원
Figure 112018055955833-pat00816
의 RS 코드에 대하여 성립함이 입증될 수 있다. 이는 단순한
Figure 112018055955833-pat00817
-선형 복구 스킴을 갖는
Figure 112018055955833-pat00818
RS 코드를 제공한다. 단일한 좌표가 소거된다면, 소거되지 않은 좌표 각각은, 소거된 좌표를 복구하기 위하여, 3비트들, 즉, 이것의 내용의 1/3만 전송하여야 한다.
8. RS 코드들에 대한 낮은-대역폭 복구 알고리즘
본 발명의 실시예에 따른 복구 알고리즘은 두개의 부분들, 즉 오프라인 전처리부 및 온라인부를 포함한다. 오프라인부에서, 온라인부에 의하여 사용되는 다양한 블록들이 준비된다. 온라인부에서, 데이터는 오프라인부에서 구성되는 RS 코드를 사용하여 인코딩되고, 소거들은 필요하다면 디코딩된다.
단일한 소거가 존재한다면, 오프라인부에서 구성된 블록들을 사용하여, 단일한 소거된 좌표가, 소거되지 않은 좌표들의 내용의 작은 일부만이 소거된 좌표를 재건하기 위하여 전송된다는 점에서, 낮은 복구 대역폭으로 정정될 수 있다. “작은 일부”는 아래에서 정의될 것이다.
두 개 이상의 소거들이 존재한다면, RS 코드들에 대한 표준 소거-디코딩 기술들이 사용되고, 복구 대역폭에 어떠한 이득도 존재하지 않는다. 그러나, 단일한 소거들이 다수의 소거들보다 실행시에 훨씬 더 일반적이므로, 단일한 소거의 경우에 대하여 낮은-대역폭 복구들을 지원하는 것에 관심을 갖는다.
다음으로, 아래에서 정의되는 체(field) E에 대하여,
Figure 112018055955833-pat00819
는 n-1개의 벡터이고,
Figure 112018055955833-pat00820
는 n-1개의 0들을 갖는 벡터이고,
Figure 112018055955833-pat00821
는 벡터 및 행렬 이항을 나타낸다. 게다가, 체(field) L, 부분 집합
Figure 112018055955833-pat00822
, 및 양수
Figure 112018055955833-pat00823
에 대하여, 평가 집합 I 및 차원 k를 갖는 RS 코드는, I의 점들 상에 k-1까지의 차수의 모든 다항식들
Figure 112018055955833-pat00824
을 평가함으로써, 획득되는
Figure 112018055955833-pat00825
에서
Figure 112018055955833-pat00826
길이의 벡터들의 집합으로 정의된다. 명시적으로,
Figure 112018055955833-pat00827
인 경우에
Figure 112018055955833-pat00828
이고, 상술된 RS 코드는
Figure 112018055955833-pat00829
로 정의된다. 게다가, 실시예에 따른 스트라이프는
Figure 112018055955833-pat00830
까지의 정보 심볼들 및
Figure 112018055955833-pat00831
까지의 패리티 심볼들을 가질 수 있으며, d, m은 위에서 정의되는 바와 같다. 예를 들어, d=4이고 m=2인 경우, 12개까지의 정보 심볼들 및 4개까지의 패리티 심볼들이 존재할 수 있다.
오프라인부
실시예에 따른 알고리즘의 오프라인부의 입력들은 아래과 같다.
유한체들
Figure 112018055955833-pat00832
을 정의하는 정수들
Figure 112018055955833-pat00833
. F-벡터 공간으로, E는
Figure 112018055955833-pat00834
과 동형이다.
Figure 112018055955833-pat00835
이도록, 원시 원소
Figure 112018055955833-pat00836
이고
Figure 112018055955833-pat00837
상에서 극소 다항식
Figure 112018055955833-pat00838
.
Figure 112018055955833-pat00839
이다. 이것들이
Figure 112018055955833-pat00840
의 두 개의 동형 복제들(isomorphic copies)이므로,
Figure 112018055955833-pat00841
이다. 게다가,
Figure 112018055955833-pat00842
Figure 112018055955833-pat00843
에서 다항식X의 이미지, 즉
Figure 112018055955833-pat00844
이다.
Figure 112018055955833-pat00845
이도록, 원시 원소
Figure 112018055955833-pat00846
이고,
Figure 112018055955833-pat00847
상에서 극소 다항식
Figure 112018055955833-pat00848
.
m으로 나누어질 수 있는
Figure 112018055955833-pat00849
상에서의 차원에 있어서, 양의 정수
Figure 112018055955833-pat00850
. 실시예들에 따라 구성된 코드들의 길이 n은
Figure 112018055955833-pat00851
이고, 그것들의 최대로 가능한 차원은
Figure 112018055955833-pat00852
, 즉, k까지의 정보 심볼들 및
Figure 112018055955833-pat00853
까지의 패리티 심볼들을 가질 수 있으며, d, m은 위에서 정의된 바와 같다. 예를 들어, d=4이고 m=2인 경우, 12개까지의 정보 심볼들 및 4개까지의 패리티 심볼들이 존재할 수 있다.
길이들
Figure 112018055955833-pat00854
은 단축함으로써 획득될 수 있다. 단순화를 위하여, 실시예들은
Figure 112018055955833-pat00855
의 경우만을 고려할 것이다.
실시예들에 따른 알고리즘의 오프라인부의 출력들은 아래와 같다.
Figure 112018055955833-pat00856
인, 즉,
Figure 112018055955833-pat00857
Figure 112018055955833-pat00858
-벡터 부분 공간
Figure 112018055955833-pat00859
, 이는 구성된 RS 코드를 위한 평가 집합일 것이다. 실시예에 따르면, V는 이것의 n개의 원소들을 명시함으로써 주어지며, 아래와 같이 편의상 열거될 것이다.
Figure 112018055955833-pat00860
이며,
Figure 112018055955833-pat00861
는 E의 원소들이다.
“투영들에 대한 벡터”
Figure 112018055955833-pat00862
, 이의 n-1개의 엔트리들이, n-1개의 소거되지 않은 좌표들에 의하여, 단일한 소거된 좌표의 재건 처리에 사용될 것이다.
“글루(gluing) 행렬”
Figure 112018055955833-pat00863
, 이는 n-1개의 소거되지 않은 좌표들로부터 개개의 전송들을 “글루”하기 위하여 사용될 것이다.
“임베딩 행렬”
Figure 112018055955833-pat00864
.
“역 임베딩 행렬”
Figure 112018055955833-pat00865
.
F-벡터 공간으로 E에 대하여, 특정 기저
Figure 112018055955833-pat00866
. 이러한 특정 기저는 단일한 소거된 좌표를 재건하는 최종 단계에서 사용될 것이다.
체계적 인코딩을 위하여 사용되는 행렬
Figure 112018055955833-pat00867
.
상술된 바와 같이 정의되는 입력들 및 출력들로, 실시예에 따른 알고리즘의 오프라인부는 도 1a 및 도 1b의 순서도의 단계들을 참조하여 후술된다. 순서도는 도 1a부터 시작한다.
101 단계:
Figure 112018055955833-pat00868
에 대하여,
Figure 112018055955833-pat00869
이고,
Figure 112018055955833-pat00870
이다. 또는, 다른 실시예들에 따르면,
Figure 112018055955833-pat00871
는 E에서
Figure 112018055955833-pat00872
-독립 원소들의 랜덤 집합일 수 있다. 이러한 랜덤 집합은, d개의 도시된 원소들이 실제로 선형 독립일 때까지, d개의 원소들을 연이어 도시함으로써, 획득될 수 있다.
102 단계:
Figure 112018055955833-pat00873
Figure 112018055955833-pat00874
에 의하여 생성된
Figure 112018055955833-pat00875
-부분 공간이다.
Figure 112018055955833-pat00876
에 대하여,
Figure 112018055955833-pat00877
이다. 실시예에 따르면,
Figure 112018055955833-pat00878
이도록,
Figure 112018055955833-pat00879
의 이항 전개가
Figure 112018055955833-pat00880
라면,
Figure 112018055955833-pat00881
이다.
104 단계:
Figure 112018055955833-pat00882
에 대하여,
Figure 112018055955833-pat00883
를 설정하고, v := (v 1 , ??, v n-1 )를 출력한다.
105 단계: 아래의 행렬들
Figure 112018055955833-pat00884
,
Figure 112018055955833-pat00885
, 및
Figure 112018055955833-pat00886
를 정의한다.
Figure 112018055955833-pat00887
(이는 G 및 G' 모두를 정의한다.)
Figure 112018055955833-pat00888
Figure 112018055955833-pat00889
106 단계:
Figure 112018055955833-pat00890
Figure 112018055955833-pat00891
를 계산하며, 패리티-체크 행렬 H'를 갖는 코드의 F-부분체 서브 코드
Figure 112018055955833-pat00892
이고, 패리티-체크 행렬 H''를 갖는 코드의 F-부분체 서브 코드
Figure 112018055955833-pat00893
이다. 실시예들에 따르면, 이러한 두개의 차원들이 예를 들어, 가우시안 소거법에 의하여 발견될 수 있다. 실시예에 따르면,
Figure 112018055955833-pat00894
는 아래와 같이 계산될 수 있다. 우선, E/F의 임의의 기저에 따른, 계수들의 길이m의 열 벡터에 의하여, H'의 엔트리 각각이 대체된다. 이는 F에서 엔트리들을 갖는
Figure 112018055955833-pat00895
행렬을 유발시킨다. 이러한 마지막 행렬로 가우시안 소거법을 수행한 후, a가 0이 아닌 행들의 개수이면,
Figure 112018055955833-pat00896
이다.
107 단계:
Figure 112018055955833-pat00897
인지 체크한다.
Figure 112018055955833-pat00898
이라면, 다음 단계를 계속한다. 그렇지 않으면, 본질적으로
Figure 112018055955833-pat00899
인 경우에,
Figure 112018055955833-pat00900
는, 임의의 이전의 그림으로부터 독립적으로 도시된, E에서
Figure 112018055955833-pat00901
-독립 원소들의 새로운 랜덤 집합이고, 102 단계로 돌아간다.
108 단계: 벡터 공간 V를 출력한다.
순서도는 도 1b에서 계속된다.
109 단계: C''의 기저를 완전하게 하여 C'의 기저가 되게 하는 m개의 선형 독립 벡터들
Figure 112018055955833-pat00902
을 발견한다. 실시예에 따르면, 이는 아래와 같이 수행될 수 있다.
(1)
Figure 112018055955833-pat00903
Figure 112018055955833-pat00904
형식의 C'에 대한 생성 행렬이며, 단위 행렬이 열들
Figure 112018055955833-pat00905
로 나타난다.
(2)
Figure 112018055955833-pat00906
는 C''에 대한 임의의 생성 행렬이고,
Figure 112018055955833-pat00907
는 인덱스들
Figure 112018055955833-pat00908
을 갖는
Figure 112018055955833-pat00909
의 열들을 포함하는 행렬이며,
Figure 112018055955833-pat00910
의 행들은 더 큰 코드 C'에 대한 기저
Figure 112018055955833-pat00911
에 관한
Figure 112018055955833-pat00912
의 행들의 계수들이다.
(3)
Figure 112018055955833-pat00913
로 가우시안 소거법을 수행한 후에,
Figure 112018055955833-pat00914
는 결과 행렬로 나타나는 단위 행렬에 대한 열 인덱스들이다.
(4)
Figure 112018055955833-pat00915
Figure 112018055955833-pat00916
에 없는 인덱스들을 갖는
Figure 112018055955833-pat00917
의 행들이다.
110 단계:
Figure 112018055955833-pat00918
는 행들
Figure 112018055955833-pat00919
을 갖는 행렬이다.
이러한 단계에서, 실시예에 따르면, 벡터
Figure 112018055955833-pat00920
의 m개의 원소들은 F상에서의 선형 독립이고, 이로 인하여 F상에서 E에 대한 기저를 구성한다. 실시예에 따른 알고리즘의 오프라인부는 아래와 같이 계속된다.
111 단계:
Figure 112018055955833-pat00921
는 트레이스 맵
Figure 112018055955833-pat00922
에 관한
Figure 112018055955833-pat00923
의 쌍대 기저이고,
Figure 112018055955833-pat00924
가 출력된다. 상술된 정의 2.1에서 정의되는 트레이스 맵
Figure 112018055955833-pat00925
Figure 112018055955833-pat00926
로 동등하게 정의된다. E/F의 기저
Figure 112018055955833-pat00927
에 대하여, 쌍대 기저는 모든 i, j에 대하여,
Figure 112018055955833-pat00928
를 만족하는 집합
Figure 112018055955833-pat00929
이다.
112 단계:
Figure 112018055955833-pat00930
는 j번째 열,
Figure 112018055955833-pat00931
Figure 112018055955833-pat00932
상에서의 E의 기저
Figure 112018055955833-pat00933
에 따른
Figure 112018055955833-pat00934
의 길이 mr인 이진 표현인 행렬이다. M 1 가 출력된다.
113 단계:
Figure 112018055955833-pat00935
단위 행렬이
Figure 112018055955833-pat00936
로 나타나는 행렬
Figure 112018055955833-pat00937
을 발견한다. 실시예에 따르면, 이러한 행렬은 예를 들어, 가우시안 소거법에 의하여 발견될 수 있다.
Figure 112018055955833-pat00938
Figure 112018055955833-pat00939
에서
Figure 112018055955833-pat00940
단위 행렬을 지원하는 인덱스들을 갖는 T의 r개의 행들이다. M이 출력된다.
114 단계: 110 단계로부터 행렬 A의 엔트리 각각이
Figure 112018055955833-pat00941
상에서의 E의 기저
Figure 112018055955833-pat00942
에 따른
Figure 112018055955833-pat00943
에서의 열 벡터이고,
Figure 112018055955833-pat00944
는 A의 엔트리 aij 각각을
Figure 112018055955833-pat00945
로 대체함으로써 획득되는 행렬이며,
Figure 112018055955833-pat00946
Figure 112018055955833-pat00947
에서의 이러한 마지막 열 벡터는
Figure 112018055955833-pat00948
상에서의 F'의 기저
Figure 112018055955833-pat00949
에 따른 F'의 원소의 표현이다. A'가 출력된다.
115 단계: 105 단계의 행렬
Figure 112018055955833-pat00950
로부터
Figure 112018055955833-pat00951
) 형식의 행렬이 획득되며,
Figure 112018055955833-pat00952
이다. 실시예에 따르면, 이러한 행렬은 예를 들어, 가우시안 소거법에 의하여 획득될 수 있다.
Figure 112018055955833-pat00953
이 출력된다.
온라인부
실시예들에 따르면, 온라인 동작 동안, 입력되는 메시지들은 인코딩되고 개개의 신뢰할 수 없는 스토리지 노드들에 저장된다. 하나 이상의 노드들이 페일되고 이의 데이터가 소거됨이 발견되는 경우, 소거-정정 알고리즘들은 소거된 데이터를 복원하는데 사용된다. 단일한 노드의 페일의 일반적인 경우에, 본 발명의 실시예들에 따른 알고리즘들이 사용될 수 있다. 그렇지 않으면, 하나보다 많은 노드가 페일된다면, RS 코드들에 대한 표준 소거-정정 방법들이 사용될 수 있다.
실시예들에 따르면, 체계적 인코딩 알고리즘이 나타나는데, 이것이 실행시에 가장 많이 사용되기 때문이다. 그러나, 다른 실시예들에 따른 단일한-소거-디코딩 알고리즘들이 체계적 인코딩에 제한되지 않고, 생성 행렬
Figure 112018055955833-pat00954
을 갖는 코드
Figure 112018055955833-pat00955
에 대한 임의의 인코딩이 사용될 수 있다. 예를 들어, 도 1의 105 단계로부터 생성 행렬 G가 사용될 수 있다.
i 체계적 인코딩
입력들: 로우 데이터 벡터
Figure 112018055955833-pat00956
.
출력: x에 상응하는 코드워드
Figure 112018055955833-pat00957
.
알고리즘: y = (y 0 , ??, y n-1 ) := ( x | x G 1 )가 출력되며, G1이 실시예에 따른 오프라인 단계에서 획득된다.
ii. 단일한-소거 디코딩
실시예들에 따르면, y의 엔트리들
Figure 112018055955833-pat00958
이,
Figure 112018055955833-pat00959
로 레이블링된, n개의 다른 스토리지 노드들에 저장된다. 명백하게 하나의 노드
Figure 112018055955833-pat00960
가 페일된다면, 실시예에 따른 아래의 알고리즘은
Figure 112018055955833-pat00961
를 복원하기 위하여 사용될 수 있다. 후술되는 바와 같이, 실시예에 따른 알고리즘은 컨트롤러 U 및 n-1개의 살아남은 각각의 노드들 모두에 의하여 수행될 수 있다.
실시예에 따른 단일한-소거 디코딩 알고리즘의 온라인부의 입력들은 페일된 노드 인덱스
Figure 112018055955833-pat00962
이다. U는 페일된 노드 인덱스
Figure 112018055955833-pat00963
를 예를 들어, 주기적으로 노드들을 스캐닝하고 그들의 상태를 체크함으로써 학습할 수 있다.
실시예에 따른 단일한-소거 디코딩 알고리즘의 온라인부의 출력들은 U에 의하여 출력된
Figure 112018055955833-pat00964
에 대한 복원된 값이다. 이러한 값은 이후 노드
Figure 112018055955833-pat00965
에 다시 저장될 수 있다.
스토리지 노드 각각은 길이 n-1의 다른 벡터를 저장할 수 있고, 이는 노드 i에 대하여 w(i)로 불리어진다. w(i)의 j번째 엔트리는, i를 제외한 모든 노드들의 기정의된 열거에서,
Figure 112018055955833-pat00966
번째 페일된 노드를 재건하는 과정에서 노드i에 의하여 사용된다. 이러한 셋업에서, 컨트롤러는 페일된 노드의 인덱스
Figure 112018055955833-pat00967
를 살아남은 노드 i에 전송할 수 있고, 이후 노드 i는
Figure 112018055955833-pat00968
에 대하여, w(i)에 이것의 내용을 곱한다. 그리고, 이러한 결과의 트레이스를 남기고, 결과를 간이한 표현으로 변환하고, 간이한 표현을 컨트롤러에 전송한다. 노드 i에 의하여 사용되는 벡터w(i)
Figure 112018055955833-pat00969
Figure 112018055955833-pat00970
는 n-1개의 원소들을 갖고, 벡터v의 모든 다른 순열들이며, 이의 엔트리들은 평가 집합에서 0이 아닌 원소들의 역원들(inverses)이다. 더욱이, w(i)는 다른 노드들 i들과 전형적으로 다르다.
상술된 바와 같이 정의되는 입력들 및 출력들로, 실시예에 따른 알고리즘의 온라인부는 도 2의 순서도의 단계들을 참조하여 후술된다.
20 단계: U에 의하여, 페일된 스토리지 노드를 식별한다. 페일된 노드는 식별자
Figure 112018055955833-pat00971
를 갖는다.
21 단계: U는 살아남은 노드의 식별자들의 순열을 모든 살아남은 노드들에 전송한다. 실시예에 따르면, U는 아래와 같이, 작업을 인덱스 0을 갖는 패일된 노드를 정정하는 동등한 작업으로 감소시킨다. 모든
Figure 112018055955833-pat00972
에 대하여, U는
Figure 112018055955833-pat00973
이도록,
Figure 112018055955833-pat00974
에서의 고유 인덱스로 j'를 계산하고, j'를 노드 i에 전송한다. 또는, U는 소거된 노드의 인덱스
Figure 112018055955833-pat00975
를 살아남은 노드 i 각각에 전송하고, 노드 i는 상술한 바와 같이, j'자체를 계산한다.
22 단계: 살아남은 노드 각각은 아래와 같이, 재건을 위하여 요구되는 이것의 내용의 일부를 추출한다. 모든
Figure 112018055955833-pat00976
에 대하여, 노드 i는
Figure 112018055955833-pat00977
를 계산한다.
Figure 112018055955833-pat00978
Figure 112018055955833-pat00979
내부의
Figure 112018055955833-pat00980
의 동형 복제내에 있고, 그러므로 mr 비트들 대신에, r 비트들로 표현될 수 있다.
23 단계: 살아남은 노드 i 각각은
Figure 112018055955833-pat00981
를 r 비트 표현
Figure 112018055955833-pat00982
로 변환함으로써, 이의 내용의 사이즈를 감소시킨다. 실시예들에 따르면, 이를 수행하기 위한 여러 가능한 방법들이 존재한다. 예를 들어,
1.
Figure 112018055955833-pat00983
의 원소들이
Figure 112018055955833-pat00984
상에서의
Figure 112018055955833-pat00985
의 기저
Figure 112018055955833-pat00986
에 따른
Figure 112018055955833-pat00987
에서의 길이 m인 벡터들로 표현된다면,
Figure 112018055955833-pat00988
는 임의의
Figure 112018055955833-pat00989
에 대하여 형식
Figure 112018055955833-pat00990
을 갖고, 노드 i는
Figure 112018055955833-pat00991
를 정의할 수 있다.
2.
Figure 112018055955833-pat00992
의 원소들이
Figure 112018055955833-pat00993
상에서의
Figure 112018055955833-pat00994
의 기저
Figure 112018055955833-pat00995
에 따른
Figure 112018055955833-pat00996
에서의 비트들의 길이mr인 벡터들로 표현된다면,
Figure 112018055955833-pat00997
Figure 112018055955833-pat00998
에서 이진 열 벡터로 간주될 수 있다. 이러한 경우에, 실시예에 따른 오프라인 전처리 단계에서 계산되는 행렬
Figure 112018055955833-pat00999
Figure 112018055955833-pat01000
를 획득하기 위하여 사용될 수 있다. 실시예에 따르면, 이러한 선택은 아래에서 가정될 것이나, 실시예들은 이에 제한되지 않는다.
Figure 112018055955833-pat01001
인 살아남은 노드 i 각각은 이후, 이의 추출된 부분
Figure 112018055955833-pat01002
을 U로 되돌린다. 이로 인하여, 살아남은 노드 각각은 총 저장된 mr 비트들 대신에, r비트들만 전송한다.
24 단계: U는 도 3의 순서도를 참조하여 다음과 같이 수신된 감소된-사이즈의 데이터로부터 소거된 심볼
Figure 112018055955833-pat01003
을 재건한다.
1. 모든
Figure 112018055955833-pat01004
에 대하여, U는 j'=a인 경우에 유일한
Figure 112018055955833-pat01005
에 대하여
Figure 112018055955833-pat01006
를 정의하고,
Figure 112018055955833-pat01007
를 정의한다. J'는 상술된 21 단계(31 단계)에서 정의된 것으로 상기된다.
2. U는 실시예에 따른 오프라인 단계에서 저장된 행렬
Figure 112018055955833-pat01008
을 사용하여
Figure 112018055955833-pat01009
를 계산한다. (32 단계)
3. U는 E에서
Figure 112018055955833-pat01010
의 원소들을 임베딩하여 벡터
Figure 112018055955833-pat01011
를 획득한다. 실시예에 따르면, 이를 수행하는 하나의 가능한 방법은 아래와 같은 실시예에 따른 오프라인 단계에서 계산되는 행렬
Figure 112018055955833-pat01012
을 사용하는 것이다. t의 좌표
Figure 112018055955833-pat01013
각각이
Figure 112018055955833-pat01014
상에서의 F'의 기저
Figure 112018055955833-pat01015
에 따른 길이 r인 이진 열 벡터로 표현된다면, U는
Figure 112018055955833-pat01016
에 대한
Figure 112018055955833-pat01017
를 계산할 수 있고,
Figure 112018055955833-pat01018
를 출력할 수 있다. 그렇다면, w의 엔트리 각각은 기저
Figure 112018055955833-pat01019
에 따른, E의 원소의 벡터 표현이다. (33 단계)
4. 마지막으로, U는
Figure 112018055955833-pat01020
(E의 곱셈 및 덧셈)을 계산함으로써, 소거된 심볼을 복원할 수 있으며,
Figure 112018055955833-pat01021
가 실시예에 따른 오프라인 단계에서 저장되었음이 상기된다. (34 단계)
25 단계: U는 재건된 데이터 심볼 y i .을 출력한다.
페일된 노드가 일시적 페일이라면, 노드
Figure 112018055955833-pat01022
에 값을 다시 저장하는 것만이 가능하다. 실시예들에 따르면, 노드가 손실된 것으로 간주된다면, 재건된 데이터는 다른 노드에 저장될 수 있다. 다른 실시예들에 따르면, 재건된 데이터는 절대 다시 저장되지 않으나, 오히려 다시 계산(소거 디코딩)되고, 사용자가 페일된 노드에 저장된 데이터에 접근하기 원할 때마다 사용자에게 전송된다. 이러한 경우에, 사용자가 데이터에 접근하기 원할 때마다, 요구된 손실된 블록보다 훨씬 많은 데이터가 재건을 위하여 페일되지 않은 노드들로부터 읽혀져야 한다.
또는, 본 발명의 다른 실시예들에 따르면, 22 단계 및 23 단계의 전체 동작은, 원소들을 표현하기 위하여 사용되는
Figure 112018055955833-pat01023
상에서의
Figure 112018055955833-pat01024
의 기저에 의존하여, 미리 계산될 수 있는
Figure 112018055955833-pat01025
이진 행렬
Figure 112018055955833-pat01026
로 표현될 수 있다. 상세하게, “전체” 행렬들
Figure 112018055955833-pat01027
Figure 112018055955833-pat01028
이 미리 계산될 수 있고, 현재 22 단계 및 23 단계 대신에, 노드 j가, 상술된 기저에 따른 길이 mr인 이진 벡터로 간주되는 이것의 내용을, 요구된 길이 r인 이진 벡터
Figure 112018055955833-pat01029
를 획득하기 위한 이진 행렬
Figure 112018055955833-pat01030
과 곱하는, 단일한 결합된 단계가 사용된다.
본 발명의 다른 실시예들에서, 벡터 v를 저장하고 상술된 21 단계에 의하여 정의되는 j'에 대한 이것의 j'번째 엔트리 v j ' 를 사용하는 대신에, 노드 i가, i에 의존하여, 다른 벡터 w(i)를 저장하고,
Figure 112018055955833-pat01031
인 경우에 이것의
Figure 112018055955833-pat01032
번째 엔트리를 사용하는 다른 방법을 사용하는 것이 가능하다. 대체 실시예에서, 모든 노드는 벡터 v를 저장한다. 노드
Figure 112018055955833-pat01033
가 페일되는 경우, 컨트롤러는 모든
Figure 112018055955833-pat01034
인, 살아남은 노드 i에 “노드
Figure 112018055955833-pat01035
가 페일되었고, 스스로 j'를 계산하라”라고 알린다. 그러면, 살아남은 노드 각각은, 이것의 자체 인덱스i 및 페일된 노드 인덱스
Figure 112018055955833-pat01036
에 의존하여, 상술된 공식을 사용함으로써, j'를 계산하고, 이전과 같이
Figure 112018055955833-pat01037
를 사용한다. 다른 대체 실시예에서, 노드 i가 j'를 계산하는 대신에, v의 오른쪽 순열이 미리 계산되고 저장된다. 이것의 제1 엔트리는 노드 0이 페일되는 경우에 사용되어야 하는 엔트리이고, … 이것의 (i-1)번째 엔트리는 노드 i-1이 페일되는 경우에 사용되어야 하는 엔트리이고, 이것의 (i+1)번째 엔트리는 노드 i+1이 페일되는 경우에 사용되어야 하는 엔트리이다. 명시적으로, 모든
Figure 112018055955833-pat01038
에 대하여,
Figure 112018055955833-pat01039
가 정의되며,
Figure 112018055955833-pat01040
는 위에서 정의되었고, j'는 상술된 바와 같다.
Figure 112018055955833-pat01041
 = 0, i-1, i+ 1,... n인 경우에, 그것이 해야 하는 것처럼,
Figure 112018055955833-pat01042
  = 0, ... n -1가 성립한다. n = 2 d 개의 다른 벡터들 w(i)가 각각의 노드당 하나씩 존재한다. 이러한 벡터들은 오프라인 단계에서 미리 계산되고, n개의 노드들 각각에 저장된다. 즉, w(i)는 모든 i에 대하여 노드 i에 저장된다. 일부 경우들에서, 이는 유리한 방법일 수 있는데, 이는 컨트롤러 및 살아남은 노드들 모두에 의한 온라인의 순열 계산을 피할 수 있기 때문이다.
그러나, 실시예에 따른 알고리즘이 컨트롤러 U에 의하여 n-1개의 생존 노드들에 수행되는 상술된 시나리오는 예시적이고 제한되지 않고, 이러한 상황은 실제 실행시와 다를 수 있음이 이해될 것이다. 예를 들어, 하나의 노드는 인코딩 및 재건 과정들을 통합하나, 그것들을 실제로 수행하지 않거나, 인코딩/재건의 일부만을 수행하는 것이 가능하다.
예를 들어, Apache Software Foundation에 의하여 개발된 분산된 파일 시스템인 HDFS(Hadoop File System)에서, 아래와 같이 엉성하게 작업하는 HDFS RAID(RAID는 Redundant Array of Independent Disks를 나타내고, 전형적으로 소거 코딩과 관련된다.)로 불리우는 모듈이 존재한다. HDFS RAID에서, 소거 코딩과 관련된 인코딩과 디코딩을 통합하는 RaidNode로 불리우는 노드가 존재하나 그것들을 실제로 수행할 필요가 없다.
인코딩을 위하여, RaidNode는 소거 인코딩되어야 하는 모든 경로들을 주기적으로 스캔하고, 최근에 변경되지 않은 충분히 큰 파일들을 선택한다. 일단 RaidNode가 소스 파일을 선택하면, 모든 이것의 스트라이프들에 걸쳐 반복하고, 스트라이프 각각에 대한 적절한 수의 패리티 블록들을 생성한다. 패리티 블록들의 실제의 계산은 RaidNode에서 로컬로 수행되거나(“LocalRaidNode”), 다른 머신들에 분산될 수 있다(“DistributedRaidNode”. LocalRaidNode 구성은 본 발명에서 설명되는 것과 유사하다.
디코딩의 하나의 경우를 위하여, RaidNode에서 운영하는 프로그램, BlockFixer는 모든 관련 경로들의 상태를 주기적으로 검사한다. 손실 또는 손상된 블록들을 갖는 파일이 발생되는 경우, 이러한 블록들은 살아남은 노드들로부터의 데이터의 충분한 양의 (가로) 읽기 후에 디코딩된다. 다시 한번, 손실된 블록들의 실제 계산이 RaidNode에서 로컬로 수행되거나(“LocalRaidNode”), 하나 이상의 다른 머신들에 분산될 수 있다(“DistributedRaidNode”. 본 발명의 실시예들은 분산된 경우에 통합될 수 있다.
상술된 디코딩은 주기적인 스캔의 결과이다. 또한, 사용자 (“클라이언트”) 스스로 파일을 읽으려 하는 경우 소거들이 있음을 발견하는 경우가 있음이 상기된다. HDFS RAID에서, 클라이언트는 DRFS(Distributed RAID File System) 클라이언트 소프트웨어를 실행하며, 이는 로컬로 이러한 소거된 블록들을 재건할 수 있고, “U”와 같이 동작한다. 이러한 경우에, 클라이언트는 재건된 블록들을 다시 저장하지 않으며, 이러한 재건된 블록들은 상위 계층들에 전송되고, 버려진다. 이러한 경우에, 클라이언트는 파일이 읽혀질 때마다 손실된 블록들을 다시 계산하여야 한다.
9. 시스템 구현들
본 발명의 실시예들은 하드웨어, 소프트웨어, 펌웨어, 전용 프로세스들, 또는 이의 조합의 다양한 형식들로 구현될 수 있음이 이해될 것이다. 일 실시예에서, 본 발명은 ASIC(application-specific integrated circuit) 또는 FPGA(field programmable gate array)로 하드웨어로 구현될 수 있다. 다른 실시예에서, 본 발명은 컴퓨터 판독 가능 프로그램 스토리지 장치에서 구현되는 유형의 어플리케이션 프로그램으로 소프트웨어로 구현될 수 있다. 어플리케이션 프로그램은 임의의 적절한 아키텍처를 포함하는 머신에 업로드될 수 있고, 이에 의해 실행될 수 있다.
도 4는 본 발명의 실시예에 따른 손상된 RS 코드들을 복구하기 위한 시스템에 대한 블록도이다. 현재 도 4를 참조하면, 본 발명을 구현하기 위한 컴퓨터 시스템(41)은, 그 중에서도 특히, 중앙 처리 장치(central processing unit, CPU) 또는 컨트롤러(42), 메모리(43), 및 입출력(I/O) 인터페이스(44)를 포함한다. 컴퓨터 시스템(41)은 일반적으로 입출력 인터페이스(44)를 통하여 디스플레이(45) 및 마우스 및 키보드와 같은 다양한 입력 장치들(46)과 결합된다. 지원 회로들은 캐시, 파워 서플라이들, 클럭 회로들, 및 통신 버스와 같은 회로들을 포함할 수 있다. 메모리(43)는 RAM(random access memory), ROM(read only memory), 디스크 드라이브, 테이프 드라이브 등, 또는 이의 조합들을 포함할 수 있다. 본 발명은 메모리(43)에 저장되는 루틴(47)으로 구현될 수 있고, CPU 또는 컨트롤러(42)에 의하여 실행되어 신호 소스(48)로부터의 신호를 처리할 수 있다. 이와 같이, 컴퓨터 시스템(41)은 본 발명의 루틴(47)을 실행할 때 전용 컴퓨터 시스템이 되는, 범용 컴퓨터 시스템이다. 또는, 상술된 바와 같이, 본 발명의 실시예들은 CPU 또는 컨트롤러(42)와 신호 통신하여 신호 소스(48)로부터 신호를 처리하는, ASIC 또는 FPGA(47)로 구현될 수 있다.
컴퓨터 시스템(41)은 또한 운영 체제 및 마이크로 명령어 코드를 포함한다. 여기에서 설명되는 다양한 프로세스들 및 기능들은 운영체제를 통하여 실행되는, 마이크로 명령어 코드의 일부이거나 어플리케이션 프로그램의 일부 (또는 이의 조합)일 수 있다. 게다가, 다양한 다른 주변 장치들이 추가적인 데이터 스토리지 장치 및 프린트 장치와 같은 컴퓨터 플랫폼에 연결될 수 있다.
첨부된 도면들에 도시된 시스템 구성 요소들 및 방법 단계들의 일부가 소프트웨어로 구현될 수 있으므로, 시스템들의 구성 요소들 (또는 과정의 단계들) 사이의 실제 연결관계들은 본 발명이 프로그램되는 방식에 의존하여 달라질 수 있음이 이해될 것이다. 여기에서 제공되는 본 발명의 교시들이 주어지면, 당업자는 이러한 것들 및 이와 유사한 본 발명의 구현들 또는 구성들을 고려할 수 있을 것이다.
본 발명이 예시적인 실시예들을 참조하여 상세하게 설명되나, 당업자들은 다양한 변경들 및 대체들이 첨부된 청구항들에서 진술되는 바와 같이 발명의 사상 및 범위로부터 벗어나지 않게 만들어질 수 있음을 인식할 것이다.
부록
A. 명제 5.10의 증명을 위한 계산
Figure 112018055955833-pat01043
에 대하여,
Figure 112018055955833-pat01044
이고
Figure 112018055955833-pat01045
이면, 수학식 28과 같이 나타난다.
Figure 112018055955833-pat01046
우선 d는 짝수인 것으로 추정한다. 그렇다면,
Figure 112018055955833-pat01047
의 이항 전개는 표 2와 같이, 왼쪽의 최상위 비트를 갖는다.
d-1 d-2 d/2+1 d/2 d/2-1 d/2-2 1 0
1 1 1 0 1 1 1 0
특히,
Figure 112018055955833-pat01048
이다.정수들의 보통의 순서는 이항 전개들의 사전식 순서에 대응된다. 이로 인하여, 전개는
Figure 112018055955833-pat01049
인 숫자
Figure 112018055955833-pat01050
를 표현하며, 이는 이것의 이항 전개에 단일한 0이
Figure 112018055955833-pat01051
의 전개에서 위치 d/2에서의 0의 왼쪽에 있는 경우에 한하여, 숫자
Figure 112018055955833-pat01052
에 대하여 가중치
Figure 112018055955833-pat01053
인 유일한 가능성이다. 이로 인하여,
Figure 112018055955833-pat01054
이기 위한, d/2-1개의 이러한 숫자들 k가 존재한다.
유사하게,
Figure 112018055955833-pat01055
의 이항 전개와 다른 왼쪽부터 제1 좌표에서 이항 전개가 1을 갖는 경우에 한하여, 숫자k는
Figure 112018055955833-pat01056
보다 엄격하게 크다.
Figure 112018055955833-pat01057
인 숫자들 k만이 관심 있으므로,
Figure 112018055955833-pat01058
가 배제되고, 나머지 숫자들은 정확히 표 3의 이항 전개를 가진 숫자들 k이다.
d-1 d-2 d/2+1 d/2 d/2-1 d/2-2 0
1 1 1 1 ? ? ?
물음표들을 갖는 부분-벡터(sub-vector)는 길이 d/2이고, 가중치≤d-2-d/2=d/2-2인 임의의 이진 벡터일 수 있다. 이러한 벡터들의 총 개수는
Figure 112018055955833-pat01059
이다. 현재 A 및 B 모두에 대한 명시적인 표현들이 있고, 수학식 28이 등식으로 성립하는 것을 입증하는 것은 간단하다.d가 홀수인 경우는 유사하며, 현재
Figure 112018055955833-pat01060
의 이항 전개는 표 4와 같다.
d-1 d-2 (d+1)/2+1 (d+1)/2 (d-1)/2 (d-1)/2-1 1 0
1 1 1 0 1 1 1 0
숫자들 A 및 B는 상술된 바와 같이 결정된다.
Figure 112018055955833-pat01061
의 이항 전개의 인덱스(d+1)/2에서 0의 왼쪽으로 단일한 0을 배치하는
Figure 112018055955833-pat01062
방식들이 존재하고, 가중치
Figure 112018055955833-pat01063
인 길이 (d+1)/2의
Figure 112018055955833-pat01064
이진 벡터들이 존재한다. 따라서, 현재 수학식 28의 좌변은
Figure 112018055955833-pat01065
와 같고, 우변은
Figure 112018055955833-pat01066
와 같다.B. 치환에 대한 보조 정리
보조 정리 B.1: X로부터 구별되는 자유 변수들의 벡터
Figure 112018055955833-pat01067
에 대하여,
Figure 112018055955833-pat01068
이다. K는
Figure 112018055955833-pat01069
의 확대체이고,
Figure 112018055955833-pat01070
이고,
Figure 112018055955833-pat01071
로 쓴다. 그렇다면, 아래 도식의 아래쪽의 파선 화살표에 대한 맵(사상)은 명확하게 정의된 환형 준 동형 사상(homomorphism of rings)이고, 도식이 가환성(commutative)을 갖게 하는 유일한 준 동형 사상이다.
Figure 112018055955833-pat01072
증명: A 및 B는 가환성을 갖는 단위 환들이고,
Figure 112018055955833-pat01073
Figure 112018055955833-pat01074
는 이상적이다.
Figure 112018055955833-pat01075
Figure 112018055955833-pat01076
인 준 동형 사상이다. 아래 도표를 고려한다.
Figure 112018055955833-pat01077
Figure 112018055955833-pat01078
이므로, 전사(surjective)인 좌측 수직 화살표의 커널은 경로
Figure 112018055955833-pat01079
의 커널에 포함된다. 이로 인하여, 정사각형이 가환성을 갖게 하는 유일한 파선의 준 동형 사상이 존재하고, 준 동형 사상은
Figure 112018055955833-pat01080
로 주어진다. 현재 보조 정리의 주장은 특수한 경우에 따른다.
비고 B.2: 보조 정리 B.1은 아래의 방식으로 주된 텍스트에 내제적으로 사용된다. 경로
Figure 112018055955833-pat01081
아래의 이의 이미지와 동일한, 오른쪽 수직 화살표 아래의
Figure 112018055955833-pat01082
의 이미지를 직접적으로 계산하는 대신에, 왼쪽 수직 화살표 아래의 이미지가 우선 계산된다. 이후, T는 a로 치환되며, 이는 버튼 수평 화살표의 동작이다.
비고 B.3: 정리 5.11의 증명에서, 두 가지-단계의 치환의 사용이 존재한다. 우선,
Figure 112018055955833-pat01083
Figure 112018055955833-pat01084
에 대한 다항식들
Figure 112018055955833-pat01085
로 치환되고, 이후,
Figure 112018055955833-pat01086
Figure 112018055955833-pat01087
로 치환된다. 이는 아래의 도식에 의하여 정당화되며, 각각의 직사각형은 보조 정리 B.1의 증명에서와 명백하게 동일한 논리로 가환성을 갖는다. 도식에서,
Figure 112018055955833-pat01088
이고,
Figure 112018055955833-pat01089
이고,
Figure 112018055955833-pat01090
이다. 또한, K는
Figure 112018055955833-pat01091
의 임의의 확대체이다(예를 들어,
Figure 112018055955833-pat01092
).
Figure 112018055955833-pat01093
41: 컴퓨터 시스템 42: CPU 또는 컨트롤러
43: 메모리

Claims (10)

  1. d<mr에 대하여, 사이즈 n=2d인 부분 공간이고 m으로 나누어질 수 있는 평가 집합 V={u0 = 0, u1, …, un-1}를 갖는 유한체 F2 mr상에서의 RS(Reed-Solomon) 코드로 단일한 소거를 복구하는 방법에 있어서,
    복수의 n개의 스토리지 노드들과 컨트롤러에 대한 시스템에서, 정규화된 복구 대역폭
    Figure 112021063980610-pat01138
    (n-1)/m이고 정보 심볼들의 개수 k<=2d-2d-d/m이고, 각각의 스토리지 노드 i의 내용 ci 는 상기 유한체 F2 mr의 원소이고, 노드 각각은 벡터 v를 저장하되, 상기 벡터 v의 엔트리들은 상기 평가 집합 V의 0이 아닌 원소들의 역원들이고,
    상기 방법은,
    상기 컨트롤러에 의해, 페일된 스토리지 노드를 식별하는 단계;
    상기 컨트롤러에 의해, 상기 페일된 스토리지 노드의 인덱스 j0를 살아남은 스토리지 노드 각각에 전송하는 단계;
    Figure 112021063980610-pat01139
    이고, 모든
    Figure 112021063980610-pat01140
    에 대하여,
    Figure 112021063980610-pat01141
    Figure 112021063980610-pat01142
    는 상기 살아남은 스토리지 노드들에 대응되는 벡터 v의 원소들의 순열이고, j’는
    Figure 112021063980610-pat01143
    인,
    Figure 112021063980610-pat01144
    의 고유 인덱스인 경우에, 살아남은 스토리지 노드 i 각각에 의해, 상기 노드 i 각각의 내용 ci와, 벡터 w(i)의 j번째 성분을 곱하는 단계;
    상기 곱셈의 결과 outi의 트레이스 맵을 결정하고, 상기 살아남은 스토리지 노드 각각에 의해, m×r 비트 표현에 의한 상기 결과를 r비트들의 감소된 표현
    Figure 112021063980610-pat01145
    로 변환하는 단계;
    상기 컨트롤러에 의해, 상기 살아남은 스토리지 노드의 내용 각각의 상기 감소된 표현으로부터, 상기 페일된 스토리지 노드의 내용을 재건하는 단계; 및
    상기 페일된 스토리지 노드의 상기 재건된 내용을 출력하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 j'는 상기 컨트롤러에 의하여 계산되고, 상기 살아남은 스토리지 노드들로 전송되는 방법.
  3. 제 1 항에 있어서,
    상기 살아남은 스토리지 노드 각각의 인덱스 및 상기 페일된 스토리지 노드의 인덱스에 기초하여 상기 살아남은 스토리지 노드 각각은 j'를 계산하는 방법.
  4. 제1 항에 있어서,
    상기 j'는 스토리지 노드 각각에 대하여 미리 계산되는 방법.
  5. 제1 항에 있어서,
    상기 살아남은 스토리지 노드 i 각각이, 상기 노드 i 각각의 내용 ci와, 벡터 w(i)의 j번째 성분을 곱하는 단계는,
    Figure 112021063980610-pat01146
    인 상기 노드 i 각각에 의해,
    Figure 112021063980610-pat01147
    를 계산하는 단계를 포함하되,
    상기 j0는 상기 페일된 노드의 식별자인 방법.
  6. 제 5 항에 있어서,
    상기 m×r 비트 표현에 의한 상기 결과를 r비트들의 감소된 표현으로 변환하는 단계는,
    체 F2 mr의 원소들이, F2 r상에서의 F2 mr의 기저
    Figure 112021063980610-pat01148
    에 따른 벡터 공간 (F2 r)m에서, 길이 m인 벡터들로 표현되는 경우,
    Figure 112021063980610-pat01149
    인 상기 노드 i 각각에 의해, 상기 outi의 제1 좌표를 상기 컨트롤러에 전송하는 단계를 포함하는 방법.
  7. 제 5 항에 있어서,
    상기 m×r 비트 표현에 의한 상기 결과를 r비트들의 감소된 표현으로 변환하는 단계는,
    체 F2 mr의 원소들이, F2상에서의 F2 mr의 기저
    Figure 112021063980610-pat01150
    에 따른 벡터 공간 F2 mr에서, 길이 mr인 비트들의 벡터들로 표현되고, 상기 α는 상기 체 F2 mr의 원시 원소인 경우,
    Figure 112021063980610-pat01151
    인 상기 노드 i 각각에 의해, 곱 M≠outi를 상기 컨트롤러에 전송하는 단계를 포함하되,
    행렬
    Figure 112021063980610-pat01152
    인 방법.
  8. 제 7 항에 있어서,
    상기 행렬
    Figure 112021063980610-pat01153
    은 TM1에서 r×r 단위 행렬을 지원하는 인덱스들을 갖는
    Figure 112021063980610-pat01154
    행렬의 r개의 행들이고,
    Figure 112021063980610-pat01155
    는,
    Figure 112021063980610-pat01156
    인 경우에 j번째 열이 체 F2상에서의 체 E의 기저
    Figure 112021063980610-pat01157
    에 따른 길이 mr인 βj의 이진 표현인, 행렬이고, E:=F2 mr이고, 그리고
    상기 β는 체 F2 r=F의 원시 원소인 방법.
  9. 제 1 항에 있어서,
    상기 살아남은 스토리지 노드의 내용 각각의 상기 감소된 표현으로부터, 상기 페일된 스토리지 노드의 내용을 재건하는 단계는,
    행렬
    Figure 112022502535705-pat01158
    를 사용하여
    Figure 112022502535705-pat01159
    를 계산하는 단계로서, 상기
    Figure 112022502535705-pat01160
    이고, 상기 p1(X)는 β의 극소 다항식이고,
    상기 벡터
    Figure 112022502535705-pat01161
    이고, 모든
    Figure 112022502535705-pat01162
    이고 j’=a인 경우의
    Figure 112022502535705-pat01163
    에 대하여 상기
    Figure 112022502535705-pat01164
    이고, 상기 n은 스토리지 노드들의 총 개수이고, 상기
    Figure 112022502535705-pat01165
    는 상기 살아남은 스토리지 노드 i의 내용의 상기 감소된 표현이고,
    상기 행렬 A’는, A의 엔트리 aij가 F2상에서의 F2 mr의 기저
    Figure 112022502535705-pat01166
    에 따른 F2 mr에서 열 벡터로 간주되는 경우, 상기 aij 각각을 Maij로 대체함으로써 획득되는 행렬이고,
    상기 행렬
    Figure 112022502535705-pat01167
    는,
    Figure 112022502535705-pat01168
    의 기저를 완전하게 하여 C’의 기저가 되게 하는 m개의 선형 독립 벡터들
    Figure 112022502535705-pat01169
    인, c1, …, cm행들을 갖는 행렬이고, 패리티-체크 행렬 H’를 갖는 코드의 F-부분체 서브 코드인 상기
    Figure 112022502535705-pat01170
    이고, 패리티-체크 행렬
    Figure 112022502535705-pat01171
    를 갖는 코드의 F-부분체 서브 코드인 상기
    Figure 112022502535705-pat01172
    이고,
    상기
    Figure 112022502535705-pat01173
    Figure 112022502535705-pat01174
    이고, 상기
    Figure 112022502535705-pat01175
    이고, 상기
    Figure 112022502535705-pat01176
    이고, 상기 (v1, …, vn-1)는 상기 벡터 v의 원소들이고, 상기 (u1, …, un-1)는 상기 평가 집합 V의 0이 아닌 원소들이고,
    행렬
    Figure 112022502535705-pat01177
    은 TM1에서 r×r 단위 행렬을 지원하는 인덱스들을 갖는
    Figure 112022502535705-pat01178
    행렬의 r개의 행들이고, 상기
    Figure 112022502535705-pat01179
    는,
    Figure 112022502535705-pat01180
    인 경우에 j번째 열이 체 F2상에서의 체 E의 기저
    Figure 112022502535705-pat01181
    에 따른 길이 mr인 βj의 이진 표현인, 행렬이고, E:=F2 mr이고, 상기 β는 F2 r=F의 원시 원소이고, 상기 α는 상기 체 F2 mr의 원시 원소인 것;
    체 E:=F2 mr 에서
    Figure 112022502535705-pat01182
    의 원소들을 임베딩하여, 벡터
    Figure 112022502535705-pat01183
    를 획득하는 단계; 및
    Figure 112022502535705-pat01184
    를 계산함으로써 상기 페일된 스토리지 노드의 상기 내용을 복원하는 단계로서,
    Figure 112022502535705-pat01185
    는, 원소들이 벡터 y=(y1, …, ym)T:=AvT∈Em의 엔트리들인 기저에 관하여, F상에서 E에 대한 쌍대 기저를 형성하는 것을 포함하는 방법.
  10. d<mr에 대하여, 사이즈 n=2d인 부분 공간이고 m으로 나누어질 수 있는 평가 집합 V={u0 = 0, u1, …, un-1}를 갖는 유한체 F2 mr상에서의 RS(Reed-Solomon) 코드로 단일한 소거를 복구하는 방법 단계들을 수행하는, 컴퓨터에 의하여 실행되는 명령어들의 프로그램을 유형적으로 구현하는, 컴퓨터에 의하여 판독 가능한 비-일시적 프로그램 저장 장치에 있어서,
    복수의 n개의 스토리지 노드들과 컨트롤러에 대한 시스템에서, 정규화된 복구 대역폭
    Figure 112021063980610-pat01186
    (n-1)/m이고 정보 심볼들의 개수 k<=2d-2d-d/m이고, 각각의 스토리지 노드 i의 내용 ci 는 상기 유한체 F2 mr의 원소이고, 노드 각각은 벡터 v를 저장하되, 상기 벡터 v의 엔트리들은 상기 평가 집합 V의 0이 아닌 원소들의 역원들이고,
    상기 방법은,
    상기 컨트롤러에 의해, 페일된 스토리지 노드를 식별하는 단계;
    상기 컨트롤러에 의해, 상기 페일된 스토리지 노드의 인덱스 j0를 살아남은 스토리지 노드 각각에 전송하는 단계;
    Figure 112021063980610-pat01187
    이고, 모든
    Figure 112021063980610-pat01188
    에 대하여,
    Figure 112021063980610-pat01189
    Figure 112021063980610-pat01190
    는 살아남은 상기 스토리지 노드들에 대응되는 벡터 v의 원소들의 순열이고, j’는
    Figure 112021063980610-pat01191
    인,
    Figure 112021063980610-pat01192
    의 고유 인덱스인 경우에, 살아남은 스토리지 노드 i 각각에 의해, 상기 노드 i 각각의 내용 ci와, 벡터 w(i)의 j번째 성분을 곱하는 단계;
    상기 곱셈의 결과 outi의 트레이스 맵을 결정하고, 상기 살아남은 스토리지 노드 각각에 의해, m×r 비트 표현에 의한 상기 결과를 r비트들의 감소된 표현
    Figure 112021063980610-pat01193
    로 변환하는 단계;
    상기 컨트롤러에 의해, 상기 살아남은 스토리지 노드의 내용 각각의 상기 감소된 표현으로부터, 상기 페일된 스토리지 노드의 내용을 재건하는 단계; 및
    상기 페일된 스토리지 노드의 상기 재건된 내용을 출력하는 단계를 포함하는 장치.
KR1020180065536A 2017-11-22 2018-06-07 1개의 서브-심볼의 선형 복구 스킴 KR102475784B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/821,480 2017-11-22
US15/821,480 US10686471B2 (en) 2017-11-22 2017-11-22 One-sub-symbol linear repair schemes

Publications (2)

Publication Number Publication Date
KR20190059827A KR20190059827A (ko) 2019-05-31
KR102475784B1 true KR102475784B1 (ko) 2022-12-09

Family

ID=66533405

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180065536A KR102475784B1 (ko) 2017-11-22 2018-06-07 1개의 서브-심볼의 선형 복구 스킴

Country Status (2)

Country Link
US (1) US10686471B2 (ko)
KR (1) KR102475784B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
US11228323B2 (en) * 2019-05-31 2022-01-18 The Regents Of The University Of California Method and system for repairing Reed-Solomon codes
US11474898B2 (en) * 2020-12-09 2022-10-18 International Business Machines Corporation Multiple responder approach to systems with different types of failures

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080282128A1 (en) 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US7421044B2 (en) 2000-09-05 2008-09-02 Broadcom Corporation Quasi error free (QEF) communication using turbo codes
JP4191043B2 (ja) 2001-12-06 2008-12-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 単純な復号化方法及び装置
EP1370003A1 (en) * 2002-06-07 2003-12-10 Deutsche Thomson-Brandt Gmbh Reed-Solomon Decoder
US8103943B2 (en) 2006-08-10 2012-01-24 Ternarylogic Llc Symbol reconstruction in Reed-Solomon codes
EP2413506A1 (en) * 2010-07-26 2012-02-01 Thomson Licensing Method for adding redundancy data to a distributed data storage system and corresponding device
US8433979B2 (en) * 2011-02-28 2013-04-30 International Business Machines Corporation Nested multiple erasure correcting codes for storage arrays
US9287897B2 (en) 2012-01-30 2016-03-15 Broadcom Corporation Systematic rate-independent Reed-Solomon erasure codes
US9344117B2 (en) 2013-03-15 2016-05-17 Mellanox Technologies, Ltd. Methods and systems for error-correction decoding
US9489252B1 (en) 2013-11-08 2016-11-08 Amazon Technologies, Inc. File recovery using diverse erasure encoded fragments
US10187088B2 (en) * 2014-04-21 2019-01-22 The Regents Of The University Of California Cost-efficient repair for storage systems using progressive engagement
US9594634B2 (en) 2014-06-02 2017-03-14 Intel Corporation Techniques to efficiently compute erasure codes having positive and negative coefficient exponents to permit data recovery from more than two failed storage units
US10191808B2 (en) * 2016-08-04 2019-01-29 Qualcomm Incorporated Systems and methods for storing, maintaining, and accessing objects in storage system clusters

Also Published As

Publication number Publication date
KR20190059827A (ko) 2019-05-31
US20190158119A1 (en) 2019-05-23
US10686471B2 (en) 2020-06-16

Similar Documents

Publication Publication Date Title
US10146618B2 (en) Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
KR101270815B1 (ko) 다양한 클래스의 코드들을 인코딩 및 디코딩하는 애플리케이션을 갖는 인-플레이스 변환
US20170033892A1 (en) Methods and apparatus employing fec codes with permanent inactivation of symbols for encoding and decoding processes
US7293222B2 (en) Systems and processes for fast encoding of hamming codes
KR102475784B1 (ko) 1개의 서브-심볼의 선형 복구 스킴
CN104246706A (zh) 使用存储器特定奇偶校验矩阵的数据编码器和解码器
Gad et al. Repair-optimal MDS array codes over GF (2)
US20200081778A1 (en) Distributed storage system, method and apparatus
CN111858142A (zh) 一种数据处理方法、装置及电子设备和存储介质
KR20180085651A (ko) 리스트 디코딩 생성을 통한 이진 bch 코드들의 bm-기반 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위한 asic
US10606697B2 (en) Method and apparatus for improved data recovery in data storage systems
Li et al. Repairing Reed-Solomon Codes Over $ GF (2^\ell) $
CN107306140B (zh) 一种gel码字结构编码和译码的方法、装置及相关设备
JP7429223B2 (ja) ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体
WO2018149354A1 (zh) 极化码的编码方法、装置及设备、存储介质
CN116312726B (zh) 一种数据存储方法、装置、电子设备和存储介质
US8977936B2 (en) Strong single and multiple error correcting WOM codes, coding methods and devices
KR102532623B1 (ko) Raid에 맞춤화된 bch 인코딩 및 디코딩 방법, 및 그 장치
KR20100042589A (ko) 이진 데이터의 오류 정정 및 오류 검출 방법
CN108352845B (zh) 用于对存储数据进行编码的方法以及装置
TW202024907A (zh) 資料處理
US20230370092A1 (en) Error Correction With Fast Syndrome Calculation
JP5999634B2 (ja) 演算回路設定方法
Ellero et al. Computational complexity analysis of hamming codes polynomial co-decoding
Yang et al. Hierarchical Hybrid Error Correction for Time-Sensitive Devices at the Edge

Legal Events

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