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 PDFInfo
- 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
Links
Images
Classifications
-
- G06F17/30194—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex 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
본 발명은 데이터의 손실이 발생하였을 때, 데이터의 복구가 용이하도록 다수의 데이터 저장소들에 다수의 메시지들을 분산해서 저장하는 기법에 대한 기술과 관련된다.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
분산 그룹 생성부(111)는 N개의 메시지들에 대해 N개의 데이터 저장소들(101, 102, 103)로의 분산 저장 명령이 인가되면, N개의 데이터 저장소들(101, 102, 103)에 대응하는 N개의 메시지 분산 그룹들을 생성한다.The distributed
여기서, 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
메시지 분산 할당부(112)는 상기 N개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 q개씩 분산 할당한다.The message
이때, 상기 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
이때, 본 발명의 일실시예에 따르면, 메시지 분산 할당부(112)는 제1 시퀀스 생성부(114), 제2 시퀀스 생성부(115), 시퀀스 매칭부(116) 및 할당부(117)를 포함할 수 있다.According to an embodiment of the present invention, the message
제1 시퀀스 생성부(114)는 원소의 개수가 q개인 덧셈에 대한 군(Group) Zq에 대해 K(K는 으로 정의됨)에 상대적인 G(G는 로 정의됨)의 상대 차집합 D(상기 상대 차집합 D는 으로 정의되고, a=1이며, (q, q, q, 1)의 파라미터를 가짐)를 연산하고, 상기 상대 차집합 D에 포함되는 q개의 2차원 원소들에 기초하여 상기 G에 포함되어 있는 (i1, i2)(i1, i2는 모두 Zq에 포함되는 원소임)로 표현되는 2차원 원소들에 대해 "1"과 "0"의 코드 값을 하나씩 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 생성한다.The
이때, 제1 시퀀스 생성부(114)는 상기 G에 포함되어 있는 (i1, i2)로 표현되는 2차원 원소들 중 상기 상대 차집합 D에 포함되는 q개의 2차원 원소들에 대해 "1"의 코드 값을 할당하고, 상기 상대 차집합 D에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당함으로써, N개의 "1"과 "0"의 코드 값으로 구성된 상기 제1 시퀀스를 생성할 수 있다.At this time, the
그리고, 제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
이때, 제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
여기서, 상대 차집합(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.
이때, q가 홀수인 소수일 때, Zq를 덧셈에 대한 군이라 하고, , 라 정의하면, 이때, 에 대해 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, , In this case, 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).
여기서, 상대 차집합 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)을 갖는 상대 차집합 가 있을 때, 에 포함되어 있는 2차원 원소인 (i1, i2)에 대한 상대 차집합 D의 우코셋은 상대 차집합 D에 포함되어 있는 q개의 2차원 원소들인 각각에 대해 아래의 수학식 2와 같이 를 연산함으로써 생성된 q개의 2차원 원소들로 구성될 수 있다.In the case of the right co-set, a relative difference set having parameters (q, q, q, 1) Lt; / RTI > 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 As shown in the following Equation 2, Dimensional elements that are generated by computing q.
이러한 방식으로, 상대 차집합 D의 우코셋은 G에 포함되어 있는 각각(은 제외)에 대해서 상기 수학식 2와 같은 연산을 수행함으로써, 총 q2-1개가 생성될 수 있다.In this way, the right co-set of the relative difference set D is included in G each( , 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와 이라는 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 RTI ID = 0.0 > N-1 < / RTI >
이렇게, 상대 차집합 D와 이라는 N-1개의 우코셋들이 생성되었을 때, 상대 차집합 D와 이라는 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 When the N-1 right cosets are generated, the relative difference set D (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"의 코드 값의 개수는 항상 개 이상이 되고, "0"의 코드 값의 개수는 항상 개 이하가 되는 특징을 가지고 있다.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" , And the number of code values of "0" Or less.
예컨대, q=3이라고 가정하면, 원소의 개수가 3개인 덧셈에 대한 군인 이고, 이므로, 상기 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에 따라 연산되는 상대 차집합 가 되며, 상대 차집합 D의 파라미터는 (3, 3, 3, 1)이 될 수 있다.For example, assuming that q = 3, the number of elements ego, 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) , 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)일 경우는 제외)하면, 가 생성되고, 여기서, 첫 번째 우코셋이 이기 때문에 G에 포함되어 있는 2차원 원소들인 (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2) 중 에 포함되는 3개의 2차원 원소인 (0, 1), (1, 0), (1, 2)에 대해 "1"의 코드 값을 할당하고, 에 포함되지 않는 나머지 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) Is generated, where the first right coset is < RTI ID = 0.0 > (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2) A code value of "1" is assigned to (0, 1), (1, 0), (1, 2) 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"
이러한 방식으로, 나머지 우코셋들인 에 대해서 시퀀스를 생성하게 되면, 최종적으로 총 9개의 시퀀스들이 생성될 수 있고, 이때, 각 시퀀스들 내에 존재하는 "1"의 코드 값의 개수는 모두 3개로 일정하며, 상기 9개의 시퀀스들 중에서 서로 다른 3개의 시퀀스들을 랜덤하게 선택한 후 랜덤하게 선택된 3개의 시퀀스들을 모두 "OR"연산하게 되면, "OR" 연산이 수행된 결과 값에서 존재하는 "1"의 코드 값의 개수는 항상 6개 이상이 되며, "0"의 코드 값의 개수는 항상 3개 이하가 되는 특징을 가지게 된다.In this way, 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
그리고, 제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
이렇게, 상기 제1 시퀀스와 상기 N-1개의 제2 시퀀스들이 생성되면, 시퀀스 매칭부(116)는 상기 N개의 메시지 분산 그룹들 각각에 대해 상기 제1 시퀀스와 상기 N-1개의 제2 시퀀스들을 하나씩 매칭시킨다.When the first sequence and the N-1 second sequences are generated, the
그리고, 할당부(117)는 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당한다.For each of the N message distribution groups, the
이때, 본 발명의 일실시예에 따르면, 메시지 분산 할당부(112)는 상기 N개의 메시지들 각각에 대해 순번 정보와 연관된 인덱스 값을 할당하는 인덱스 할당부(118)를 더 포함할 수 있다.In this case, according to an embodiment of the present invention, the message
이때, 할당부(117)는 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 q개씩 분산 할당할 수 있다.At this time, the allocating
이때, 본 발명의 일실시예에 따르면, 할당부(117)는 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값 중 q개씩 존재하는 "1"의 코드 값을 확인한 후, 상기 N개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지들 중 상기 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 q개의 메시지들을 분산 할당할 수 있다.In this case, according to an embodiment of the present invention, the
본 발명의 일실시예에 따르면, 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치(110)는 저장 메시지 추출부(119) 및 데이터 로드부(120)를 더 포함할 수 있다.According to an embodiment of the present invention, the data
저장 메시지 추출부(119)는 N개의 데이터 저장소들(101, 102, 103)에 상기 N개의 메시지들이 q개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드(load) 명령이 인가되면, 상기 로드 명령에 기초하여 N개의 데이터 저장소들(101, 102, 103) 중 q개의 데이터 저장소들을 랜덤하게 선택하고, 상기 q개의 데이터 저장소들 각각으로부터 상기 q개의 데이터 저장소들 각각에 저장되어 있는 q개의 저장 메시지들을 추출한다.The stored
데이터 로드부(120)는 상기 q개의 데이터 저장소들 각각으로부터 q개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드한다.The
이때, 본 발명의 일실시예에 따르면, 상기 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
이하에서는 도 2를 참조하여, 본 발명에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치(110)의 동작을 예를 들어 상세히 설명하기로 한다.Hereinafter, the operation of the data
도 2는 본 발명의 일실시예에 따른 2차원 원소를 갖는 군으로부터 생성된 상대 차집합을 활용한 데이터 분산 저장 장치(110)의 동작을 설명하기 위한 도면이다.FIG. 2 is a view for explaining the operation of the data
우선, 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,
이때, 분산 그룹 생성부(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
그리고, 메시지 분산 할당부(112)에 포함되어 있는 인덱스 할당부(118)는 상기 9개의 메시지들에 대해서 순번 정보와 연관된 인덱스 값을 할당할 수 있는데, 인덱스 할당부(118)가 상기 9개의 메시지들에 대해 순서대로 1부터 9까지의 인덱스 값을 할당한다고 하면, 상기 9개의 메시지들은 "m1, m2, m3, m4, m5, m6, m7, m8, m9"로 표시할 수 있다.The
q=3, N=9라고 가정하였기 때문에, 제1 시퀀스 생성부(114)는 원소의 개수가 3개인 덧셈에 대한 군인 에 대해서, G가 로 정의되고, K가 으로 정의될 때, 상기 수학식 1에 따라 K에 상대적인 G의 상대 차집합 D를 연산(a=1임)할 수 있다.q = 3, and N = 9, the
관련해서, 이므로, 상기 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에 따라 연산되는 상대 차집합 가 되며, 상대 차집합 D의 파라미터는 (3, 3, 3, 1)이 될 수 있다.Relatedly, 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) , 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
그리고, 제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)일 경우는 제외)하여 라는 8개의 우코셋들을 생성할 수 있다.The second
그러고 나서, 제2 시퀀스 생성부(115)는 상기 8개의 우코셋들 각각에 포함되어 있는 3개의 2차원 원소들을 기초로 상기 G에 포함되어 있는 2차원 원소들에 대해 순차적으로 "1"과 "0"의 코드 값을 할당하여 9개의 "1"과 "0"의 코드 값으로 구성된 시퀀스를 상기 8개의 우코셋들 각각에 대해 생성함으로써, 8개의 제2 시퀀스들을 생성할 수 있다.Then, the
관련하여, 제2 시퀀스 생성부(115)는 첫 번째 우코셋이 이기 때문에 G에 포함되어 있는 2차원 원소들인 (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2) 중 에 포함되는 3개의 2차원 원소들인 (0, 1), (1, 0), (1, 2)에 대해 "1"의 코드 값을 할당하고, 에 포함되지 않는 나머지 2차원 원소들에 대해 "0"의 코드 값을 할당하는 방식으로 상기 G에 포함되어 있는 2차원 원소들에 대해 순차적으로 "1"과 "0"의 코드 값을 할당함으로써, "010101000"(222)이라는 9개의 "1"과 "0"의 코드 값으로 구성된 시퀀스를 생성할 수 있다.In this regard, the
이러한 방식으로, 제2 시퀀스 생성부(115)는 나머지 우코셋들인 에 대해서도 시퀀스를 생성함으로써, "001110000"(232), "000100011"(242), "000010101"(252), "000001110"(262), "011000100"(272), "101000010"(282), "110000001"(292)라는 시퀀스들을 추가로 생성할 수 있다.In this way, the
이러한 제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
그리고, 제1 시퀀스와 제2 시퀀스들은 서로 다른 3개의 시퀀스들 간에 "OR" 논리 연산을 수행하면, 해당 논리 연산의 결과 값에 포함된 "1"의 코드 값은 항상 개 이상이 되고, "0"의 코드 값은 항상 개 이하가 되기 때문에 본 실시예에서는 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 , And the code value of "0 " OR "logic between any three of the nine
이렇게, 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
관련해서, 시퀀스 매칭부(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
그러고 나서, 할당부(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
이때, 할당부(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
관련해서, 할당부(117)가 9개의 메시지 분산 그룹들(213, 223, 233, 243, 253, 263, 273, 283, 293) 각각에 대해 9개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9"를 분산 할당하는 과정을 각 메시지 분산 그룹들 별로 구분해서 설명하면 다음과 같다.,
우선, 메시지 분산 그룹 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
관련해서, 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
그리고, 메시지 분산 그룹 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
관련해서, 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
그리고, 메시지 분산 그룹 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
관련해서, 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
그리고, 메시지 분산 그룹 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
관련해서, 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
그리고, 메시지 분산 그룹 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
관련해서, 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
그리고, 메시지 분산 그룹 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
관련해서, 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
그리고, 메시지 분산 그룹 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
관련해서, 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
그리고, 메시지 분산 그룹 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
관련해서, 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
마지막으로, 메시지 분산 그룹 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
관련해서, 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
이렇게, 상기 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
관련해서, 데이터 저장부(113)는 메시지 분산 그룹 1(213)에 할당되어 있는 3개의 메시지들인 "m1, m5, m6"을 대응되는 데이터 저장소인 데이터 저장소 1(211)에 저장할 수 있다.The
그리고, 데이터 저장부(113)는 메시지 분산 그룹 2(223)에 할당되어 있는 3개의 메시지들인 "m2, m4, m6"을 대응되는 데이터 저장소인 데이터 저장소 2(221)에 저장할 수 있다.The
그리고, 데이터 저장부(113)는 메시지 분산 그룹 3(233)에 할당되어 있는 3개의 메시지들인 "m3, m4, m5"를 대응되는 데이터 저장소인 데이터 저장소 3(231)에 저장할 수 있다.The
그리고, 데이터 저장부(113)는 메시지 분산 그룹 4(243)에 할당되어 있는 3개의 메시지들인 "m4, m8, m9"를 대응되는 데이터 저장소인 데이터 저장소 4(241)에 저장할 수 있다.The
그리고, 데이터 저장부(113)는 메시지 분산 그룹 5(253)에 할당되어 있는 3개의 메시지들인 "m5, m7, m9"를 대응되는 데이터 저장소인 데이터 저장소 5(251)에 저장할 수 있다.The
그리고, 데이터 저장부(113)는 메시지 분산 그룹 6(263)에 할당되어 있는 3개의 메시지들인 "m6, m7, m8"을 대응되는 데이터 저장소인 데이터 저장소 6(261)에 저장할 수 있다.The
그리고, 데이터 저장부(113)는 메시지 분산 그룹 7(273)에 할당되어 있는 3개의 메시지들인 "m2, m3, m7"을 대응되는 데이터 저장소인 데이터 저장소 7(271)에 저장할 수 있다.The
그리고, 데이터 저장부(113)는 메시지 분산 그룹 8(283)에 할당되어 있는 3개의 메시지들인 "m1, m3, m8"을 대응되는 데이터 저장소인 데이터 저장소 8(281)에 저장할 수 있다.The
마지막으로, 데이터 저장부(113)는 메시지 분산 그룹 9(293)에 할당되어 있는 3개의 메시지들인 "m1, m2, m9"를 대응되는 데이터 저장소인 데이터 저장소 9(291)에 저장할 수 있다.Finally, the
이렇게, 상기 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
이로 인해서, 상기 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
이때, 만약 상기 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
이로 인해, 저장 메시지 추출부(119)는 결국, 데이터 저장소 3(231), 데이터 저장소 5(251) 및 데이터 저장소 7(271)로부터 "m2, m3, m4, m5, m7, m9"를 추출해 낼 수 있다.Therefore, the stored
이때, 데이터 로드부(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
관련해서, 본 실시예에서는 "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
이로 인해, 결국, 데이터 로드부(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
결국, 본 발명에 따른 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
도 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는 으로 정의됨)에 상대적인 G(G는 로 정의됨)의 상대 차집합 D(상기 상대 차집합 D는 으로 정의되고, 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 Relative to G (G) (The relative difference set D is defined as < RTI ID = 0.0 > (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
본 발명의 일실시예에 따른 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개의 메시지들을 q개씩 분산 할당 - 상기 N개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 메시지 분산 할당부; 및
상기 N개의 메시지 분산 그룹들 각각에 할당되어 있는 q개의 메시지들을 상기 N개의 메시지 분산 그룹들 별로, 상기 N개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 데이터 저장부
를 포함하고,
상기 메시지 분산 할당부는
원소의 개수가 q개인 덧셈에 대한 군(Group) Zq에 대해 K - K는 으로 정의됨 - 에 상대적인 G - G는 로 정의됨 - 의 상대 차집합 D - 상기 상대 차집합 D는 으로 정의되고, 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 Defined as - relative to G-G - the relative difference set D - the relative difference set D (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.
상기 제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 ".
상기 메시지 분산 할당부는
상기 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.
상기 할당부는
상기 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.
상기 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.
상기 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개의 메시지들을 q개씩 분산 할당 - 상기 N개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 단계; 및
상기 N개의 메시지 분산 그룹들 각각에 할당되어 있는 q개의 메시지들을 상기 N개의 메시지 분산 그룹들 별로, 상기 N개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 단계
를 포함하고,
상기 N개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 q개씩 분산 할당하는 단계는
원소의 개수가 q개인 덧셈에 대한 군(Group) Zq에 대해 K - K는 으로 정의됨 - 에 상대적인 G - G는 로 정의됨 - 의 상대 차집합 D - 상기 상대 차집합 D는 으로 정의되고, 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 Defined as - relative to G-G - the relative difference set D - the relative difference set D (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.
상기 제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.
상기 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.
상기 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.
상기 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.
상기 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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471837A (en) * | 2018-10-08 | 2019-03-15 | 国网经济技术研究院有限公司 | Distributed storage method of power infrastructure data |
Citations (2)
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 |
-
2016
- 2016-11-18 KR KR1020160153745A patent/KR101873879B1/en active IP Right Grant
Patent Citations (2)
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)
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 | |
EP2787446A1 (en) | Distributed storage method, device and system | |
US9864550B2 (en) | Method and apparatus of recovering and encoding for data recovery in storage system | |
US10831738B2 (en) | Parallelized in-place radix sorting | |
CN103530168B (en) | Multi-satellite remote sensing data processing system and method based on virtualization technology | |
KR101873879B1 (en) | Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element | |
US20160028538A1 (en) | Apparatus and method for generating key | |
KR102306676B1 (en) | Method and system for generating host keys for storage devices | |
US9858040B2 (en) | Parallelized in-place radix sorting | |
CN108243207A (en) | A kind of date storage method of network cloud disk | |
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 | |
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 | |
CN103970792A (en) | Index-based file comparison method and device | |
CN112181974A (en) | Identification information distribution method, system and storage equipment | |
CN112306457A (en) | Random number generation method and device | |
CN106293993A (en) | Avoid the method and device repeating to process file |
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 |