KR101873879B1 - Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element - Google Patents

Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element Download PDF

Info

Publication number
KR101873879B1
KR101873879B1 KR1020160153745A KR20160153745A KR101873879B1 KR 101873879 B1 KR101873879 B1 KR 101873879B1 KR 1020160153745 A KR1020160153745 A KR 1020160153745A KR 20160153745 A KR20160153745 A KR 20160153745A KR 101873879 B1 KR101873879 B1 KR 101873879B1
Authority
KR
South Korea
Prior art keywords
messages
data
message distribution
dimensional elements
sequence
Prior art date
Application number
KR1020160153745A
Other languages
Korean (ko)
Other versions
KR20180056038A (en
Inventor
김영식
박호성
노종선
Original Assignee
조선대학교산학협력단
전남대학교산학협력단
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 조선대학교산학협력단, 전남대학교산학협력단, 서울대학교산학협력단 filed Critical 조선대학교산학협력단
Priority to KR1020160153745A priority Critical patent/KR101873879B1/en
Publication of KR20180056038A publication Critical patent/KR20180056038A/en
Application granted granted Critical
Publication of KR101873879B1 publication Critical patent/KR101873879B1/en

Links

Images

Classifications

    • G06F17/30194
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치 및 방법이 개시된다. 본 발명은 다수의 메시지들을 여러 데이터 저장소들에 분산 저장하는 방법에 있어서, 최소한의 데이터 저장소들만을 활용해서 상기 다수의 메시지들을 분산 저장한 후 상기 데이터 저장소들 중 최소한의 데이터 저장소들만을 선택하여 액세스하더라도 상기 다수의 메시지들이 로드될 수 있도록 하여 상기 다수의 메시지들에 대한 데이터 손실에 대비함과 동시에 데이터 저장소들로부터 빠른 데이터 로드가 가능하도록 하는 기법을 제공할 수 있다.Disclosed is a data distribution storage apparatus and method using a relative difference set generated from a group having two-dimensional elements. A method for distributing a plurality of messages to a plurality of data stores, the method comprising: distributing the plurality of messages using only a minimum of data stores, selecting only a minimum data store among the data stores, A plurality of messages can be loaded so as to prevent data loss for the plurality of messages and to provide a technique for enabling fast data loading from data stores.

Description

2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치 및 방법{DATA DISTRIBUTION STORAGE APPARATUS AND METHOD USING RELATIVE DIFFERENCE SET GENERATED FROM THE GROUP HAVING THE TWO-DIMENSIONAL ELEMENT}Technical Field [0001] The present invention relates to a data distribution storage apparatus and a data distribution method using a relative difference set generated from a group having a two-dimensional element,

본 발명은 데이터의 손실이 발생하였을 때, 데이터의 복구가 용이하도록 다수의 데이터 저장소들에 다수의 메시지들을 분산해서 저장하는 기법에 대한 기술과 관련된다.The present invention relates to a technique for distributing and storing a plurality of messages in a plurality of data stores so as to facilitate recovery of data when data loss occurs.

최근, 인터넷의 보급이 활발하게 이루어짐에 따라, 다양한 인터넷 서비스 제공 업체들이 등장하고 있다. 이러한 인터넷 서비스 제공 업체들은 이메일 서비스를 제공하거나, 블로그, 카페, 클라우드 데이터 저장 서비스 등과 같은 다양한 서비스들을 제공하고 있다.Recently, as the spread of the Internet becomes active, a variety of Internet service providers are emerging. These Internet service providers provide e-mail services, or provide various services such as blogs, cafes, and cloud data storage services.

특히, 최근에는 소셜 네트워크 서비스의 인기가 급증함에 따라, 소셜 네트워크 서비스를 제공하는 인터넷 서비스 제공 업체들도 매우 많이 증가하고 있다.Especially, as the popularity of social network services has increased recently, a lot of Internet service providers providing social network services are also increasing in number.

이러한 인터넷 서비스 제공 업체들은 이메일 서비스, 블로그, 카페, 클라우드 서비스, 소셜 네트워크 서비스 등을 제공하기 위해 다수의 클라이언트 단말들로부터 업로드되는 대용량의 데이터들을 자체의 데이터 저장소에 저장을 해야하는데, 이러한 데이터들이 데이터 저장소 내에서 손실되게 되면, 고객들에게 정상적인 서비스를 제공하지 못하기 때문에 데이터의 손실을 방지하기 위한 다양한 노력을 하고 있다.These Internet service providers need to store a large amount of data uploaded from a large number of client terminals in their own data storage to provide an e-mail service, a blog, a cafe, a cloud service, a social network service, If it is lost in the store, it is trying to prevent loss of data because it does not provide normal service to customers.

그러한 노력의 일환 중 하나로 데이터 저장소에 저장되어야 하는 사용자 메시지를 여러 데이터 저장소들에 백업을 해두는 방식이 도입되고 있다. 이러한 데이터 백업 방식은 원본 메시지가 손실되더라도 백업을 해둔 메시지를 이용하여 상기 원본 메시지를 대체할 수 있다는 점에서 데이터 손실에 대처하기 위한 가장 이상적인 방법 중 하나이다.One such effort is introducing a way to back up user messages that need to be stored in a data store to multiple data stores. Such a data backup method is one of the most ideal methods for coping with data loss in that the original message can be replaced by using a backup message even if the original message is lost.

이렇게, 하나의 원본 메시지를 복수의 데이터 저장소들에 여러 번 저장을 해두게 되면, 상기 원본 메시지에 대한 데이터 로드 명령이 인가될 때, 상기 복수의 데이터 저장소들 중 가장 동작 속도가 빠른 임의의 데이터 저장소로부터 상기 원본 메시지에 대응하는 메시지를 바로 로드하면 되기 때문에, 하나의 데이터 저장소에 원본 메시지를 저장하는 방식보다 데이터 로드에 있어서도 빠른 속도를 제공할 수 있다.In this way, when one original message is stored in a plurality of data stores at a plurality of times, when a data load command for the original message is applied, Since the message corresponding to the original message is immediately loaded from the data storage, it is possible to provide a faster speed of data loading than a method of storing the original message in one data storage.

하지만, 기존의 데이터 백업 방식은 단순히 원본 메시지에 대한 복사 메시지를 복수의 데이터 저장소들에 분산해서 저장하는 방식만을 도입하고 있어서, 다수의 메시지들을 데이터 저장소에 저장해야 하는 인터넷 서비스 제공 업체들의 입장에서는 상기 다수의 메시지들 각각에 대한 복사 메시지들을 생성해서 각 데이터 저장소들에 분산 저장해야 하기 때문에 많은 데이터 저장 용량이 필요하다는 문제가 발생할 수 있다.However, in the existing data backup method, only a method of distributing a copy message for an original message to a plurality of data stores is adopted, and therefore, from the viewpoint of Internet service providers who need to store a large number of messages in a data store, A problem may arise in that a large amount of data storage capacity is required because copy messages for each of a plurality of messages are generated and distributedly stored in the respective data stores.

따라서, 다수의 메시지들을 여러 데이터 저장소들에 분산 저장하는 방법에 있어서, 최소한의 데이터 저장소들만을 활용해서 상기 다수의 메시지들을 분산 저장한 후 상기 데이터 저장소들 중 최소한의 데이터 저장소들만을 선택하여 액세스하더라도 상기 다수의 메시지들이 모두 로드될 수 있도록 하여 상기 다수의 메시지들에 대한 데이터 손실에 대비함과 동시에 데이터 저장소들로부터 빠른 데이터 로드가 가능하도록 하는 기법에 대한 연구가 필요하다.Accordingly, in a method of distributing a plurality of messages to a plurality of data stores, a method of distributing a plurality of messages using only a minimum number of data stores and selecting and accessing only a minimum data store among the data stores There is a need for research on a technique for preventing data loss for the plurality of messages and enabling quick data loading from the data stores by loading all of the plurality of messages.

본 발명은 다수의 메시지들을 여러 데이터 저장소들에 분산 저장하는 방법에 있어서, 최소한의 데이터 저장소들만을 활용해서 상기 다수의 메시지들을 분산 저장한 후 상기 데이터 저장소들 중 최소한의 데이터 저장소들만을 선택하여 액세스하더라도 상기 다수의 메시지들이 로드될 수 있도록 하여 상기 다수의 메시지들에 대한 데이터 손실에 대비함과 동시에 데이터 저장소들로부터 빠른 데이터 로드가 가능하도록 하는 기법을 제공하고자 한다.A method for distributing a plurality of messages to a plurality of data stores, the method comprising: distributing the plurality of messages using only a minimum of data stores, selecting only a minimum data store among the data stores, So that the plurality of messages can be loaded so as to prevent data loss for the plurality of messages and to enable fast data loading from the data stores.

본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치는 N - N은 N=q2의 조건을 만족하는 자연수이고, q는 홀수인 소수임 - 개의 메시지들에 대해 N개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 N개의 데이터 저장소들에 대응하는 N개의 메시지 분산 그룹들을 생성하는 분산 그룹 생성부, 상기 N개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 q개씩 분산 할당 - 상기 N개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 메시지 분산 할당부 및 상기 N개의 메시지 분산 그룹들 각각에 할당되어 있는 q개의 메시지들을 상기 N개의 메시지 분산 그룹들 별로, 상기 N개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 데이터 저장부를 포함한다.According to an embodiment of the present invention, a data distribution storage apparatus using a relative difference set generated from a group having two-dimensional elements is a natural number satisfying the condition of N = q 2 and q is a prime number of odd number - a distributed group generation unit for generating N message distribution groups corresponding to the N data stores when a distributed storage command to N data stores is applied to N messages, Wherein the messages distributed to the N message distribution groups may overlap each other, and a message distribution unit for allocating q messages allocated to the N message distribution groups, Separates the N messages into N data distribution groups and a data store corresponding to each message distribution group among the N data stores And a data storage unit for storing the data.

또한, 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법은 N - N은 N=q2의 조건을 만족하는 자연수이고, q는 홀수인 소수임 - 개의 메시지들에 대해 N개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 N개의 데이터 저장소들에 대응하는 N개의 메시지 분산 그룹들을 생성하는 단계, 상기 N개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 q개씩 분산 할당 - 상기 N개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 단계 및 상기 N개의 메시지 분산 그룹들 각각에 할당되어 있는 q개의 메시지들을 상기 N개의 메시지 분산 그룹들 별로, 상기 N개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 단계를 포함한다.Also, in the data distribution storage method using a relative difference set generated from a group having two-dimensional elements according to an embodiment of the present invention, N - N is a natural number satisfying the condition of N = q 2 , and q is an odd number Generating N message distribution groups corresponding to the N data stores when a distributed store command to N data stores is granted for a few number of messages, And distributing the N messages to the N distributed message groups in a distributed manner, the messages distributed to the N message distribution groups may overlap each other, and transmitting q messages allocated to the N message distribution groups Separating the N message distributing groups into a data store corresponding to each message distribution group among the N data stores, It should.

본 발명은 다수의 메시지들을 여러 데이터 저장소들에 분산 저장하는 방법에 있어서, 최소한의 데이터 저장소들만을 활용해서 상기 다수의 메시지들을 분산 저장한 후 상기 데이터 저장소들 중 최소한의 데이터 저장소들만을 선택하여 액세스하더라도 상기 다수의 메시지들이 로드될 수 있도록 하여 상기 다수의 메시지들에 대한 데이터 손실에 대비함과 동시에 데이터 저장소들로부터 빠른 데이터 로드가 가능하도록 하는 기법을 제공할 수 있다.A method for distributing a plurality of messages to a plurality of data stores, the method comprising: distributing the plurality of messages using only a minimum of data stores, selecting only a minimum data store among the data stores, A plurality of messages can be loaded so as to prevent data loss for the plurality of messages and to provide a technique for enabling fast data loading from data stores.

도 1은 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법을 도시한 순서도이다.
1 is a diagram illustrating a structure of a data distribution storage apparatus using a relative difference set generated from a group having two-dimensional elements according to an embodiment of the present invention.
FIG. 2 is a diagram for explaining operations of a data distribution storage apparatus using a relative difference set generated from a group having two-dimensional elements according to an embodiment of the present invention.
3 is a flowchart illustrating a data distribution storage method using a relative difference set generated from a group having two-dimensional elements according to an embodiment of the present invention.

이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. It is to be understood that the description is not intended to limit the invention to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals in the drawings are used for similar elements and, unless otherwise defined, all terms used in the specification, including technical and scientific terms, are to be construed in a manner that is familiar to those skilled in the art. It has the same meaning as commonly understood by those who have it.

도 1은 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치의 구조를 도시한 도면이다.1 is a diagram illustrating a structure of a data distribution storage apparatus using a relative difference set generated from a group having two-dimensional elements according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치(110)는 분산 그룹 생성부(111), 메시지 분산 할당부(112) 및 데이터 저장부(113)를 포함한다.Referring to FIG. 1, a data distribution storage apparatus 110 using a relative difference set generated from a group having two-dimensional elements according to an embodiment of the present invention includes a distributed group generation unit 111, a message distribution assignment unit 112 and a data storage unit 113.

분산 그룹 생성부(111)는 N개의 메시지들에 대해 N개의 데이터 저장소들(101, 102, 103)로의 분산 저장 명령이 인가되면, N개의 데이터 저장소들(101, 102, 103)에 대응하는 N개의 메시지 분산 그룹들을 생성한다.The distributed group generation unit 111 generates N (N) data corresponding to N data stores 101, 102, and 103 when distributed storage commands to N data stores 101, 102, Message distribution groups.

여기서, N은 N=q2의 조건을 만족하는 자연수이고, q는 홀수인 소수이다.Here, N is a natural number satisfying the condition of N = q 2 , and q is a prime number of an odd number.

그리고, 메시지란 N개의 데이터 저장소들(101, 102, 103)에 저장될 일종의 데이터 심볼(symbol)을 의미하는 것으로 상기 N개의 메시지들은 각각 서로 다른 데이터 심볼이다.A message is a kind of data symbol to be stored in N data stores 101, 102 and 103, and the N messages are different data symbols.

메시지 분산 할당부(112)는 상기 N개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 q개씩 분산 할당한다.The message distribution assigning unit 112 distributes the N messages to each of the N message distribution groups q-by-one.

이때, 상기 N개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있다. At this time, messages distributedly allocated to the N message distribution groups may overlap each other.

데이터 저장부(113)는 상기 N개의 메시지 분산 그룹들 각각에 할당되어 있는 q개의 메시지들을 상기 N개의 메시지 분산 그룹들 별로, N개의 데이터 저장소들(101, 102, 103) 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장한다.The data storage unit 113 stores q messages allocated to each of the N message distribution groups to each message distribution group among N data stores 101, And stores them separately in the corresponding data repository.

이때, 본 발명의 일실시예에 따르면, 메시지 분산 할당부(112)는 제1 시퀀스 생성부(114), 제2 시퀀스 생성부(115), 시퀀스 매칭부(116) 및 할당부(117)를 포함할 수 있다.According to an embodiment of the present invention, the message distribution assignment unit 112 includes a first sequence generation unit 114, a second sequence generation unit 115, a sequence matching unit 116, and an assignment unit 117 .

제1 시퀀스 생성부(114)는 원소의 개수가 q개인 덧셈에 대한 군(Group) Zq에 대해 K(K는

Figure 112016112563458-pat00001
으로 정의됨)에 상대적인 G(G는
Figure 112016112563458-pat00002
로 정의됨)의 상대 차집합 D(상기 상대 차집합 D는
Figure 112016112563458-pat00003
으로 정의되고, a=1이며, (q, q, q, 1)의 파라미터를 가짐)를 연산하고, 상기 상대 차집합 D에 포함되는 q개의 2차원 원소들에 기초하여 상기 G에 포함되어 있는 (i1, i2)(i1, i2는 모두 Zq에 포함되는 원소임)로 표현되는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 하나씩 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 생성한다.The first sequence generator 114 generates K (K) for the group Z q for addition with the number of elements q ,
Figure 112016112563458-pat00001
Relative to G (G)
Figure 112016112563458-pat00002
(The relative difference set D is defined as < RTI ID = 0.0 >
Figure 112016112563458-pat00003
(Q, q, q, 1), a = 1 and has parameters of (q, q, q, 1) quot; 1 "and" 0 "are assigned to the two-dimensional elements represented by (i 1 , i 2 ) (i 1 and i 2 are elements included in Z q ) Quot; 1 "and" 0 "

이때, 제1 시퀀스 생성부(114)는 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상기 상대 차집합 D에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상기 상대 차집합 D에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 상기 제1 시퀀스를 생성할 수 있다.At this time, the first sequence generator 114 multiplies q two-dimensional elements included in the relative difference set D among the two-dimensional elements represented by (i 1 , i 2 ) Quot; and " 0 "are assigned to the remaining two-dimensional elements not included in the relative difference set D by allocating a code value of "0" 1 sequence can be generated.

그리고, 제2 시퀀스 생성부(115)는 상기 G에 포함되어 있는 (i1, i2)로 표현되는 모든 2차원 원소들에 대해서 상기 상대 차집합 D의 우코셋(right coset)을 연산하여 N-1개의 우코셋들을 생성한 후, 상기 N-1개의 우코셋들 각각에 포함되어 있는 q개의 2차원 원소들을 기초로 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 하나씩 할당하여 N개의 "1"과 "0"의 코드 값으로 구성된 시퀀스를 상기 N-1개의 우코셋들 각각에 대해 생성함으로써, N-1개의 제2 시퀀스들을 생성한다.The second sequence generator 115 calculates a right coset of the relative difference set D for all the two-dimensional elements represented by (i 1 , i 2 ) included in the G, and outputs N Dimensional elements represented by (i 1 , i 2 ) included in the G based on q two-dimensional elements included in each of the N-1 uxcosets after generating -1 right co- 1 " and " 0 "are generated for each of the N-1 uxcodes by allocating one code value of" 1 "≪ / RTI > second sequences.

이때, 제2 시퀀스 생성부(115)는 상기 N-1개의 우코셋들 각각에 대해, 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상기 N-1개의 우코셋들 각각에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상기 N-1개의 우코셋들 각각에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 상기 제2 시퀀스들을 N-1개 생성할 수 있다.At this time, the second sequence generation unit 115 is the N-1 of the right koset s for each, corresponding to the at least one G (i 1, i 2) of said N-1 of the two-dimensional element, represented by Wu Quot; 1 "is assigned to q two-dimensional elements included in each of the co-sets, and a code value of" 0 "is assigned to remaining two-dimensional elements not included in each of the N- 1 "and "0" code values by assigning N < th >

여기서, 상대 차집합(Relative Difference Set)에 대해 설명하면, G를 차수가 uv인 그룹이라 하고, K가 차수가 u인 정규 부분군(Normal Subgroup)이라 할 때, K에 상대적인 G의 상대 차집합 D는 아래의 표 1과 같이 정의될 수 있다.Let G be a group with order uv and K be a normal subgroup with degree u. Let G be the relative difference set of G relative to K, D can be defined as shown in Table 1 below.

D는 G의 ω개의 원소를 갖는 부분집합으로 D의 임의의 두 원소 d1, d2를 취해서 d1과 d2의 역원을 연산했을 때, K를 제외한 G의 모든 0이 아닌 원소가 정확히 λ번 발생하는 성질을 갖고 있음. 이때, D의 파라미터는 (v, u, ω, λ)로 나타냄.D is a subset of ω elements of G, taking any two elements d 1 , d 2 of D and computing the inverse of d 1 and d 2 so that all nonzero elements of G except K are exactly λ It has the property to occur once. At this time, the parameter of D is represented by (v, u, ω, λ).

이때, q가 홀수인 소수일 때, Zq를 덧셈에 대한 군이라 하고,

Figure 112016112563458-pat00004
,
Figure 112016112563458-pat00005
라 정의하면, 이때,
Figure 112016112563458-pat00006
에 대해 K에 상대적인 G의 상대 차집합 D는 하기의 수학식 1과 같이 정의될 수 있고, D의 파라미터는 (q, q, q, 1)이 된다.At this time, when q is an odd number, Z q is a group for addition,
Figure 112016112563458-pat00004
,
Figure 112016112563458-pat00005
In this case,
Figure 112016112563458-pat00006
The relative difference set D of G relative to K can be defined as Equation (1) below, and the parameter of D becomes (q, q, q, 1).

Figure 112016112563458-pat00007
Figure 112016112563458-pat00007

여기서, 상대 차집합 D에는 G에 포함되어 있는 (i1, i2)(i1, i2는 모두 Zq에 포함되는 원소임)로 표현되는 2차원 원소들 중 q개의 원소들이 포함되게 된다.Here, the relative difference set D includes q elements among the two-dimensional elements represented by (i 1 , i 2 ) (i 1 , i 2 are elements included in Z q ) included in G .

그리고, 우코셋에 대해 설명하면, 파라미터 (q, q, q, 1)을 갖는 상대 차집합

Figure 112016112563458-pat00008
가 있을 때,
Figure 112016112563458-pat00009
에 포함되어 있는 2차원 원소인 (i1, i2)에 대한 상대 차집합 D의 우코셋은 상대 차집합 D에 포함되어 있는 q개의 2차원 원소들인
Figure 112016112563458-pat00010
각각에 대해 아래의 수학식 2와 같이
Figure 112016112563458-pat00011
를 연산함으로써 생성된 q개의 2차원 원소들로 구성될 수 있다.In the case of the right co-set, a relative difference set having parameters (q, q, q, 1)
Figure 112016112563458-pat00008
Lt; / RTI >
Figure 112016112563458-pat00009
The right co-set of the relative difference set D with respect to the two-dimensional elements (i 1 , i 2 ) included in the relative difference set D is q two-dimensional elements included in the relative difference set D
Figure 112016112563458-pat00010
As shown in the following Equation 2,
Figure 112016112563458-pat00011
Dimensional elements that are generated by computing q.

Figure 112016112563458-pat00012
Figure 112016112563458-pat00012

이러한 방식으로, 상대 차집합 D의 우코셋은 G에 포함되어 있는

Figure 112016112563458-pat00013
각각(
Figure 112016112563458-pat00014
은 제외)에 대해서 상기 수학식 2와 같은 연산을 수행함으로써, 총 q2-1개가 생성될 수 있다.In this way, the right co-set of the relative difference set D is included in G
Figure 112016112563458-pat00013
each(
Figure 112016112563458-pat00014
, The total of q 2 -1 can be generated by performing an operation such as the above-described equation (2).

이러한 상황에서, N을 N=q2의 조건을 만족하는 자연수라 하고, a=1이라고 할 때, 상기 수학식 1에 따라 상대 차집합 D를 연산하고, 상기 수학식 2에 따라 상대 차집합 D에 대한 우코셋들을 연산하면, 상대 차집합 D와

Figure 112016112563458-pat00015
이라는 N-1개의 우코셋들이 생성될 수 있다.In this situation, if N is a natural number satisfying the condition of N = q 2 , and a = 1, the relative difference set D is calculated according to Equation (1) , The relative difference set D and
Figure 112016112563458-pat00015
RTI ID = 0.0 > N-1 < / RTI >

이렇게, 상대 차집합 D와

Figure 112016112563458-pat00016
이라는 N-1개의 우코셋들이 생성되었을 때, 상대 차집합 D와
Figure 112016112563458-pat00017
이라는 N-1개의 우코셋들 각각에 대해서, 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상대 차집합 D와 N-1개의 우코셋들 각각에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상대 차집합 D와 N-1개의 우코셋들 각각에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당하는 방식으로 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 할당하게 되면, 총 N개의 "1"과 "0"의 코드 값으로 구성된 시퀀스들을 획득할 수 있다.Thus, the relative difference set D and
Figure 112016112563458-pat00016
When the N-1 right cosets are generated, the relative difference set D
Figure 112016112563458-pat00017
(I 1 , i 2 ) included in the G, for each of the N-1 uxcosets, which are included in the relative difference D and the N-1 right co- Quot; 1 "is assigned to the two-dimensional elements, and a code value of" 0 "is assigned to the remaining two-dimensional elements not included in each of the relative difference set D and the N-1 right co- 1 "and" 0 "are assigned to the two-dimensional elements represented by (i 1 , i 2 ) It is possible to obtain sequences composed of code values.

이때, 각 시퀀스들 내에 존재하는 "1"의 코드 값의 개수는 항상 q개로 일정하며, 상기 N개의 시퀀스들 중에서 서로 다른 q개의 시퀀스들을 랜덤하게 선택한 후 랜덤하게 선택된 q개의 시퀀스들을 모두 "OR"연산하게 되면, "OR" 연산이 수행된 결과 값에서 존재하는 "1"의 코드 값의 개수는 항상

Figure 112016112563458-pat00018
개 이상이 되고, "0"의 코드 값의 개수는 항상
Figure 112016112563458-pat00019
개 이하가 되는 특징을 가지고 있다.At this time, the number of code values of "1" existing in each sequence is always q, and q sequences randomly selected from among the N sequences are randomly selected, The number of code values of "1" existing in the result of performing the "OR"
Figure 112016112563458-pat00018
, And the number of code values of "0"
Figure 112016112563458-pat00019
Or less.

예컨대, q=3이라고 가정하면, 원소의 개수가 3개인 덧셈에 대한 군인

Figure 112016112563458-pat00020
이고,
Figure 112016112563458-pat00021
이므로, 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들은 (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)가 될 수 있으며, a=1일 때, 상기 수학식 1에 따라 연산되는 상대 차집합
Figure 112016112563458-pat00022
가 되며, 상대 차집합 D의 파라미터는 (3, 3, 3, 1)이 될 수 있다.For example, assuming that q = 3, the number of elements
Figure 112016112563458-pat00020
ego,
Figure 112016112563458-pat00021
Since the two-dimensional element represented by (i 1, i 2) contained in the G are (0,0), (0,1), (0,2), (1,0), (1, 1 (1, 2), (2, 0), (2, 1), (2, 2)
Figure 112016112563458-pat00022
, And the parameter of the relative difference set D may be (3, 3, 3, 1).

이때, G에 포함되어 있는 2차원 원소들인 (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2) 중 상대 차집합 D에 포함되는 3개의 2차원 원소들인 (0, 0), (1, 1), (1, 2)에 대해 "1"의 코드 값을 할당하고, 상대 차집합 D에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당하는 방식으로 상기 G에 포함되어 있는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 순차적으로 할당하게 되면, "100011000"이라는 9개의 "1"과 "0"의 코드 값으로 구성된 시퀀스를 생성할 수 있다.(1, 0), (1, 0), (1, 1), (1, 2), (2, 1 ", (1, 2), which are the three 2-dimensional elements included in the relative difference set D among (0, 0), (2, 1) Quot; 1 "and" 2 " are assigned to the two-dimensional elements included in G by assigning a code value of " 0 "to the remaining two- Quot; 1 "and " 0" code values of "100011000 "

그리고, G에 포함되어 있는 2차원 원소들인 (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2) 각각에 대해 상기 수학식 2에 따라 상대 차집합 D의 우코셋들을 연산((0, 0)일 경우는 제외)하면,

Figure 112016112563458-pat00023
가 생성되고, 여기서, 첫 번째 우코셋이
Figure 112016112563458-pat00024
이기 때문에 G에 포함되어 있는 2차원 원소들인 (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2) 중
Figure 112016112563458-pat00025
에 포함되는 3개의 2차원 원소인 (0, 1), (1, 0), (1, 2)에 대해 "1"의 코드 값을 할당하고,
Figure 112016112563458-pat00026
에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당하는 방식으로 상기 G에 포함되어 있는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 순차적으로 할당하게 되면, "010101000"이라는 9개의 "1"과 "0"의 코드 값으로 구성된 또 다른 시퀀스를 생성할 수 있다.(1, 0), (1, 1), (1, 2), (2, 0), (2, (Except for (0, 0)) of the relative difference set D according to Equation (2) for each of (1, 2)
Figure 112016112563458-pat00023
Is generated, where the first right coset is < RTI ID = 0.0 >
Figure 112016112563458-pat00024
(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)
Figure 112016112563458-pat00025
A code value of "1" is assigned to (0, 1), (1, 0), (1, 2)
Figure 112016112563458-pat00026
Quot; 1 "and" 0 "are sequentially allocated to the two-dimensional elements included in the G in such a manner that a code value of" 0 "is assigned to remaining two- Quot; 1 "and" 0 ", i.e., "010101000"

이러한 방식으로, 나머지 우코셋들인

Figure 112016112563458-pat00027
에 대해서 시퀀스를 생성하게 되면, 최종적으로 총 9개의 시퀀스들이 생성될 수 있고, 이때, 각 시퀀스들 내에 존재하는 "1"의 코드 값의 개수는 모두 3개로 일정하며, 상기 9개의 시퀀스들 중에서 서로 다른 3개의 시퀀스들을 랜덤하게 선택한 후 랜덤하게 선택된 3개의 시퀀스들을 모두 "OR"연산하게 되면, "OR" 연산이 수행된 결과 값에서 존재하는 "1"의 코드 값의 개수는 항상 6개 이상이 되며, "0"의 코드 값의 개수는 항상 3개 이하가 되는 특징을 가지게 된다.In this way,
Figure 112016112563458-pat00027
A total of 9 sequences can be finally generated. At this time, the number of code values of "1" existing in each sequence is constant at three, and among the nine sequences, The number of code values of "1" existing in the result of performing the "OR" operation is always 6 or more when the other three sequences are randomly selected and all three randomly selected sequences are & And the number of code values of "0 " is always 3 or less.

지금까지 설명한 상대 차집합과 이에 대한 우코셋으로부터의 시퀀스 생성 과정에 따라, 제1 시퀀스 생성부(114)는 원소의 개수가 q개인 덧셈에 대한 군 Zq에 대해 상기 수학식 1에 따라 K에 상대적인 G의 상대 차집합 D를 연산한 후 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상기 상대 차집합 D에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상기 상대 차집합 D에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당하는 방식으로 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 각각에 대해 "1"과 "0"의 코드 값을 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 생성할 수 있다.In accordance with the above-described relative difference set and the sequence generation process from the right co-ordinate, the first sequence generator 114 calculates the relative difference set for the group Z q for addition with the number of elements q , 1 relative to q two-dimensional elements included in the relative difference set D among the two-dimensional elements represented by (i 1 , i 2 ) included in the G after calculating the relative difference set D of G, And a code value of "0" is assigned to remaining two-dimensional elements not included in the relative difference set D, as shown in (i 1 , i 2 ) By assigning code values of "1" and "0" to each of the two-dimensional elements, a first sequence composed of N "1" and "0" code values can be generated.

그리고, 제2 시퀀스 생성부(115)는 상기 G에 포함되어 있는 (i1, i2)로 표현되는 모든 2차원 원소들에 대해서 상기 상대 차집합 D의 우코셋을 연산하여 N-1개의 우코셋들을 생성한 후, 상기 N-1개의 우코셋들 각각에 대해, 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상기 N-1개의 우코셋들 각각에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상기 N-1개의 우코셋들 각각에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당하는 방식으로 상기 N-1개의 우코셋들 각각에 대해서 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 각각에 "1"과 "0"의 코드 값을 할당함으로써, N-1개의 제2 시퀀스들을 생성할 수 있다.Then, the second sequence generator 115 calculates the right coset of the relative difference set D for all the two-dimensional elements represented by (i 1 , i 2 ) included in the G, and outputs N-1 right (I 1 , i 2 ) contained in the G is included in each of the N-1 uxcosets of the two-dimensional elements represented by (i 1 , i 2 ) A code value of "1" is allocated to q two-dimensional elements which are not included in each of the N-1 ellipses, and a code value of "0" is assigned to remaining two-dimensional elements not included in each of the N-1 By assigning code values of "1" and "0" to each of the two-dimensional elements represented by (i 1 , i 2 ) included in the G for each of the N-1 uxcosets, Lt; RTI ID = 0.0 > sequences. ≪ / RTI >

이렇게, 상기 제1 시퀀스와 상기 N-1개의 제2 시퀀스들이 생성되면, 시퀀스 매칭부(116)는 상기 N개의 메시지 분산 그룹들 각각에 대해 상기 제1 시퀀스와 상기 N-1개의 제2 시퀀스들을 하나씩 매칭시킨다.When the first sequence and the N-1 second sequences are generated, the sequence matching unit 116 may combine the first sequence and the N-1 second sequences for each of the N message distribution groups Match one by one.

그리고, 할당부(117)는 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당한다.For each of the N message distribution groups, the allocation unit 117 divides the N messages into q message groups based on N code values constituting each sequence matched to each of the N message distribution groups Distributed allocation.

이때, 본 발명의 일실시예에 따르면, 메시지 분산 할당부(112)는 상기 N개의 메시지들 각각에 대해 순번 정보와 연관된 인덱스 값을 할당하는 인덱스 할당부(118)를 더 포함할 수 있다.In this case, according to an embodiment of the present invention, the message distribution assigning unit 112 may further include an index assigning unit 118 assigning an index value associated with the order information to each of the N messages.

이때, 할당부(117)는 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당할 수 있다.At this time, the allocating unit 117 allocates, for each of the N message distribution groups, an arrangement order of N code values constituting each sequence matched to each of the N message distribution groups, And then allocate the N messages to each of the N messages based on the code value of the array order corresponding to the index value assigned to the N messages.

이때, 본 발명의 일실시예에 따르면, 할당부(117)는 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값 중 q개씩 존재하는 "1"의 코드 값을 확인한 후, 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지들 중 상기 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 q개의 메시지들을 분산 할당할 수 있다.In this case, according to an embodiment of the present invention, the allocation unit 117 allocates, for each of the N message distribution groups, N code values constituting each sequence matched to the N message distribution groups After identifying the code value of "1 " existing for q, an index value corresponding to the code value of the" 1 "code value among the N messages is allocated to each of the N message distribution groups Q messages can be distributed.

본 발명의 일실시예에 따르면, 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치(110)는 저장 메시지 추출부(119) 및 데이터 로드부(120)를 더 포함할 수 있다.According to an embodiment of the present invention, the data distribution storage apparatus 110 using the relative difference set generated from the group having two-dimensional elements further includes a storage message extracting unit 119 and a data loading unit 120 .

저장 메시지 추출부(119)는 N개의 데이터 저장소들(101, 102, 103)에 상기 N개의 메시지들이 q개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드(load) 명령이 인가되면, 상기 로드 명령에 기초하여 N개의 데이터 저장소들(101, 102, 103) 중 q개의 데이터 저장소들을 랜덤하게 선택하고, 상기 q개의 데이터 저장소들 각각으로부터 상기 q개의 데이터 저장소들 각각에 저장되어 있는 q개의 저장 메시지들을 추출한다.The stored message extracting unit 119 extracts N messages stored in the N data stores 101, 102, and 103 and stores the N messages in the N Randomly selecting q ones of the N data stores (101, 102, 103) based on the command, and selecting from the q data stores each of the q store messages stored in each of the q data stores .

데이터 로드부(120)는 상기 q개의 데이터 저장소들 각각으로부터 q개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드한다.The data loading unit 120 loads the stored messages extracted from each of the q data repositories into the data corresponding to the load command for the N messages.

이때, 본 발명의 일실시예에 따르면, 상기 N개의 메시지들은 일부 메시지의 손실이 발생할 경우, 나머지 메시지들을 기초로 손실 메시지들의 복구가 가능한 최대 거리 분리 가능(Maximum Distance Separable: MDS) 코드일 수 있다.In this case, according to an embodiment of the present invention, the N messages may be Maximum Distance Separable (MDS) codes capable of recovering lost messages based on remaining messages when loss of some messages occurs .

여기서, MDS 코드란 복수의 메시지들 중 일부 메시지의 손실이 발생하였을 때, 남아 있는 메시지들을 기초로 손실된 일부 메시지들을 복원할 수 있는 코드로, 소정의 원본 메시지에 대해 MDS 코딩을 수행함으로써, MDS 코드로 변경해 둔 후 MDS 코드로 변경된 메시지들 중 일부 메시지에 대한 손실이 발생하였을 때, 손실된 메시지를 복원하는데 사용될 수 있다. 이때, 상기 MDS 코드로부터 다시 원본 메시지를 생성하고자 한다면, MDS 디코딩을 수행함으로써, 상기 원본 메시지를 복원할 수 있다. 따라서, 중요 메시지들을 저장할 때, MDS 코드로 변경해서 저장해 둠으로써, 메시지의 손실이 발생할 경우를 미리 대비할 수 있다.Here, the MDS code is a code that can recover some messages lost based on remaining messages when a loss of some messages among a plurality of messages occurs, thereby performing MDS coding on a predetermined original message, Code can be used to recover lost messages when some of the messages changed to MDS code are lost. At this time, if the original message is to be generated again from the MDS code, MDS decoding can be performed to restore the original message. Therefore, when storing important messages, the MDS code is changed and stored, so that a case of loss of a message can be prepared in advance.

이때, 데이터 로드부(120)는 상기 q개의 데이터 저장소들 각각으로부터 q개씩 저장 메시지들이 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 N개의 메시지들에 할당된 인덱스 값을 비교하여 상기 N개의 메시지들 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되면, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드할 수 있다.At this time, the data load unit 120 compares the index value assigned to the extracted stored messages with the index value assigned to the N messages when the q stored messages are extracted from each of the q data stores, If it is determined that there is a remaining message that is not included in the extracted stored messages among the N messages, restores the remaining message based on the extracted stored messages, And load the remaining messages into the data according to the load command for the N messages.

이하에서는 도 2를 참조하여, 본 발명에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치(110)의 동작을 예를 들어 상세히 설명하기로 한다.Hereinafter, the operation of the data distribution storage apparatus 110 using the relative difference set generated from the group having two-dimensional elements according to the present invention will be described in detail with reference to FIG. 2, for example.

도 2는 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치(110)의 동작을 설명하기 위한 도면이다.FIG. 2 is a view for explaining the operation of the data distribution storage apparatus 110 using a relative difference set generated from a group having two-dimensional elements according to an embodiment of the present invention.

우선, q=3, N=9라고 가정하고, N개의 데이터 저장소들(101, 102, 103)이 도 2에 도시된 바와 같이, 데이터 저장소 1(211), 데이터 저장소 2(221), 데이터 저장소 3(231), 데이터 저장소 4(241), 데이터 저장소 5(251), 데이터 저장소 6(261), 데이터 저장소 7(271), 데이터 저장소 8(281) 및 데이터 저장소 9(291)로 존재하며, N=9인 관계로 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291)에 저장할 메시지들의 개수가 9개인 것으로 가정하기로 한다.2, N data stores 101, 102 and 103 are connected to the data storage 1 211, the data storage 2 221, 3 231, Data Storage 4 241, Data Storage 5 251, Data Storage 6 261, Data Storage 7 271, Data Storage 8 281 and Data Storage 9 291, N = 9, it is assumed that the number of messages to be stored in the data repositories 1 to 9 (211, 221, 231, 241, 251, 261, 271, 281 and 291) is nine.

이때, 분산 그룹 생성부(111)는 9개의 메시지들에 대해 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291)로의 분산 저장 명령이 인가되면, 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291)에 대응하는 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293)을 생성할 수 있다.At this time, when the distributed storage command to the data storage 1 to 9 (211, 221, 231, 241, 251, 261, 271, 281, 291) is applied to nine messages, 9 message distribution groups 213, 223, 233, 243, 253, 263, 273, 283, 293 corresponding to 1 to 9 (211, 221, 231, 241, 251, 261, 271, 281, 291) Can be generated.

그리고, 메시지 분산 할당부(112)에 포함되어 있는 인덱스 할당부(118)는 상기 9개의 메시지들에 대해서 순번 정보와 연관된 인덱스 값을 할당할 수 있는데, 인덱스 할당부(118)가 상기 9개의 메시지들에 대해 순서대로 1부터 9까지의 인덱스 값을 할당한다고 하면, 상기 9개의 메시지들은 "m1, m2, m3, m4, m5, m6, m7, m8, m9"로 표시할 수 있다.The index assigning unit 118 included in the message distribution assigning unit 112 may assign an index value associated with the order information to the nine messages. When the index assigning unit 118 assigns the nine messages M 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 " As shown in FIG.

q=3, N=9라고 가정하였기 때문에, 제1 시퀀스 생성부(114)는 원소의 개수가 3개인 덧셈에 대한 군인

Figure 112016112563458-pat00028
에 대해서, G가
Figure 112016112563458-pat00029
로 정의되고, K가
Figure 112016112563458-pat00030
으로 정의될 때, 상기 수학식 1에 따라 K에 상대적인 G의 상대 차집합 D를 연산(a=1임)할 수 있다.q = 3, and N = 9, the first sequence generator 114 generates a first sequence having three elements,
Figure 112016112563458-pat00028
, G
Figure 112016112563458-pat00029
And K is defined as
Figure 112016112563458-pat00030
, A relative difference D of G relative to K can be calculated (a = 1) according to Equation (1) above.

관련해서,

Figure 112016112563458-pat00031
이므로, 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들은 (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)가 될 수 있으며, a=1일 때, 상기 수학식 1에 따라 연산되는 상대 차집합
Figure 112016112563458-pat00032
가 되며, 상대 차집합 D의 파라미터는 (3, 3, 3, 1)이 될 수 있다.Relatedly,
Figure 112016112563458-pat00031
Since the two-dimensional element represented by (i 1, i 2) contained in the G are (0,0), (0,1), (0,2), (1,0), (1, 1 (1, 2), (2, 0), (2, 1), (2, 2)
Figure 112016112563458-pat00032
, And the parameter of the relative difference set D may be (3, 3, 3, 1).

그러고 나서, 제1 시퀀스 생성부(114)는 G에 포함되어 있는 2차원 원소들인 (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2) 중 상대 차집합 D에 포함되는 3개의 2차원 원소들인 (0, 0), (1, 1), (1, 2)에 대해 "1"의 코드 값을 할당하고, 상대 차집합 D에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당하는 방식으로 상기 G에 포함되어 있는 2차원 원소들에 대해 순차적으로 "1"과 "0"의 코드 값을 할당함으로써, "100011000"(212)이라는 9개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 생성할 수 있다.Then, the first sequence generator 114 generates 2-dimensional elements (0,0), (0,1), (0,2), (1,0), (1,1) (0, 0), (1, 1), and (2), which are included in the relative difference set D among (1, 2), (2, 0), 2 "included in the G is allocated in such a manner that a code value of" 1 "is allocated to the first difference value (1, 2) and a code value of" 0 "is assigned to remaining two-dimensional elements not included in the relative difference difference D, By assigning code values of "1" and "0" sequentially to the dimensional elements, a first sequence composed of nine code values "1" and "0" of "100011000" .

그리고, 제2 시퀀스 생성부(115)는 G에 포함되어 있는 2차원 원소들인 (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2) 각각에 대해 상기 수학식 2에 따라 상대 차집합 D의 우코셋들을 연산((0, 0)일 경우는 제외)하여

Figure 112016112563458-pat00033
라는 8개의 우코셋들을 생성할 수 있다.The second sequence generation unit 115 generates the second sequence by using (0,0), (0,1), (0,2), (1,0), (1,1), (0, 0) is calculated for each of (1, 2), (2, 0), (2, 1) Ex)
Figure 112016112563458-pat00033
Can be generated.

그러고 나서, 제2 시퀀스 생성부(115)는 상기 8개의 우코셋들 각각에 포함되어 있는 3개의 2차원 원소들을 기초로 상기 G에 포함되어 있는 2차원 원소들에 대해 순차적으로 "1"과 "0"의 코드 값을 할당하여 9개의 "1"과 "0"의 코드 값으로 구성된 시퀀스를 상기 8개의 우코셋들 각각에 대해 생성함으로써, 8개의 제2 시퀀스들을 생성할 수 있다.Then, the second sequence generator 115 sequentially generates 1s and 2s for the 2-dimensional elements included in the G based on the 3 2-dimensional elements included in each of the 8-ellipses, Quot; 0 "code value to generate eight second sequences by generating a sequence composed of nine code values of" 1 "and" 0 " for each of the eight co-coils.

관련하여, 제2 시퀀스 생성부(115)는 첫 번째 우코셋이

Figure 112016112563458-pat00034
이기 때문에 G에 포함되어 있는 2차원 원소들인 (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2) 중
Figure 112016112563458-pat00035
에 포함되는 3개의 2차원 원소들인 (0, 1), (1, 0), (1, 2)에 대해 "1"의 코드 값을 할당하고,
Figure 112016112563458-pat00036
에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당하는 방식으로 상기 G에 포함되어 있는 2차원 원소들에 대해 순차적으로 "1"과 "0"의 코드 값을 할당함으로써, "010101000"(222)이라는 9개의 "1"과 "0"의 코드 값으로 구성된 시퀀스를 생성할 수 있다.In this regard, the second sequence generator 115 generates a second sequence
Figure 112016112563458-pat00034
(1, 0), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)
Figure 112016112563458-pat00035
A code value of "1" is assigned to (0, 1), (1, 0), (1, 2)
Figure 112016112563458-pat00036
Quot; 1 "and" 0 "are sequentially assigned to the two-dimensional elements included in the G in such a manner that a code value of" 0 "is assigned to remaining two- Quot; 1 "and" 0 ", i.e., "010101000" (222).

이러한 방식으로, 제2 시퀀스 생성부(115)는 나머지 우코셋들인

Figure 112016112563458-pat00037
에 대해서도 시퀀스를 생성함으로써, "001110000"(232), "000100011"(242), "000010101"(252), "000001110"(262), "011000100"(272), "101000010"(282), "110000001"(292)라는 시퀀스들을 추가로 생성할 수 있다.In this way, the second sequence generator 115 generates the second
Figure 112016112563458-pat00037
000010101 "252," 000001110 "262," 011000100 "272," 101000010 "282," 01000010 "Quot; 110000001 "(292).

이러한 제1 시퀀스인 "100011000"(212)와 8개의 제2 시퀀스들인 "010101000"(222), "001110000"(232), "000100011"(242), "000010101"(252), "000001110"(262), "011000100"(272), "101000010"(282), "110000001"(292)는 앞서 설명한 바와 같이, 항상 q개의 "1"의 코드 값을 갖게 되는데, 본 실시예에서 q는 3으로 가정하였기 때문에 9개의 시퀀스들(212, 222, 232, 242, 252, 262, 272, 282, 292) 각각에 포함된 "1"의 코드 값은 항상 3개이다.This first sequence "100011000" 212 and eight second sequences "010101000" 222, "001110000" 232, "000100011" 242, "000010101" 252, "000001110" 262, "011000100" 272, "101000010" 282, and "110000001" 292 always have q "1" code values as described above. In this embodiment, q is set to 3 The code value of "1" contained in each of the nine sequences 212, 222, 232, 242, 252, 262, 272, 282, 292 is always three.

그리고, 제1 시퀀스와 제2 시퀀스들은 서로 다른 3개의 시퀀스들 간에 "OR" 논리 연산을 수행하면, 해당 논리 연산의 결과 값에 포함된 "1"의 코드 값은 항상

Figure 112016112563458-pat00038
개 이상이 되고, "0"의 코드 값은 항상
Figure 112016112563458-pat00039
개 이하가 되기 때문에 본 실시예에서는 q가 3이라고 가정하였으므로, 9개의 시퀀스들(212, 222, 232, 242, 252, 262, 272, 282, 292) 중 어느 3개의 시퀀스들 간에 "OR" 논리 연산이 수행되면, 그 연산 결과 값에 포함되어 있는 "1"의 코드 값은 항상 6개 이상이 되고, "0"의 코드 값은 항상 3개 이하가 된다.If the first sequence and the second sequence perform an "OR" logical operation between three different sequences, the code value of "1" contained in the result of the logical operation is always
Figure 112016112563458-pat00038
, And the code value of "0 "
Figure 112016112563458-pat00039
OR "logic between any three of the nine sequences 212, 222, 232, 242, 252, 262, 272, 282, 292 since q is assumed to be 3, When the operation is performed, the code value of "1" included in the operation result value is always 6 or more, and the code value of "0" is always 3 or less.

이렇게, 9개의 시퀀스들(212, 222, 232, 242, 252, 262, 272, 282, 292)이 생성되면, 시퀀스 매칭부(116)는 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291)에 각각 대응하는 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293) 각각에 대해 9개의 시퀀스들(212, 222, 232, 242, 252, 262, 272, 282, 292)을 하나씩 매칭시킬 수 있다.When the nine sequences 212, 222, 232, 242, 252, 262, 272, 282 and 292 are generated, the sequence matching unit 116 acquires the data sets 1 to 9 (211, 221, 231, 241, 9 sequences 212 and 222 for each of the nine message distribution groups 213, 223, 233, 243, 253, 263, 273, 283 and 293 corresponding to the message distribution groups 251, 261, 271, 281, , 232, 242, 252, 262, 272, 282, 292 can be matched one by one.

관련해서, 시퀀스 매칭부(116)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 1(213)에 대해 100011000(212)을 매칭시킬 수 있고, 메시지 분산 그룹 2(223)에 대해 010101000(222)을 매칭시킬 수 있으며, 메시지 분산 그룹 3(233)에 대해 001110000(232)을 매칭시킬 수 있고, 메시지 분산 그룹 4(243)에 대해 000100011(242)을 매칭시킬 수 있고, 메시지 분산 그룹 5(253)에 대해 000010101(252)을 매칭시킬 수 있고, 메시지 분산 그룹 6(263)에 대해 000001110(262)을 매칭시킬 수 있고, 메시지 분산 그룹 7(273)에 대해 011000100(272)을 매칭시킬 수 있고, 메시지 분산 그룹 8(283)에 대해 101000010(282)을 매칭시킬 수 있고, 메시지 분산 그룹 9(293)에 대해 110000001(292)을 매칭시킬 수 있다.2, the sequence matching unit 116 may match 100011000 (212) to the message distribution group 1 (213), 010101000 (222) to the message distribution group 2 (223) , Match 001110000 (232) to message distribution group 3 233, match 000100011 (242) to message distribution group 4 243, match message distribution group 5 253 , Match 000001110 (262) to message distribution group 6 (263), 011000100 (272) to message distribution group 7 (273) , 101000010 (282) for message distribution group 8 (283), and 110000001 (292) for message distribution group 9 (293).

그러고 나서, 할당부(117)는 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293) 각각에 대해, 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293) 각각에 매칭되어 있는 각 시퀀스를 구성하는 9개의 코드 값에 기초하여 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"를 할당할 수 있는데, 할당부(117)는 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293) 각각에 매칭되어 있는 각 시퀀스를 구성하는 9개의 코드 값의 배열 순서와 9개의 메시지들 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 각각에 할당되어 있는 인덱스 값을 비교한 후 9개의 메시지들 "m1, m2, m3, m4, m5, m6, m7, m8, m9"에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 9개의 메시지들 "m1, m2, m3, m4, m5, m6, m7, m8, m9"를 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293)에 할당할 수 있다.The allocator 117 then allocates nine message distribution groups 213, 223, 233, and 233 for each of nine message distribution groups 213, 223, 233, 243, 253, 263, M 1 , m 2 , m 3 , m 4 , and m 5 , based on the nine code values constituting each sequence matched to each of the nine messages , m 6, m 7, m 8, m 9 "a may be assigned, assignment section 117 of the nine message distribution group (213, 223, 233, 243, 253, 263, 273, 283, 293) M 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , and m 9 , which are the nine code values that constitute each sequence, after comparing the index value assigned to each of 9 messages, and an index value assigned to the "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9" M 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 "can be assigned to nine message distribution groups 213, 223, 233, 243, 253, 263, 273, 283 and 293.

이때, 할당부(117)는 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293) 각각에 매칭되어 있는 각 시퀀스를 구성하는 9개의 코드 값 중 3개씩 존재하는 "1"의 코드 값을 확인한 후 9개의 메시지들 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 3개의 메시지들을 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293)에 할당할 수 있다.At this time, the assigning unit 117 assigns each of the nine code values constituting each sequence matched to each of the nine message distribution groups 213, 223, 233, 243, 253, 263, 273, 283, Code value of "1" among the nine messages "m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 " 233, 243, 253, 263, 273, 283, and 293 to which the index values corresponding to the arrangement order for the message distribution groups 213, 223, 233, 243, 253, 263, 273, 283, and 293 are assigned.

관련해서, 할당부(117)가 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293) 각각에 대해 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"를 분산 할당하는 과정을 각 메시지 분산 그룹들 별로 구분해서 설명하면 다음과 같다., Assignment section 117, the nine message distribution group (213, 223, 233, 243, 253, 263, 273, 283, 293) on to which are nine message "m 1, m 2, m 3 , respectively in connection , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 "are divided according to each message distribution group.

우선, 메시지 분산 그룹 1(213)에 대해서는 100011000(212)라는 시퀀스가 매칭되어 있기 때문에 할당부(117)는 100011000(212)로부터 "1"의 코드 값을 확인한 후 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 3개의 메시지들을 메시지 분산 그룹 1(213)에 할당할 수 있다.First, after for message distribution group 1 (213) from the allocation unit 117 100 011 000 212 Since the sequence of 100 011 000 212 matched checking the code of "1", which are the nine message "m 1, m 2, m 3, m 4 , m 5, m 6, m 7, m 8, m 9 "from" 1 "distributed three messages message with the index value to correspond with the arrangement order of the code value is assigned to the Group 1 (213).

관련해서, 100011000(212)에서는 "1"의 코드 값이 1번, 5번, 6번 위치에 배열되어 있기 때문에 할당부(117)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 1(213)에 대해 1번, 5번, 6번 위치에 대응하는 인덱스 값이 할당되어 있는 "m1, m5, m6"을 할당할 수 있다.2, since the code value of "1" is arranged at positions 1, 5, and 6 in the 100011000 (212), the allocation unit 117 allocates the message distribution group 1 (213) M 1 , m 5 , and m 6 "to which index values corresponding to positions 1, 5, and 6 are assigned to the indexes" 1 "," 5 ", and"

그리고, 메시지 분산 그룹 2(223)에 대해서는 010101000(222)라는 시퀀스가 매칭되어 있기 때문에 할당부(117)는 010101000(222)로부터 "1"의 코드 값을 확인한 후 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 3개의 메시지들을 메시지 분산 그룹 2(223)에 할당할 수 있다.Then, after for message distribution group 2 (223) from the allocation unit 117 010 101 000 222 Since the sequence of 010 101 000 222 matched verify the code value of "1", which are the nine message "m 1, m 2, m 3, m 4 , m 5, m 6, m 7, m 8, m 9 "from" 1 "distributed three messages message with the index value to correspond with the arrangement order of the code value is assigned to the Group 2 (223).

관련해서, 010101000(222)에서는 "1"의 코드 값이 2번, 4번, 6번 위치에 배열되어 있기 때문에 할당부(117)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 2(223)에 대해 2번, 4번, 6번 위치에 대응하는 인덱스 값이 할당되어 있는 "m2, m4, m6"을 할당할 수 있다.2, since the code value of "1" is arranged at positions 2, 4 and 6 in the 010101000222, the allocation unit 117 allocates the message distribution group 2 223, Quot; m 2 , m 4 , m 6 "to which the index values corresponding to the positions 2 , 4 , and 6 are assigned.

그리고, 메시지 분산 그룹 3(233)에 대해서는 001110000(232)라는 시퀀스가 매칭되어 있기 때문에 할당부(117)는 001110000(232)로부터 "1"의 코드 값을 확인한 후 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 3개의 메시지들을 메시지 분산 그룹 3(233)에 할당할 수 있다.Then, after for message distribution group 3 (233) from the allocation unit 117 001 110 000 232 Since the sequence of 001 110 000 232 matched verify the code value of "1", which are the nine message "m 1, m 2, m 3, m 4 , m 5, m 6, m 7, m 8, m 9 "from" 1 "distributed three messages message with the index value to correspond with the arrangement order of the code value is assigned to the Group 3 (233).

관련해서, 001110000(232)에서는 "1"의 코드 값이 3번, 4번, 5번 위치에 배열되어 있기 때문에 할당부(117)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 3(233)에 대해 3번, 4번, 5번 위치에 대응하는 인덱스 값이 할당되어 있는 "m3, m4, m5"를 할당할 수 있다.2, since the code value of "1" is arranged at positions 3, 4, and 5, the allocation unit 117 allocates the message distribution group 3 233, Quot; m 3 , m 4 , m 5 "to which index values corresponding to positions 3, 4, and 5 are assigned to the indexes.

그리고, 메시지 분산 그룹 4(243)에 대해서는 000100011(242)이라는 시퀀스가 매칭되어 있기 때문에 할당부(117)는 000100011(242)로부터 "1"의 코드 값을 확인한 후 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 3개의 메시지들을 메시지 분산 그룹 4(243)에 할당할 수 있다.Then, after for message distribution group 4 (243) from the allocation unit 117 000 100 011 242 Since the sequence of 000 100 011 242 matched verify the code value of "1", which are the nine message "m 1, m 2, m 3, m 4 , m 5, m 6, m 7, m 8, m 9 "from" 1 "distributed three messages message with the index value to correspond with the arrangement order of the code value is assigned to the Group 4 (243).

관련해서, 000100011(242)에서는 "1"의 코드 값이 4번, 8번, 9번 위치에 배열되어 있기 때문에 할당부(117)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 4(243)에 대해 4번, 8번, 9번 위치에 대응하는 인덱스 값이 할당되어 있는 "m4, m8, m9"를 할당할 수 있다.2, since the code value of "1" is arranged at positions 4, 8, and 9 in the 000100011 (242), the allocation unit 117 allocates the message distribution group 4 (243) Quot; m 4 , m 8 , m 9 "to which the index values corresponding to positions 4 , 8 , and 9 are assigned.

그리고, 메시지 분산 그룹 5(253)에 대해서는 000010101(252)이라는 시퀀스가 매칭되어 있기 때문에 할당부(117)는 000010101(252)로부터 "1"의 코드 값을 확인한 후 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 3개의 메시지들을 메시지 분산 그룹 5(253)에 할당할 수 있다.Then, after for messages distributed Group 5 253 from the allocation unit 117 000 010 101 252 Since the sequence of 000 010 101 252 matched verify the code value of "1", which are the nine message "m 1, m 2, m 3, m 4 , m 5, m 6, m 7, m 8, m 9 "from" 1 "distributed three messages message with the index value to correspond with the arrangement order of the code value is assigned to the Group 5 (253).

관련해서, 000010101(252)에서는 "1"의 코드 값이 5번, 7번, 9번 위치에 배열되어 있기 때문에 할당부(117)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 5(253)에 대해 5번, 7번, 9번 위치에 대응하는 인덱스 값이 할당되어 있는 "m5, m7, m9"를 할당할 수 있다.2, since the code value of "1" is arranged at positions 5, 7, and 9 in the 000010101 252, the allocation unit 117 allocates the message distribution group 5 253, Quot; m 5 , m 7 , m 9 "to which index values corresponding to positions 5 , 7 , and 9 are assigned.

그리고, 메시지 분산 그룹 6(263)에 대해서는 000001110(262)이라는 시퀀스가 매칭되어 있기 때문에 할당부(117)는 000001110(262)로부터 "1"의 코드 값을 확인한 후 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 3개의 메시지들을 메시지 분산 그룹 6(263)에 할당할 수 있다.Then, after for message distribution group 6 (263) from the allocation unit 117 000 001 110 262 Since the sequence of 000 001 110 262 matched checking the code of "1", which are the nine message "m 1, m 2, m 3, m 4 , m 5, m 6, m 7, m 8, m 9 "from" 1 "distributed three messages message with the index value to correspond with the arrangement order of the code value is assigned to the Group 6 (263).

관련해서, 000001110(262)에서는 "1"의 코드 값이 6번, 7번, 8번 위치에 배열되어 있기 때문에 할당부(117)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 6(263)에 대해 6번, 7번, 8번 위치에 대응하는 인덱스 값이 할당되어 있는 "m6, m7, m8"을 할당할 수 있다.2, since the code value of "1" is arranged at positions 6, 7 and 8 in the 000001110 262, the allocation unit 117 allocates the message distribution group 6 263, Quot; m 6 , m 7 , m 8 "to which the index values corresponding to the positions 6 , 7 , and 8 are assigned.

그리고, 메시지 분산 그룹 7(273)에 대해서는 011000100(272)이라는 시퀀스가 매칭되어 있기 때문에 할당부(117)는 011000100(272)로부터 "1"의 코드 값을 확인한 후 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 3개의 메시지들을 메시지 분산 그룹 7(273)에 할당할 수 있다.Then, after for messages distributed Group 7 (273) from the allocation unit 117 011 000 100 272 Since the sequence of 011 000 100 272 matched verify the code value of "1", which are the nine message "m 1, m 2, m 3, m 4 , m 5, m 6, m 7, m 8, m 9 "from" 1 "distributed three messages message with the index value to correspond with the arrangement order of the code value is assigned to the Group 7 (273).

관련해서, 011000100(272)에서는 "1"의 코드 값이 2번, 3번, 7번 위치에 배열되어 있기 때문에 할당부(117)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 7(273)에 대해 2번, 3번, 7번 위치에 대응하는 인덱스 값이 할당되어 있는 "m2, m3, m7"을 할당할 수 있다.2, since the code value of "1" is arranged at positions 2, 3, and 7 in 011000100272, the allocation unit 117 allocates the message distribution group 7 273, M 2 , m 3 , m 7 "to which the index values corresponding to the positions 2 , 3 , and 7 are assigned can be assigned.

그리고, 메시지 분산 그룹 8(283)에 대해서는 101000010(282)이라는 시퀀스가 매칭되어 있기 때문에 할당부(117)는 101000010(282)로부터 "1"의 코드 값을 확인한 후 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 3개의 메시지들을 메시지 분산 그룹 8(283)에 할당할 수 있다.Then, after for message distribution group 8 (283) from the allocation unit 117 101 000 010 282, because the sequence of 101 000 010 282 matched verify the code value of "1", which are the nine message "m 1, m 2, m 3, m 4 , m 5, m 6, m 7, m 8, m 9 "from" 1 "distributed three messages message with the index value to correspond with the arrangement order of the code value is assigned to the Group 8 (283).

관련해서, 101000010(282)에서는 "1"의 코드 값이 1번, 3번, 8번 위치에 배열되어 있기 때문에 할당부(117)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 8(283)에 대해 1번, 3번, 8번 위치에 대응하는 인덱스 값이 할당되어 있는 "m1, m3, m8"을 할당할 수 있다.2, since the code value of "1" is arranged at positions 1, 3 and 8 in the 101000010282, the allocation unit 117 allocates the message distribution group 8 (283) Quot; m 1 , m 3 , m 8 "to which index values corresponding to positions 1 , 3 ,

마지막으로, 메시지 분산 그룹 9(293)에 대해서는 110000001(292)이라는 시퀀스가 매칭되어 있기 때문에 할당부(117)는 110000001(292)로부터 "1"의 코드 값을 확인한 후 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 3개의 메시지들을 메시지 분산 그룹 9(293)에 할당할 수 있다.Finally, with respect to the message distribution group 9 (293) a sequence of 110 000 001 292 matched because assignment unit 117, which are the nine message after checking the code of "1" from 110 000 001 292 "m 1 , m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9 match the arrangement order of the code values of 1 "" from the "three messages messages that are assigned index values for Can be allocated to the distribution group 9 (293).

관련해서, 110000001(292)에서는 "1"의 코드 값이 1번, 2번, 9번 위치에 배열되어 있기 때문에 할당부(117)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 9(293)에 대해 1번, 2번, 9번 위치에 대응하는 인덱스 값이 할당되어 있는 "m1, m2, m9"를 할당할 수 있다.2, since the code value of "1" is arranged at positions 1, 2, and 9 in the 110000001 (292), the allocation unit 117 allocates the message distribution group 9 (293) M 1 , m 2 , m 9 "to which the index values corresponding to the positions 1 , 2 , and 9 are assigned.

이렇게, 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"가 모두 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293)에 3개씩 분산 할당이 완료되면, 데이터 저장부(113)는 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293) 각각에 할당되어 있는 3개의 메시지들을 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293) 별로 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291) 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장할 수 있다.In this way, the nine messages "m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 " are all nine message distribution groups 213, 223, 233, The data storage unit 113 stores nine message distribution groups 213, 223, 233, 243, 253, 263, 273, and 283 293 are allocated to the data stores 1 to 9 (211, 221, 231, and 231) by nine message distribution groups 213, 223, 233, 243, 253, 263, 241, 251, 261, 271, 281, and 291) in the data store corresponding to each message distribution group.

관련해서, 데이터 저장부(113)는 메시지 분산 그룹 1(213)에 할당되어 있는 3개의 메시지들인 "m1, m5, m6"을 대응되는 데이터 저장소인 데이터 저장소 1(211)에 저장할 수 있다.The data storage unit 113 can store the three messages "m 1 , m 5 , m 6 " assigned to the message distribution group 1 213 in the corresponding data store 1 (211) have.

그리고, 데이터 저장부(113)는 메시지 분산 그룹 2(223)에 할당되어 있는 3개의 메시지들인 "m2, m4, m6"을 대응되는 데이터 저장소인 데이터 저장소 2(221)에 저장할 수 있다.The data storage unit 113 may store the three messages "m 2 , m 4 , m 6 " assigned to the message distribution group 2 223 in the data store 2 221 as the corresponding data store .

그리고, 데이터 저장부(113)는 메시지 분산 그룹 3(233)에 할당되어 있는 3개의 메시지들인 "m3, m4, m5"를 대응되는 데이터 저장소인 데이터 저장소 3(231)에 저장할 수 있다.The data storage unit 113 may store the three messages "m 3 , m 4 , m 5 " assigned to the message distribution group 3 233 in the corresponding data store 3 231 .

그리고, 데이터 저장부(113)는 메시지 분산 그룹 4(243)에 할당되어 있는 3개의 메시지들인 "m4, m8, m9"를 대응되는 데이터 저장소인 데이터 저장소 4(241)에 저장할 수 있다.The data storage unit 113 may store in which are three messages that are assigned to the message distribution group 4 (243) "m 4, m 8, m 9" data store of the data store 4 241 corresponding to the .

그리고, 데이터 저장부(113)는 메시지 분산 그룹 5(253)에 할당되어 있는 3개의 메시지들인 "m5, m7, m9"를 대응되는 데이터 저장소인 데이터 저장소 5(251)에 저장할 수 있다.The data storage unit 113 may store the three messages "m 5 , m 7 , m 9 " assigned to the message distribution group 5 253 in the corresponding data store 5 (251) .

그리고, 데이터 저장부(113)는 메시지 분산 그룹 6(263)에 할당되어 있는 3개의 메시지들인 "m6, m7, m8"을 대응되는 데이터 저장소인 데이터 저장소 6(261)에 저장할 수 있다.The data storage unit 113 may store the three messages m 6 , m 7 , m 8 assigned to the message distribution group 6 263 in the corresponding data store 6 (261) .

그리고, 데이터 저장부(113)는 메시지 분산 그룹 7(273)에 할당되어 있는 3개의 메시지들인 "m2, m3, m7"을 대응되는 데이터 저장소인 데이터 저장소 7(271)에 저장할 수 있다.The data storage unit 113 may store the three messages "m 2 , m 3 , m 7 " assigned to the message distribution group 7 273 in the corresponding data store 7 (271) .

그리고, 데이터 저장부(113)는 메시지 분산 그룹 8(283)에 할당되어 있는 3개의 메시지들인 "m1, m3, m8"을 대응되는 데이터 저장소인 데이터 저장소 8(281)에 저장할 수 있다.The data storage unit 113 may store the three messages "m 1 , m 3 , m 8 " assigned to the message distribution group 8 (283) in the corresponding data repository 8 (281) .

마지막으로, 데이터 저장부(113)는 메시지 분산 그룹 9(293)에 할당되어 있는 3개의 메시지들인 "m1, m2, m9"를 대응되는 데이터 저장소인 데이터 저장소 9(291)에 저장할 수 있다.Finally, the data store 113 may store the three messages "m 1 , m 2 , m 9 " assigned to the message distribution group 9 (293) in the corresponding data store 9 (291) have.

이렇게, 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"가 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291)에 분산 저장이 완료되면, 추후 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"에 대해서 데이터 로드 명령이 인가됨에 따라 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"에 대한 데이터 로드를 수행할 때, 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291) 중에서 어느 3개의 데이터 저장소에만 액세스를 한 후 상기 3개의 데이터 저장소만에 저장되어 있는 메시지들을 추출하게 되면, 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 적어도 6개 이상의 메시지는 모두 추출되게 된다.The nine messages m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 and m 9 are stored in the data stores 1 to 9 211, 221, 231, 241, 251, 261, 271, 281, 291) when the distributed storage is complete, which are later the nine message "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9 to perform a data load on "the nine messages, which are as the data load instruction is for the" m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9 " , Messages are stored in only the three data stores after accessing only three data stores out of the data stores 1 to 9 (211, 221, 231, 241, 251, 261, 271, 281 and 291) When the nine messages, which are "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9" at least six or more messages are presented in both extracts.

왜냐하면, 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291)에는 각 시퀀스들(212, 222, 232, 242, 252, 262, 272, 282, 292)의 "1"의 코드 값에 따라서 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"가 분산 할당되어 저장되었고, 각 시퀀스들(212, 222, 232, 242, 252, 262, 272, 282, 292)의 특성상 상기 9개의 시퀀스들(212, 222, 232, 242, 252, 262, 272, 282, 292) 중 어느 3개의 시퀀스들 간에 "OR"논리 연산을 수행하게 되면, "1"의 코드 값이 항상 6개 이상이 나오기 때문에 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291) 중 어느 3개의 랜덤한 데이터 저장소로부터 각각 3개씩 메시지들을 모두 추출하게 되면, 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 적어도 6개 이상의 메시지들은 모두 확보하게 되는 것이다.This is because the data stores 1 to 9 (211, 221, 231, 241, 251, 261, 271, 281 and 291) The nine messages "m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 " are distributed and stored according to the code value of "1" The number of the three sequences 212, 222, 232, 242, 252, 262, 272, 282, 292 of the nine sequences 212, 222, 232, 242, Since the code value of "1" always comes out to 6 or more, if the "OR" logical operation is performed between the sequences, the data stores 1 to 9 (211, 221, 231, 241, 251, 261, 271, 281 and 291 M 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 8 , m 9 "at least six or more messages are those that are secured to both.

이로 인해서, 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"가 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291)에 분산 저장이 완료된 이후에 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"에 대한 로드 명령이 인가되면, 저장 메시지 추출부(119)는 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291) 중 데이터 트래픽이 가장 낮은 데이터 저장소 3개만을 랜덤하게 선택하여 3개의 데이터 저장소에 저장되어 있는 3개의 저장 데이터를 추출할 수 있고, 데이터 로드부(120)는 상기 3개의 데이터 저장소를 통해 추출된 각 저장 데이터를 기초로 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중 6개 이상의 메시지들을 빠르게 로드할 수 있다.This results, which includes the nine message "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9" by the data store 1 to 9 (211, 221, 231, 241 M 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , and m 9 after the distributed storage is completed The storage message extracting unit 119 extracts the storage message from the data storage 1 to 9 (211, 221, 231, 241, 251, 261, 271, 281, 291) The data loader 120 can extract three pieces of stored data stored in the three data stores, and the data loader 120 can load the nine messages M 6 , m 7 , m 8 , m 9 ", which are" m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 ".

이때, 만약 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"가 임의의 6개의 메시지들만으로 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"를 모두 복원할 수 있도록 구성된 (9, 6) MDS 코드인 경우, 데이터 로드부(120)는 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291) 중에서 랜덤하게 선택된 3개의 데이터 저장소들로부터 3개씩 저장 메시지가 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"에 할당된 인덱스 값을 비교하여 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되는 경우, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"에 대한 로드 명령에 따른 데이터로 로드할 수 있다.At this time, if the nine messages "m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 " (9, 6) MDS code configured to be able to restore all of 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 " If three stored messages are extracted from three randomly selected data stores among the data stores 1 to 9 (211, 221, 231, 241, 251, 261, 271, 281 and 291) , which are the index value and the nine messages in "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9" the nine messages by comparing the index value assigned to the which are when it is identified that the remaining messages that are not included in the the extracted stored messages of the "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9" presence Based on the extracted storage messages, W, which are messages recovered by the extracted storing messages and nine messages wherein the said repair residual message "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9 "To < / RTI >

관련해서, 상기 랜덤하게 선택된 3개의 데이터 저장소를 데이터 저장소 3(231), 데이터 저장소 5(251), 데이터 저장소 7(271)이라고 하면, 저장 메시지 추출부(119)는 데이터 저장소 3(231)로부터 "m3, m4, m5"를 추출할 수 있고, 데이터 저장소 5(251)로부터 "m5, m7, m9"을 추출할 수 있으며, 데이터 저장소 7(271)로부터 "m2, m3, m7"을 추출할 수 있다.In this regard, if the three randomly selected data stores are referred to as data storage 3 231, data storage 5 251 and data storage 7 271, the storage message extracting unit 119 extracts, from the data storage 3 231 "m 3, m 4, m 5" a and to extract, from the data storage 5 (251) "m 5, m 7, m 9" a and to extract, from the data store 7 (271) "m 2, m 3 , m 7 "can be extracted.

이로 인해, 저장 메시지 추출부(119)는 결국, 데이터 저장소 3(231), 데이터 저장소 5(251) 및 데이터 저장소 7(271)로부터 "m2, m3, m4, m5, m7, m9"를 추출해 낼 수 있다.Therefore, the stored message extraction section 119 from the end, the data storage 3 231, data store 5, 251 and the data store 7 (271) "m 2, m 3, m 4, m 5, m 7, m 9 "can be extracted.

이때, 데이터 로드부(120)는 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"에 할당되어 있는 인덱스 값과 상기 추출된 "m2, m3, m4, m5, m7, m9"에 할당되어 있는 인덱스 값을 서로 비교하여 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9" 중에서 상기 추출된 "m2, m3, m4, m5, m7, m9"에 포함되어 있지 않은 잔여 메시지를 확인할 수 있다.At this time, the data load unit 120 stores the index values assigned to the nine messages "m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 " extracted "m 2, m 3, m 4, m 5, m 7, m 9" above, which are the nine message "m 1, m 2, and the index value assigned to the comparison with each other m 3, m 4, m M 2 , m 3 , m 4 , m 5 , m 7 , m 9 "among the extracted messages" m 5 , m 6 , m 7 , m 8 , m 9 ".

관련해서, 본 실시예에서는 "m1, m6, m8"이 잔여 메시지이기 때문에 데이터 로드부(120)는 "m1, m6, m8"을 잔여 메시지로 확인한 후 (9, 6) MDS 코딩이 되어 있는 "m2, m3, m4, m5, m7, m9"로부터 "m1, m6, m8"을 복원해 낼 수 있다.In this embodiment, since "m 1 , m 6 , m 8 " is the remaining message, the data loading unit 120 checks (m 1 , m 6 , m 8 ) M 1 , m 6 , m 8 "can be restored from" m 2 , m 3 , m 4 , m 5 , m 7 , m 9 "

이로 인해, 결국, 데이터 로드부(120)는 상기 복원된 "m1, m6, m8"과 데이터 저장소 3(231), 데이터 저장소 5(251) 및 데이터 저장소 7(271)에서 추출된 "m2, m3, m4, m5, m7, m9"를 로드함으로써, 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"를 모두 로드해 낼 수 있다.Consequently, the data loading unit 120 stores the restored "m 1 , m 6 , m 8 & quot ;, the data stored in the data storage 3 231, the data storage 5 251 and the data storage 7 271, m 2, m 3, m 4 , m 5, m 7, m 9 " a, which are, of the nine messages by loading" m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8 , m 9 "can be loaded.

결국, 본 발명에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치(110)는 상기 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"를 2차원 원소를 갖는 군으로부터 생성된 상대 차집합에 기초하여 생성한 상기 제1 시퀀스와 상기 제2 시퀀스들에 따라 데이터 저장소 1~9(211, 221, 231, 241, 251, 261, 271, 281, 291)에 3개씩 분산 저장해 놓음으로써, 추후 데이터를 로드할 때, 오직 3개의 데이터 저장소에만 액세스하여 데이터를 복원해 낼 수 있기 때문에 메시지 분산 저장 시스템에 있어서 시스템 자원 활용의 효율성을 도모할 수 있다.As a result, the data distribution storage device 110 using the relative difference set generated from the group having two-dimensional elements according to the present invention stores the nine messages "m 1 , m 2 , m 3 , m 4 , m 5 , m 2 , m 3 , m 6 , m 7 , m 8 , m 9 "in accordance with the first sequence and the second sequences generated based on the relative difference set generated from the group having the two- 221, 231, 241, 251, 261, 271, 281, and 291. Thus, when data is loaded later, only three data stores can be accessed and data can be restored. The efficiency of utilization of system resources in the system can be improved.

도 3은 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법을 도시한 순서도이다.3 is a flowchart illustrating a data distribution storage method using a relative difference set generated from a group having two-dimensional elements according to an embodiment of the present invention.

단계(S310)에서는 N(N은 N=q2의 조건을 만족하는 자연수이고, q는 홀수인 소수임)개의 메시지들에 대해 N개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 N개의 데이터 저장소들에 대응하는 N개의 메시지 분산 그룹들을 생성한다.In step S310, when a distributed storage command to N data stores is applied to N (N is a natural number satisfying the condition of N = q 2 and q is a prime number of odd number) messages, And creates N message distribution groups corresponding to the data stores.

단계(S320)에서는 상기 N개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 q개씩 분산 할당(상기 N개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음)한다.In step S320, q messages are distributedly allocated to the N message distribution groups (messages distributed to the N message distribution groups may overlap each other).

단계(S330)에서는 상기 N개의 메시지 분산 그룹들 각각에 할당되어 있는 q개의 메시지들을 상기 N개의 메시지 분산 그룹들 별로, 상기 N개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장한다.In step S330, q messages allocated to each of the N message distribution groups are divided into N data distribution groups and stored in a data store corresponding to each message distribution group among the N data storage groups do.

이때, 본 발명의 일실시예에 따르면, 단계(S320)에서는 원소의 개수가 q개인 덧셈에 대한 군 Zq에 대해 K(K는

Figure 112016112563458-pat00040
으로 정의됨)에 상대적인 G(G는
Figure 112016112563458-pat00041
로 정의됨)의 상대 차집합 D(상기 상대 차집합 D는
Figure 112016112563458-pat00042
으로 정의되고, a=1이며, (q, q, q, 1)의 파라미터를 가짐)를 연산하고, 상기 상대 차집합 D에 포함되는 q개의 2차원 원소들에 기초하여 상기 G에 포함되어 있는 (i1, i2)(i1, i2는 모두 Zq에 포함되는 원소임)로 표현되는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 하나씩 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 생성하는 단계, 상기 G에 포함되어 있는 (i1, i2)로 표현되는 모든 2차원 원소들에 대해서 상기 상대 차집합 D의 우코셋을 연산하여 N-1개의 우코셋들을 생성한 후, 상기 N-1개의 우코셋들 각각에 포함되어 있는 q개의 2차원 원소들을 기초로 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 하나씩 할당하여 N개의 "1"과 "0"의 코드 값으로 구성된 시퀀스를 상기 N-1개의 우코셋들 각각에 대해 생성함으로써, N-1개의 제2 시퀀스들을 생성하는 단계, 상기 N개의 메시지 분산 그룹들 각각에 대해 상기 제1 시퀀스와 상기 N-1개의 제2 시퀀스들을 하나씩 매칭시키는 단계 및 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당하는 단계를 포함할 수 있다.At this time, according to an embodiment of the present invention, in step S320, for a group Z q for the addition of the number of elements q , K
Figure 112016112563458-pat00040
Relative to G (G)
Figure 112016112563458-pat00041
(The relative difference set D is defined as < RTI ID = 0.0 >
Figure 112016112563458-pat00042
(Q, q, q, 1), a = 1 and has parameters of (q, q, q, 1) quot; 1 "and" 0 "are assigned to the two-dimensional elements represented by (i 1 , i 2 ) (i 1 and i 2 are elements included in Z q ) (I 1 , i 2 ) included in the G, and generating a first sequence composed of code values of "1" and "0" (I 1 , i 2 ) included in the G based on q 2-dimensional elements included in each of the N-1 uxcosets, Quot; 1 " and " 0 "are assigned to each of the N-1 code elements and the N-1 code elements, Generating N-1 second sequences by matching the first sequence and the N-1 second sequences one by one for each of the N message distribution groups, For each of the groups, distributing the N messages in a q-basis based on N code values constituting each sequence matched to each of the N message distribution groups.

이때, 본 발명의 일실시예에 따르면, 상기 제1 시퀀스를 생성하는 단계는 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상기 상대 차집합 D에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상기 상대 차집합 D에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 상기 제1 시퀀스를 생성할 수 있고, 상기 N-1개의 제2 시퀀스들을 생성하는 단계는 상기 N-1개의 우코셋들 각각에 대해, 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상기 N-1개의 우코셋들 각각에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상기 N-1개의 우코셋들 각각에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 상기 제2 시퀀스들을 N-1개 생성할 수 있다.According to an embodiment of the present invention, the step of generating the first sequence may include: q (q i, q i) contained in the relative difference set D among the two-dimensional elements represented by (i 1 , i 2 ) 1 "and" 0 "are assigned to the remaining two-dimensional elements not included in the relative difference set D, by allocating a code value of"Quot; 0 "code value, and generating the N-1 second sequences may include generating, for each of the N-1 uxcodes, 1, i 2) two-dimensional element from among the N-1 of the right koset each q of the two-dimensional assigned a code value of "1" for the elements, and wherein the N-1 of the right koset included in, represented by Quot; 0 "code by assigning a code value of" 0 "to the remaining two-dimensional elements not included in each of the N & 1 < / RTI >

또한, 본 발명의 일실시예에 따르면, 단계(S320)에서는 상기 N개의 메시지들 각각에 대해 순번 정보와 연관된 인덱스 값을 할당하는 단계를 더 포함할 수 있다.According to an embodiment of the present invention, the step S320 may further comprise the step of assigning an index value associated with the order information to each of the N messages.

이때, 상기 N개의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당하는 단계는 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당할 수 있다.The step of distributing the N messages based on the N code values may include arranging each sequence matched to each of the N message distribution groups for each of the N message distribution groups The N number of messages is compared with the index value assigned to each of the N messages, and the N number of messages are compared with the index values assigned to the N messages, Can be distributed by q.

이때, 본 발명의 일실시예에 따르면, 상기 N개의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당하는 단계는 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값 중 q개씩 존재하는 "1"의 코드 값을 확인한 후, 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지들 중 상기 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 q개의 메시지들을 분산 할당할 수 있다.In this case, according to an embodiment of the present invention, the step of distributing the N messages based on the N code values may include allocating, for each of the N message distribution groups, the N message distribution groups 1 "among the N number of code values constituting each sequence matched with the code value of " 1 ", and for each of the N message distribution groups, Q messages with allocated index values matching the array order of code values can be distributed.

또한, 본 발명의 일실시예에 따르면, 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법은 상기 N개의 데이터 저장소들에 상기 N개의 메시지들이 q개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드 명령이 인가되면, 상기 로드 명령에 기초하여 상기 N개의 데이터 저장소들 중 q개의 데이터 저장소들을 랜덤하게 선택하고, 상기 q개의 데이터 저장소들 각각으로부터 상기 q개의 데이터 저장소들 각각에 저장되어 있는 q개의 저장 메시지들을 추출하는 단계 및 상기 q개의 데이터 저장소들 각각으로부터 q개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 단계를 더 포함할 수 있다.According to another aspect of the present invention, there is provided a data distribution storage method using a relative difference set generated from a group having two-dimensional elements, the method comprising: after q pieces of N messages are dispersedly stored in the N data stores, Randomly selecting q of the N data stores based on the load command when the load command for N messages is granted, and selecting, from each of the q data stores, the q data stores And loading the stored messages extracted from each of the q data stores into the data corresponding to the load command for the N messages, .

이때, 본 발명의 일실시예에 따르면, 상기 N개의 메시지들은 일부 메시지의 손실이 발생할 경우, 나머지 메시지들을 기초로 손실 메시지들의 복구가 가능한 MDS 코드이고, 상기 로드하는 단계는 상기 q개의 데이터 저장소들 각각으로부터 q개씩 저장 메시지들이 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 N개의 메시지들에 할당된 인덱스 값을 비교하여 상기 N개의 메시지들 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되면, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드할 수 있다.According to an embodiment of the present invention, the N messages are MDS codes capable of recovering lost messages based on remaining messages when a loss of some messages occurs, When the stored messages are extracted from each of the N messages, the index value assigned to the extracted stored messages is compared with the index value assigned to the N messages to be included in the extracted stored messages among the N messages If it is determined that there is a remaining message that is not yet available, restores the remaining message based on the extracted stored messages, and stores the extracted stored messages and the restored remaining message according to a load command for the N messages You can load it as data.

이상, 도 3을 참조하여 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법은 도 1과 도 2를 이용하여 설명한 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.The data distribution storage method using the relative difference set generated from the group having two-dimensional elements according to an embodiment of the present invention has been described above with reference to FIG. Here, a data distribution storage method using a relative difference set generated from a group having a two-dimensional element according to an embodiment of the present invention is a method for storing a relative difference set using a relative difference generated from a group having two- And the operation of the data distributed storage device 110 using the set can be corresponded to the configuration of the data distributed storage device 110, so a detailed description thereof will be omitted.

본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.A data distribution storage method using a relative difference set generated from a group having two-dimensional elements according to an embodiment of the present invention can be implemented by a computer program stored in a storage medium for execution through a combination with a computer.

또한, 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, the data distribution storage method using the relative difference set generated from the group having two-dimensional elements according to an embodiment of the present invention may be implemented in a form of a program command that can be executed through various computer means, Lt; / RTI > The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. As described above, the present invention has been described with reference to particular embodiments, such as specific elements, and specific embodiments and drawings. However, it should be understood that the present invention is not limited to the above- And various modifications and changes may be made thereto by those skilled in the art to which the present invention pertains.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .

110: 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치
111: 분산 그룹 생성부 112: 메시지 분산 할당부
113: 데이터 저장부 114: 제1 시퀀스 생성부
115: 제2 시퀀스 생성부 116: 시퀀스 매칭부
117: 할당부 118: 인덱스 할당부
119: 저장 메시지 추출부 120: 데이터 로드부
101, 102, 103: N개의 데이터 저장소들
110: Data Distributed Storage using Relative Difference Generated from Groups with Two Dimensional Elements
111: distributed group generation unit 112: message distribution assignment unit
113: Data storage unit 114: First sequence generator
115: second sequence generation unit 116: sequence matching unit
117: allocation unit 118: index allocation unit
119: storage message extracting unit 120: data loading unit
101, 102, 103: N data stores

Claims (16)

N - N은 N=q2의 조건을 만족하는 자연수이고, q는 홀수인 소수임 - 개의 메시지들에 대해 N개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 N개의 데이터 저장소들에 대응하는 N개의 메시지 분산 그룹들을 생성하는 분산 그룹 생성부;
상기 N개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 q개씩 분산 할당 - 상기 N개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 메시지 분산 할당부; 및
상기 N개의 메시지 분산 그룹들 각각에 할당되어 있는 q개의 메시지들을 상기 N개의 메시지 분산 그룹들 별로, 상기 N개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 데이터 저장부
를 포함하고,
상기 메시지 분산 할당부는
원소의 개수가 q개인 덧셈에 대한 군(Group) Zq에 대해 K - K는
Figure 112018002631836-pat00043
으로 정의됨 - 에 상대적인 G - G는
Figure 112018002631836-pat00044
로 정의됨 - 의 상대 차집합 D - 상기 상대 차집합 D는
Figure 112018002631836-pat00045
으로 정의되고, a=1이며, (q, q, q, 1)의 파라미터를 가짐 - 를 연산하고, 상기 상대 차집합 D에 포함되는 q개의 2차원 원소들에 기초하여 상기 G에 포함되어 있는 (i1, i2) - i1, i2는 모두 Zq에 포함되는 원소임 - 로 표현되는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 하나씩 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 생성하는 제1 시퀀스 생성부;
상기 G에 포함되어 있는 (i1, i2)로 표현되는 모든 2차원 원소들에 대해서 상기 상대 차집합 D의 우코셋(right coset)을 연산하여 N-1개의 우코셋들을 생성한 후, 상기 N-1개의 우코셋들 각각에 포함되어 있는 q개의 2차원 원소들을 기초로 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 하나씩 할당하여 N개의 "1"과 "0"의 코드 값으로 구성된 시퀀스를 상기 N-1개의 우코셋들 각각에 대해 생성함으로써, N-1개의 제2 시퀀스들을 생성하는 제2 시퀀스 생성부;
상기 N개의 메시지 분산 그룹들 각각에 대해 상기 제1 시퀀스와 상기 N-1개의 제2 시퀀스들을 하나씩 매칭시키는 시퀀스 매칭부; 및
상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당하는 할당부
를 포함하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치.
N - N is a natural number satisfying the condition of N = q 2 , and q is a prime number of odd number. When a distributed storage command is applied to N data stores for the messages, A distribution group generation unit for generating N message distribution groups;
And distributing the N messages to each of the N message distribution groups by q, wherein messages distributedly distributed to the N message distribution groups may overlap each other; And
A data storage unit for separating and storing q messages allocated to each of the N message distribution groups into N data distribution groups and a data storage corresponding to each message distribution group among the N data storage groups,
Lt; / RTI >
The message distribution assignment unit
For a group Z q of additions with a q number of elements, K - K is
Figure 112018002631836-pat00043
Defined as - relative to G-G
Figure 112018002631836-pat00044
- the relative difference set D - the relative difference set D
Figure 112018002631836-pat00045
(Q, q, q, 1), a = 1 and having a parameter of (q, q, q, 1) (i 1, i 2) - i 1, i 2 are both circle hydrogen contained in Z q -, by "1" and "0" is assigned a code value of one for the two-dimensional element, represented by, N of " 1 "and" 0 "code values;
The right coset of the relative difference set D is calculated for all the two-dimensional elements represented by (i 1 , i 2 ) included in the G to generate N-1 right co-sets, 1 "and "0" for two-dimensional elements represented by (i 1 , i 2 ) included in G based on q two-dimensional elements included in each of the N- Generating a second sequence by generating N-1 second sequences by generating a sequence consisting of N code values of "1" and "0 "part;
A sequence matching unit for matching the first sequence and the N-1 second sequences one by one for each of the N message distribution groups; And
For each of the N message distribution groups, an allocation unit for distributing the N messages by q, based on N code values constituting each sequence matched to each of the N message distribution groups,
And a relative difference set generated from the group having two-dimensional elements including the two-dimensional elements.
삭제delete 제1항에 있어서,
상기 제1 시퀀스 생성부는
상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상기 상대 차집합 D에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상기 상대 차집합 D에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 상기 제1 시퀀스를 생성하고,
상기 제2 시퀀스 생성부는
상기 N-1개의 우코셋들 각각에 대해, 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상기 N-1개의 우코셋들 각각에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상기 N-1개의 우코셋들 각각에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 상기 제2 시퀀스들을 N-1개 생성하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치.
The method according to claim 1,
The first sequence generator
Assigns a code value of "1" to q two-dimensional elements included in the relative difference set D among the two-dimensional elements represented by (i 1 , i 2 ) included in the G, By assigning a code value of "0 " to remaining two-dimensional elements not included in the set D, generates the first sequence composed of N code values of" 1 &
The second sequence generator
And for each of the N-1 uxcosets, q q 2-dimensional elements contained in each of the N-1 uxcosets among the two-dimensional elements represented by (i 1 , i 2 ) Quot; 1 "and" 1 "are assigned to the remaining two-dimensional elements not included in each of the N-1 &Quot; 0 "and a code value of " 0 ".
제1항에 있어서,
상기 메시지 분산 할당부는
상기 N개의 메시지들 각각에 대해 순번 정보와 연관된 인덱스 값을 할당하는 인덱스 할당부
를 더 포함하고,
상기 할당부는
상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치.
The method according to claim 1,
The message distribution assignment unit
An index assigning unit for assigning an index value associated with the order information to each of the N messages,
Further comprising:
The assigning unit
For each of the N message distribution groups, an arrangement order of N code values constituting each sequence matched to each of the N message distribution groups is compared with an index value assigned to each of the N messages. And a data using a relative difference set generated from a group having a two-dimensional element for distributing the N messages by q, based on a code value of an array order corresponding to an index value assigned to the N messages Distributed storage.
제4항에 있어서,
상기 할당부는
상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값 중 q개씩 존재하는 "1"의 코드 값을 확인한 후, 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지들 중 상기 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 q개의 메시지들을 분산 할당하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치.
5. The method of claim 4,
The assigning unit
For each of the N message distribution groups, a code value of "1 " existing in q among N code values constituting each sequence matched to each of the N message distribution groups is checked, For each of the message distribution groups, q messages having a two-dimensional element for distributing q messages allocated with an index value corresponding to the code value of the "1" Data distributed storage using relative difference sets.
제5항에 있어서,
상기 N개의 데이터 저장소들에 상기 N개의 메시지들이 q개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드(load) 명령이 인가되면, 상기 로드 명령에 기초하여 상기 N개의 데이터 저장소들 중 q개의 데이터 저장소들을 랜덤하게 선택하고, 상기 q개의 데이터 저장소들 각각으로부터 상기 q개의 데이터 저장소들 각각에 저장되어 있는 q개의 저장 메시지들을 추출하는 저장 메시지 추출부; 및
상기 q개의 데이터 저장소들 각각으로부터 q개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 데이터 로드부
를 더 포함하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치.
6. The method of claim 5,
Wherein when a load command for the N messages is applied after the N messages are distributedly distributed in the N data stores, q data of the N data stores based on the load command, A store message extractor for randomly selecting stores and for extracting q stored messages stored in each of the q data stores from each of the q data stores; And
A data load unit for loading stored messages extracted from each of the q data stores into data corresponding to a load command for the N messages,
And a second difference element having a second difference value.
제6항에 있어서,
상기 N개의 메시지들은 일부 메시지의 손실이 발생할 경우, 나머지 메시지들을 기초로 손실 메시지들의 복구가 가능한 최대 거리 분리 가능(Maximum Distance Separable: MDS) 코드이고,
상기 데이터 로드부는
상기 q개의 데이터 저장소들 각각으로부터 q개씩 저장 메시지들이 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 N개의 메시지들에 할당된 인덱스 값을 비교하여 상기 N개의 메시지들 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되면, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치.
The method according to claim 6,
The N messages are Maximum Distance Separable (MDS) codes capable of recovering lost messages based on remaining messages when loss of some messages occurs,
The data loading unit
When the stored messages are extracted from each of the q data stores, the index value assigned to the extracted stored messages is compared with the index value assigned to the N messages, Recovering the stored messages based on the extracted stored messages and storing the extracted stored messages and the recovered residual messages in the N messages Dimensional element loaded with data according to a load instruction to the data storage device.
N - N은 N=q2의 조건을 만족하는 자연수이고, q는 홀수인 소수임 - 개의 메시지들에 대해 N개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 N개의 데이터 저장소들에 대응하는 N개의 메시지 분산 그룹들을 생성하는 단계;
상기 N개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 q개씩 분산 할당 - 상기 N개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 단계; 및
상기 N개의 메시지 분산 그룹들 각각에 할당되어 있는 q개의 메시지들을 상기 N개의 메시지 분산 그룹들 별로, 상기 N개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 단계
를 포함하고,
상기 N개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 q개씩 분산 할당하는 단계는
원소의 개수가 q개인 덧셈에 대한 군(Group) Zq에 대해 K - K는
Figure 112018002631836-pat00046
으로 정의됨 - 에 상대적인 G - G는
Figure 112018002631836-pat00047
로 정의됨 - 의 상대 차집합 D - 상기 상대 차집합 D는
Figure 112018002631836-pat00048
으로 정의되고, a=1이며, (q, q, q, 1)의 파라미터를 가짐 - 를 연산하고, 상기 상대 차집합 D에 포함되는 q개의 2차원 원소들에 기초하여 상기 G에 포함되어 있는 (i1, i2) - i1, i2는 모두 Zq에 포함되는 원소임 - 로 표현되는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 하나씩 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 생성하는 단계;
상기 G에 포함되어 있는 (i1, i2)로 표현되는 모든 2차원 원소들에 대해서 상기 상대 차집합 D의 우코셋(right coset)을 연산하여 N-1개의 우코셋들을 생성한 후, 상기 N-1개의 우코셋들 각각에 포함되어 있는 q개의 2차원 원소들을 기초로 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 하나씩 할당하여 N개의 "1"과 "0"의 코드 값으로 구성된 시퀀스를 상기 N-1개의 우코셋들 각각에 대해 생성함으로써, N-1개의 제2 시퀀스들을 생성하는 단계;
상기 N개의 메시지 분산 그룹들 각각에 대해 상기 제1 시퀀스와 상기 N-1개의 제2 시퀀스들을 하나씩 매칭시키는 단계; 및
상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당하는 단계
를 포함하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법.
N - N is a natural number satisfying the condition of N = q 2 , and q is a prime number of odd number. When a distributed storage command is applied to N data stores for the messages, Creating N message distribution groups;
Distributing the N messages for each of the N message distribution groups by q; messages distributedly distributed to the N message distribution groups may overlap each other; And
Separating and storing q messages allocated to each of the N message distribution groups into a data store corresponding to each message distribution group among the N message storage groups for each of the N message distribution groups
Lt; / RTI >
The step of distributing the N messages by q for each of the N message distribution groups
For a group Z q of additions with a q number of elements, K - K is
Figure 112018002631836-pat00046
Defined as - relative to G-G
Figure 112018002631836-pat00047
- the relative difference set D - the relative difference set D
Figure 112018002631836-pat00048
(Q, q, q, 1), a = 1 and having a parameter of (q, q, q, 1) (i 1, i 2) - i 1, i 2 are both circle hydrogen contained in Z q -, by "1" and "0" is assigned a code value of one for the two-dimensional element, represented by, N of " Generating a first sequence of code values of " 1 "and" 0 ";
The right coset of the relative difference set D is calculated for all the two-dimensional elements represented by (i 1 , i 2 ) included in the G to generate N-1 right co-sets, 1 "and "0" for two-dimensional elements represented by (i 1 , i 2 ) included in G based on q two-dimensional elements included in each of the N- Generating N-1 second sequences by generating a sequence of code values of N "1" and "0 " by assigning one code value to each of the N-1 uxcodes;
Matching the first sequence and the N-1 second sequences one by one for each of the N message distribution groups; And
Distributing, for each of the N message distribution groups, q messages of N messages based on N code values constituting each sequence matched to each of the N message distribution groups
And a second set of two-dimensional elements including the second set of elements.
삭제delete 제8항에 있어서,
상기 제1 시퀀스를 생성하는 단계는
상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상기 상대 차집합 D에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상기 상대 차집합 D에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 상기 제1 시퀀스를 생성하고,
상기 N-1개의 제2 시퀀스들을 생성하는 단계는
상기 N-1개의 우코셋들 각각에 대해, 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상기 N-1개의 우코셋들 각각에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상기 N-1개의 우코셋들 각각에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 상기 제2 시퀀스들을 N-1개 생성하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법.
9. The method of claim 8,
The step of generating the first sequence
Assigns a code value of "1" to q two-dimensional elements included in the relative difference set D among the two-dimensional elements represented by (i 1 , i 2 ) included in the G, By assigning a code value of "0 " to remaining two-dimensional elements not included in the set D, generates the first sequence composed of N code values of" 1 &
Wherein generating the N-1 second sequences comprises:
And for each of the N-1 uxcosets, q q 2-dimensional elements contained in each of the N-1 uxcosets among the two-dimensional elements represented by (i 1 , i 2 ) Quot; 1 "and" 1 "are assigned to the remaining two-dimensional elements not included in each of the N-1 &Quot; 0 "and a code value of " 0 " to generate N-1 second sequences.
제8항에 있어서,
상기 N개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 q개씩 분산 할당하는 단계는
상기 N개의 메시지들 각각에 대해 순번 정보와 연관된 인덱스 값을 할당하는 단계
를 더 포함하고,
상기 N개의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당하는 단계는
상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법.
9. The method of claim 8,
The step of distributing the N messages by q for each of the N message distribution groups
Assigning an index value associated with the order information to each of the N messages
Further comprising:
The step of distributing the N messages by q, based on the N code values,
For each of the N message distribution groups, an arrangement order of N code values constituting each sequence matched to each of the N message distribution groups is compared with an index value assigned to each of the N messages. And a data using a relative difference set generated from a group having a two-dimensional element for distributing the N messages by q, based on a code value of an array order corresponding to an index value assigned to the N messages Distributed storage method.
제11항에 있어서,
상기 N개의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당하는 단계는
상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값 중 q개씩 존재하는 "1"의 코드 값을 확인한 후, 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지들 중 상기 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 q개의 메시지들을 분산 할당하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법.
12. The method of claim 11,
The step of distributing the N messages by q, based on the N code values,
For each of the N message distribution groups, a code value of "1 " existing in q among N code values constituting each sequence matched to each of the N message distribution groups is checked, For each of the message distribution groups, q messages having a two-dimensional element for distributing q messages allocated with an index value corresponding to the code value of the "1" A method of data distribution storage using relative difference sets.
제12항에 있어서,
상기 N개의 데이터 저장소들에 상기 N개의 메시지들이 q개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드(load) 명령이 인가되면, 상기 로드 명령에 기초하여 상기 N개의 데이터 저장소들 중 q개의 데이터 저장소들을 랜덤하게 선택하고, 상기 q개의 데이터 저장소들 각각으로부터 상기 q개의 데이터 저장소들 각각에 저장되어 있는 q개의 저장 메시지들을 추출하는 단계; 및
상기 q개의 데이터 저장소들 각각으로부터 q개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 단계
를 더 포함하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법.
13. The method of claim 12,
Wherein when a load command for the N messages is applied after the N messages are distributedly distributed in the N data stores, q data of the N data stores based on the load command, Randomly selecting repositories and extracting q stored messages stored in each of the q data repositories from each of the q data repositories; And
Loading the stored messages extracted from each of the q data stores into q corresponding to a load command for the N messages
And a second set of two-dimensional elements further comprising a second set of two-dimensional elements.
제13항에 있어서,
상기 N개의 메시지들은 일부 메시지의 손실이 발생할 경우, 나머지 메시지들을 기초로 손실 메시지들의 복구가 가능한 최대 거리 분리 가능(Maximum Distance Separable: MDS) 코드이고,
상기 로드하는 단계는
상기 q개의 데이터 저장소들 각각으로부터 q개씩 저장 메시지들이 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 N개의 메시지들에 할당된 인덱스 값을 비교하여 상기 N개의 메시지들 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되면, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 방법.
14. The method of claim 13,
The N messages are Maximum Distance Separable (MDS) codes capable of recovering lost messages based on remaining messages when loss of some messages occurs,
The loading step
When the stored messages are extracted from each of the q data stores, the index value assigned to the extracted stored messages is compared with the index value assigned to the N messages, Recovering the stored messages based on the extracted stored messages and storing the extracted stored messages and the recovered residual messages in the N messages Dimensional element loaded with data according to a load instruction for the data to be distributed.
제8항, 제10항, 제11항, 제12항, 제13항 또는 제14항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium recording a program for performing the method of any one of claims 8, 10, 11, 12, 13, 제8항, 제10항, 제11항, 제12항, 제13항 또는 제14항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.A computer program stored in a storage medium for executing the method of any one of claims 8, 10, 11, 12, 13 or 14 in combination with a computer.
KR1020160153745A 2016-11-18 2016-11-18 Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element KR101873879B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160153745A KR101873879B1 (en) 2016-11-18 2016-11-18 Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160153745A KR101873879B1 (en) 2016-11-18 2016-11-18 Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element

Publications (2)

Publication Number Publication Date
KR20180056038A KR20180056038A (en) 2018-05-28
KR101873879B1 true KR101873879B1 (en) 2018-07-03

Family

ID=62451239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160153745A KR101873879B1 (en) 2016-11-18 2016-11-18 Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element

Country Status (1)

Country Link
KR (1) KR101873879B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200104034A (en) * 2019-02-26 2020-09-03 전남대학교산학협력단 Data distribution storage apparatus and method using partitioned iteration code

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471837A (en) * 2018-10-08 2019-03-15 国网经济技术研究院有限公司 The distributed storage method of power infrastructures data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101460062B1 (en) * 2013-06-21 2014-11-10 한국항공대학교산학협력단 System for storing distributed video file in HDFS(Hadoop Distributed File System), video map-reduce system and providing method thereof
JP6231020B2 (en) * 2012-02-13 2017-11-15 オラクル・インターナショナル・コーポレイション Coordinating processes in a cloud computing environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6231020B2 (en) * 2012-02-13 2017-11-15 オラクル・インターナショナル・コーポレイション Coordinating processes in a cloud computing environment
KR101460062B1 (en) * 2013-06-21 2014-11-10 한국항공대학교산학협력단 System for storing distributed video file in HDFS(Hadoop Distributed File System), video map-reduce system and providing method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200104034A (en) * 2019-02-26 2020-09-03 전남대학교산학협력단 Data distribution storage apparatus and method using partitioned iteration code
KR102197993B1 (en) 2019-02-26 2021-01-04 전남대학교산학협력단 Data distribution storage apparatus and method using partitioned iteration code

Also Published As

Publication number Publication date
KR20180056038A (en) 2018-05-28

Similar Documents

Publication Publication Date Title
US10747780B2 (en) Blockchain-based data processing method and device
US10778441B2 (en) Redactable document signatures
US9195392B2 (en) Distributed storage method, apparatus, and system
US7774581B2 (en) Apparatus for compressing instruction word for parallel processing VLIW computer and method for the same
CN110930145B (en) Cold wallet generation method, transaction information processing method, device and storage medium
US9864550B2 (en) Method and apparatus of recovering and encoding for data recovery in storage system
US10831738B2 (en) Parallelized in-place radix sorting
KR101873879B1 (en) Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element
US9479327B2 (en) Apparatus and method for generating key
KR101428649B1 (en) Encryption system for mass private information based on map reduce and operating method for the same
KR102306676B1 (en) Method and system for generating host keys for storage devices
US9858040B2 (en) Parallelized in-place radix sorting
CN106658034A (en) File storage and reading method and device
KR101873878B1 (en) Data storage apparatus and method for storing a message dispersedly based on relative difference set
KR101893566B1 (en) Data distribution storage apparatus and method using cyclic difference family
KR102197993B1 (en) Data distribution storage apparatus and method using partitioned iteration code
CN108243207A (en) A kind of date storage method of network cloud disk
CN110196952A (en) Search processing method, device, equipment and the storage medium of program code
KR101738415B1 (en) Data storage apparatus and method for storing a message dispersedly
CN106383664B (en) Date storage method and device
CN112181974B (en) Identification information distribution method, system and storage device
KR101977119B1 (en) Data distribution storage apparatus and method using difference covering arrays
CN112306457A (en) Random number generation method and device
CN106293993A (en) Avoid the method and device repeating to process file
Salakos et al. Analysis and Comparison of Binary and Interpolation Search Algorithms in a B-tree

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant