KR101893566B1 - Data distribution storage apparatus and method using cyclic difference family - Google Patents

Data distribution storage apparatus and method using cyclic difference family Download PDF

Info

Publication number
KR101893566B1
KR101893566B1 KR1020160171272A KR20160171272A KR101893566B1 KR 101893566 B1 KR101893566 B1 KR 101893566B1 KR 1020160171272 A KR1020160171272 A KR 1020160171272A KR 20160171272 A KR20160171272 A KR 20160171272A KR 101893566 B1 KR101893566 B1 KR 101893566B1
Authority
KR
South Korea
Prior art keywords
messages
data
message distribution
sequence
distribution groups
Prior art date
Application number
KR1020160171272A
Other languages
Korean (ko)
Other versions
KR20180069253A (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 KR1020160171272A priority Critical patent/KR101893566B1/en
Publication of KR20180069253A publication Critical patent/KR20180069253A/en
Application granted granted Critical
Publication of KR101893566B1 publication Critical patent/KR101893566B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

순환 차족(Cyclic Difference Family)을 활용한 데이터 분산 저장 장치 및 방법이 개시된다. 본 발명은 다수의 메시지들을 여러 데이터 저장소들에 분산 저장하는 방법에 있어서, 최소한의 데이터 저장소들만을 활용해서 상기 다수의 메시지들을 분산 저장한 후 상기 데이터 저장소들 중 최소한의 데이터 저장소들만을 선택하여 액세스하더라도 상기 다수의 메시지들이 로드될 수 있도록 하여 상기 다수의 메시지들에 대한 데이터 손실에 대비함과 동시에 데이터 저장소들로부터 빠른 데이터 로드가 가능하도록 하는 기법을 제공하고자 한다.Disclosed is a data distribution storage apparatus and method utilizing a cyclic difference family. 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.

Description

순환 차족을 활용한 데이터 분산 저장 장치 및 방법{DATA DISTRIBUTION STORAGE APPARATUS AND METHOD USING CYCLIC DIFFERENCE FAMILY}TECHNICAL FIELD [0001] The present invention relates to a data distribution storage apparatus and a data distribution method using circulation tiles,

본 발명은 데이터의 손실이 발생하였을 때, 데이터의 복구가 용이하도록 다수의 데이터 저장소들에 다수의 메시지들을 분산해서 저장하는 기법에 대한 기술과 관련된다.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.

본 발명의 일실시예에 따른 순환 차족을 활용한 데이터 분산 저장 장치는 N - N은 N=tv의 조건을 만족하는 자연수이고, v는 v=k(k-1)t+1의 조건을 만족하는 자연수이며, k는 2이상의 자연수이고, t는 1이상의 자연수임 - 개의 메시지들에 대해 v개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 v개의 데이터 저장소들에 대응하는 v개의 메시지 분산 그룹들을 생성하는 분산 그룹 생성부, 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk - tk는 t와 k의 곱을 의미함 - 개씩 분산 할당 - 상기 v개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 메시지 분산 할당부 및 상기 v개의 메시지 분산 그룹들 각각에 할당되어 있는 tk개의 메시지들을 상기 v개의 메시지 분산 그룹들 별로, 상기 v개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 데이터 저장부를 포함한다.In the data distributed storage apparatus using the circulation system according to the embodiment of the present invention, N - N is a natural number satisfying the condition of N = tv, and v satisfies the condition of v = k (k-1) t + 1 , K is a natural number greater than or equal to 2, t is a natural number greater than or equal to 1, - distributed messages to v data stores for the messages are applied, v message distributions corresponding to the v data stores Tk - tk is a product of t and k - distributed allocation of v messages, - distributed allocation of v message distribution groups, The message distribution schemes and the t message messages allocated to each of the v message distribution groups may be transmitted to the v data stores And a data storage unit for separately storing the data in the data repository corresponding to each message distribution group.

또한, 본 발명의 일실시예에 따른 순환 차족을 활용한 데이터 분산 저장 방법은 N - N은 N=tv의 조건을 만족하는 자연수이고, v는 v=k(k-1)t+1의 조건을 만족하는 자연수이며, k는 2이상의 자연수이고, t는 1이상의 자연수임 - 개의 메시지들에 대해 v개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 v개의 데이터 저장소들에 대응하는 v개의 메시지 분산 그룹들을 생성하는 단계, 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk - tk는 t와 k의 곱을 의미함 - 개씩 분산 할당 - 상기 v개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 단계, 상기 v개의 메시지 분산 그룹들 각각에 할당되어 있는 tk개의 메시지들을 상기 v개의 메시지 분산 그룹들 별로, 상기 v개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 단계를 포함한다.In the data distribution storage method using the cyclic shift according to an embodiment of the present invention, N - N is a natural number satisfying the condition of N = tv, and v is a condition of v = k (k-1) t + 1 , K is a natural number equal to or greater than 2, and t is a natural number equal to or greater than 1. When a distributed storage command is applied to v data stores for messages, v data corresponding to the v data stores Tk - tk means a product of t and k - distributedly allocated - distributedly distributed among the v message distribution groups - message distribution groups - Messages may be duplicated to each other, transmitting tk messages allocated to each of the v message distribution groups to the message distribution groups of the v data stores, In a data repository corresponding to < RTI ID = 0.0 > a < / RTI >

본 발명은 다수의 메시지들을 여러 데이터 저장소들에 분산 저장하는 방법에 있어서, 최소한의 데이터 저장소들만을 활용해서 상기 다수의 메시지들을 분산 저장한 후 상기 데이터 저장소들 중 최소한의 데이터 저장소들만을 선택하여 액세스하더라도 상기 다수의 메시지들이 로드될 수 있도록 하여 상기 다수의 메시지들에 대한 데이터 손실에 대비함과 동시에 데이터 저장소들로부터 빠른 데이터 로드가 가능하도록 하는 기법을 제공할 수 있다.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은 본 발명의 일실시예에 따른 순환 차족(Cyclic Difference Family)을 활용한 데이터 분산 저장 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 순환 차족을 활용한 데이터 분산 저장 장치의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 순환 차족을 활용한 데이터 분산 저장 방법을 도시한 순서도이다.
1 is a diagram illustrating a structure of a data distribution storage apparatus utilizing a cyclic difference family according to an embodiment of the present invention.
FIG. 2 is a view for explaining the operation of a data distribution storage apparatus using a cyclic shift according to an embodiment of the present invention.
FIG. 3 is a flowchart illustrating a data distribution storage method using a cyclic shift 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은 본 발명의 일실시예에 따른 순환 차족(Cyclic Difference Family)을 활용한 데이터 분산 저장 장치의 구조를 도시한 도면이다.1 is a diagram illustrating a structure of a data distribution storage apparatus utilizing a cyclic difference family according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 순환 차족을 활용한 데이터 분산 저장 장치(110)는 분산 그룹 생성부(111), 메시지 분산 할당부(112) 및 데이터 저장부(113)를 포함한다.Referring to FIG. 1, a data distribution storage apparatus 110 using a circulation system according to an embodiment of the present invention includes a distribution group generation unit 111, a message distribution assignment unit 112, and a data storage unit 113 .

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

여기서, N은 N=tv의 조건을 만족하는 자연수이고, v는 v=k(k-1)t+1의 조건을 만족하는 자연수이며, k는 2이상의 자연수이고, t는 1이상의 자연수이다.Here, N is a natural number satisfying the condition of N = tv, v is a natural number satisfying the condition of v = k (k-1) t + 1, k is a natural number of 2 or more, and t is a natural number of 1 or more.

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

메시지 분산 할당부(112)는 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk(tk는 t와 k의 곱을 의미함)개씩 분산 할당한다.The message distribution assigning unit 112 distributes the N messages tk (tk is a product of t and k) to each of the v message distribution groups.

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

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

이때, 본 발명의 일실시예에 따르면, 메시지 분산 할당부(112)는 순환 차족 확인부(114), 제1 시퀀스 생성부(115), 제2 시퀀스 생성부(116), 시퀀스 매칭부(117) 및 할당부(118)를 포함할 수 있다.In this case, according to an embodiment of the present invention, the message distribution assignment unit 112 includes a circulation order confirmation unit 114, a first sequence generation unit 115, a second sequence generation unit 116, a sequence matching unit 117 And an assigning unit 118. [0050]

순환 차족 확인부(114)는 "0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 집합인 Zv(상기 Zv에 포함되어 있는 원소들의 개수는 v개임)에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 모든 차들 각각이 상기 Zv에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t개의 부분 집합들(상기 t개의 부분 집합들의 모임은 (v, k, 1)의 파라미터를 갖는 순환 차족으로 정의됨)을 확인한다.The cyclic shift confirmation unit 114 has k elements (hereinafter, referred to as " k elements ") for Z v (the number of elements contained in Z v is an integer of v) including integers from "0" , Each of all the differences between two different elements among the k elements included in each of the plurality of subsets includes the elements other than "0" in the elements included in the Z v And t subsets identified as matching only one other element (the collection of t subsets is defined as a circle with parameters of (v, k, 1)).

제1 시퀀스 생성부(115)는 상기 t개의 부분 집합들 각각에 대해서, 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들에 기초하여 상기 Zv에 포함되어 있는 "0"부터 "v-1"까지의 정수들에 대해 "0"부터 "v-1" 순으로 "1"과 "0"의 코드 값을 할당함으로써, v개의 "1"과 "0"의 코드 값으로 구성된 t개의 부분 시퀀스들을 생성하고, 상기 t개의 부분 시퀀스들을 조합하여 총 N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스(N=tv이며, 상기 t개의 부분 집합들 각각에 대해서 v개씩 "1"과 "0"의 코드 값을 할당함으로써 생성한 상기 t개의 부분 시퀀스들을 조합하여 상기 제1 시퀀스를 생성하였으므로, 상기 제1 시퀀스를 구성하는 "1"과 "0"의 코드 값은 총 N개가 됨)를 생성한다.The first sequence generator 115 generates, for each of the t subsets, the values of "0" to "v" included in the Z v based on k elements included in each of the t subsets Quot; 1 " and " 0 "code values by assigning code values of" 1 "and" 0 "from" 0 "to" v- (N = tv, wherein v for each of the t subsets is "1 "," 1 " and " 0 "are generated by combining the t partial sequences generated by assigning the code values of " ).

이때, 제1 시퀀스 생성부(115)는 상기 t개의 부분 집합들 각각에 대해서, 상기 Zv에 포함되어 있는 "0"부터 "v-1"까지의 정수들 중 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당함으로써, 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들을 생성할 수 있다.At this time, the first sequence generation unit 115 in respect to each of the two said t subsets, each of the t partial set of integer from "0" contained in the Z v to "v-1", respectively Assigns a code value of "1 " to integers corresponding to the k elements contained therein, and assigns a code value of" 0 " to the remaining constants that do not match k elements contained in each of the t subsets Quot; and "0" by assigning a code value of " 1 "

그리고, 제2 시퀀스 생성부(116)는 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들 각각에 대해 선정된(predetermined) 방향으로 순환시프트(cyclic shift) 연산을 v-1회 수행하면서, 각 순환시프트 연산이 수행될 때마다 순환시프트 연산이 완료된 상기 t개의 부분 시퀀스들을 조합하여 제2 시퀀스를 생성함으로써, 총 v-1개의 제2 시퀀스들을 생성한다.The second sequence generator 116 performs a cyclic shift operation in a predetermined direction on each of the t partial sequences composed of the v code values of "1" and "0 & v-1 times, and generates a second sequence by combining the t partial sequences that have undergone the cyclic shift operation each time each cyclic shift operation is performed, thereby generating a total of v-1 second sequences.

여기서, 순환 차족(Cyclic Difference Family)에 대해 설명하면 다음과 같다. Here, the Cyclic Difference Family will be described as follows.

"0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 집합인 Zv가 있을 때, 상기 Zv에 대한 k개의 원소를 갖는 복수의 부분 집합들을

Figure 112016123009961-pat00001
라고 하면, 상기 복수의 부분 집합들 Bi 중, 각 부분 집합에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 모든 차들 각각이 상기 Zv에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 λ개의 원소와 일치하는 것으로 연산되는 부분 집합들의 모임을 (v, k, λ)의 파라미터를 갖는 순환 차족이라고 한다.When there is Z v which is an aggregate containing integers from "0" to "v-1" as elements, a plurality of subsets having k elements for Z v
Figure 112016123009961-pat00001
, Each of all the differences between two different elements among the k elements included in each subset among the plurality of subsets B i is different from each other in the elements included in the Z v except for "0" A collection of subsets that are calculated to match the other λ elements is called a circles group with parameters of (v, k, λ).

여기서, 상기 복수의 부분 집합들 Bi 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 모든 차들을 D라고 하는 경우, 상기 D는 하기의 수학식 1에 따라 연산된다. 만약, 상기 서로 다른 두 원소 간의 차가 음수 값이 되는 경우, 상기 서로 다른 두 원소 간의 차는 하기의 수학식 1에 따라 상기 음수 값에 대해 v로 나눈 나머지 값이 될 수 있다.Here, if all the differences between two different elements among the k elements included in each of the plurality of subsets B i are denoted by D, D is calculated according to the following equation (1). If the difference between the two different elements is a negative value, the difference between the two different elements may be a residual value obtained by dividing the negative value by v according to the following equation (1).

Figure 112016123009961-pat00002
Figure 112016123009961-pat00002

이때, (v, k, 1)의 파라미터를 갖는 순환 차족이란 "0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 집합인 Zv에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 상기 수학식 1에 따라 연산되는 서로 다른 두 원소 간의 모든 차들 각각이 상기 Zv에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 부분 집합들의 모임을 (v, k, 1)의 파라미터를 갖는 순환 차족이라 정의할 수 있다.At this time, the cyclic shift having the parameters of (v, k, 1) means a plurality of subsets having k elements for Z v , which is an aggregate containing integers from "0" to "v- wherein, except for "0" in the element that is included in which the Z v all cars each between two other elements that are calculated according to the equation (1) from among the k number of elements included in each of the plurality of the subset A collection of subsets that are found to match only one different element can be defined as a circle with parameters of (v, k, 1).

이때, v가 "v=k(k-1)t+1"의 조건을 만족한다고 하는 경우, (v, k, 1)의 파라미터를 갖는 순환 차족에 포함되는 부분 집합들은 총 t개 존재할 수 있다.At this time, when v satisfies the condition of "v = k (k-1) t + 1", there may be a total of t subsets included in the circles having the parameters of (v, k, 1) .

예컨대, t=2, k=3, v=13이라고 가정하면, "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12"를 원소로 포함하고 있는 집합인 Zv가 있을 때, 3개의 원소를 포함하고 있는 Zv의 부분 집합은 복수개가 존재할 수 있다. 이러한 복수의 부분 집합들은 각각 3개의 원소를 포함하고 있기 때문에 각 부분 집합에 포함되어 있는 서로 다른 두 원소 간의 차는 총 6개가 존재할 수 있고, 이러한 6개의 두 원소 간의 차가 상기 Zv에 포함되어 있는 "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12"이라는 정수 중 "0"을 제외한 오직 1개의 정수와만 일치하는 것으로 확인되는 부분 집합들의 모임을 (13, 3, 1)의 파라미터를 갖는 순환 차족이라 정의할 수 있다.For example, suppose that t = 2, k = 3, v = 13, and the element containing "0,1,2,3,4,5,6,7,8,9,10,11,12" When there is a set Z v , there may be a plurality of subsets of Z v containing three elements. Since the plurality of subsets such comprise three elements, each difference between the two different elements included in each subset may be present in a total of six, with the difference between these six two elements included in the Z v " A set of subsets that are found to match only one integer except for "0" among 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, (13, 3, 1).

관련해서, (13, 3, 1)의 파라미터를 갖는 순환 차족에 포함되는 부분 집합은 "{0, 1, 4}", "{0, 2, 7}"가 존재할 수 있다. 여기서, "{0, 1, 4}"의 경우 서로 다른 두 원소 간의 차는 상기 수학식 1에 따라 연산하게 되면 "1, 3, 4, 9, 10, 12"가 나올 수 있고, 이때, "1, 3, 4, 9, 10, 12" 각각은 Zv에 포함되어 있는 정수들 중 1개의 정수와만 일치하기 때문에 "{0, 1, 4}"는 (13, 3, 1)의 파라미터를 갖는 순환 차족 중 하나에 포함되는 부분 집합이 될 수 있다. 그리고, "{0, 2, 7}"의 경우 서로 다른 두 원소 간의 차는 상기 수학식 1에 따라 연산하게 되면 "2, 5, 6, 7, 8, 11"이 나올 수 있고, 이때, "2, 5, 6, 7, 8, 11" 각각은 Zv에 포함되어 있는 정수들 중 1개의 정수와만 일치하기 때문에 "{0, 2, 7}"도 (13, 3, 1)의 파라미터를 갖는 순환 차족 중 하나에 포함되는 부분 집합이 될 수 있다.In this regard, there may be a subset contained in the circles having parameters of (13, 3, 1) "{0, 1, 4}", "{0, 2, 7}". In the case of "{0,1,4}", "1, 3, 4, 9, 10, 12" can be obtained by calculating the difference between two different elements according to Equation 1, , {3, 4, 9, 10, 12} each correspond only to one of the constants contained in Z v , so "{0, 1, 4} Or a subset included in one of the circles. In the case of "{0, 2, 7}", the difference between two different elements may be "2, 5, 6, 7, 8, 11" , {5, 6, 7, 8, 11} each correspond only to one of the constants contained in Z v , so "{0, 2, 7} Or a subset included in one of the circles.

이렇게, v가 "v=k(k-1)t+1"의 조건을 만족한다고 하는 경우, (v, k, 1)의 파라미터를 갖는 순환 차족에 포함되는 t개의 부분 집합들이 있을 때, 상기 t개의 부분 집합들 각각에 대해서, 상기 Zv에 포함되어 있는 "0"부터 "v-1"까지의 정수들 중 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당하게 되면, v개의 "1"과 "0"의 코드 값으로 구성된 시퀀스들을 t개 획득할 수 있다.When v satisfies the condition of "v = k (k-1) t + 1 ", when there are t subsets included in the circles having the parameters of (v, k, with respect to t of a subset each, of the integer of the integer from "0" contained in the Z v to "v-1 'matching the k-element that is included in each of the t partial set Quot; 0 "is assigned to the remaining integers that do not match the k elements contained in each of the t subsets, v" 1 "and" 0 "code values.

이때, 상기 t개의 시퀀스들을 t개의 부분 시퀀스들이라고 하고, 상기 t개의 부분 시퀀스들을 일렬로 나열하여 서로 조합하게 되면, 총 N개(N=tv임)의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 획득할 수 있다.If the t sequences are referred to as t partial sequences and the t partial sequences are arranged in a row and combined with each other, a total of N (N = tv) code values of "1" and "0" ≪ / RTI > can be obtained.

그리고, 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들 각각에 대해 선정된 방향으로 순환시프트 연산을 v-1회 수행하면서, 각 순환시프트 연산이 수행될 때마다 순환시프트 연산이 완료된 상기 t개의 부분 시퀀스들을 일렬로 나열하여 조합함에 따라 제2 시퀀스를 생성하게 되면, 총 v-1개의 제2 시퀀스들을 추가로 획득할 수 있다.Then, a cyclic shift operation is performed v-1 times in a predetermined direction for each of the t partial sequences composed of the v number of code values of "1" and "0", and each time each cyclic shift operation is performed When the second sequence is generated by arranging and arranging the t partial sequences having completed the cyclic shift operation in a row, a total of v-1 second sequences can be additionally obtained.

이때, 상기 제1 시퀀스와 상기 제2 시퀀스들 내에 존재하는 "1"의 코드 값의 개수는 항상 tk개로 일정하며, v가 "v=k(k-1)t+1"의 조건을 만족한다고 하는 경우, 상기 제1 시퀀스와 상기 제2 시퀀스들 중에서 서로 다른 tk개의 시퀀스들을 랜덤하게 선택한 후 랜덤하게 선택된 tk개의 시퀀스들을 모두 "OR"연산하게 되면, "OR" 연산이 수행된 결과 값에서 존재하는 "1"의 코드 값의 개수는 항상

Figure 112016123009961-pat00003
개 이상이 되고, "0"의 코드 값의 개수는 항상
Figure 112016123009961-pat00004
개 이하가 되는 특징을 가지게 된다.At this time, the number of code values of "1" existing in the first sequence and the second sequence is always constant at tk, and v satisfies the condition of "v = k (k-1) t + , If all the tk sequences randomly selected from among the first sequence and the second sequence are randomly selected and then all the sequences of tk selected randomly are ORed, The number of code values of "1"
Figure 112016123009961-pat00003
, And the number of code values of "0"
Figure 112016123009961-pat00004
Or less.

예컨대, k=3, t=2라고 가정하고, "v=k(k-1)t+1"라 할 때, v를 13이라고 하면, "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12"를 원소로 포함하고 있는 집합인 Zv에서 (13, 3, 1)의 파라미터를 갖는 순환 차족에 포함되는 부분 집합들은 "{0, 1, 4}", "{0, 2, 7}"이 존재하게 된다.For example, suppose that k = 3 and t = 2 and v is 13, assuming that v = k (k-1) t + 1, then 0,1,2,3,4,5,6 , The subsets contained in the cyclic series with parameters of (13, 3, 1) at Z v , which contain the elements 7, 8, 9, 10, } "And" {0, 2, 7} "exist.

이때, 상기 Zv에 포함되어 있는 "0"부터 "12"까지의 정수들 중 상기 2개의 부분 집합들 "{0, 1, 4}", "{0, 2, 7}" 각각에 포함되어 있는 3개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 2개의 부분 집합들 "{0, 1, 4}", "{0, 2, 7}" 각각에 포함되어 있는 3개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당하게 되면, "1100100000000"과 "1010000100000"이라는 2개의 부분 시퀀스들을 획득할 수 있다.Is included in each of the two subsets "{0, 1, 4}", "{0, 2, 7}" of integers from "0" to "12" included in the Z v Code values of " 1 "are assigned to integers corresponding to the three elements of " {0,1,4} "," {0,1,2,7} "Quot; 0 "is assigned to the remaining integers that do not coincide with the three elements that are present, the two partial sequences" 1100100000000 "and" 1010000100000 "

이때, "1100100000000"과 "1010000100000"이라는 2개의 부분 시퀀스들을 일렬로 나열하여 조합하게 되면, 총 26개의 "1"과 "0"의 코드 값으로 구성된 "11001000000001010000100000"이라는 제1 시퀀스를 획득할 수 있다.At this time, if two partial sequences of "1100100000000" and "1010000100000" are arranged in a line and combined, a first sequence of "11001000000001010000100000" composed of 26 code values of "1" and "0" .

그리고, "1100100000000"과 "1010000100000"이라는 상기 2개의 부분 시퀀스들에 대해 오른쪽 방향으로 순환시프트 연산을 12회 수행하면서, 각 순환시프트 연산이 수행될 때마다 순환시프트 연산이 완료된 2개의 부분 시퀀스들을 일렬로 나열하여 조합함에 따라 제2 시퀀스를 생성하게 되면, 총 12개의 제2 시퀀스들을 추가로 획득할 수 있다.The two partial sequences "1100100000000" and "1010000100000" are subjected to a cyclic shift operation 12 times in the right direction, and each time each cyclic shift operation is performed, the two partial sequences having completed the cyclic shift operation are divided into a series , A total of 12 second sequences can be additionally obtained.

관련해서, "1100100000000"과 "1010000100000"이라는 상기 2개의 부분 시퀀스들에 대해 오른쪽 방향으로 1회 순환시프트 연산을 수행하게 되면, "0110010000000"과 "0101000010000"이라는 2개의 추가 부분 시퀀스들을 획득할 수 있고, "0110010000000"과 "0101000010000"이라는 2개의 추가 부분 시퀀스들을 서로 일렬로 나열하여 조합하게 되면, "01100100000000101000010000"이라는 추가 시퀀스를 획득할 수 있다. 이러한 방식으로 2개의 부분 시퀀스들에 대해 오른쪽 방향으로 순환시프트 연산을 총 12번 수행하면서 추가 시퀀스를 획득하게 되면, 순환시프트 연산이 12회 수행되었으므로, 총 12개의 시퀀스들을 추가로 획득할 수 있다.In this regard, if one circular shift operation is performed rightward for the two partial sequences "1100100000000" and "1010000100000", two additional partial sequences "0110010000000" and "0101000010000" can be obtained Quot; 0110010000000 "and" 0101000010000 "are combined and arranged in a line, an additional sequence" 01100100000000101000010000 " In this manner, if a cyclic shift operation is performed 12 times in the right direction with respect to two partial sequences and an additional sequence is obtained, a total of 12 sequences can be obtained since 12 cyclic shift operations are performed.

이러한 방식으로, 시퀀스를 생성하게 되면, 최종적으로 총 13개의 시퀀스들이 생성될 수 있고, 이때, 각 시퀀스들 내에 존재하는 "1"의 코드 값의 개수는 모두 6개로 일정하며, 상기 13개의 시퀀스들 중에서 서로 다른 6개의 시퀀스들을 랜덤하게 선택한 후 랜덤하게 선택된 6개의 시퀀스들을 모두 "OR"연산하게 되면, "OR" 연산이 수행된 결과 값에서 존재하는 "1"의 코드 값의 개수는 항상 21개 이상이 되며, "0"의 코드 값의 개수는 항상 5개 이하가 되는 특징을 가지게 된다.In this way, when a sequence is generated, a total of thirteen sequences can be finally generated, wherein the number of code values of "1" existing in each sequence is constant at six, and the 13 sequences The number of code values of "1" existing in the result of performing the "OR" operation is always 21 , And the number of code values of "0 " is always 5 or less.

지금까지 설명한 순환 차족을 이용한 시퀀스 생성 과정에 따라, 순환 차족 확인부(114)는 N이 N=tv의 조건을 만족하는 자연수이고, v가 v=k(k-1)t+1의 조건을 만족하는 자연수이며, k가 2이상의 자연수이고, t가 1이상의 자연수일 때, "0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 집합인 Zv에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 모든 차들 각각이 상기 Zv에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t개의 부분 집합들(상기 t개의 부분 집합들의 모임은 (v, k, 1)의 파라미터를 갖는 순환 차족으로 정의됨)을 확인할 수 있다.According to the above-described sequence generation process using the cyclic shift, the cyclic shift confirmation unit 114 determines whether or not N satisfies the condition of v = k (k-1) t + 1 where N is a natural number satisfying the condition of N = tv Having a k number of elements with respect to Z v , which is a set of natural numbers satisfying k, a natural number of 2 or more, and t is a natural number of 1 or more and containing integers from "0" to "v- Among all the k elements included in each of the plurality of subsets, each of all the differences between two different elements is different from the elements included in the Z v by 1 T subsets (the collection of t subsets is defined as a circle with parameters of (v, k, 1)) that are found to match only the elements.

이렇게, (v, k, 1)의 파라미터를 갖는 순환 차족에 포함되는 상기 t개의 부분 집합들에 대한 확인이 완료되면, 제1 시퀀스 생성부(115)는 상기 t개의 부분 집합들 각각에 대해서, 상기 Zv에 포함되어 있는 "0"부터 "v-1"까지의 정수들 중 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당함으로써, v개의 "1"과 "0"의 코드 값으로 구성된 t개의 부분 시퀀스들을 생성할 수 있다.When confirmation of the t subsets included in the cyclic series having parameters of (v, k, 1) is completed, the first sequence generator 115 generates, for each of the t subsets, a code value of "1" for integers that are consistent with the k number of elements in one of an integer from "0" contained in the Z v to "v-1" included in each of the t partial set And assigning code values of "0" to the remaining constants that do not match the k elements contained in each of the t subsets, so that v code values of "1" and "0"Lt; RTI ID = 0.0 > t < / RTI >

그러고 나서, 제1 시퀀스 생성부(115)는 상기 t개의 부분 시퀀스들을 조합하여 총 N개(N=tv임)의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 생성할 수 있다.The first sequence generator 115 may then combine the t partial sequences to generate a first sequence consisting of a total of N (N = tv) code values of "1" and "0" .

그리고, 제2 시퀀스 생성부(116)는 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들 각각에 대해 선정된 방향으로 순환시프트 연산을 v-1회 수행하면서, 각 순환시프트 연산이 수행될 때마다 순환시프트 연산이 완료된 상기 t개의 부분 시퀀스들을 조합하여 제2 시퀀스를 생성함으로써, 총 v-1개의 제2 시퀀스들을 생성할 수 있다.The second sequence generator 116 performs the cyclic shift operation v-1 times in the predetermined direction for each of the t partial sequences composed of the v code values of "1" and "0 & And each time each cyclic shift operation is performed, combining the t partial sequences that have completed the cyclic shift operation to generate a second sequence, thereby generating a total of v-1 second sequences.

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

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

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

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

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

본 발명의 일실시예에 따르면, 순환 차족을 활용한 데이터 분산 저장 장치(110)는 저장 메시지 추출부(120) 및 데이터 로드부(121)를 더 포함할 수 있다.According to an exemplary embodiment of the present invention, the data distribution storage apparatus 110 using the cyclic shift may further include a storage message extracting unit 120 and a data loading unit 121.

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

데이터 로드부(121)는 상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드한다.The data loading unit 121 loads the storage messages extracted by each tk from the tk data stores into the data according 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.

이때, 데이터 로드부(121)는 상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 저장 메시지들이 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 N개의 메시지들에 할당된 인덱스 값을 비교하여 상기 N개의 메시지들 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되면, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드할 수 있다.At this time, if tk storing messages are extracted from each of the tk data stores, the data load unit 121 compares an index value assigned to the extracted stored messages with an index value assigned to the N messages 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를 참조하여, 본 발명에 따른 순환 차족을 활용한 데이터 분산 저장 장치(110)의 동작을 예를 들어 상세히 설명하기로 한다.Hereinafter, the operation of the data distribution storage apparatus 110 using the circulation system according to the present invention will be described in detail with reference to FIG. 2, for example.

도 2는 본 발명의 일실시예에 따른 순환 차족을 활용한 데이터 분산 저장 장치(110)의 동작을 설명하기 위한 도면이다.FIG. 2 is a view for explaining the operation of the data distribution storage device 110 that utilizes the cyclic shift according to an embodiment of the present invention.

우선, k=3, t=2라고 가정하고, v=k(k-1)t+1임에 따라, v=13, N=tv임에 따라, N=26이라고 할 때, v개의 데이터 저장소들(101, 102, 103)이 도 2에 도시된 바와 같이, 데이터 저장소 1(201), 데이터 저장소 2(202), 데이터 저장소 3(203), 데이터 저장소 4(204), 데이터 저장소 5(205), 데이터 저장소 6(206), 데이터 저장소 7(207), 데이터 저장소 8(208), 데이터 저장소 9(209), 데이터 저장소 10(210), 데이터 저장소 11(211), 데이터 저장소 12(212), 데이터 저장소 13(213)으로 존재하며, N=26인 관계로 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213)에 저장할 메시지들의 개수가 26개인 것으로 가정하기로 한다.Assuming that k = 3 and t = 2 and v = 13 and N = tv according to v = k (k-1) t + 1, 2, data storage 1 (201), data storage 2 (202), data storage 3 (203), data storage 4 (204), data storage 5 (205) A data store 720, a data store 720, a data store 820, a data store 920, a data store 1010, a data store 11 211, a data store 12 212, And the data stores 13 to 213 exist in the data stores 1 to 13 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212 and 213) It is assumed that the number of messages to be stored is 26.

이때, 분산 그룹 생성부(111)는 26개의 메시지들에 대해 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213)로의 분산 저장 명령이 인가되면, 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213)에 대응하는 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413)을 생성할 수 있다.At this time, the distribution group generation unit 111 generates the distribution to the data stores 1 to 13 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213) The message distribution groups 401, 402, and 404 corresponding to the data stores 1 to 13 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413.

그리고, 메시지 분산 할당부(112)에 포함되어 있는 인덱스 할당부(119)는 상기 26개의 메시지들에 대해서 순번 정보와 연관된 인덱스 값을 할당할 수 있는데, 인덱스 할당부(119)가 상기 26개의 메시지들에 대해 순서대로 1부터 26까지의 인덱스 값을 할당한다고 하면, 상기 26개의 메시지들은 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"으로 표시할 수 있다.The index assigning unit 119 included in the message distribution assigning unit 112 may assign an index value associated with the order information to the 26 messages. When the index assigning unit 119 assigns the 26 messages s when they assign an index value from 1 to 26 in order for the 26 messages "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9, m 10 , m 11 , m 12 , m 13 , m 14 , m 15 , m 16 , m 17 , m 18 , m 19 , m 20 , m 21 , m 22 , m 23 , m 24 , m 25 , m 26 "

k=3, t=2, v=13이라고 가정하였기 때문에, 순환 차족 확인부(114)는 "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12"를 원소로 포함하고 있는 집합인 Zv에 대한 3개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 3개의 원소들 중에서 서로 다른 두 원소 간의 모든 차들 각각이 상기 Zv에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 2개의 부분 집합들을 확인할 수 있다.1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, and 12 because k = 3, t = 2, v = Among all of the three elements included in each of the plurality of subsets, among all of the plurality of subsets having three elements for Z v , which is the set containing Z It is possible to identify two subsets that are found to match only one different element except for "0 " in the elements included in Z v .

이때, 상기 2개의 부분 집합들의 모임은 (13, 3, 1)의 파라미터를 갖는 순환 차족으로 정의된다.At this time, the group of the two subsets is defined as a circle having parameters of (13, 3, 1).

이때, 제1 시퀀스 생성부(115)는 (13, 3, 1)의 파라미터를 갖는 순환 차족에 포함되는 상기 2개의 부분 집합들 각각에 대해, 상기 2개의 부분 집합들 각각에 포함되어 있는 3개의 원소들에 기초하여 상기 Zv에 포함되어 있는 "0"부터 "12"까지의 정수들에 대해 "0"부터 "12" 순으로 "1"과 "0"의 코드 값을 할당함으로써, 13개의 "1"과 "0"의 코드 값으로 구성된 2개의 부분 시퀀스들을 생성하고, 상기 2개의 부분 시퀀스들을 조합하여 총 26개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 생성할 수 있다.At this time, the first sequence generator 115 generates, for each of the two subsets included in the cyclic series having the parameters of (13, 3, 1), three Quot; 1 " and "0" are assigned in the order of "0" to "12" for integers from "0" to "12" included in the Z v , Two partial sequences composed of code values of "1" and "0 " are generated, and the two partial sequences are combined to generate a first sequence consisting of a total of 26 code values of" 1 & have.

관련해서, 제1 시퀀스 생성부(115)가 (13, 3, 1)의 파라미터를 갖는 순환 차족인 상기 2개의 부분 집합을 "{0, 1, 4}", "{0, 2, 7}"로 확인하였다고 가정하자.In relation to this, the first sequence generation unit 115 sets the two subsets of the circulation order having the parameters of (13, 3, 1) as "{0,1,4}", "{0,2,7} ".

이때, 제1 시퀀스 생성부(115)는 상기 Zv에 포함되어 있는 "0"부터 "12"까지의 정수들 중 상기 2개의 부분 집합들 "{0, 1, 4}", "{0, 2, 7}" 각각에 대해, 상기 2개의 부분 집합들 "{0, 1, 4}", "{0, 2, 7}" 각각에 포함되어 있는 3개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 2개의 부분 집합들 "{0, 1, 4}", "{0, 2, 7}" 각각에 포함되어 있는 3개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당함으로써, "1100100000000"과 "1010000100000"이라는 2개의 부분 시퀀스들을 생성할 수 있다.At this time, the first sequence generation unit 115 is the integer of the two subsets of up to the Z v "12" from "0" included in "{0, 1, 4}", "{0, For each of the three elements contained in each of the two subsets "{0, 1, 4}", "{0, 2, 7} Assigns a code value of "1 ", and the remaining constants that do not match the three elements contained in each of the two subsets" {0,1,4} ","{0,2,7}Quot; 1100100000000 "and" 1010000100000 "by assigning a code value of" 0 "

그러고 나서, 제1 시퀀스 생성부(115)는 "1100100000000"과 "1010000100000"이라는 2개의 부분 시퀀스들을 일렬로 나열하여 조합함으로써, 총 26개의 "1"과 "0"의 코드 값으로 구성된 11001000000001010000100000(301)이라는 제1 시퀀스를 획득할 수 있다.Then, the first sequence generator 115 combines the partial sequences "1100100000000" and "1010000100000" by arranging them in a line, thereby generating 11001000000101010000100000 (301 ) ≪ / RTI >

그리고, 제2 시퀀스 생성부(116)는 "1100100000000"과 "1010000100000"이라는 상기 2개의 부분 시퀀스들에 대해 오른쪽 또는 왼쪽 중 어느 하나의 선정된 방향으로 순환시프트 연산을 12회 수행(본 실시예에서는 오른쪽 방향으로 순환시프트 연산을 수행함)하면서, 각 순환시프트 연산이 수행될 때마다 순환시프트 연산이 완료된 2개의 부분 시퀀스들을 일렬로 나열하여 조합하여 제2 시퀀스를 생성함으로써, 총 12개의 01100100000000101000010000(302), 00110010000000010100001000(303), 00011001000000001010000100(304), 00001100100000000101000010(305), 00000110010000000010100001(306), 00000011001001000001010000(307), 00000001100100100000101000(308), 00000000110010010000010100(309), 10000000011000001000001010(310), 01000000001100000100000101(311), 00100000000111000010000010(312), 10010000000010100001000001(313)이라는 제2 시퀀스들을 생성할 수 있다.The second sequence generator 116 performs a cyclic shift operation 12 times in either the right or left predetermined direction for the two partial sequences "1100100000000" and "1010000100000" (in this embodiment, And a second sequence is generated by arranging and arranging the two partial sequences that have undergone the cyclic shift operation in a row every time each cyclic shift operation is performed, thereby generating a total of twelve 01100100000000101000010000 (302) , 00110010000000010100001000 303, 00011001000000001010000100 304, 00001100100000000101000010 305, 00000110010000000010100001 306, 00000011001001000001010000 307, 00000001100100100000101000 308, 00000000110010010000010100 309, 10000000011000001000001010 310, 01000000001100000100000101 311, 00100000000111000010000010 312 , 10010000000010100001000001 (313).

이러한 제1 시퀀스인 11001000000001010000100000(301)와 12개의 제2 시퀀스들인 01100100000000101000010000(302), 00110010000000010100001000(303), 00011001000000001010000100(304), 00001100100000000101000010(305), 00000110010000000010100001(306), 00000011001001000001010000(307), 00000001100100100000101000(308), 00000000110010010000010100(309), 10000000011000001000001010(310), 01000000001100000100000101(311), 00100000000111000010000010(312), 10010000000010100001000001(313)는 앞서 설명한 바와 같이, 항상 tk개의 "1"의 코드 값을 갖게 되는데, 본 실시예에서 t=2, k=3으로 가정하였기 때문에 13개의 시퀀스들(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313) 각각에 포함된 "1"의 코드 값은 항상 6개이다.The first sequence 11001000000001010000100000 (301) and the 12 second sequences 01100100000000101000010000 (302), 00110010000000010100001000 (303), 0001100100000000100100100 (304), 000011001000000101000010 (305), 000001100100000010100001 (306), 00000011001001000001010000 (307), 00000001100100100101000 (308) 00000000110010010000010100 (309), 10000000011000001000001010 (310), 01000000001100000100000101 (311), 001000000111000010000010 (312), 10010000000010100001000001 313 will always have a code value of tk "1" The code value of "1" contained in each of the 13 sequences 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, Is always six.

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

Figure 112016123009961-pat00005
개 이상이 되고, "0"의 코드 값은 항상
Figure 112016123009961-pat00006
개 이하가 되기 때문에 본 실시예에서는 t=2, k=3이라고 가정하였으므로, 13개의 시퀀스들(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313) 중 어느 6개의 시퀀스들 간에 "OR" 논리 연산이 수행되면, 그 연산 결과 값에 포함되어 있는 "1"의 코드 값은 항상 21개 이상이 되고, "0"의 코드 값은 항상 5개 이하가 된다.If the "OR" logic operation is performed between the tk sequences of the first sequence and the second sequence, the code value of "1" included in the result of the logical operation is always
Figure 112016123009961-pat00005
, And the code value of "0 "
Figure 112016123009961-pat00006
30, 309, 310, 311, 312, 313, 313, 313, 313, 313, ), The code value of "1" included in the operation result value is always 21 or more, and the code value of "0 " is always 5 or less .

이렇게, 13개의 시퀀스들(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313)이 생성되면, 시퀀스 매칭부(117)는 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213)에 각각 대응하는 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413) 각각에 대해 13개의 시퀀스들(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313)을 하나씩 매칭시킬 수 있다.When 13 sequences (301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313) are generated, the sequence matching unit 117 acquires 402, 403, 404, 405, 406, 407 (corresponding to the message distribution groups 401, 402, 403, 404, 405, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313) for each of the first, second, third, .

관련해서, 시퀀스 매칭부(117)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 1(401)에 대해 11001000000001010000100000(301)을 매칭시킬 수 있고, 메시지 분산 그룹 2(402)에 대해 01100100000000101000010000(302)을 매칭시킬 수 있으며, 메시지 분산 그룹 3(403)에 대해 00110010000000010100001000(303)을 매칭시킬 수 있고, 메시지 분산 그룹 4(404)에 대해 00011001000000001010000100(304)을 매칭시킬 수 있고, 메시지 분산 그룹 5(405)에 대해 00001100100000000101000010(305)을 매칭시킬 수 있고, 메시지 분산 그룹 6(406)에 대해 00000110010000000010100001(306)을 매칭시킬 수 있고, 메시지 분산 그룹 7(407)에 대해 00000011001001000001010000(307)을 매칭시킬 수 있고, 메시지 분산 그룹 8(408)에 대해 00000001100100100000101000(308)을 매칭시킬 수 있고, 메시지 분산 그룹 9(409)에 대해 00000000110010010000010100(309)을 매칭시킬 수 있고, 메시지 분산 그룹 10(410)에 대해 10000000011000001000001010(310)을 매칭시킬 수 있고, 메시지 분산 그룹 11(411)에 대해 01000000001100000100000101(311)을 매칭시킬 수 있고, 메시지 분산 그룹 12(412)에 대해 00100000000111000010000010(312)을 매칭시킬 수 있고, 메시지 분산 그룹 13(413)에 대해 10010000000010100001000001(313)을 매칭시킬 수 있고, 2, the sequence matching unit 117 may match 11001000000001010000100000 (301) for the message distribution group 1 401 and 01100100000000101000010000 (302) for the message distribution group 2 402. [ Match 00011001000000001010000100 (304) for message distribution group 4 404, match message distribution group 5 405 (405) to message distribution group 3 403, match message distribution group 3 403 to 00110010000000010100001000 , Match 0000110010000000010100001 (306) to message distribution group 6 406, match 00000011001001000001010000 (307) to message distribution group 7 407, and match 00001100100000000101000010 (305) , Match 00000001100100100000101000 (308) to message distribution group 8 (408), match 00000000110010010000010100 (309) to message distribution group 9 (409) It is possible to match 10000000011000001000001010 (310) to the mountain group 10 (410), match 01000000001100000100000101 (311) to the message distribution group 11 (411), 00100000000111000010000010 (312) to the message distribution group 12 And can match 10010000000010100001000001 (313) to the message distribution group 13 (413)

그러고 나서, 할당부(118)는 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413) 각각에 대해, 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413) 각각에 매칭되어 있는 각 시퀀스를 구성하는 26개의 코드 값에 기초하여 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"을 할당할 수 있는데, 할당부(118)는 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413) 각각에 매칭되어 있는 각 시퀀스를 구성하는 26개의 코드 값의 배열 순서와 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26" 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"을 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413)에 할당할 수 있다.The assigning unit 118 then allocates 13 messages for each of the 13 message distribution groups 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, Based on the 26 code values constituting each sequence matched to each of the groups 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, which are "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14, m 15, m 16, quot; m 17 , m 18 , m 19 , m 20 , m 21 , m 22 , m 23 , m 24 , m 25 , m 26 ". The assigning unit 118 includes thirteen message distribution groups 401 The sequence of 26 code values constituting each sequence matched with each of the 26 messages, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14, m 15, m 16, m 17, m 18 , m 19 , m 20 , m 21 , m 22 , m 23 , m 24 , m 2 5, m 26 "compares the index value assigned to each of the 26 messages, which are" m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14, m 15, m 16, m 17, m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25, m 26 " on the basis of the code values of the collating sequence matching the index values which are assigned to which are the 26 message "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9, m 10 , m 11 , m 12 , m 13 , m 14 , m 15 , m 16 , m 17 , m 18 , m 19 , m 20 , m 21 , m 22 , m 23 , m 24 , m 25 , m 26 To the 13 message distribution groups 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413.

이때, 할당부(118)는 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413) 각각에 매칭되어 있는 각 시퀀스를 구성하는 26개의 코드 값 중 6개씩 존재하는 "1"의 코드 값을 확인한 후 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26" 중 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 6개의 메시지들을 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413)에 할당할 수 있다.At this time, the allocation unit 118 constructs each sequence matched to each of the 13 message distribution groups 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, M 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , and m 9, m 10, m 11, m 12, m 13, m 14, m 15, m 16, m 17, m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25, s m 26 "of" 1 ", the code value is an index value assigned to match the arrangement order of the six message 13 message distribution groups for the (401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, and 413, respectively.

예컨대, 메시지 분산 그룹 1(401)에 대해서는 11001000000001010000100000(301)라는 시퀀스가 매칭되어 있기 때문에 할당부(118)는 11001000000001010000100000(301)로부터 "1"의 코드 값을 확인한 후 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26" 중에서 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 6개의 메시지들을 메시지 분산 그룹 1(401)에 할당할 수 있다.For example, with respect to the message distribution group 1 (401) the sequence of 11001000000001010000100000 301 are matched because assignment unit 118, which are of the 26 message after checking the code of "1" from 11001000000001010000100000 301 "m 1 m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 , m 10 , m 11 , m 12 , m 13 , m 14 , m 15 , m 16 , m 17 , m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25, m 26 " from among" 1 "is the index value to correspond with the arrangement order of the code value assigned to the six messages in the Message distribution group 1 (401).

관련해서, 11001000000001010000100000(301)에서는 "1"의 코드 값이 1번, 2번, 5번, 14번, 16번, 21번 위치에 배열되어 있기 때문에 할당부(118)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 1(401)에 대해 1번, 2번, 5번, 14번, 16번, 21번 위치에 대응하는 인덱스 값이 할당되어 있는 "m1, m2, m5, m14, m16, m21"을 할당할 수 있다.Since the code values of "1" are arranged at positions 1, 2, 5, 14, 16 and 21 in the 11001000000001010000100000 (301) M 1 , m 2 , m 5 , and m 14 , to which index values corresponding to positions 1, 2, 5, 14, 16, and 21 are assigned to message distribution group 1 401 , m 16 , m 21 ".

이러한 방식으로, 할당부(118)는 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413) 각각에 대해 도 2에 도시된 바와 같이 각 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413)에 매칭되어 있는 각 시퀀스에 기초하여 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"을 6개씩 분산 할당할 수 있다.In this manner, the assigning unit 118 assigns to each of the 13 message distribution groups 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, Based on each of the sequences matched to the respective message distribution groups 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, m 1, m 2, m 3 , m 4, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14, m 15, m 16, m 17 m 18 , m 19 , m 20 , m 21 , m 22 , m 23 , m 24 , m 25 , m 26 ".

이렇게, 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"이 모두 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413)에 6개씩 분산 할당이 완료되면, 데이터 저장부(113)는 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413) 각각에 할당되어 있는 6개의 메시지들을 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413) 별로 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213) 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장할 수 있다.The above-mentioned 26 messages "m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 , m 10 , m 11 , m 12 , m 13 , m 14 , m 15 , m 16 , m 17 , m 18 , m 19 , m 20 , m 21 , m 22 , m 23 , m 24 , m 25 and m 26 "are all 13 message distribution groups 401, The data storage unit 113 stores 13 message distribution groups 401, 402, 403, 403, 403, 403, 403, 403, 405, 406, 407, 408, 409, 410, 411, 402, 403, 404, 405, 406, 407, 406, 407, 406, 407, 406, 407, 406, 407, 408, 409, 410, 411, (202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213) for each of the message stores 1 to 13 In a data repository corresponding to < RTI ID = 0.0 >

예컨대, 데이터 저장부(113)는 메시지 분산 그룹 1(401)에 할당되어 있는 6개의 메시지들인 "m1, m2, m5, m14, m16, m21"을 대응되는 데이터 저장소인 데이터 저장소 1(201)에 저장할 수 있다.For example, the data storage unit 113 stores the six messages "m 1 , m 2 , m 5 , m 14 , m 16 , m 21 " assigned to the message distribution group 1 401 as data Storage 1 (201).

이러한 방식으로, 데이터 저장부(113)는 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413) 각각에 할당되어 있는 6개의 메시지들을 13개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413) 별로 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213) 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장할 수 있다.In this way, the data storage unit 113 stores 6 messages allocated to each of the 13 message distribution groups 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, (201, 202, 203, 204) for each of the 13 message distribution groups (401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413) , 205, 206, 207, 208, 209, 210, 211, 212, 213).

이렇게, 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"이 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213)에 분산 저장이 완료되면, 추후 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"에 대해서 데이터 로드 명령이 인가됨에 따라 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"에 대한 데이터 로드를 수행할 때, 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213) 중에서 어느 6개의 데이터 저장소에만 액세스를 한 후 상기 6개의 데이터 저장소만에 저장되어 있는 메시지들을 추출하게 되면, 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26" 중에서 적어도 21개 이상의 메시지는 모두 추출되게 된다.The above-mentioned 26 messages "m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 , m 10 , m 11 , m 12 , m 13 , m 14 , m 15, m 16, m 17 , m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25, m 26 " the data store 1 to 13 (201, 202, 203, 204 , 205, 206, 207, 208, 209, 210, 211, 212, 213) when the distributed storage is complete, which are of the 26 subsequent message "m 1, m 2, m 3, m 4, m 5, m 6 m 7 , m 8 , m 9 , m 10 , m 11 , m 12 , m 13 , m 14 , m 15 , m 16 , m 17 , m 18 , m 19 , m 20 , m 21 , m 22 , m 23, m 24, m 25, m 26 " , which are of the 26 message as a data load command is for" m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9, m 10, m 11 , m 12, m 13, m 14, m 15, m 16, m 17, m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25 , m 26 ", data of any one of six data out of data stores 1 to 13 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, Save Only when after an access to extract the message that is stored in only the six data storage, the which are 26 message "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8 m 9 , m 10 , m 11 , m 12 , m 13 , m 14 , m 15 , m 16 , m 17 , m 18 , m 19 , m 20 , m 21 , m 22 , m 23 , m 24 , m 25 , and m 26 ", at least 21 messages are extracted.

왜냐하면, 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213)에는 각 시퀀스들(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313)의 "1"의 코드 값에 따라서 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"이 분산 할당되어 저장되었고, 각 시퀀스들(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313)의 특성상 상기 13개의 시퀀스들(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313) 중 어느 6개의 시퀀스들 간에 "OR"논리 연산을 수행하게 되면, "1"의 코드 값이 항상 21개 이상이 나오기 때문에 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213) 중 어느 6개의 랜덤한 데이터 저장소로부터 각각 6개씩 메시지들을 모두 추출하게 되면, 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26" 중에서 적어도 21개 이상의 메시지들은 모두 확보하게 되는 것이다.Because each of the sequences 301, 302, 303, 304, 305, and 306 is stored in the data storage 1 to 13 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, M 1 , m 2 , m 3 , m 4 , m 5 , m 6 , and m 7 according to the code value of "1" m 8 , m 9 , m 10 , m 11 , m 12 , m 13 , m 14 , m 15 , m 16 , m 17 , m 18 , m 19 , m 20 , m 21 , m 22 , m 23 , m 24 , m 25 , and m 26 "are distributed and stored, and on the characteristics of each of the sequences 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, When performing an "OR" logical operation between any six sequences of the sequences 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, and 313, Since there are always 21 or more code values, there are six random data stores among the data stores 1 to 13 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, Extract all 6 messages from each , The which are 26 message "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14 when it , m 15, m 16, m 17, m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25, m 26 , at least 21 or more messages from the "are intended to be the all secure.

이로 인해서, 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"이 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213)에 분산 저장이 완료된 이후에 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"에 대한 로드 명령이 인가되면, 저장 메시지 추출부(120)는 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213) 중 데이터 트래픽이 가장 낮은 데이터 저장소 6개만을 랜덤하게 선택하여 6개의 데이터 저장소에 각각 저장되어 있는 6개의 저장 데이터를 추출할 수 있고, 데이터 로드부(121)는 상기 6개의 데이터 저장소를 통해 추출된 각 저장 데이터를 기초로 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26" 중 총 21개 이상의 메시지들을 빠르게 로드할 수 있다.Therefore, the 26 messages "m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 , m 10 , m 11 , m 12 , m 13 , m 14 , m 15, m 16, m 17, m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25, m 26 " the data store 1 to 13 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213) "m 1, which are of the 26 message after the distributed storage is completed in m 2, m 3, m 4 , m 5, m 6 m 7 , m 8 , m 9 , m 10 , m 11 , m 12 , m 13 , m 14 , m 15 , m 16 , m 17 , m 18 , m 19 , m 20 , m 21 , m 22 , m 23, m 24, m 25, when the load instruction for m 26 "is applied, the store message extracting unit 120 is the data store 1 to 13 (201, 202, 203, 204, 205, 206, 207, 208, 209 , 210, 211, 212, and 213, the data load unit 121 can extract six pieces of data stored in six data storage units at random by selecting only six data storage units having the lowest data traffic. The six data stores M 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 , m 10 , m 11 , m 12 , m 13, m 14, m 15, m 16, m 17, m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25, m 26 " the total of 21 or more messages of Can be loaded quickly.

이때, 만약 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"이 임의의 21개의 메시지들만으로 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"을 모두 복원할 수 있도록 구성된 (26, 21) MDS 코드인 경우, 데이터 로드부(121)는 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213) 중에서 랜덤하게 선택된 6개의 데이터 저장소들로부터 6개씩 저장 메시지가 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"에 할당된 인덱스 값을 비교하여 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26" 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되는 경우, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"에 대한 로드 명령에 따른 데이터로 로드할 수 있다.At this time, if the 26 messages, which are "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14 , m 15, m 16, m 17, m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25, m 26 " a, which are any of the 26 message only of 21 messages of" m 1, m 2, m 3 , m 4, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14, m 15, m 16, m 17 (26, 21) MDS code configured to be able to restore all of the m, m 18 , m 19 , m 20 , m 21 , m 22 , m 23 , m 24 , m 25 , m 26 " ) Extracts six stored messages from six randomly selected data stores among the data stores 1 to 13 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212 and 213) , the index values which are assigned to the stored message extracted and which includes the 26 message "m 1, m 2, when m 3, m 4, m 5 , m 6, m 7, m 8, m 9, m 10 m 11 , m 12 , m 13 , m 14 , m 15 , m 16 , m 17 , m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25, m 26 " , which are of the 26 message by comparing the index value assigned to the" m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14, m 15, m 16, m 17, m 18, m 19, m 20, if it is determined that there is a remaining message that is not included in the extracted stored messages among the m 21 , m 22 , m 23 , m 24 , m 25 , and m 26 ' a recover the message and the with the extracted storage message recover residual message which includes the 26 message "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9, m 10 , m 11 , m 12 , m 13 , m 14 , m 15 , m 16 , m 17 , m 18 , m 19 , m 20 , m 21 , m 22 , m 23 , m 24 , m 25 , m 26 "To < / RTI >

관련해서, 상기 랜덤하게 선택된 6개의 데이터 저장소를 데이터 저장소 2(202), 데이터 저장소 5(205), 데이터 저장소 7(207), 데이터 저장소 8(208), 데이터 저장소 10(210), 데이터 저장소 13(213)이라고 하면, 저장 메시지 추출부(120)는 데이터 저장소 2(202)로부터 "m2, m3, m6, m15, m17, m22"를 추출할 수 있고, 데이터 저장소 5(205)로부터 "m5, m6, m9, m18, m20, m25"를 추출할 수 있으며, 데이터 저장소 7(207)로부터 "m7, m8, m11, m14, m20, m22"를 추출할 수 있고, 데이터 저장소 8(208)로부터 "m8, m9, m12, m15, m21, m23"을 추출할 수 있고, 데이터 저장소 10(210)으로부터 "m1, m10, m11, m17, m23, m25"를 추출할 수 있고, 데이터 저장소 13(213)으로부터 "m1, m4, m13, m15, m20, m26"을 추출할 수 있다.The data storage 2 (202), the data storage 5 (205), the data storage 7 (207), the data storage 8 (208), the data storage 10 (210), the data storage 13 213, when called, stores the message extraction unit 120 may extract the "m 2, m 3, m 6, m 15, m 17, m 22" from the data storage 2 (202), the data storage 5 ( from 205) "m 5, m 6 , m 9, m 18, m 20, m 25" a can be extracted from the data store 7 (207) "m 7, m 8, m 11, m 14, m 20 , m 22 "from the data store 8 (208) and extract" m 8 , m 9 , m 12 , m 15 , m 21 , m 23 " m 1, m 10, m 11 , m 17, m 23, m 25 " a may extract, from the data storage 13 (213)" m 1, m 4, m 13, m 15, m 20, m 26 " Can be extracted.

이로 인해, 저장 메시지 추출부(120)는 결국, 데이터 저장소 2(202), 데이터 저장소 5(205), 데이터 저장소 7(207), 데이터 저장소 8(208), 데이터 저장소 10(210), 데이터 저장소 13(213)로부터 "m2, m3, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m17, m18, m20, m21, m22, m23, m25, m26"을 추출해 낼 수 있다.Accordingly, the stored message extracting unit 120 eventually obtains the data storage 2 202, the data storage 5 205, the data storage 7 207, the data storage 8 208, the data storage 10 210, from 13 (213) "m 2, m 3, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14, m 15, m 17, m 18 , m 20 , m 21 , m 22 , m 23 , m 25 , m 26 "can be extracted.

이때, 데이터 로드부(121)는 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"에 할당되어 있는 인덱스 값과 상기 추출된 "m2, m3, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m17, m18, m20, m21, m22, m23, m25, m26"에 할당되어 있는 인덱스 값을 서로 비교하여 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26" 중에서 상기 추출된 "m2, m3, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m17, m18, m20, m21, m22, m23, m25, m26"에 포함되어 있지 않은 잔여 메시지를 확인할 수 있다.At this time, the data load unit 121 receives the 26 messages "m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , m 8 , m 9 , m 10 , m 11 , m 12 , m 13, m 14, m 15, m 16, m 17, m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25, and the index value assigned to the m 26 " the extracted "m 2, m 3, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14, m 15, m 17, m 18, m 20, m 21, m 22, m 23, m 25, m 26 " , which are of the 26 messages is the index value are compared with each other, which is assigned to the" m 1, m 2, m 3, m 4, m 5, m 6 m 7 , m 8 , m 9 , m 10 , m 11 , m 12 , m 13 , m 14 , m 15 , m 16 , m 17 , m 18 , m 19 , m 20 , m 21 , m 22 , m 23, m 24, m 25, m 26 " the extracted from the" m 2, m 3, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14 , m 15 , m 17 , m 18 , m 20 , m 21 , m 22 , m 23 , m 25 , m 26 ".

관련해서, 본 실시예에서는 "m1, m4, m16, m19, m24"가 잔여 메시지이기 때문에 데이터 로드부(121)는 "m1, m4, m16, m19, m24"를 잔여 메시지로 확인한 후 (26, 21) MDS 코딩이 되어 있는 "m2, m3, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m17, m18, m20, m21, m22, m23, m25, m26"으로부터 "m1, m4, m16, m19, m24"를 복원해 낼 수 있다.In connection, in the present embodiment, "m 1, m 4, m 16, m 19, m 24" is because the remaining message data load unit 121 "m 1, m 4, m 16, m 19, m 24 M 2 , m 3 , m 5 , m 6 , m 7 , m 8 , m 9 , m 10 , m 11 , m 12 and m 13 , which are MDS-coded , m 14, m 15, m 17, m 18, m 20, m 21, m 22, m 23, m 25, m " from" 26 m 1, m 4, m 16, m 19, m 24 " to restore I can do it.

이로 인해, 결국, 데이터 로드부(121)는 상기 복원된 "m1, m4, m16, m19, m24"와 데이터 저장소 2(202), 데이터 저장소 5(205), 데이터 저장소 7(207), 데이터 저장소 8(208), 데이터 저장소 10(210), 데이터 저장소 13(213)에서 추출된 "m2, m3, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m17, m18, m20, m21, m22, m23, m25, m26"을 로드함으로써, 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"을 모두 로드해 낼 수 있다.Consequently, the data loading unit 121 stores the restored "m 1 , m 4 , m 16 , m 19 , m 24 " and the data storage 2 202, the data storage 5 205, M 2 , m 3 , m 5 , m 6 , m 7 , m 8 , m 9 , m 10 extracted from the data storage 8 (207), the data storage 8 (208) , m 11, m 12, m 13, m 14, m 15, m 17, m 18, m 20, m 21, m 22, m 23, m 25, m 26 " , which are, of the 26 message by loading the" m 1, m 2, m 3 , m 4, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14, m 15, m 16, m 17 , m 18 , m 19 , m 20 , m 21 , m 22 , m 23 , m 24 , m 25 , m 26 ".

결국, 본 발명에 따른 순환 차족을 활용한 데이터 분산 저장 장치(110)는 상기 26개의 메시지들인 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23, m24, m25, m26"을 순환 차족에 기초하여 생성한 상기 제1 시퀀스와 상기 제2 시퀀스들에 따라 데이터 저장소 1~13(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213)에 6개씩 분산 저장해 놓음으로써, 추후 데이터를 로드할 때, 오직 6개의 데이터 저장소에만 액세스하여 데이터를 복원해 낼 수 있기 때문에 메시지 분산 저장 시스템에 있어서 시스템 자원 활용의 효율성을 도모할 수 있다.As a result, a distribution of data storage devices 110 utilize a circulation chajok according to the invention which are of the 26 message "m 1, m 2, m 3, m 4, m 5, m 6, m 7, m 8, m 9, m 10, m 11, m 12, m 13, m 14, m 15, m 16, m 17, m 18, m 19, m 20, m 21, m 22, m 23, m 24, m 25, the first sequence and the second data storage 1 according to the second sequence and 13 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211 created on the basis of the m 26 "in rotation chajok , 212, and 213, the data can be restored by accessing only six data stores when the data is loaded at a later time. Therefore, efficiency of system resource utilization in the distributed message storage system can be improved .

본 발명의 다른 실시예에 따르면, 순환 차족을 활용한 데이터 분산 저장 장치(110)는 저장 대상이 되는 메시지의 개수가 N개를 초과하고, 데이터 저장소들(101, 102, 103)의 개수도 상기 메시지의 개수만큼 증가시킬 수 있다면, (v, k, 1)의 파라미터를 갖는 순환 차족 중에서 완전 차족(Perfect Difference Family)에 속하는 t개의 부분 집합들을 확인하여 상기 제1 시퀀스를 생성하고, 상기 제1 시퀀스를 구성하는 코드 값에서 "0"의 코드 값을 상기 저장 대상이 되는 메시지의 초과 개수만큼 추가로 삽입하는 방식으로 상기 제1 시퀀스와 상기 제2 시퀀스들을 생성함으로써, 데이터 저장소(101, 102, 103)에 저장할 메시지의 개수를 증가시킬 수 있다.According to another embodiment of the present invention, the data distribution storage apparatus 110 using the circulation system may be configured such that the number of messages to be stored exceeds N and the number of the data stores 101, 102, If the number of messages can be increased by the number of messages, the first sequence is generated by checking t subsets belonging to the Perfect Difference Family among the circles with parameters of (v, k, 1) By generating the first sequence and the second sequences by further inserting a code value of "0" in the code value constituting the sequence by an excessive number of messages to be stored, 103 may increase the number of messages to be stored.

예컨대, 저장 대상이 되는 메시지의 개수가 N+ta라고 하고, 데이터 저장소들(101, 102, 103)의 개수가 v+a라고 하는 경우, 순환 차족을 활용한 데이터 분산 저장 장치(110)는 (v, k, 1)의 파라미터를 갖는 완전 차족에 속하는 t개의 부분 집합들을 확인하여 N개의 "0"과 "1"의 코드 값으로 구성된 상기 제1 시퀀스를 생성한 후 상기 제1 시퀀스를 구성하는 t개의 부분 시퀀스들 각각에 대해 a개 만큼의 "0"의 코드 값을 삽입하여 상기 제1 시퀀스를 N+ta개의 "0"과 "1"의 코드 값으로 구성된 시퀀스로 변경한 후 상기 변경된 제1 시퀀스를 구성하는 부분 시퀀스들에 대해 선정된 방향으로 v+a-1회 만큼 순환시프트 연산을 수행함으로써, v+a-1개의 제2 시퀀스들을 생성할 수 있다.For example, when the number of messages to be stored is N + ta, and the number of data stores 101, 102, and 103 is v + a, v, k, 1), and generates the first sequence composed of N code values of "0" and "1 " to form the first sequence 0 "code value for each of the t partial sequences, changing the first sequence into a sequence of N + ta code values of" 0 "and" 1 " A-1) second sequences by performing a cyclic shift operation of v + a-1 times in the predetermined direction with respect to the partial sequences constituting the first sequence.

그러고 나서, 순환 차족을 활용한 데이터 분산 저장 장치(110)는 상기 제1 시퀀스와 상기 v+a-1개의 제2 시퀀스들을 이용해서 N+ta개의 메시지들을 v+a개의 데이터 저장소들(101, 102, 103)에 분산 저장할 수 있다.Then, the data distribution storage device 110 utilizing the cyclic shifts the N + ta messages using the first sequence and the v + a-1 second sequences to v + a data stores 101, 102, and 103, respectively.

이러한 방식으로 본 발명에 따른 순환 차족을 활용한 데이터 분산 저장 장치(110)는 상기 제1 시퀀스의 길이를 증가시킴으로써, 저장 메시지들의 개수를 자유롭게 증가시킬 수 있다.In this way, the data distribution storage device 110 utilizing the cyclic shift according to the present invention can freely increase the number of stored messages by increasing the length of the first sequence.

여기서, 완전 차족에 대해 설명하면, v=k(k-1)t+1로 주어진 (v, k, 1) 순환 차족

Figure 112016123009961-pat00007
가 있고, Bi
Figure 112016123009961-pat00008
를 만족할 때,
Figure 112016123009961-pat00009
에 대하여 Bi에 포함되어 있는 원소들 중 tk(k-1)/2개의 서로 다른 원소들 간 차(
Figure 112016123009961-pat00010
)들의 집합이
Figure 112016123009961-pat00011
가 된다면 그 순환 차족은 (v, k, 1) 파라미터를 갖는 완전 차족이라 정의할 수 있다.Hereinafter, a description will be given of the perfect phase. The (v, k, 1) cyclic phase given by v = k (k-1) t +
Figure 112016123009961-pat00007
And B i is
Figure 112016123009961-pat00008
Lt; / RTI >
Figure 112016123009961-pat00009
(K-1) of the elements contained in B i / the difference between two different elements
Figure 112016123009961-pat00010
)
Figure 112016123009961-pat00011
, Then the circulation can be defined as a full scale with (v, k, 1) parameters.

도 3은 본 발명의 일실시예에 따른 순환 차족을 활용한 데이터 분산 저장 방법을 도시한 순서도이다.FIG. 3 is a flowchart illustrating a data distribution storage method using a cyclic shift according to an embodiment of the present invention.

단계(S31)에서는 N(N은 N=tv의 조건을 만족하는 자연수이고, v는 v=k(k-1)t+1의 조건을 만족하는 자연수이며, k는 2이상의 자연수이고, t는 1이상의 자연수임)개의 메시지들에 대해 v개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 v개의 데이터 저장소들에 대응하는 v개의 메시지 분산 그룹들을 생성한다.In step S31, N (N is a natural number satisfying the condition of N = tv, v is a natural number satisfying the condition of v = k (k-1) t + 1, k is a natural number of 2 or more, When a distributed storage command to v data stores is applied to messages of 1 or more natural numbers, v message distribution groups corresponding to the v data stores are generated.

단계(S32)에서는 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk(tk는 t와 k의 곱을 의미함)개씩 분산 할당(상기 v개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음)한다.In step S32, the N messages are distributedly allocated to each of the v message distribution groups by tk (tk is a product of t and k) (messages distributed to v message distribution groups are allocated to each other May be duplicated).

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

이때, 본 발명의 일실시예에 따르면, 단계(S32)에서는 "0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 집합인 Zv(상기 Zv에 포함되어 있는 원소들의 개수는 v개임)에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 모든 차들 각각이 상기 Zv에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t개의 부분 집합들(상기 t개의 부분 집합들의 모임은 (v, k, 1)의 파라미터를 갖는 순환 차족으로 정의됨)을 확인하는 단계, 상기 t개의 부분 집합들 각각에 대해서, 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들에 기초하여 상기 Zv에 포함되어 있는 "0"부터 "v-1"까지의 정수들에 대해 "0"부터 "v-1" 순으로 "1"과 "0"의 코드 값을 할당함으로써, v개의 "1"과 "0"의 코드 값으로 구성된 t개의 부분 시퀀스들을 생성하고, 상기 t개의 부분 시퀀스들을 조합하여 총 N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스(N=tv이며, 상기 t개의 부분 집합들 각각에 대해서 v개씩 "1"과 "0"의 코드 값을 할당함으로써 생성한 상기 t개의 부분 시퀀스들을 조합하여 상기 제1 시퀀스를 생성하였으므로, 상기 제1 시퀀스를 구성하는 "1"과 "0"의 코드 값은 총 N개가 됨)를 생성하는 단계, 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들 각각에 대해 선정된 방향으로 순환시프트 연산을 v-1회 수행하면서, 각 순환시프트 연산이 수행될 때마다 순환시프트 연산이 완료된 상기 t개의 부분 시퀀스들을 조합하여 제2 시퀀스를 생성함으로써, 총 v-1개의 제2 시퀀스들을 생성하는 단계, 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 제1 시퀀스와 상기 v-1개의 제2 시퀀스들을 하나씩 매칭시키는 단계 및 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계를 포함할 수 있다.At this time, according to an embodiment of the present invention, in step S32, a set Z v (the number of elements included in the Z v includes integers from "0" to "v-1" v Games) element contained in said Z v all cars respectively between the two elements different from the one of the plurality of the subset having the k elements, k of elements included in each of the plurality of the subset of the T subsets (the collection of t subsets is defined as a circle with parameters of (v, k, 1)) that are found to match only one different element except for "0 " From "0" to "v-1" contained in the Z v , based on k elements contained in each of the t subsets, for each of the t subsets 1 "and" 0 "in the order of" 0 &Quot; 1 "and "0" code values by combining the t partial sequences with the code values of " And combining the t partial sequences generated by assigning code values of "1" and "0 " for each of the t subsets to v for a first sequence (N = tv, Code value of " 1 " and "0" constituting the first sequence is total N) By performing a cyclic shift operation v-1 times in a predetermined direction with respect to each of the sequences, combining the t partial sequences that have completed the cyclic shift operation each time each cyclic shift operation is performed, thereby generating a second sequence generating v-1 second sequences, Matching the first sequence and the v-1 second sequences one by one for each of the v message distribution groups, and for each of the v message distribution groups, matching each of the v message distribution groups And distributing the N messages by tk based on N code values constituting each sequence.

이때, 본 발명의 일실시예에 따르면, 상기 제1 시퀀스를 생성하는 단계는 상기 t개의 부분 집합들 각각에 대해서, 상기 Zv에 포함되어 있는 "0"부터 "v-1"까지의 정수들 중 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당함으로써, 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들을 생성할 수 있다.In this case, according to an embodiment of the present invention, the step of generating the first sequence may include, for each of the t subsets, integers from "0" to "v-1" included in the Z v A code value of "1 " is assigned to integers corresponding to the k elements included in each of the t subsets, and a code value corresponding to k elements included in each of the t subsets By assigning a code value of "0 " to the remaining constants that do not belong to the same sequence, the t partial sequences consisting of the code values of v" 1 "and" 0 ".

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

이때, 상기 N개의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계는 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당할 수 있다.At this time, the step of distributing the N messages by tk based on the N code values constitutes each sequence matched to each of the v message distribution groups for each of the v 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, Tk < / RTI >

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

또한, 본 발명의 일실시예에 따르면, 순환 차족을 활용한 데이터 분산 저장 방법은 상기 v개의 데이터 저장소들에 상기 N개의 메시지들이 tk개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드 명령이 인가되면, 상기 로드 명령에 기초하여 상기 v개의 데이터 저장소들 중 tk개의 데이터 저장소들을 랜덤하게 선택하고, 상기 tk개의 데이터 저장소들 각각으로부터 상기 tk개의 데이터 저장소들 각각에 저장되어 있는 tk개의 저장 메시지들을 추출하는 단계 및 상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 단계를 더 포함할 수 있다.According to another embodiment of the present invention, there is provided a method of distributing data using circulation, the method comprising: storing N messages in the v data stores in tk distributions; Randomly selects tk data stores out of the v data stores based on the load command and extracts tk stored messages from each of the tk data stores from each of the tk data stores And loading the stored messages extracted from each of the tk data stores into tk data according to a load command for the N messages.

이때, 본 발명의 일실시예에 따르면, 상기 N개의 메시지들은 일부 메시지의 손실이 발생할 경우, 나머지 메시지들을 기초로 손실 메시지들의 복구가 가능한 MDS 코드이고, 상기 로드하는 단계는 상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 저장 메시지들이 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 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, And stores index values assigned to the extracted stored messages and an 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을 참조하여 본 발명의 일실시예에 따른 순환 차족을 활용한 데이터 분산 저장 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 순환 차족을 활용한 데이터 분산 저장 방법은 도 1과 도 2를 이용하여 설명한 순환 차족을 활용한 데이터 분산 저장 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.Hereinbefore, the data distribution storage method using the cyclic shift according to the embodiment of the present invention has been described with reference to FIG. Here, the data distribution storage method using the circulation tile according to an embodiment of the present invention may correspond to the configuration of the operation of the data distribution storage apparatus 110 using the circulation tile described with reference to FIGS. 1 and 2 Therefore, a detailed description thereof will be omitted.

본 발명의 일실시예에 따른 순환 차족을 활용한 데이터 분산 저장 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.The method for storing and distributing data using circulation according to an embodiment of the present invention may be implemented by a computer program stored in a storage medium for execution through a combination with a computer.

또한, 본 발명의 일실시예에 따른 순환 차족을 활용한 데이터 분산 저장 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, the data distribution storing method using the circulation method 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 and recorded in a computer readable medium. 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: 순환 차족을 활용한 데이터 분산 저장 장치
111: 분산 그룹 생성부 112: 메시지 분산 할당부
113: 데이터 저장부 114: 순환 차족 확인부
115: 제1 시퀀스 생성부 116: 제2 시퀀스 생성부
117: 시퀀스 매칭부 118: 할당부
119: 인덱스 할당부 120: 저장 메시지 추출부
121: 데이터 로드부
101, 102, 103: v개의 데이터 저장소들
110: Distributed data storage using circulation
111: distributed group generation unit 112: message distribution assignment unit
113: Data storage unit 114: Circulation check unit
115: first sequence generator 116: second sequence generator
117: Sequence matching unit 118: Assignment unit
119: Index assigning unit 120: Store message extracting unit
121: Data load unit
101, 102, 103: v data stores

Claims (16)

N - N은 N=tv의 조건을 만족하는 자연수이고, v는 v=k(k-1)t+1의 조건을 만족하는 자연수이며, k는 2이상의 자연수이고, t는 1이상의 자연수임 - 개의 메시지들에 대해 v개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 v개의 데이터 저장소들에 대응하는 v개의 메시지 분산 그룹들을 생성하는 분산 그룹 생성부;
상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk - tk는 t와 k의 곱을 의미함 - 개씩 분산 할당 - 상기 v개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 메시지 분산 할당부; 및
상기 v개의 메시지 분산 그룹들 각각에 할당되어 있는 tk개의 메시지들을 상기 v개의 메시지 분산 그룹들 별로, 상기 v개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 데이터 저장부
를 포함하고,
상기 메시지 분산 할당부는
"0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 집합인 Zv - 상기 Zv에 포함되어 있는 원소들의 개수는 v개임 - 에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 모든 차들 각각이 상기 Zv에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t개의 부분 집합들 - 상기 t개의 부분 집합들의 모임은 (v, k, 1)의 파라미터를 갖는 순환 차족(Cyclic Difference Family)으로 정의됨 - 을 확인하는 순환 차족 확인부;
상기 t개의 부분 집합들 각각에 대해서, 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들에 기초하여 상기 Zv에 포함되어 있는 "0"부터 "v-1"까지의 정수들에 대해 "0"부터 "v-1" 순으로 "1"과 "0"의 코드 값을 할당함으로써, v개의 "1"과 "0"의 코드 값으로 구성된 t개의 부분 시퀀스들을 생성하고, 상기 t개의 부분 시퀀스들을 조합하여 총 N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스 - N=tv이며, 상기 t개의 부분 집합들 각각에 대해서 v개씩 "1"과 "0"의 코드 값을 할당함으로써 생성한 상기 t개의 부분 시퀀스들을 조합하여 상기 제1 시퀀스를 생성하였으므로, 상기 제1 시퀀스를 구성하는 "1"과 "0"의 코드 값은 총 N개가 됨 - 를 생성하는 제1 시퀀스 생성부;
상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들 각각에 대해 선정된(predetermined) 방향으로 순환시프트 연산을 v-1회 수행하면서, 각 순환시프트 연산이 수행될 때마다 순환시프트 연산이 완료된 상기 t개의 부분 시퀀스들을 조합하여 제2 시퀀스를 생성함으로써, 총 v-1개의 제2 시퀀스들을 생성하는 제2 시퀀스 생성부;
상기 v개의 메시지 분산 그룹들 각각에 대해 상기 제1 시퀀스와 상기 v-1개의 제2 시퀀스들을 하나씩 매칭시키는 시퀀스 매칭부; 및
상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 할당부
를 포함하는 순환 차족을 활용한 데이터 분산 저장 장치.
N is a natural number satisfying the condition of N = tv, v is a natural number satisfying the condition of v = k (k-1) t + 1, k is a natural number of 2 or more, t is natural number of 1 or more, A distributed group generation unit for generating v message distribution groups corresponding to the v data stores when a distributed storage command to v data stores is applied to the messages;
Tk - tk denotes a multiplication of t and k for each of the v message distribution groups, - distributed allocation of messages, - messages distributed over v message distribution groups may overlap each other, A message distribution allocation unit; And
A data storage unit for separating and storing tk messages allocated to each of the v message distribution groups in the v data distribution groups corresponding to v message distribution groups,
Lt; / RTI >
The message distribution assignment unit
Z v which is an aggregate containing integers from "0" to "v-1", Z v - the number of elements contained in Z v is equal to v - , Each of all the differences between two different elements among the k elements included in each of the plurality of subsets corresponds to only one element other than "0 " in the elements included in the Z v T subsequences identified as a cyclic shift confirmation, wherein the collection of t subsets is defined as a Cyclic Difference Family with parameters of (v, k, 1);
For each of the t subsets, for integers from "0" to "v-1" contained in the Z v based on k elements contained in each of the t subsets 1 "and" 0 "code values by assigning code values of" 1 "and" 0 "from" 0 "to" v-1 " A first sequence consisting of a total of N "1" and "0" code values in combination of partial sequences - N = tv and a code value of "1" and "0" for each of the t subsets, The first sequence is generated by combining the t partial sequences generated by assigning the first sequence to the first sequence, and thus the code values of "1" and "0" constituting the first sequence are total N, Generating unit;
Performing a cyclic shift operation in a predetermined direction v-1 times for each of the t partial sequences composed of v code values of "1" and "0 " while performing each cyclic shift operation A second sequence generator for generating a total of v-1 second sequences by generating a second sequence by combining the t partial sequences having completed the cyclic shift operation;
A sequence matching unit for matching the first sequence and the v-1 second sequences one by one for each of the v message distribution groups; And
For each of the v message distribution groups, an allocation unit for allocating tk of the N messages based on N code values constituting each sequence matched to each of the v message distribution groups,
And a data distribution storage apparatus using the circulation system.
삭제delete 제1항에 있어서,
상기 제1 시퀀스 생성부는
상기 t개의 부분 집합들 각각에 대해서, 상기 Zv에 포함되어 있는 "0"부터 "v-1"까지의 정수들 중 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당함으로써, 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들을 생성하는 순환 차족을 활용한 데이터 분산 저장 장치.
The method according to claim 1,
The first sequence generator
Constant, consistent with the k elements in one of the integer for each of the t of the subset, from "0" contained in the Z v to "v-1" included in each of the t partial set By allocating a code value of "1" to all of the t subsets and assigning a code value of "0 " to remaining integers not matching k elements contained in each of the t subsets, And generates the t partial sequences composed of code values of "1" and "0 ".
제3항에 있어서,
상기 메시지 분산 할당부는
상기 N개의 메시지들 각각에 대해 순번 정보와 연관된 인덱스 값을 할당하는 인덱스 할당부
를 더 포함하고,
상기 할당부는
상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 순환 차족을 활용한 데이터 분산 저장 장치.
The method of claim 3,
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 v message distribution groups, an arrangement order of N code values constituting each sequence matched to each of the v message distribution groups is compared with an index value assigned to each of the N messages. And allocates the N messages by tk based on a code value of an array order that matches an index value assigned to the N messages.
제4항에 있어서,
상기 할당부는
상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값 중 tk개씩 존재하는 "1"의 코드 값을 확인한 후, 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지들 중 상기 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 tk개의 메시지들을 분산 할당하는 순환 차족을 활용한 데이터 분산 저장 장치.
5. The method of claim 4,
The assigning unit
For each of the v message distribution groups, a code value of "1" existing in tk among N code values constituting each sequence matched to each of the v message distribution groups is checked, For each of the message distribution groups, distributes tk messages to which an index value corresponding to the code value of the "1" of the N messages is allocated, .
제5항에 있어서,
상기 v개의 데이터 저장소들에 상기 N개의 메시지들이 tk개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드(load) 명령이 인가되면, 상기 로드 명령에 기초하여 상기 v개의 데이터 저장소들 중 tk개의 데이터 저장소들을 랜덤하게 선택하고, 상기 tk개의 데이터 저장소들 각각으로부터 상기 tk개의 데이터 저장소들 각각에 저장되어 있는 tk개의 저장 메시지들을 추출하는 저장 메시지 추출부; 및
상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 데이터 로드부
를 더 포함하는 순환 차족을 활용한 데이터 분산 저장 장치.
6. The method of claim 5,
When a load command for the N messages is applied after the N messages are distributedly distributed in the v data stores, the tk data among the v data stores based on the load command, A storage message extractor for randomly selecting tanks and extracting tk stored messages stored in each of the tk data stores from each of the tk data stores; And
A data load unit for loading storage messages extracted by each tk of the tk data stores into data corresponding to a load instruction for the N messages,
And a data distribution storage apparatus using the circulation system.
제6항에 있어서,
상기 N개의 메시지들은 일부 메시지의 손실이 발생할 경우, 나머지 메시지들을 기초로 손실 메시지들의 복구가 가능한 최대 거리 분리 가능(Maximum Distance Separable: MDS) 코드이고,
상기 데이터 로드부는
상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 저장 메시지들이 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 N개의 메시지들에 할당된 인덱스 값을 비교하여 상기 N개의 메시지들 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되면, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 순환 차족을 활용한 데이터 분산 저장 장치.
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
Wherein when the stored messages are extracted from each of the tk 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 To load data according to a load command for the data storage device.
컴퓨터에 의해 수행되는 순환 차족을 활용한 데이터 분산 저장 방법에 있어서,
N - N은 N=tv의 조건을 만족하는 자연수이고, v는 v=k(k-1)t+1의 조건을 만족하는 자연수이며, k는 2이상의 자연수이고, t는 1이상의 자연수임 - 개의 메시지들에 대해 v개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 v개의 데이터 저장소들에 대응하는 v개의 메시지 분산 그룹들을 생성하는 단계;
상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk - tk는 t와 k의 곱을 의미함 - 개씩 분산 할당 - 상기 v개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 단계; 및
상기 v개의 메시지 분산 그룹들 각각에 할당되어 있는 tk개의 메시지들을 상기 v개의 메시지 분산 그룹들 별로, 상기 v개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 단계
를 포함하고,
상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계는
"0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 집합인 Zv - 상기 Zv에 포함되어 있는 원소들의 개수는 v개임 - 에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 모든 차들 각각이 상기 Zv에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t개의 부분 집합들 - 상기 t개의 부분 집합들의 모임은 (v, k, 1)의 파라미터를 갖는 순환 차족(Cyclic Difference Family)으로 정의됨 - 을 확인하는 단계;
상기 t개의 부분 집합들 각각에 대해서, 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들에 기초하여 상기 Zv에 포함되어 있는 "0"부터 "v-1"까지의 정수들에 대해 "0"부터 "v-1" 순으로 "1"과 "0"의 코드 값을 할당함으로써, v개의 "1"과 "0"의 코드 값으로 구성된 t개의 부분 시퀀스들을 생성하고, 상기 t개의 부분 시퀀스들을 조합하여 총 N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스 - N=tv이며, 상기 t개의 부분 집합들 각각에 대해서 v개씩 "1"과 "0"의 코드 값을 할당함으로써 생성한 상기 t개의 부분 시퀀스들을 조합하여 상기 제1 시퀀스를 생성하였으므로, 상기 제1 시퀀스를 구성하는 "1"과 "0"의 코드 값은 총 N개가 됨 - 를 생성하는 단계;
상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들 각각에 대해 선정된(predetermined) 방향으로 순환시프트 연산을 v-1회 수행하면서, 각 순환시프트 연산이 수행될 때마다 순환시프트 연산이 완료된 상기 t개의 부분 시퀀스들을 조합하여 제2 시퀀스를 생성함으로써, 총 v-1개의 제2 시퀀스들을 생성하는 단계;
상기 v개의 메시지 분산 그룹들 각각에 대해 상기 제1 시퀀스와 상기 v-1개의 제2 시퀀스들을 하나씩 매칭시키는 단계; 및
상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계
를 포함하는 순환 차족을 활용한 데이터 분산 저장 방법.
A method of distributing data using circulation performed by a computer,
N is a natural number satisfying the condition of N = tv, v is a natural number satisfying the condition of v = k (k-1) t + 1, k is a natural number of 2 or more, t is natural number of 1 or more, Generating v message distribution groups corresponding to the v data stores if a distributed store instruction to v data stores is granted for the messages;
Tk - tk denotes a multiplication of t and k for each of the v message distribution groups, - distributed allocation of messages, - messages distributed over v message distribution groups may overlap each other, ; And
Separating and storing tk messages allocated to each of the v message distribution groups in the v message distribution groups and in a data repository corresponding to each message distribution group among the v data stores,
Lt; / RTI >
The step of distributing the N messages by tk for each of the v message distribution groups
Z v which is an aggregate containing integers from "0" to "v-1", Z v - the number of elements contained in Z v is equal to v - , Each of all the differences between two different elements among the k elements included in each of the plurality of subsets corresponds to only one element other than "0 " in the elements included in the Z v T subsets identified as a cyclic difference family with a parameter of (v, k, 1);
For each of the t subsets, for integers from "0" to "v-1" contained in the Z v based on k elements contained in each of the t subsets 1 "and" 0 "code values by assigning code values of" 1 "and" 0 "from" 0 "to" v-1 " A first sequence consisting of a total of N "1" and "0" code values in combination of partial sequences - N = tv and a code value of "1" and "0" for each of the t subsets, Generating the first sequence by combining the t partial sequences generated by assigning the first sequence to the first sequence, and generating code values of "1" and "0" constituting the first sequence in total N;
Performing a cyclic shift operation in a predetermined direction v-1 times for each of the t partial sequences composed of v code values of "1" and "0 " while performing each cyclic shift operation Generating a total of v-1 second sequences by combining the t partial sequences having completed the cyclic shift operation to generate a second sequence;
Matching the first sequence and the v-1 second sequences one by one for each of the v message distribution groups; And
For each of the v message distribution groups, distributing the N messages by tk based on N code values constituting each sequence matched to each of the v message distribution groups
And a data distribution storing method using the circulating series.
삭제delete 제8항에 있어서,
상기 제1 시퀀스를 생성하는 단계는
상기 t개의 부분 집합들 각각에 대해서, 상기 Zv에 포함되어 있는 "0"부터 "v-1"까지의 정수들 중 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당함으로써, 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들을 생성하는 순환 차족을 활용한 데이터 분산 저장 방법.
9. The method of claim 8,
The step of generating the first sequence
Constant, consistent with the k elements in one of the integer for each of the t of the subset, from "0" contained in the Z v to "v-1" included in each of the t partial set By allocating a code value of "1" to all of the t subsets and assigning a code value of "0 " to remaining integers not matching k elements contained in each of the t subsets, And generating the t partial sequences composed of code values of "1" and "0 ".
제10항에 있어서,
상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계는
상기 N개의 메시지들 각각에 대해 순번 정보와 연관된 인덱스 값을 할당하는 단계
를 더 포함하고,
상기 N개의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계는
상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 순환 차족을 활용한 데이터 분산 저장 방법.
11. The method of claim 10,
The step of distributing the N messages by tk for each of the v 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 tk based on the N code values
For each of the v message distribution groups, an arrangement order of N code values constituting each sequence matched to each of the v message distribution groups is compared with an index value assigned to each of the N messages. And distributing the N messages by tk based on a code value of an array order corresponding to an index value assigned to the N messages.
제11항에 있어서,
상기 N개의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계는
상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값 중 tk개씩 존재하는 "1"의 코드 값을 확인한 후, 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지들 중 상기 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 tk개의 메시지들을 분산 할당하는 순환 차족을 활용한 데이터 분산 저장 방법.
12. The method of claim 11,
The step of distributing the N messages by tk based on the N code values
For each of the v message distribution groups, a code value of "1" existing in tk among N code values constituting each sequence matched to each of the v message distribution groups is checked, For each of the message distribution groups, tk messages to which an index value corresponding to the code value of the "1" of the N messages is allocated is distributed and distributed. .
제12항에 있어서,
상기 v개의 데이터 저장소들에 상기 N개의 메시지들이 tk개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드(load) 명령이 인가되면, 상기 로드 명령에 기초하여 상기 v개의 데이터 저장소들 중 tk개의 데이터 저장소들을 랜덤하게 선택하고, 상기 tk개의 데이터 저장소들 각각으로부터 상기 tk개의 데이터 저장소들 각각에 저장되어 있는 tk개의 저장 메시지들을 추출하는 단계; 및
상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 단계
를 더 포함하는 순환 차족을 활용한 데이터 분산 저장 방법.
13. The method of claim 12,
When a load command for the N messages is applied after the N messages are distributedly distributed in the v data stores, the tk data among the v data stores based on the load command, Randomly selecting the tanks and extracting tk stored messages from each of the tk data stores from each of the tk data stores; And
Loading the stored messages extracted by each tk from each of the tk data stores into data according to a load command for the N messages,
And storing the data in the storage unit.
제13항에 있어서,
상기 N개의 메시지들은 일부 메시지의 손실이 발생할 경우, 나머지 메시지들을 기초로 손실 메시지들의 복구가 가능한 최대 거리 분리 가능(Maximum Distance Separable: MDS) 코드이고,
상기 로드하는 단계는
상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 저장 메시지들이 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 N개의 메시지들에 할당된 인덱스 값을 비교하여 상기 N개의 메시지들 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되면, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 순환 차족을 활용한 데이터 분산 저장 방법.
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
Wherein when the stored messages are extracted from each of the tk 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 To load the data according to the load command for the data.
제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.
KR1020160171272A 2016-12-15 2016-12-15 Data distribution storage apparatus and method using cyclic difference family KR101893566B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160171272A KR101893566B1 (en) 2016-12-15 2016-12-15 Data distribution storage apparatus and method using cyclic difference family

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160171272A KR101893566B1 (en) 2016-12-15 2016-12-15 Data distribution storage apparatus and method using cyclic difference family

Publications (2)

Publication Number Publication Date
KR20180069253A KR20180069253A (en) 2018-06-25
KR101893566B1 true KR101893566B1 (en) 2018-08-30

Family

ID=62805920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160171272A KR101893566B1 (en) 2016-12-15 2016-12-15 Data distribution storage apparatus and method using cyclic difference family

Country Status (1)

Country Link
KR (1) KR101893566B1 (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

Citations (1)

* 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

Patent Citations (1)

* 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

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
KR20180069253A (en) 2018-06-25

Similar Documents

Publication Publication Date Title
US10747780B2 (en) Blockchain-based data processing method and device
US9195392B2 (en) Distributed storage method, apparatus, and system
Vöcking How asymmetry helps load balancing
US10237074B2 (en) Redactable document signatures
US20110013777A1 (en) Encryption/decryption of digital data using related, but independent keys
US9864550B2 (en) Method and apparatus of recovering and encoding for data recovery in storage system
CN110930145A (en) Cold wallet generation method, transaction information processing method, device and storage medium
US10831738B2 (en) Parallelized in-place radix sorting
CN108829899B (en) Data table storage, modification, query and statistical method
CN103942292A (en) Virtual machine mirror image document processing method, device and system
US9479327B2 (en) Apparatus and method for generating key
CN110730185A (en) Block chain big data processing method and system based on distributed computation
KR101873879B1 (en) Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element
KR101893566B1 (en) Data distribution storage apparatus and method using cyclic difference family
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
KR101496764B1 (en) Method and apparatus for managing file to recover original file with at least pre-determined number file fragments
KR101873878B1 (en) Data storage apparatus and method for storing a message dispersedly based on relative difference set
KR102197993B1 (en) Data distribution storage apparatus and method using partitioned iteration code
KR101738415B1 (en) Data storage apparatus and method for storing a message dispersedly
CN112181974B (en) Identification information distribution method, system and storage device
KR101741186B1 (en) Data distribution storage apparatus and method for verifying the locally repairable code
Fu et al. Fast tamper location of batch DNA sequences based on reversible data hiding
KR101977119B1 (en) Data distribution storage apparatus and method using difference covering arrays

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