KR102197993B1 - Data distribution storage apparatus and method using partitioned iteration code - Google Patents

Data distribution storage apparatus and method using partitioned iteration code Download PDF

Info

Publication number
KR102197993B1
KR102197993B1 KR1020190022396A KR20190022396A KR102197993B1 KR 102197993 B1 KR102197993 B1 KR 102197993B1 KR 1020190022396 A KR1020190022396 A KR 1020190022396A KR 20190022396 A KR20190022396 A KR 20190022396A KR 102197993 B1 KR102197993 B1 KR 102197993B1
Authority
KR
South Korea
Prior art keywords
messages
data
subsets
sequence
code
Prior art date
Application number
KR1020190022396A
Other languages
Korean (ko)
Other versions
KR20200104034A (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 KR1020190022396A priority Critical patent/KR102197993B1/en
Publication of KR20200104034A publication Critical patent/KR20200104034A/en
Application granted granted Critical
Publication of KR102197993B1 publication Critical patent/KR102197993B1/en

Links

Images

Classifications

    • 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
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

분할 반복 부호를 이용한 데이터 분산 저장 장치 및 방법이 개시된다. 본 발명은 복수의 메시지들을 여러 데이터 저장소들에 분산 저장하는 방법에 있어서, 적은 수 데이터 저장소들만을 활용해서 상기 복수의 메시지들을 분산 저장할 수 있도록 함과 동시에 메시지가 분산 저장되어 있는 데이터 저장소들 중 최소한의 데이터 저장소들만을 선택하여 액세스하더라도 상기 복수의 메시지들이 모두 로드될 수 있도록 함으로써, 메시지들에 대한 데이터 손실을 방지할 수 있는 효율적인 데이터 분산 저장 기법에 대한 것이다.Disclosed is an apparatus and method for distributed storage of data using divisional repetition codes. The present invention provides a method of distributing and storing a plurality of messages in several data stores, allowing the plurality of messages to be distributed and stored using only a small number of data stores, and at the same time, at least among data stores in which messages are distributed and stored. The present invention relates to an efficient data distribution storage technique capable of preventing data loss for messages by allowing all of the plurality of messages to be loaded even if only the data stores of are selected and accessed.

Description

분할 반복 부호를 이용한 데이터 분산 저장 장치 및 방법{DATA DISTRIBUTION STORAGE APPARATUS AND METHOD USING PARTITIONED ITERATION CODE}Data distribution storage device and method using division and repetition codes {DATA DISTRIBUTION STORAGE APPARATUS AND METHOD USING PARTITIONED ITERATION CODE}

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

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

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

이러한 인터넷 서비스 제공 업체들은 이메일 서비스, 블로그, 카페, 클라우드 서비스, 소셜 네트워크 서비스 등을 제공하기 위해 다수의 클라이언트 단말들로부터 업로드되는 대용량의 데이터들을 자체의 데이터 저장소에 저장을 해야하는데, 이러한 데이터들이 데이터 저장소 내에서 손실되게 되면, 고객들에게 정상적인 서비스를 제공하지 못하기 때문에 데이터의 손실을 방지하기 위한 다양한 노력을 하고 있다.These Internet service providers must store large amounts of data uploaded from multiple client terminals in their own data storage to provide email services, blogs, cafes, cloud services, and social network services. If it is lost in the storage, it cannot provide normal services to customers, so various efforts are being made to prevent data loss.

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

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

하지만, 기존의 데이터 백업 방식은 별도의 데이터 저장 기준 없이 단순히 원본 메시지에 대한 복사 메시지를 생성한 후 복수의 데이터 저장소들에 분산해서 저장하는 방식만을 도입하고 있어서, 복수의 메시지들을 데이터 저장소에 저장해야 하는 경우에는 대용량의 데이터 저장 공간을 확보해야 하거나 많은 수의 데이터 저장소를 구비해야 하는 등의 비효율성이 존재하였다.However, the existing data backup method only introduces a method of simply creating a copy message for the original message and storing it in a plurality of data stores without a separate data storage standard, so it is necessary to store multiple messages in the data storage. In this case, there is an inefficiency such as having to secure a large data storage space or have a large number of data storage.

따라서, 복수의 메시지들을 여러 데이터 저장소들에 분산 저장하는 방법과 관련해서, 적은 수의 데이터 저장소들만을 활용하여서도 상기 복수의 메시지들의 분산 저장이 가능하도록 하고, 데이터가 분산 저장되어 있는 복수의 데이터 저장소들 중 최소한의 데이터 저장소들만을 선택하여 액세스하더라도 상기 복수의 메시지들이 모두 로드될 수 있도록 하는 효율적인 데이터 분산 저장 기법에 대한 연구가 필요하다.Therefore, in relation to the method of distributing and storing a plurality of messages in several data stores, it is possible to distribute the plurality of messages even by using only a small number of data stores, and a plurality of data in which data is distributedly stored. There is a need for research on an efficient data distribution storage technique that allows all of the plurality of messages to be loaded even if only the minimum number of data stores among the stores are selected and accessed.

대한민국 등록특허공보 제10-1893566호(2018.08.30)Korean Registered Patent Publication No. 10-1893566 (2018.08.30) 대한민국 등록특허공보 제10-1741186호(2017.05.29)Korean Patent Publication No. 10-1741186 (2017.05.29)

본 발명은 복수의 메시지들을 여러 데이터 저장소들에 분산 저장하는 방법에 있어서, 적은 수 데이터 저장소들만을 활용해서 상기 복수의 메시지들을 분산 저장할 수 있도록 함과 동시에 메시지가 분산 저장되어 있는 데이터 저장소들 중 최소한의 데이터 저장소들만을 선택하여 액세스하더라도 상기 복수의 메시지들이 모두 로드될 수 있도록 함으로써, 메시지들에 대한 데이터 손실을 방지할 수 있는 효율적인 데이터 분산 저장 기법을 제공하고자 한다.The present invention provides a method of distributing and storing a plurality of messages in several data stores, allowing the plurality of messages to be distributed and stored using only a small number of data stores, and at the same time, at least among data stores in which messages are distributed and stored. By allowing all of the plurality of messages to be loaded even if only the data storages of are selected and accessed, an efficient data distribution storage technique capable of preventing data loss for messages is provided.

본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 장치는 N - N은 N=tv의 조건을 만족하는 자연수이고, v는 v=6t-k의 조건을 만족하는 자연수이며, k와 t는 2이상의 자연수임 - 개의 메시지들에 대해 v개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 v개의 데이터 저장소들에 대응하는 v개의 메시지 분산 그룹들을 생성하는 분산 그룹 생성부, "0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 가산 군(additive group)에 대한 집합인 G - 상기 G에 포함되어 있는 원소들의 개수는 v개임 - 에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 상기 G에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t-1개의 제1 부분 집합들을 선택하는 제1 부분 집합 선택부, 상기 복수의 부분 집합들에서 상기 t-1개의 제1 부분 집합들이 제외된 나머지 부분 집합들 중, 상기 나머지 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 자기 자신의 부분 집합의 원소로 포함되는 1개의 제2 부분 집합을 선택하는 제2 부분 집합 선택부, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함된 k개의 원소들에 기초하여 상기 N개의 메시지들을 상기 v개의 메시지 분산 그룹들 각각에 할당하기 위한 시퀀스를 생성하고, 상기 시퀀스에 기초하여 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk - tk는 t와 k의 곱을 의미함 - 개씩 분산 할당 - 상기 v개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 메시지 분산 할당부 및 상기 v개의 메시지 분산 그룹들 각각에 할당되어 있는 tk개의 메시지들을 상기 v개의 메시지 분산 그룹별로, 상기 v개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 데이터 저장부를 포함한다.In the data distribution storage device using the divisional repetition code according to an embodiment of the present invention, N-N is a natural number that satisfies the condition of N=tv, v is a natural number that satisfies the condition of v=6t-k, and k and t is a natural number of 2 or more-When a command for distributed storage to v data stores is applied for 2 messages, a distribution group generator that generates v message distribution groups corresponding to the v data stores, "0 G, which is a set for an additive group containing integers from "to "v-1" as elements-the number of elements in G is v-a plurality of k elements for Among the subsets, all remaining values calculated by dividing the difference between two different elements among the k elements included in each of the plurality of subsets by v represent "0" in the elements included in G. A first subset selection unit that selects t-1 first subsets that are found to match only one other element except for, and the t-1 first subsets are excluded from the plurality of subsets. Among the remaining subsets, all the remaining values calculated by dividing the difference between two different elements by v among k elements included in each of the remaining subsets are included as elements of their own subset. A second subset selection unit for selecting 2 subsets, distributing the N messages to the v messages based on k elements included in each of the t-1 first subsets and the second subset Create a sequence to allocate to each of the groups, and based on the sequence, for each of the v message distribution groups, the N messages tk-tk means the product of t and k-each distributed allocation-the v The messages distributedly allocated to the message distribution groups may overlap each other-the message distribution allocation unit and the tk messages allocated to each of the v message distribution groups Each of the v message distribution groups includes a data storage unit that separates and stores data in a data store corresponding to each message distribution group among the v data stores.

또한, 본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 방법은 N - N은 N=tv의 조건을 만족하는 자연수이고, v는 v=6t-k의 조건을 만족하는 자연수이며, k와 t는 2이상의 자연수임 - 개의 메시지들에 대해 v개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 v개의 데이터 저장소들에 대응하는 v개의 메시지 분산 그룹들을 생성하는 단계, "0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 가산 군에 대한 집합인 G - 상기 G에 포함되어 있는 원소들의 개수는 v개임 - 에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 상기 G에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t-1개의 제1 부분 집합들을 선택하는 단계, 상기 복수의 부분 집합들에서 상기 t-1개의 제1 부분 집합들이 제외된 나머지 부분 집합들 중, 상기 나머지 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 자기 자신의 부분 집합의 원소로 포함되는 1개의 제2 부분 집합을 선택하는 단계, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함된 k개의 원소들에 기초하여 상기 N개의 메시지들을 상기 v개의 메시지 분산 그룹들 각각에 할당하기 위한 시퀀스를 생성하고, 상기 시퀀스에 기초하여 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk - tk는 t와 k의 곱을 의미함 - 개씩 분산 할당 - 상기 v개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 단계 및 상기 v개의 메시지 분산 그룹들 각각에 할당되어 있는 tk개의 메시지들을 상기 v개의 메시지 분산 그룹별로, 상기 v개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 단계를 포함한다.In addition, in the data distribution storage method using the divided repetition code according to an embodiment of the present invention, N-N is a natural number that satisfies the condition of N = tv, and v is a natural number that satisfies the condition of v = 6t-k, k and t are natural numbers greater than or equal to 2-when a command for distributed storage to v data stores is applied for 2 messages, generating v message distribution groups corresponding to the v data stores, "0" Among a plurality of subsets having k elements for G, which is a set for an addition group containing integers from "v-1" as elements-the number of elements included in G is v- All remaining values calculated by dividing the difference between two different elements by v among the k elements included in each of the plurality of subsets are one different from the elements included in G except "0" Selecting t-1 first subsets that are found to match only the element, the remaining subsets from among the remaining subsets in which the t-1 first subsets are excluded from the plurality of subsets Selecting one second subset in which all the remaining values calculated by dividing the difference between two different elements by v among the k elements included in each of the k elements are included as elements of their own subset, the t -A sequence for allocating the N messages to each of the v message distribution groups is generated based on k elements included in each of one first subset and the second subset, and the sequence Based on the N messages for each of the v message distribution groups, tk-tk means the product of t and k-distributed allocation by each-messages distributed distributedly allocated to the v message distribution groups may overlap each other Yes-step of, and tk messages allocated to each of the v message distribution groups, for each of the v message distribution groups, and each message distribution group among the v data stores And separately storing it in a data storage corresponding to.

본 발명은 복수의 메시지들을 여러 데이터 저장소들에 분산 저장하는 방법에 있어서, 적은 수 데이터 저장소들만을 활용해서 상기 복수의 메시지들을 분산 저장할 수 있도록 함과 동시에 메시지가 분산 저장되어 있는 데이터 저장소들 중 최소한의 데이터 저장소들만을 선택하여 액세스하더라도 상기 복수의 메시지들이 모두 로드될 수 있도록 함으로써, 메시지들에 대한 데이터 손실을 방지할 수 있는 효율적인 데이터 분산 저장 기법을 제공할 수 있다.The present invention provides a method of distributing and storing a plurality of messages in several data stores, allowing the plurality of messages to be distributed and stored using only a small number of data stores, and at the same time, at least among data stores in which messages are distributed and stored. By allowing all of the plurality of messages to be loaded even if only the data stores of are selected and accessed, it is possible to provide an efficient data distribution storage technique capable of preventing data loss for messages.

도 1은 본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 장치의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 방법을 도시한 순서도이다.
1 is a diagram showing the structure of a data distribution storage device using divisional repetition codes according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating an operation of a data distribution storage device using divisional repetition codes according to an embodiment of the present invention.
3 is a flowchart illustrating a data distribution storage method using divided repetition codes according to an embodiment of the present invention.

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

본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다. In this document, when a part "includes" a certain component, it means that other components may be further included rather than excluding other components unless otherwise stated. In addition, in various embodiments of the present invention, each component, functional blocks or means may be composed of one or more sub-components, and the electrical, electronic, and mechanical functions performed by each component are electronic. A circuit, an integrated circuit, and an application specific integrated circuit (ASIC) may be implemented with various known devices or mechanical elements, and may be implemented separately or two or more may be integrated into one.

한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.On the other hand, the blocks of the attached block diagram and the steps in the flowchart are computer program instructions that are mounted on a processor or memory of equipment capable of processing data such as a general-purpose computer, a special-purpose computer, a portable notebook computer, and a network computer to perform specified functions. It can be interpreted as meaning. Since these computer program instructions can be stored in a memory provided in a computer device or in a memory readable by a computer, the functions described in the blocks in the block diagram or in the steps in the flowchart are produced as a product containing the instruction means to perform this. It could be. In addition, each block or each step may represent a module, segment, or part of code including one or more executable instructions for executing the specified logical function(s). In addition, it should be noted that in some alternative embodiments, functions mentioned in blocks or steps may be executed in a different order. For example, two blocks or steps shown in succession may be performed substantially simultaneously or may be performed in reverse order, and in some cases, some blocks or steps may be omitted.

도 1은 본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 장치의 구조를 도시한 도면이다.1 is a diagram showing the structure of a data distribution storage device using divisional repetition codes according to an embodiment of the present invention.

도 1을 참조하면, 본 발명에 따른 분할 반복 부호를 이용한 데이터 분산 저장 장치(110)는 분산 그룹 생성부(111), 제1 부분 집합 선택부(112), 제2 부분 집합 선택부(113), 메시지 분산 할당부(114) 및 데이터 저장부(115)를 포함한다.Referring to FIG. 1, a data distribution storage device 110 using a divided repetition code according to the present invention includes a distribution group generation unit 111, a first subset selection unit 112, and a second subset selection unit 113. , A message distribution allocation unit 114 and a data storage unit 115.

분산 그룹 생성부(111)는 N개의 메시지들에 대해 v개의 데이터 저장소들(101, 102, 103)로의 분산 저장 명령이 인가되면, 상기 v개의 데이터 저장소들(101, 102, 103)에 대응하는 v개의 메시지 분산 그룹들을 생성한다.When a distributed storage command to the v data stores 101, 102, 103 is applied to the N messages, the distribution group generator 111 corresponds to the v data stores 101, 102, 103. Create v message distribution groups.

여기서, N은 N=tv의 조건을 만족하는 자연수이고, v는 v=6t-k의 조건을 만족하는 자연수이며, k와 t는 2이상의 자연수이다.Here, N is a natural number that satisfies the condition of N=tv, v is a natural number that satisfies the condition of v=6t-k, and k and t are natural numbers of 2 or more.

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

제1 부분 집합 선택부(112)는 "0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 가산 군(additive group)에 대한 집합인 G(상기 G에 포함되어 있는 원소들의 개수는 v개임)에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 상기 G에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t-1개의 제1 부분 집합들을 선택한다.The first subset selection unit 112 includes G, which is a set for an additive group including integers from "0" to "v-1" as elements (the number of elements included in G is Among the plurality of subsets having k elements for v), all remaining values calculated by dividing the difference between two different elements by v among the k elements included in each of the plurality of subsets are the From the elements included in G, t-1 first subsets that are found to match only one element other than "0" are selected.

관련해서, 상기 t-1개의 제1 부분 집합들을 선택하는 과정에 대해 좀 더 상세히 설명하면 다음과 같다.In connection, the process of selecting the t-1 first subsets will be described in more detail as follows.

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

Figure 112019020039312-pat00001
라고 하자.First, when there is G, which is a set containing integers from "0" to "v-1" as elements, a plurality of subsets having k elements for G
Figure 112019020039312-pat00001
Let's say.

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

Figure 112019020039312-pat00002
Figure 112019020039312-pat00002

이때, 제1 부분 집합 선택부(112)는 상기 복수의 부분 집합들 Bi 중, 상기 수학식 1에 따라 연산되는 나머지 값 D 각각이 상기 G에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t-1개의 제1 부분 집합들을 선택할 수 있다.In this case, the first subset selection unit 112 includes each of the remaining values D calculated according to Equation 1 among the plurality of subsets B i except for "0" in the elements included in G. It is possible to select t-1 first subsets that are found to match only one other element.

예컨대, t=3, k=3, v=15라고 가정하면, "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14"를 원소로 포함하고 있는 집합인 G가 있을 때, 3개의 원소를 포함하고 있는 G의 부분 집합은 복수개가 존재할 수 있다. 이러한 복수의 부분 집합들은 각각 3개의 원소를 포함하고 있기 때문에 각 부분 집합에 포함되어 있는 서로 다른 두 원소 간의 차는 총 6개가 존재할 수 있고, 이때, 제1 부분 집합 선택부(112)는 이러한 6개의 두 원소 간의 차를 상기 수학식 1의 연산에 따라 "15"로 나누었을 때 연산되는 6개의 나머지 값들이 상기 G에 포함되어 있는 "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14"라는 정수 중 "0"을 제외한 오직 1개의 정수와만 일치하는 것으로 확인되는 부분 집합들을 상기 제1 부분 집합으로 선택할 수 있다.For example, assuming t=3, k=3, v=15, "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14" is an element When there is G, which is a set containing as, there may be a plurality of subsets of G containing three elements. Since each of the plurality of subsets includes 3 elements, there may be a total of 6 differences between the two different elements included in each subset. In this case, the first subset selection unit 112 When the difference between the two elements is divided by “15” according to the operation of Equation 1, the six remaining values calculated are “0, 1, 2, 3, 4, 5, 6, 7, which are included in G. Among the integers 8, 9, 10, 11, 12, 13, 14", subsets found to match only one integer excluding "0" may be selected as the first subset.

상기 예에서는 상기 제1 부분 집합으로 "{0, 1, 4}", "{0, 2, 9}"가 존재할 수 있다. 관련해서, "{0, 1, 4}"의 경우 서로 다른 두 원소 간의 상기 수학식 1에 따른 연산 값은 "1, 3, 4, 11, 12, 14"가 나올 수 있고, 이때, "1, 3, 4, 11, 12, 14" 각각은 G에 포함되어 있는 정수들 중 1개의 정수와만 일치하기 때문에 "{0, 1, 4}"라는 부분 집합은 상기 제1 부분 집합 중 하나로 선택될 수 있다. 그리고, "{0, 2, 9}"의 경우 서로 다른 두 원소 간의 상기 수학식 1에 따른 연산 값은 "2, 6, 7, 8, 9, 13"이 나올 수 있고, 이때, "2, 6, 7, 8, 9, 13" 각각은 G에 포함되어 있는 정수들 중 1개의 정수와만 일치하기 때문에 "{0, 2, 9}"라는 부분 집합도 상기 제1 부분 집합 중 하나로 선택될 수 있다.In the above example, "{0, 1, 4}" and "{0, 2, 9}" may exist as the first subset. Relatedly, in the case of "{0, 1, 4}", the operation value according to Equation 1 between two different elements may be "1, 3, 4, 11, 12, 14", and in this case, "1 , 3, 4, 11, 12, 14" each matches only one of the integers included in G, so the subset "{0, 1, 4}" is selected as one of the first subsets. Can be. And, in the case of "{0, 2, 9}", the operation value according to Equation 1 between two different elements may be "2, 6, 7, 8, 9, 13". In this case, "2, Since each of 6, 7, 8, 9, 13" matches only one of the integers included in G, a subset of "{0, 2, 9}" can also be selected as one of the first subsets. I can.

제2 부분 집합 선택부(113)는 상기 복수의 부분 집합들에서 상기 t-1개의 제1 부분 집합들이 제외된 나머지 부분 집합들 중, 상기 나머지 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 자기 자신의 부분 집합의 원소로 포함되는 1개의 제2 부분 집합을 선택한다.The second subset selection unit 113 is selected from among k elements included in each of the remaining subsets among the remaining subsets from which the t-1 first subsets are excluded from the plurality of subsets. A second subset is selected in which all remaining values calculated by dividing the difference between two different elements by v are included as elements of its own subset.

관련해서, 제2 부분 집합 선택부(113)는 상기 t-1개의 제1 부분 집합들이 제외된 나머지 부분 집합들 중 각 부분 집합에서의 두 원소 간의 상기 수학식 1에 따른 연산 값 전부가 자기 자신의 부분 집합의 원소로 포함하고 있는 1개의 제2 부분 집합을 선택할 수 있다.In relation to the second subset selection unit 113, the entire operation value according to Equation 1 between two elements in each subset among the remaining subsets excluding the t-1 first subsets is itself It is possible to select one second subset containing as elements of a subset of.

예컨대, 앞서 설명한 예와 같이, t=3, k=3, v=15라고 가정하고, "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14"를 원소로 포함하고 있는 집합인 G가 있다고 하는 경우, 제2 부분 집합 선택부(113)는 상기 제1 부분 집합인 "{0, 1, 4}", "{0, 2, 9}"을 제외한 나머지 부분 집합들 중에서 두 원소 간의 상기 수학식 1에 따른 연산 값 전부가 자기 자신의 원소로 포함하고 있는 부분 집합을 상기 제2 부분 집합으로 선택할 수 있다.For example, as in the example described above, assuming that t=3, k=3, v=15, "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, When it is assumed that there is G, which is a set including 13 and 14" as an element, the second subset selection unit 113 includes "{0, 1, 4}", "{0, 2," 9}", among the remaining subsets, a subset in which all of the calculation values according to Equation 1 between two elements are included as its own elements may be selected as the second subset.

본 예에서는 상기 제2 부분 집합으로 "{0, 5, 10}"이 존재할 수 있다. 관련해서, "{0, 5, 10}"의 경우 서로 다른 두 원소 간의 상기 수학식 1에 따른 연산 값은 "5, 5, 10, 5, 5, 10"이 나올 수 있고, 이때, "5, 5, 10, 5, 5, 10" 모두는 "{0, 5, 10}"이라고 하는 자기 자신의 부분 집합의 원소에 모두 포함되기 때문에 "{0, 5, 10}"이라는 부분 집합은 상기 제2 부분 집합으로 선택될 수 있다.In this example, "{0, 5, 10}" may exist as the second subset. Relatedly, in the case of "{0, 5, 10}", the operation value according to Equation 1 between two different elements may be "5, 5, 10, 5, 5, 10", and in this case, "5 , 5, 10, 5, 5, 10" are all contained in the elements of their own subset called "{0, 5, 10}", so the subset "{0, 5, 10}" It may be selected as a second subset.

결국, t=3, k=3, v=15일 때, 제1 부분 집합 선택부(112)는 G에 대한 복수의 부분 집합들 중 "{0, 1, 4}", "{0, 2, 9}"이라는 2개의 제1 부분 집합을 선택할 수 있고, 제2 부분 집합 선택부(113)는 G에 대한 복수의 부분 집합들 중 "{0, 5, 10}"이라는 1개의 제2 부분 집합을 선택할 수 있다.As a result, when t=3, k=3, and v=15, the first subset selection unit 112 includes "{0, 1, 4}", "{0, 2" among a plurality of subsets for G. , 9}" may be selected, and the second subset selection unit 113 may select one second part of "{0, 5, 10}" among a plurality of subsets for G You can choose a set.

이렇게, v=6t-k의 조건을 만족할 때, "0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 가산 군에 대한 집합인 G에 대한 k개의 원소를 갖는 복수의 부분 집합들 중에는 t-1개의 제1 부분 집합들과 1개의 제2 부분 집합이 존재하게 되는데, 상기 t-1개의 제1 부분 집합들과 상기 1개의 제2 부분 집합의 모임을 (v, k, 1)의 파라미터를 갖는 부분 순환 차족(Partial Cyclic Difference Family)이라 칭할 수 있다.In this way, when the condition of v=6t-k is satisfied, a plurality of subsets having k elements for G, which is a set of addition groups containing integers from "0" to "v-1" as elements Among them, there are t-1 first subsets and one second subset, and the group of the t-1 first subsets and the one second subset is (v, k, 1) It may be referred to as a partial cyclic difference family having a parameter of.

메시지 분산 할당부(114)는 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함된 k개의 원소들에 기초하여 상기 N개의 메시지들을 상기 v개의 메시지 분산 그룹들 각각에 할당하기 위한 시퀀스를 생성하고, 상기 시퀀스에 기초하여 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk(tk는 t와 k의 곱을 의미함)개씩 분산 할당한다.The message distribution allocation unit 114 allocates the N messages to each of the v message distribution groups based on k elements included in each of the t-1 first subsets and the second subsets. A sequence is generated, and the N messages are distributedly allocated to each of the v message distribution groups based on the sequence, tk (tk means a product of t and k).

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

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

이때, 본 발명의 일실시예에 따르면, 데이터 분산 할당부(114)는 제1 시퀀스 생성부(116), 제2 시퀀스 생성부(117), 시퀀스 매칭부(118) 및 할당부(119)를 포함할 수 있다.At this time, according to an embodiment of the present invention, the data distribution allocation unit 114 includes the first sequence generation unit 116, the second sequence generation unit 117, the sequence matching unit 118, and the allocation unit 119. Can include.

제1 시퀀스 생성부(116)는 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함되어 있는 k개의 원소들을 기초로 상기 G에 포함되어 있는 "0"부터 "v-1"까지의 정수들에 대해 "0"부터 "v-1" 순으로 "1"과 "0"의 코드 값을 할당함으로써, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 대응하는 v개의 "1"과 "0"의 코드 값으로 구성된 t개의 부분 시퀀스들을 생성하고, 상기 t개의 부분 시퀀스들을 조합하여 총 N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스(N=tv이며, 상기 제1 시퀀스는 v개의 "1"과 "0"의 코드 값으로 구성된 부분 시퀀스 t개의 조합이므로, 상기 제1 시퀀스를 구성하는 "1"과 "0"의 코드 값은 총 N개가 됨)를 생성한다.The first sequence generator 116 is based on the k elements included in each of the t-1 first subsets and the second subset, from "0" to "v-1" included in the G. By assigning code values of "1" and "0" in the order of "0" to "v-1" for integers from "to", each of the t-1 first subsets and the second subset is A first sequence consisting of a total of N code values of "1" and "0" by generating t partial sequences consisting of v corresponding code values of "1" and "0", and combining the t partial sequences (N=tv, and the first sequence is a combination of t partial sequences consisting of v code values of “1” and “0”, so the code values of “1” and “0” constituting the first sequence are A total of N) is generated.

이때, 제1 시퀀스 생성부(116)는 상기 G에 포함되어 있는 "0"부터 "v-1"까지의 정수들 중 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함되어 있는 k개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함되어 있는 k개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당함으로써, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 대응하는 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들을 생성할 수 있다.In this case, the first sequence generation unit 116 is included in each of the t-1 first subsets and the second subsets among integers from "0" to "v-1" included in the G. A code value of "1" is assigned to integers that match the k elements, and matches k elements included in each of the t-1 first subsets and the second subset. Code values of "1" and "0" corresponding to the t-1 first subsets and the second subsets respectively by assigning a code value of "0" to the remaining integers The t partial sequences composed of may be generated.

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

관련해서, 상기 제1 시퀀스와 상기 v-1개의 제2 시퀀스가 생성되는 과정에 대해 예를 들어 설명하면 다음과 같다.In relation to the process of generating the first sequence and the v-1 second sequence, an example will be described as follows.

우선, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합의 선택이 완료됨에 따라 총 t개의 부분 집합들이 존재한다고 하는 경우, 총 t개의 부분 집합들 각각에 대해서, 상기 G에 포함되어 있는 "0"부터 "v-1"까지의 정수들 중 총 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 총 t개의 부분 집합들 각각에 포함되어 있는 k개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당하게 되면, v개의 "1"과 "0"의 코드 값으로 구성된 시퀀스들을 t개 획득할 수 있다.First, when it is said that a total of t subsets exist as the selection of the t-1 first subsets and the second subset is completed, each of the total t subsets is included in the G A code value of "1" is assigned to integers that match k elements included in each of the total t subsets of integers from "0" to "v-1", and a total of t If a code value of "0" is assigned to the remaining integers that do not match the k elements included in each of the subsets, t sequences consisting of v "1" and "0" code values are Can be obtained.

이때, 상기 t개의 시퀀스들을 t개의 부분 시퀀스들이라고 하고, 상기 t개의 부분 시퀀스들을 일렬로 나열하여 서로 조합하게 되면, 총 N개(N=tv임)의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 획득할 수 있다.At this time, the t sequences are referred to as t subsequences, and when the t subsequences are arranged in a line and combined with each other, a total of N (N=tv) code values of “1” and “0” It is possible to obtain a first sequence consisting of.

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

예컨대, k=3, t=3이라고 가정하고, v=6t-k라 할 때, v를 15라고 하면, "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14"를 원소로 포함하고 있는 집합인 G에서 상기 제1 부분 집합은 "{0, 1, 4}", "{0, 2, 9}"가 존재하고, 상기 제2 부분 집합은 "{0, 5, 10}"이 존재하게 된다.For example, assuming k=3, t=3, and v=6t-k, if v is 15, "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 , 11, 12, 13, 14" as an element in G, the first subset includes "{0, 1, 4}" and "{0, 2, 9}", and the first In the second subset, "{0, 5, 10}" exists.

이때, 상기 G에 포함되어 있는 "0"부터 "14"까지의 정수들 중 상기 3개의 부분 집합들 "{0, 1, 4}", "{0, 2, 9}", "{0, 5, 10}" 각각에 포함되어 있는 3개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 3개의 부분 집합들 "{0, 1, 4}", "{0, 2, 9}", "{0, 5, 10}" 각각에 포함되어 있는 3개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당하게 되면, "110010000000000", "101000000100000" 및 "100001000010000"이라는 3개의 부분 시퀀스들을 획득할 수 있다.At this time, among the integers from "0" to "14" included in the G, the three subsets "{0, 1, 4}", "{0, 2, 9}", "{0," 5, 10}" Allocates a code value of "1" to integers that match the three elements included in each of the three subsets "{0, 1, 4}", "{0" , 2, 9}", "{0, 5, 10}" If the code value of "0" is assigned to the remaining integers that do not match the 3 elements in each, "110010000000000", " Three partial sequences of 101000000100000" and "100001000010000" can be obtained.

이때, "110010000000000", "101000000100000" 및 "100001000010000"이라는 3개의 부분 시퀀스들을 일렬로 나열하여 조합하게 되면, 총 45개의 "1"과 "0"의 코드 값으로 구성된 "110010000000000101000000100000100001000010000"이라는 제1 시퀀스를 획득할 수 있다.At this time, if three partial sequences of "110010000000000", "101000000100000" and "100001000010000" are arranged in a row and combined, a first sequence of "110010000000000101000000100000100001000010000" consisting of 45 code values of "1" and "0" Can be obtained.

그리고, "110010000000000", "101000000100000" 및 "100001000010000"이라는 상기 3개의 부분 시퀀스들에 대해 오른쪽 방향으로 순환시프트 연산을 14회 수행하면서, 각 순환시프트 연산이 수행될 때마다 순환시프트 연산이 완료된 3개의 부분 시퀀스들을 일렬로 나열하여 조합함에 따라 제2 시퀀스를 생성하게 되면, 총 14개의 제2 시퀀스들을 추가로 획득할 수 있다.And, while performing a cyclic shift operation 14 times in the right direction for the three partial sequences “110010000000000”, “101000000100000”, and “100001000010000”, three cyclic shift operations are completed each time each cyclic shift operation is performed. When a second sequence is generated by arranging and combining partial sequences in a line, a total of 14 second sequences may be additionally obtained.

관련해서, "110010000000000", "101000000100000" 및 "100001000010000"이라는 상기 3개의 부분 시퀀스들에 대해 오른쪽 방향으로 1회 순환시프트 연산을 수행하게 되면, "011001000000000", "010100000010000", "010000100001000"이라는 3개의 추가 부분 시퀀스들을 획득할 수 있고, "011001000000000", "010100000010000", "010000100001000"이라는 3개의 추가 부분 시퀀스들을 서로 일렬로 나열하여 조합하게 되면, 011001000000000010100000010000010000100001000"이라는 추가 시퀀스를 획득할 수 있다. 이러한 방식으로 3개의 부분 시퀀스들에 대해 오른쪽 방향으로 순환시프트 연산을 총 14번 수행하면서 추가 시퀀스를 획득하게 되면, 순환시프트 연산이 14회 수행되었으므로, 총 14개의 시퀀스들을 추가로 획득할 수 있다.Relatedly, if the cyclic shift operation is performed once in the right direction for the three subsequences of "110010000000000", "101000000100000" and "100001000010000", three types of "011001000000000", "010100000010000", and "010000100001000" Additional partial sequences can be obtained, and when three additional partial sequences, "011001000000000", "010100000010000", and "010000100001000", are arranged in a line with each other and combined, an additional sequence of 011001000000000010100000010000010000100001000" can be obtained. In this way When an additional sequence is acquired while performing a cyclic shift operation in the right direction for the three partial sequences 14 times, since the cyclic shift operation is performed 14 times, a total of 14 sequences can be additionally obtained.

이러한 방식으로, 시퀀스를 생성하게 되면, 최종적으로 총 15개의 시퀀스들이 생성될 수 있고, 이때, 각 시퀀스들 내에 존재하는 "1"의 코드 값의 개수는 모두 9개로 동일하다.In this way, when a sequence is generated, a total of 15 sequences can be finally generated, and at this time, the number of code values of "1" in each sequence is the same as 9.

이렇게, 상기 제1 시퀀스와 상기 v-1개의 제2 시퀀스 생성이 완료되면, 시퀀스 매칭부(118)는 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 제1 시퀀스와 상기 v-1개의 제2 시퀀스들을 하나씩 매칭시킨다.In this way, when the generation of the first sequence and the v-1 second sequence is completed, the sequence matching unit 118 performs the first sequence and the v-1 second sequence for each of the v message distribution groups. Match them one by one.

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

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

이때, 할당부(119)는 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당할 수 있다.At this time, the allocator 119, 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 and each of the N messages After comparing the index values allocated to the N messages, tk may be distributed and allocated to the N messages based on a code value in an array order that matches the index values allocated to the N messages.

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

이때, 본 발명의 일실시예에 따르면, 분할 반복 부호를 이용한 데이터 분산 저장 장치(110)는 저장 메시지 추출부(121) 및 데이터 로드부(122)를 더 포함할 수 있다.In this case, according to an embodiment of the present invention, the data distribution storage device 110 using the divisional repetition code may further include a storage message extraction unit 121 and a data load unit 122.

저장 메시지 추출부(121)는 v개의 데이터 저장소들(101, 102, 103)에 상기 N개의 메시지들이 tk개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드(load) 명령이 인가되면, 상기 로드 명령에 기초하여 v개의 데이터 저장소들(101, 102, 103) 중 tk개의 데이터 저장소들을 랜덤하게 선택하고, 상기 tk개의 데이터 저장소들 각각으로부터 상기 tk개의 데이터 저장소들 각각에 저장되어 있는 tk개의 저장 메시지들을 추출한다.The stored message extracting unit 121 distributes and stores tk of the N messages in v data stores 101, 102, 103, and then when a load command for the N messages is applied, the load Tk stored messages stored in each of the tk data stores from each of the tk data stores randomly selected from among v data stores (101, 102, 103) based on the command Extract them.

데이터 로드부(122)는 상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드한다.The data load unit 122 loads tk stored messages extracted from each of the tk data stores as data according to a 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 a Maximum Distance Separable (MDS) code that enables recovery of lost messages based on the remaining messages when some messages are lost. .

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

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

이하에서는 도 2를 참조하여, 본 발명에 따른 분할 반복 부호를 이용한 데이터 분산 저장 장치(110)의 동작을 예를 들어 상세히 설명하기로 한다.Hereinafter, with reference to FIG. 2, the operation of the data distribution storage device 110 using the divided repetition code according to the present invention will be described in detail by way of example.

도 2는 본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 장치(110)의 동작을 설명하기 위한 도면이다.FIG. 2 is a diagram for explaining the operation of the data distribution storage device 110 using divided repetition codes according to an embodiment of the present invention.

우선, k=3, t=3라고 가정하고, v=6t-k임에 따라, v=15, N=tv임에 따라, N=45이라고 할 때, 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), 데이터 저장소 14(214), 데이터 저장소 15(215)로 존재하며, N=45인 관계로 데이터 저장소 1~15(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215)에 저장할 메시지들의 개수가 45개인 것으로 가정하기로 한다.First, assuming that k=3, t=3, v=6t-k, v=15, N=tv, and N=45, v data stores 101, 102, 103), as shown in Figure 2, data store 1 (201), data store 2 (202), data store 3 (203), data store 4 (204), data store 5 (205), data store 6 ( 206), Data Store 7(207), Data Store 8(208), Data Store 9(209), Data Store 10(210), Data Store 11(211), Data Store 12(212), Data Store 13(213) ), data storage 14(214), data storage 15(215), and data storage 1~15 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210) as N=45 , 211, 212, 213, 214, 215), it is assumed that the number of messages to be stored is 45.

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

그리고, 메시지 분산 할당부(114)에 포함되어 있는 인덱스 할당부(120)는 상기 45개의 메시지들에 대해서 순번 정보와 연관된 인덱스 값을 할당할 수 있는데, 인덱스 할당부(120)가 상기 45개의 메시지들에 대해 순서대로 1부터 45까지의 인덱스 값을 할당한다고 하면, 상기 45개의 메시지들은 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"로 표시할 수 있다.In addition, the index allocating unit 120 included in the message distribution allocating unit 114 may allocate an index value associated with the sequence number information to the 45 messages, and the index allocating unit 120 Assuming that index values from 1 to 45 are allocated in order, the 45 messages are "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39 , m40, m41, m42, m43, m44, m45".

k=3, t=3, v=15라고 가정하였기 때문에, 제1 부분 집합 선택부(112)는 "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14"를 원소로 포함하고 있는 집합인 G에 대한 3개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 3개의 원소들 중에서 서로 다른 두 원소 간의 차를 15로 나누어서 연산되는 모든 나머지 값들이 상기 G에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 2개의 제1 부분 집합들을 선택할 수 있다.Since it is assumed that k=3, t=3, and v=15, the first subset selection unit 112 is "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 Among a plurality of subsets having three elements for G, which is a set containing 12, 13, 14" as elements, two different elements among the three elements included in each of the plurality of subsets It is possible to select two first subsets in which all remaining values calculated by dividing the difference between them by 15 are found to match only one different element except for “0” in the elements included in G.

그리고, 제2 부분 집합 선택부(113)는 상기 복수의 부분 집합들에서 상기 2개의 제1 부분 집합들이 제외된 나머지 부분 집합들 중, 상기 나머지 부분 집합들 각각에 포함되어 있는 3개의 원소들 중에서 서로 다른 두 원소 간의 차를 15로 나누어서 연산되는 모든 나머지 값들이 자기 자신의 부분 집합의 원소로 포함되는 1개의 제2 부분 집합을 선택할 수 있다.In addition, the second subset selection unit 113 is selected from among the three elements included in each of the remaining subsets among the remaining subsets from which the two first subsets are excluded from the plurality of subsets. One second subset may be selected in which all remaining values calculated by dividing the difference between two different elements by 15 are included as elements of the own subset.

이때, 제1 시퀀스 생성부(116)는 상기 2개의 제1 부분 집합들과 상기 1개의 제2 부분 집합 각각에 포함되어 있는 3개의 원소들에 기초하여 상기 G에 포함되어 있는 "0"부터 "14"까지의 정수들에 대해 "0"부터 "14" 순으로 "1"과 "0"의 코드 값을 할당함으로써, 15개의 "1"과 "0"의 코드 값으로 구성된 3개의 부분 시퀀스들을 생성하고, 상기 3개의 부분 시퀀스들을 조합하여 총 45개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스를 생성할 수 있다.At this time, the first sequence generation unit 116 is based on the three elements included in each of the two first subsets and the one second subset, from "0" to "" By assigning code values of "1" and "0" in the order of "0" to "14" for integers up to 14", 3 partial sequences consisting of 15 code values of "1" and "0" And, by combining the three partial sequences, a first sequence composed of a total of 45 code values of "1" and "0" may be generated.

관련해서, 상기 제1 부분 집합이 "{0, 1, 4}", "{0, 2, 9}"이고, 상기 제2 부분 집합이 "{0, 5, 10}"라고 가정하자.In this regard, assume that the first subset is "{0, 1, 4}" and "{0, 2, 9}", and the second subset is "{0, 5, 10}".

이때, 제1 시퀀스 생성부(116)는 "{0, 1, 4}", "{0, 2, 9}", "{0, 5, 10}" 각각에 대해, 상기 G에 포함되어 있는 "0"부터 "14"까지의 정수들 중 "{0, 1, 4}", "{0, 2, 9}", "{0, 5, 10}" 각각에 포함되어 있는 3개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, "{0, 1, 4}", "{0, 2, 9}", "{0, 5, 10}" 각각에 포함되어 있는 3개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당함으로써, "110010000000000", "101000000100000", "100001000010000"이라는 3개의 부분 시퀀스들을 생성할 수 있다.At this time, the first sequence generating unit 116 is included in the G for each of "{0, 1, 4}", "{0, 2, 9}", and "{0, 5, 10}" Three elements included in each of "{0, 1, 4}", "{0, 2, 9}", and "{0, 5, 10}" among integers from "0" to "14" Allocates a code value of "1" to the integers that match with and is included in each of "{0, 1, 4}", "{0, 2, 9}", and "{0, 5, 10}" By assigning a code value of "0" to the remaining integers that do not match the three elements that exist, three subsequences of "110010000000000", "101000000100000" and "100001000010000" can be generated.

그러고 나서, 제1 시퀀스 생성부(116)는 "110010000000000", "101000000100000", "100001000010000"이라는 3개의 부분 시퀀스들을 일렬로 나열하여 조합함으로써, 총 45개의 "1"과 "0"의 코드 값으로 구성된 110010000000000101000000100000100001000010000(301)이라는 제1 시퀀스를 획득할 수 있다.Then, the first sequence generation unit 116 arranges and combines three subsequences of "110010000000000", "101000000100000", and "100001000010000" in a row, so that a total of 45 code values of "1" and "0" The configured first sequence of 110010000000000101000000100000100001000010000 (301) may be obtained.

그리고, 제2 시퀀스 생성부(117)는 "110010000000000", "101000000100000", "100001000010000"이라는 상기 3개의 부분 시퀀스들에 대해 오른쪽 또는 왼쪽 중 어느 하나의 선정된 방향으로 순환시프트 연산을 14회 수행(본 실시예에서는 오른쪽 방향으로 순환시프트 연산을 수행함)하면서, 각 순환시프트 연산이 수행될 때마다 순환시프트 연산이 완료된 3개의 부분 시퀀스들을 일렬로 나열하여 조합하여 제2 시퀀스를 생성함으로써, 총 14개의 제2 시퀀스들(302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315)을 생성할 수 있다.In addition, the second sequence generator 117 performs a cyclic shift operation 14 times in a selected direction of either the right or the left for the three partial sequences of "110010000000000", "101000000100000", and "100001000010000" ( In the present embodiment, a cyclic shift operation is performed in the right direction), and a second sequence is generated by combining three partial sequences in which the cyclic shift operation is completed each time each cyclic shift operation is performed. Second sequences 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315 may be generated.

이러한 제1 시퀀스인 11001000000001010000100000(301)와 14개의 제2 시퀀스들(302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315)은 앞서 설명한 바와 같이, 항상 tk개의 "1"의 코드 값을 갖게 되는데, 본 실시예에서 t=3, k=3으로 가정하였기 때문에 15개의 시퀀스들(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315) 각각에 포함된 "1"의 코드 값은 항상 9개이다.This first sequence 11001000000001010000100000 (301) and 14 second sequences (302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315) are as described above. , It always has tk code values of "1". In this embodiment, since t=3, k=3 is assumed, 15 sequences (301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315) There are always 9 code values of "1" included in each.

이렇게, 15개의 시퀀스들(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315)이 생성되면, 시퀀스 매칭부(118)는 데이터 저장소 1~15(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215)에 각각 대응하는 15개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) 각각에 대해 15개의 시퀀스들(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315)을 하나씩 매칭시킬 수 있다.Thus, when 15 sequences 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315 are generated, the sequence matching unit 118 is a data storage 15 message distribution groups (401, 402, 403) each corresponding to 1 to 15 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215) , 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) 15 sequences (301, 302, 303, 304, 305, 306, 307, 308, 309) , 310, 311, 312, 313, 314, 315) can be matched one by one.

그러고 나서, 할당부(119)는 15개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) 각각에 대해, 15개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) 각각에 매칭되어 있는 각 시퀀스를 구성하는 45개의 코드 값에 기초하여 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"를 할당할 수 있다.Then, the allocation unit 119 for each of the 15 message distribution groups (401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415), 45 codes constituting each sequence matched to each of 15 message distribution groups (401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) Based on the value, the 45 messages, "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" Can be assigned.

구체적으로, 할당부(119)는 15개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) 각각에 매칭되어 있는 각 시퀀스를 구성하는 45개의 코드 값의 배열 순서와 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"를 15개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415)에 할당할 수 있다.Specifically, the allocation unit 119 is matched to each of the 15 message distribution groups 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415 The order of the arrangement of 45 code values constituting each sequence and the 45 messages such as "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, After comparing the index values assigned to each of m41, m42, m43, m44, m45", the 45 messages such as "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37 , m38, m39, m40, m41, m42, m43, m44, m45" based on the code value of the sequence matching the index value assigned to the 45 messages "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" to 15 message distribution groups (401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) Can be assigned.

이때, 할당부(119)는 15개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) 각각에 매칭되어 있는 각 시퀀스를 구성하는 45개의 코드 값 중 9개씩 존재하는 "1"의 코드 값을 확인한 후 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" 중 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 9개의 메시지들을 15개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415)에 할당할 수 있다.At this time, the allocation unit 119 is matched to each of the 15 message distribution groups 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415 After checking the code value of "1", which is 9 out of 45 code values constituting each sequence, the 45 messages such as "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36 , m37, m38, m39, m40, m41, m42, m43, m44, m45" of which 9 messages are assigned an index value that matches the arrangement order of the code value of "1" in 15 message distribution groups ( 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415).

예컨대, 메시지 분산 그룹 1(401)에 대해서는 110010000000000101000000100000100001000010000(301)라는 시퀀스가 매칭되어 있기 때문에 할당부(119)는 110010000000000101000000100000100001000010000(301)로부터 "1"의 코드 값을 확인한 후 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" 중에서 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 9개의 메시지들을 메시지 분산 그룹 1(401)에 할당할 수 있다.For example, since the sequence of 110010000000000101000000100000100001000010000 (301) is matched for the message distribution group 1 (401), the allocation unit 119 checks the code value of "1" from 110010000000000101000000100000100001000010000 (301), and then the 45 messages "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45. Nine messages to which matching index values are allocated may be allocated to message distribution group 1 (401).

관련해서, 110010000000000101000000100000100001000010000(301)에서는 "1"의 코드 값이 1번, 2번, 5번, 16번, 18번, 25번, 31번, 36번, 41번 위치에 배열되어 있기 때문에 할당부(119)는 도 2에 도시된 바와 같이, 메시지 분산 그룹 1(401)에 대해 1번, 2번, 5번, 16번, 18번, 25번, 31번, 36번, 41번 위치에 대응하는 인덱스 값이 할당되어 있는 "m1, m2, m5, m16, m18, m25, m31, m36, m41"을 할당할 수 있다.Relatedly, in 110010000000000101000000100000100001000010000(301), the code value of "1" is arranged at positions 1, 2, 5, 16, 18, 25, 31, 36, and 41, so the allocation unit ( 119) corresponds to positions 1, 2, 5, 16, 18, 25, 31, 36 and 41 for message distribution group 1 401, as shown in FIG. "M1, m2, m5, m16, m18, m25, m31, m36, m41" to which an index value is assigned can be allocated.

이러한 방식으로, 할당부(119)는 15개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) 각각에 대해 도 2에 도시된 바와 같이 각 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415)에 매칭되어 있는 각 시퀀스에 기초하여 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"를 9개씩 분산 할당할 수 있다.In this way, the allocator 119 for each of the 15 message distribution groups 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415 As shown in FIG. 2, each sequence matching each message distribution group (401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) Based on the 45 messages, "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" to 9 Each can be distributed and allocated.

이렇게, 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"가 모두 15개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415)에 9개씩 분산 할당이 완료되면, 데이터 저장부(115)는 15개의 메시지 분산 그룹들(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) 각각에 할당되어 있는 9개의 메시지들을 15개의 메시지 분산 그룹(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415)별로 데이터 저장소 1~15(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215) 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장할 수 있다.Thus, the 45 messages, "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" are all When the distribution allocation of 9 messages to 15 message distribution groups (401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) is completed, the data storage unit ( 115) is 15 messages allocated to each of the 15 message distribution groups (401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415). Data storage 1~15 (201, 202, 203, 204, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415) 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215) can be stored separately in the data storage corresponding to each message distribution group.

예컨대, 데이터 저장부(115)는 메시지 분산 그룹 1(401)에 할당되어 있는 9개의 메시지들인 "m1, m2, m5, m16, m18, m25, m31, m36, m41"을 대응되는 데이터 저장소인 데이터 저장소 1(201)에 저장할 수 있다.For example, the data storage unit 115 stores 9 messages allocated to the message distribution group 1 401, "m1, m2, m5, m16, m18, m25, m31, m36, m41", which is a corresponding data storage. Can be stored in storage 1 (201).

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

이렇게, 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"가 데이터 저장소 1~15(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215)에 분산 저장이 완료된 이후에 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"에 대한 로드 명령이 인가되면, 저장 메시지 추출부(121)는 데이터 저장소 1~15(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215) 중 데이터 트래픽이 가장 낮은 데이터 저장소 9개만을 랜덤하게 선택하여 9개의 데이터 저장소에 각각 저장되어 있는 9개의 저장 데이터를 추출할 수 있고, 데이터 로드부(122)는 상기 9개의 데이터 저장소를 통해 추출된 각 저장 데이터를 기초로 상기 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" 중 대부분의 메시지들을 빠르게 로드할 수 있다.Thus, the 45 messages, "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" data After distributed storage in storage 1~15 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215), the 45 messages, "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, When the load command for m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" is applied, the save message extractor (121) is the 9 data stores with the lowest data traffic among data stores 1 to 15 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215) By selecting only randomly, it is possible to extract nine pieces of stored data stored in each of nine data stores, and the data load unit 122 includes the 45 pieces of data based on the stored data extracted through the nine data stores. Messages "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, m27, m28, m29, m30, m31, m32, Most messages among m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" can be loaded quickly.

이때, 만약 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"가 MDS 코드인 경우, 데이터 로드부(122)는 데이터 저장소 1~15(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215) 중에서 랜덤하게 선택된 9개의 데이터 저장소들로부터 9개씩 저장 메시지가 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"에 할당된 인덱스 값을 비교하고, 그 비교 결과, 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되는 경우, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"에 대한 로드 명령에 따른 데이터로 로드할 수 있다.At this time, if the 45 messages such as "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" In the case of the MDS code, the data load unit 122 randomly selects data storage 1 to 15 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215). When 9 stored messages are extracted from the 9 data stores selected accordingly, the index values allocated to the extracted stored messages and the 45 messages such as "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, m27, m28, m29, m30, m31, m32, m33 , m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" are compared, and the result of the comparison, the 45 messages of "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, m27, m28, Among m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45", there are residual messages that are not included in the extracted stored messages If it is confirmed that the stored messages are extracted, the remaining The messages are restored and the extracted stored messages and the restored residual messages are converted to the 45 messages of “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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39 , m40, m41, m42, m43, m44, m45" can be loaded as data according to the load command.

관련해서, 상기 랜덤하게 선택된 9개의 데이터 저장소를 데이터 저장소 1(201), 데이터 저장소 2(202), 데이터 저장소 5(205), 데이터 저장소 7(207), 데이터 저장소 8(208), 데이터 저장소 10(210), 데이터 저장소 13(213), 데이터 저장소 14(214), 데이터 저장소 15(215)라고 하면, 저장 메시지 추출부(121)는 데이터 저장소 1(201)로부터 "m1, m2, m5, m16, m18, m25, m31, m36, m41"을 추출할 수 있고, 데이터 저장소 2(202)로부터 "m2, m3, m6, m17, m19, m26, m32, m37, m42"를 추출할 수 있고, 데이터 저장소 5(205)로부터 "m5, m6, m9, m20, m22, m29, m35, m40, m45"를 추출할 수 있으며, 데이터 저장소 7(207)로부터 "m7, m8, m11, m16, m22, m24, m32, m33, m42"를 추출할 수 있고, 데이터 저장소 8(208)로부터 "m8, m9, m12, m17, m23, m25, m33, m34, m43"을 추출할 수 있고, 데이터 저장소 10(210)으로부터 "m10, m11, m14, m19, m25, m27, m35, m36, m45"를 추출할 수 있고, 데이터 저장소 13(213)으로부터 "m2, m13, m14, m22, m23, m28, m33, m38, m43"을 추출할 수 있고, 데이터 저장소 14(214)로부터 "m3, m14, m15, m23, m24, m29, m34, m39, m44"를 추출할 수 있고, 데이터 저장소 15(215)로부터 "m1, m4, m15, m24, m25, m30, m35, m40, m45"를 추출할 수 있다.In relation to the nine randomly selected data stores, data store 1 (201), data store 2 (202), data store 5 (205), data store 7 (207), data store 8 (208), data store 10 Speaking of (210), data storage 13 (213), data storage 14 (214), and data storage 15 (215), the storage message extraction unit 121 from the data storage 1 (201) "m1, m2, m5, m16 , m18, m25, m31, m36, m41" can be extracted, and "m2, m3, m6, m17, m19, m26, m32, m37, m42" can be extracted from data storage 2(202), and data "M5, m6, m9, m20, m22, m29, m35, m40, m45" can be extracted from storage 5(205), and "m7, m8, m11, m16, m22, m24" from data storage 7(207) , m32, m33, m42" can be extracted, and "m8, m9, m12, m17, m23, m25, m33, m34, m43" can be extracted from data storage 8 (208), and data storage 10 (210 ) "M10, m11, m14, m19, m25, m27, m35, m36, m45" can be extracted, and "m2, m13, m14, m22, m23, m28, m33, m38" from data storage 13(213) , m43" can be extracted, "m3, m14, m15, m23, m24, m29, m34, m39, m44" can be extracted from data storage 14(214), and "m1" from data storage 15(215) , m4, m15, m24, m25, m30, m35, m40, m45" can be extracted.

이로 인해, 저장 메시지 추출부(121)는 결국, 데이터 저장소 1(201), 데이터 저장소 2(202), 데이터 저장소 5(205), 데이터 저장소 7(207), 데이터 저장소 8(208), 데이터 저장소 10(210), 데이터 저장소 13(213), 데이터 저장소 14(214), 데이터 저장소 15(215)로부터 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m22, m23, m24, m25, m26, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"를 추출해 낼 수 있다.For this reason, the storage message extraction unit 121 is, in the end, data storage 1 (201), data storage 2 (202), data storage 5 (205), data storage 7 (207), data storage 8 (208), data storage From 10(210), data store 13(213), data store 14(214), data store 15(215) "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12 , m13, m14, m15, m16, m17, m18, m19, m20, m22, m23, m24, m25, m26, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38 , m39, m40, m41, m42, m43, m44, m45" can be extracted.

이때, 데이터 로드부(122)는 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"에 할당되어 있는 인덱스 값과 상기 추출된 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m22, m23, m24, m25, m26, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"에 할당되어 있는 인덱스 값을 서로 비교하여 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" 중에서 상기 추출된 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m22, m23, m24, m25, m26, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"에 포함되어 있지 않은 잔여 메시지를 확인할 수 있다.At this time, the data load unit 122 includes the 45 messages "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43 , m44, m45" and the extracted "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17," m18, m19, m20, m22, m23, m24, m25, m26, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, The index values allocated to m44, m45" are compared with each other, and the 45 messages such as "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45", the extracted "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18" , m19, m20, m22, m23, m24, m25, m26, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44 , you can check the remaining messages not included in "m45".

관련해서, 본 실시예에서는 "m21"이 잔여 메시지이기 때문에 데이터 로드부(122)는 "m21"을 잔여 메시지로 확인한 후 MDS 코딩이 되어 있는 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m22, m23, m24, m25, m26, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"으로부터 "m21"을 복원해 낼 수 있다.In relation to this, since "m21" is a residual message in this embodiment, the data load unit 122 checks "m21" as a residual message and then MDS-coded "m1, m2, m3, m4, m5, m6, m7" , m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m22, m23, m24, m25, m26, m27, m28, m29, m30, m31, m32, m33 , m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" from "m21" can be restored.

이로 인해, 결국, 데이터 로드부(122)는 상기 복원된 "m21"과 데이터 저장소 1(201), 데이터 저장소 2(202), 데이터 저장소 5(205), 데이터 저장소 7(207), 데이터 저장소 8(208), 데이터 저장소 10(210), 데이터 저장소 13(213), 데이터 저장소 14(214), 데이터 저장소 15(215)에서 추출된 "m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m22, m23, m24, m25, m26, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"를 로드함으로써, 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"를 모두 로드해 낼 수 있다.Accordingly, in the end, the data load unit 122 is the restored "m21" and data storage 1 (201), data storage 2 (202), data storage 5 (205), data storage 7 (207), data storage 8 (208), data store 10(210), data store 13(213), data store 14(214), data store 15(215) extracted from "m1, m2, m3, m4, m5, m6, m7, m8 , m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m22, m23, m24, m25, m26, m27, m28, m29, m30, m31, m32, m33, m34 , m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" by loading the 45 messages, "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, m27, m28, m29, m30, m31, m32, m33, m34 , m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45" can all be loaded.

결국, 본 발명에 따른 분할 반복 부호를 이용한 데이터 분산 저장 장치(110)는 상기 45개의 메시지들인 "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38, m39, m40, m41, m42, m43, m44, m45"를 부분 순환 차족에 기초하여 생성한 상기 제1 시퀀스와 상기 제2 시퀀스들에 따라 데이터 저장소 1~15(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215)에 9개씩 분산 저장해 놓음으로써, 추후 데이터를 로드할 때, 오직 9개의 데이터 저장소에만 액세스하더라도 데이터의 복원이 가능하도록 지원할 수 있다.As a result, the data distribution storage device 110 using the divided repetition code according to the present invention includes the 45 messages "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, m27, m28, m29, m30, m31, m32, m33, m34, m35, m36, m37, m38 , m39, m40, m41, m42, m43, m44, m45" in accordance with the first sequence and the second sequence generated based on the partial cyclic difference, data storage 1 to 15 (201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215) by distributing 9 units each, so when the data is loaded later, data can be restored even if only 9 data stores are accessed. You can apply to do it.

도 3은 본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 방법을 도시한 순서도이다.3 is a flowchart illustrating a data distribution storage method using divided repetition codes according to an embodiment of the present invention.

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

단계(S320)에서는 "0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 가산 군에 대한 집합인 G(상기 G에 포함되어 있는 원소들의 개수는 v개임)에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 상기 G에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t-1개의 제1 부분 집합들을 선택한다.In step S320, k elements for G (the number of elements included in G is v), which is a set for an addition group including integers from "0" to "v-1" as elements Among the plurality of subsets, all the remaining values calculated by dividing the difference between two different elements by v among k elements included in each of the plurality of subsets are " T-1 first subsets that are found to match only one element other than 0" are selected.

단계(S330)에서는 상기 복수의 부분 집합들에서 상기 t-1개의 제1 부분 집합들이 제외된 나머지 부분 집합들 중, 상기 나머지 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 자기 자신의 부분 집합의 원소로 포함되는 1개의 제2 부분 집합을 선택한다.In step S330, among the remaining subsets from which the t-1 first subsets are excluded from the plurality of subsets, between two different elements among k elements included in each of the remaining subsets A second subset is selected in which all remaining values calculated by dividing the difference by v are included as elements of its own subset.

단계(S340)에서는 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함된 k개의 원소들에 기초하여 상기 N개의 메시지들을 상기 v개의 메시지 분산 그룹들 각각에 할당하기 위한 시퀀스를 생성하고, 상기 시퀀스에 기초하여 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk(tk는 t와 k의 곱을 의미함)개씩 분산 할당(상기 v개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음)한다.In step S340, a sequence for allocating the N messages to each of the v message distribution groups based on k elements included in each of the t-1 first subsets and the second subsets And, based on the sequence, distributed allocation of the N messages for each of the v message distribution groups (tk means the product of t and k) by tk (distributed allocation to the v message distribution groups) Messages can be duplicated with each other).

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

이때, 본 발명의 일실시예에 따르면, 단계(S340)에서는 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함되어 있는 k개의 원소들을 기초로 상기 G에 포함되어 있는 "0"부터 "v-1"까지의 정수들에 대해 "0"부터 "v-1" 순으로 "1"과 "0"의 코드 값을 할당함으로써, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 대응하는 v개의 "1"과 "0"의 코드 값으로 구성된 t개의 부분 시퀀스들을 생성하고, 상기 t개의 부분 시퀀스들을 조합하여 총 N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스(N=tv이며, 상기 제1 시퀀스는 v개의 "1"과 "0"의 코드 값으로 구성된 부분 시퀀스 t개의 조합이므로, 상기 제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 S340, "included in G" based on k elements included in each of the t-1 first subsets and the second subsets By assigning code values of "1" and "0" in the order of "0" to "v-1" for integers from 0" to "v-1", the t-1 first subsets and T partial sequences consisting of v code values of “1” and “0” corresponding to each of the second subsets are generated, and the t partial sequences are combined to form a total of N “1” and “0”. A first sequence consisting of code values (N=tv, and the first sequence is a combination of t partial sequences consisting of v code values of “1” and “0”, and thus “1” constituting the first sequence and Generating a total of N code values of "0"), performing a cyclic shift operation in a direction selected for each of the t partial sequences consisting of the v code values of "1" and "0" -Generating a total of v-1 second sequences by combining the t partial sequences for which the cyclic shift operation is completed each time each cyclic shift operation is performed while performing -1 time, and the v Matching the first sequence and the v-1 second sequences one by one for each of the message distribution groups, and matching each of the v message distribution groups for each of the v message distribution groups. It may include the step of distributedly allocating tk of the N messages based on the N code values constituting each sequence.

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

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

이때, 상기 N개의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계는 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당할 수 있다.In this case, the step of distributing and allocating tk of the N messages based on the N code values comprises configuring each sequence matched to each of the v message distribution groups for each of the v message distribution groups. The N messages are based on a code value in an array order that matches the index value assigned to the N messages after comparing the arrangement order of the N code values with the index value assigned to each of the N messages. It can be distributedly allocated by tk.

또한, 본 발명의 일실시예에 따르면, 상기 N개의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계는 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값 중 tk개씩 존재하는 "1"의 코드 값을 확인한 후, 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지들 중 상기 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 tk개의 메시지들을 분산 할당할 수 있다.Further, according to an embodiment of the present invention, the step of distributing tk each of the N messages based on the N code values includes, for each of the v message distribution groups, each of the v message distribution groups. After checking the code value of "1", which is present by tk among the N code values constituting each sequence matched to, for each of the v message distribution groups, the "1" of the N messages It is possible to distribute allocation of tk messages with index values that match the order of the code values.

이때, 본 발명의 일실시예에 따르면, 상기 분할 반복 부호를 이용한 데이터 분산 저장 방법은 상기 v개의 데이터 저장소들에 상기 N개의 메시지들이 tk개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드 명령이 인가되면, 상기 로드 명령에 기초하여 상기 v개의 데이터 저장소들 중 tk개의 데이터 저장소들을 랜덤하게 선택하고, 상기 tk개의 데이터 저장소들 각각으로부터 상기 tk개의 데이터 저장소들 각각에 저장되어 있는 tk개의 저장 메시지들을 추출하는 단계 및 상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 단계를 더 포함할 수 있다.At this time, according to an embodiment of the present invention, in the data distribution storage method using the divisional repetition code, after tk of the N messages are distributed and stored in the v data stores, a load command for the N messages is performed. When authorized, randomly selects tk data stores among the v data stores based on the load command, and receives tk store messages stored in each of the tk data stores from each of the tk data stores. It may further include extracting and loading stored messages extracted by tk from each of the tk data stores as data according to a load instruction for the N messages.

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

이상, 도 3을 참조하여 본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 방법은 도 1과 도 2를 이용하여 설명한 분할 반복 부호를 이용한 데이터 분산 저장 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.In the above, a data distribution storage method using divided repetition codes according to an embodiment of the present invention has been described with reference to FIG. 3. Here, the data distribution storage method using the divisional repetition code according to an embodiment of the present invention may correspond to the configuration of the operation of the data distribution storage device 110 using the divisional repetition code described with reference to FIGS. 1 and 2. Therefore, a more detailed description thereof will be omitted.

본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.The data distribution storage method using divisional repetition codes according to an embodiment of the present invention may be implemented as a computer program stored in a storage medium for execution through combination with a computer.

또한, 본 발명의 일실시예에 따른 분할 반복 부호를 이용한 데이터 분산 저장 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. In addition, the data distribution storage method using the divisional repetition code according to an embodiment of the present invention may be implemented in the form of program instructions 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 specially designed and configured for the present invention, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, in the present invention, specific matters such as specific components, etc., and limited embodiments and drawings have been described, but this is provided only to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , If a person of ordinary skill in the field to which the present invention belongs, various modifications and variations are possible from these descriptions.

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

110: 분할 반복 부호를 이용한 데이터 분산 저장 장치
111: 분산 그룹 생성부 112: 제1 부분 집합 선택부
113: 제2 부분 집합 선택부 114: 메시지 분산 할당부
115: 데이터 저장부 116: 제1 시퀀스 생성부
117: 제2 시퀀스 생성부 118: 시퀀스 매칭부
119: 할당부 120: 인덱스 할당부
121: 저장 메시지 추출부 122: 데이터 로드부
101, 102, 103: 데이터 저장소들
110: Data distributed storage device using divisional repetition code
111: distribution group generation unit 112: first subset selection unit
113: second subset selection unit 114: message distribution allocation unit
115: data storage unit 116: first sequence generation unit
117: second sequence generation unit 118: sequence matching unit
119: allocation unit 120: index allocation unit
121: stored message extraction unit 122: data load unit
101, 102, 103: data stores

Claims (16)

N - N은 N=tv의 조건을 만족하는 자연수이고, v는 v=6t-k의 조건을 만족하는 자연수이며, k와 t는 2이상의 자연수임 - 개의 메시지들에 대해 v개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 v개의 데이터 저장소들에 대응하는 v개의 메시지 분산 그룹들을 생성하는 분산 그룹 생성부;
"0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 가산 군(additive group)에 대한 집합인 G - 상기 G에 포함되어 있는 원소들의 개수는 v개임 - 에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 상기 G에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t-1개의 제1 부분 집합들을 선택하는 제1 부분 집합 선택부;
상기 복수의 부분 집합들에서 상기 t-1개의 제1 부분 집합들이 제외된 나머지 부분 집합들 중, 상기 나머지 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 자기 자신의 부분 집합의 원소로 포함되는 1개의 제2 부분 집합을 선택하는 제2 부분 집합 선택부;
상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함된 k개의 원소들에 기초하여 상기 N개의 메시지들을 상기 v개의 메시지 분산 그룹들 각각에 할당하기 위한 시퀀스를 생성하고, 상기 시퀀스에 기초하여 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk - tk는 t와 k의 곱을 의미함 - 개씩 분산 할당 - 상기 v개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 메시지 분산 할당부; 및
상기 v개의 메시지 분산 그룹들 각각에 할당되어 있는 tk개의 메시지들을 상기 v개의 메시지 분산 그룹별로, 상기 v개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 데이터 저장부
를 포함하는 분할 반복 부호를 이용한 데이터 분산 저장 장치.
N-N is a natural number that satisfies the condition of N=tv, v is a natural number that satisfies the condition of v=6t-k, and k and t are natural numbers greater than or equal to 2-v data stores for 2 messages A distribution group generating unit that generates v message distribution groups corresponding to the v data stores when the distributed storage command of is applied;
G, which is a set for an additive group containing integers from "0" to "v-1" as elements-the number of elements in G is v-has k elements for Among the plurality of subsets, all remaining values calculated by dividing the difference between two different elements by v among the k elements included in each of the plurality of subsets are "0" in the elements included in G. A first subset selection unit for selecting t-1 first subsets that are found to match only one element other than "";
Of the remaining subsets excluding the t-1 first subsets from the plurality of subsets, the difference between two different elements among k elements included in each of the remaining subsets is divided by v A second subset selection unit for selecting one second subset in which all remaining values to be calculated are included as elements of its own subset;
A sequence for allocating the N messages to each of the v message distribution groups is generated based on k elements included in each of the t-1 first subsets and the second subset, and the Based on the sequence, the N messages for each of the v message distribution groups are tk-tk means the product of t and k-each distributed allocation-messages distributed distributedly allocated to the v message distribution groups overlap each other Can be-a message distribution allocation unit; And
A data storage unit that separates and stores tk messages allocated to each of the v message distribution groups for each of the v message distribution groups, in a data store corresponding to each message distribution group among the v data stores
Data distributed storage device using a divided repeat code comprising a.
제1항에 있어서,
상기 메시지 분산 할당부는
상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함되어 있는 k개의 원소들을 기초로 상기 G에 포함되어 있는 "0"부터 "v-1"까지의 정수들에 대해 "0"부터 "v-1" 순으로 "1"과 "0"의 코드 값을 할당함으로써, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 대응하는 v개의 "1"과 "0"의 코드 값으로 구성된 t개의 부분 시퀀스들을 생성하고, 상기 t개의 부분 시퀀스들을 조합하여 총 N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스 - N=tv이며, 상기 제1 시퀀스는 v개의 "1"과 "0"의 코드 값으로 구성된 부분 시퀀스 t개의 조합이므로, 상기 제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개씩 분산 할당하는 할당부
를 포함하는 분할 반복 부호를 이용한 데이터 분산 저장 장치.
The method of claim 1,
The message distribution allocation unit
"0" for integers from "0" to "v-1" included in the G based on k elements included in each of the t-1 first subsets and the second subset. By assigning code values of "1" and "0" in the order of "from "v-1", v "1" and "" corresponding to each of the t-1 first subsets and the second subset. A first sequence consisting of a total of N code values of "1" and "0" by generating t partial sequences consisting of a code value of 0" and combining the t partial sequences-N=tv, and the first Since the sequence is a combination of t partial sequences consisting of v code values of “1” and “0”, the code values of “1” and “0” constituting the first sequence become N total 1 sequence generator;
When each cyclic shift operation is performed while performing a cyclic shift operation v-1 times in a predetermined direction for each of the t partial sequences consisting of the v code values of “1” and “0” A second sequence generator configured to generate a total of v-1 second sequences by combining the t partial sequences for each cyclic shift operation is completed to generate a second sequence;
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 distributing and allocating tk of the N messages based on N code values constituting each sequence matched to each of the v message distribution groups
Data distributed storage device using a divisional repetition code comprising a.
제2항에 있어서,
상기 제1 시퀀스 생성부는
상기 G에 포함되어 있는 "0"부터 "v-1"까지의 정수들 중 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함되어 있는 k개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함되어 있는 k개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당함으로써, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 대응하는 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들을 생성하는 분할 반복 부호를 이용한 데이터 분산 저장 장치.
The method of claim 2,
The first sequence generator
Integers corresponding to k elements included in each of the t-1 first subsets and the second subsets among integers from "0" to "v-1" included in G A code value of "1" is assigned to and, and the remaining integers that do not match k elements included in each of the t-1 first subsets and the second subset are "0". Partitioning to generate the t partial sequences consisting of the v code values of "1" and "0" corresponding to the t-1 first subsets and the second subset by assigning a code value Data distribution storage device using repetition code.
제3항에 있어서,
상기 메시지 분산 할당부는
상기 N개의 메시지들 각각에 대해 순번 정보와 연관된 인덱스 값을 할당하는 인덱스 할당부
를 더 포함하고,
상기 할당부는
상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 분할 반복 부호를 이용한 데이터 분산 저장 장치.
The method of claim 3,
The message distribution allocation unit
An index allocator that allocates an index value associated with sequence number information for each of the N messages
Including more,
The allocation unit
For each of the v message distribution groups, an array order of N code values constituting each sequence matched to each of the v message distribution groups and an index value assigned to each of the N messages are compared The data distribution storage device using a divisional repetition code for distributing and allocating the N messages by tk based on a code value in an arrangement order that matches the index value allocated to the N messages.
제4항에 있어서,
상기 할당부는
상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값 중 tk개씩 존재하는 "1"의 코드 값을 확인한 후, 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지들 중 상기 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 tk개의 메시지들을 분산 할당하는 분할 반복 부호를 이용한 데이터 분산 저장 장치.
The method of claim 4,
The allocation unit
For each of the v message distribution groups, after checking a code value of "1" each of tk among N code values constituting each sequence matched to each of the v message distribution groups, the v number of Data distribution storage device using divisional repetition code for distributing and allocating tk messages to which an index value matching the order of the code value of "1" among the N messages is allocated to each of the message distribution groups .
제5항에 있어서,
상기 v개의 데이터 저장소들에 상기 N개의 메시지들이 tk개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드(load) 명령이 인가되면, 상기 로드 명령에 기초하여 상기 v개의 데이터 저장소들 중 tk개의 데이터 저장소들을 랜덤하게 선택하고, 상기 tk개의 데이터 저장소들 각각으로부터 상기 tk개의 데이터 저장소들 각각에 저장되어 있는 tk개의 저장 메시지들을 추출하는 저장 메시지 추출부; 및
상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 데이터 로드부
를 더 포함하는 분할 반복 부호를 이용한 데이터 분산 저장 장치.
The method of claim 5,
After tk of the N messages are distributed and stored in the v data stores, if a load command for the N messages is applied, tk data of the v data stores based on the load command A storage message extraction unit which randomly selects storages and extracts tk storage messages stored in each of the tk data storages from each of the tk data storages; And
A data load unit that loads tk stored messages extracted from each of the tk data stores as data according to a load instruction for the N messages
Data distributed storage device using a divisional repetition code further comprising a.
제6항에 있어서,
상기 N개의 메시지들은 일부 메시지의 손실이 발생할 경우, 나머지 메시지들을 기초로 손실 메시지들의 복구가 가능한 최대 거리 분리 가능(Maximum Distance Separable: MDS) 코드이고,
상기 데이터 로드부는
상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 저장 메시지들이 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 N개의 메시지들에 할당된 인덱스 값을 비교하여 상기 N개의 메시지들 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되면, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 분할 반복 부호를 이용한 데이터 분산 저장 장치.
The method of claim 6,
The N messages are a Maximum Distance Separable (MDS) code that enables recovery of lost messages based on the remaining messages when some messages are lost,
The data load unit
When tk stored messages are extracted from each of the tk data stores, the index value allocated to the extracted stored messages is compared with the index value allocated to the N messages, and the extraction of the N messages If it is confirmed that there is a residual message not included in the stored messages, the residual message is restored based on the extracted stored messages, and the extracted stored messages and the restored residual message are converted to the N messages. A data distribution storage device using a divisional repeat code that loads data according to a load instruction for
분산 그룹 생성부가, N - N은 N=tv의 조건을 만족하는 자연수이고, v는 v=6t-k의 조건을 만족하는 자연수이며, k와 t는 2이상의 자연수임 - 개의 메시지들에 대해 v개의 데이터 저장소들로의 분산 저장 명령이 인가되면, 상기 v개의 데이터 저장소들에 대응하는 v개의 메시지 분산 그룹들을 생성하는 단계;
제1 부분 집합 선택부가, "0"부터 "v-1"까지의 정수들을 원소로 포함하고 있는 가산 군(additive group)에 대한 집합인 G - 상기 G에 포함되어 있는 원소들의 개수는 v개임 - 에 대한 k개의 원소를 갖는 복수의 부분 집합들 중, 상기 복수의 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 상기 G에 포함되어 있는 원소들에서 "0"을 제외한 서로 다른 1개의 원소와만 일치하는 것으로 확인되는 t-1개의 제1 부분 집합들을 선택하는 단계;
제2 부분 집합 선택부가, 상기 복수의 부분 집합들에서 상기 t-1개의 제1 부분 집합들이 제외된 나머지 부분 집합들 중, 상기 나머지 부분 집합들 각각에 포함되어 있는 k개의 원소들 중에서 서로 다른 두 원소 간의 차를 v로 나누어서 연산되는 모든 나머지 값들이 자기 자신의 부분 집합의 원소로 포함되는 1개의 제2 부분 집합을 선택하는 단계;
메시지 분산 할당부가, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함된 k개의 원소들에 기초하여 상기 N개의 메시지들을 상기 v개의 메시지 분산 그룹들 각각에 할당하기 위한 시퀀스를 생성하고, 상기 시퀀스에 기초하여 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk - tk는 t와 k의 곱을 의미함 - 개씩 분산 할당 - 상기 v개의 메시지 분산 그룹들에 분산 할당되는 메시지들은 서로 중복될 수 있음 - 하는 단계; 및
데이터 저장부가, 상기 v개의 메시지 분산 그룹들 각각에 할당되어 있는 tk개의 메시지들을 상기 v개의 메시지 분산 그룹별로, 상기 v개의 데이터 저장소들 중 각 메시지 분산 그룹에 대응되는 데이터 저장소에 분리해서 저장하는 단계
를 포함하는 분할 반복 부호를 이용한 데이터 분산 저장 방법.
In the distribution group generator, N-N is a natural number that satisfies the condition of N=tv, v is a natural number that satisfies the condition of v=6t-k, and k and t are natural numbers of 2 or more-v for 2 messages Generating v message distribution groups corresponding to the v data stores when a command for distributed storage to the v data stores is applied;
The first subset selection unit, G, which is a set for an additive group including integers from "0" to "v-1" as elements-The number of elements included in G is v- Among a plurality of subsets having k elements for, G includes all remaining values calculated by dividing the difference between two different elements by v among k elements included in each of the plurality of subsets. Selecting t-1 first subsets that are found to match only one element other than "0" from among the elements in the set;
The second subset selection unit comprises two different subsets of k elements included in each of the remaining subsets among the remaining subsets from which the t-1 first subsets are excluded from the plurality of subsets. Selecting one second subset in which all remaining values calculated by dividing the difference between the elements by v are included as elements of the own subset;
A sequence for the message distribution allocation unit to allocate the N messages to each of the v message distribution groups based on k elements included in each of the t-1 first subsets and the second subsets And, based on the sequence, for each of the v message distribution groups, tk-tk means the product of t and k-distributed allocation by each-distributed allocation to the v message distribution groups -The messages that are used may be duplicated with each other; And
Separately storing, by a data storage unit, tk messages allocated to each of the v message distribution groups, for each of the v message distribution groups, in a data store corresponding to each message distribution group among the v data stores
Data distributed storage method using a divided repetition code including a.
제8항에 있어서,
상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계는
제1 시퀀스 생성부가, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함되어 있는 k개의 원소들을 기초로 상기 G에 포함되어 있는 "0"부터 "v-1"까지의 정수들에 대해 "0"부터 "v-1" 순으로 "1"과 "0"의 코드 값을 할당함으로써, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 대응하는 v개의 "1"과 "0"의 코드 값으로 구성된 t개의 부분 시퀀스들을 생성하고, 상기 t개의 부분 시퀀스들을 조합하여 총 N개의 "1"과 "0"의 코드 값으로 구성된 제1 시퀀스 - N=tv이며, 상기 제1 시퀀스는 v개의 "1"과 "0"의 코드 값으로 구성된 부분 시퀀스 t개의 조합이므로, 상기 제1 시퀀스를 구성하는 "1"과 "0"의 코드 값은 총 N개가 됨 - 를 생성하는 단계;
제2 시퀀스 생성부가, 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들 각각에 대해 선정된(predetermined) 방향으로 순환시프트 연산을 v-1회 수행하면서, 각 순환시프트 연산이 수행될 때마다 순환시프트 연산이 완료된 상기 t개의 부분 시퀀스들을 조합하여 제2 시퀀스를 생성함으로써, 총 v-1개의 제2 시퀀스들을 생성하는 단계;
시퀀스 매칭부가, 상기 v개의 메시지 분산 그룹들 각각에 대해 상기 제1 시퀀스와 상기 v-1개의 제2 시퀀스들을 하나씩 매칭시키는 단계; 및
할당부가, 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계
를 포함하는 분할 반복 부호를 이용한 데이터 분산 저장 방법.
The method of claim 8,
Distributing and allocating tk of the N messages to each of the v message distribution groups
The first sequence generation unit includes a range of "0" to "v-1" included in the G based on k elements included in each of the t-1 first subsets and the second subset. By assigning code values of "1" and "0" in the order of "0" to "v-1" for integers, v corresponding to each of the t-1 first subsets and the second subsets A first sequence consisting of a total of N code values of "1" and "0" by generating t partial sequences consisting of "1" and "0" code values, and combining the t partial sequences-N= tv, and since the first sequence is a combination of t partial sequences consisting of v code values of “1” and “0”, a total of N code values of “1” and “0” constituting the first sequence To create-
The second sequence generator performs a cyclic shift operation v-1 times in a predetermined direction for each of the t partial sequences consisting of the v code values of "1" and "0", Generating a total of v-1 second sequences by combining the t partial sequences on which the cyclic shift operation is completed each time a shift operation is performed, thereby generating a second sequence;
A sequence matching unit matching the first sequence and the v-1 second sequences one by one for each of the v message distribution groups; And
Allocating, for each of the v message distribution groups, distributedly allocating tk of the N messages based on N code values constituting each sequence matched to each of the v message distribution groups.
Data distributed storage method using a divided repeat code including a.
제9항에 있어서,
상기 제1 시퀀스를 생성하는 단계는
상기 제1 시퀀스 생성부가, 상기 G에 포함되어 있는 "0"부터 "v-1"까지의 정수들 중 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함되어 있는 k개의 원소들과 일치하는 정수들에 대해 "1"의 코드 값을 할당하고, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 포함되어 있는 k개의 원소들과 일치하지 않는 나머지 정수들에 대해 "0"의 코드 값을 할당함으로써, 상기 t-1개의 제1 부분 집합들과 상기 제2 부분 집합 각각에 대응하는 상기 v개의 "1"과 "0"의 코드 값으로 구성된 상기 t개의 부분 시퀀스들을 생성하는 분할 반복 부호를 이용한 데이터 분산 저장 방법.
The method of claim 9,
Generating the first sequence comprises:
The first sequence generation unit includes k numbers of t-1 first subsets and k included in each of the second subsets among integers from "0" to "v-1" included in the G A code value of "1" is allocated to integers that match elements, and the remaining integers that do not match k elements included in each of the t-1 first subsets and the second subsets By assigning a code value of "0" to the t-1, the t consisting of the v code values of "1" and "0" corresponding to each of the t-1 first subsets and the second subsets Data distributed storage method using divisional repetition codes that generate four partial sequences.
제10항에 있어서,
상기 v개의 메시지 분산 그룹들 각각에 대해 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계는
인덱스 할당부가, 상기 N개의 메시지들 각각에 대해 순번 정보와 연관된 인덱스 값을 할당하는 단계
를 더 포함하고,
상기 N개의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계는
상기 할당부가, 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값의 배열 순서와 상기 N개의 메시지들 각각에 할당되어 있는 인덱스 값을 비교한 후 상기 N개의 메시지들에 할당되어 있는 인덱스 값과 일치하는 배열 순서의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 분할 반복 부호를 이용한 데이터 분산 저장 방법.
The method of claim 10,
Distributing and allocating tk of the N messages to each of the v message distribution groups
Allocating, by an index allocator, an index value associated with sequence number information for each of the N messages
Including more,
Distributed allocation of the N messages by tk based on the N code values,
The allocation unit, for each of the v message distribution groups, is assigned to each of the N messages and an arrangement order of N code values constituting each sequence matched to each of the v message distribution groups. A data distribution storage method using a divisional repetition code in which tk of the N messages are distributed and allocated based on a code value in an array order that matches the index value allocated to the N messages after comparing index values.
제11항에 있어서,
상기 N개의 코드 값에 기초하여 상기 N개의 메시지들을 tk개씩 분산 할당하는 단계는
상기 할당부가, 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 v개의 메시지 분산 그룹들 각각에 매칭되어 있는 각 시퀀스를 구성하는 N개의 코드 값 중 tk개씩 존재하는 "1"의 코드 값을 확인한 후, 상기 v개의 메시지 분산 그룹들 각각에 대해, 상기 N개의 메시지들 중 상기 "1"의 코드 값에 대한 배열 순서와 일치하는 인덱스 값이 할당되어 있는 tk개의 메시지들을 분산 할당하는 분할 반복 부호를 이용한 데이터 분산 저장 방법.
The method of claim 11,
Distributed allocation of the N messages by tk based on the N code values,
After the allocating unit, for each of the v message distribution groups, checks a code value of "1" each of tk among N code values constituting each sequence matched to each of the v message distribution groups , For each of the v message distribution groups, using a divisional repetition code for distributing and allocating tk messages to which an index value matching the arrangement order of the code value of "1" among the N messages is allocated. Data distributed storage method.
제12항에 있어서,
상기 v개의 데이터 저장소들에 상기 N개의 메시지들이 tk개씩 분산 저장된 이후, 상기 N개의 메시지들에 대한 로드(load) 명령이 인가되면, 저장 메시지 추출부가, 상기 로드 명령에 기초하여 상기 v개의 데이터 저장소들 중 tk개의 데이터 저장소들을 랜덤하게 선택하고, 상기 tk개의 데이터 저장소들 각각으로부터 상기 tk개의 데이터 저장소들 각각에 저장되어 있는 tk개의 저장 메시지들을 추출하는 단계; 및
데이터 로드부가, 상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 추출된 저장 메시지들을 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 단계
를 더 포함하는 분할 반복 부호를 이용한 데이터 분산 저장 방법.
The method of claim 12,
After tk of the N messages are distributed and stored in the v data stores, when a load command for the N messages is applied, a storage message extractor may perform the v data stores based on the load command. Randomly selecting tk data stores among the tk data stores, and extracting tk stored messages stored in each of the tk data stores from each of the tk data stores; And
Loading, by a data loading unit, stored messages extracted from each of the tk data stores as data according to a load instruction for the N messages.
Data distributed storage method using a divisional repetition code further comprising.
제13항에 있어서,
상기 N개의 메시지들은 일부 메시지의 손실이 발생할 경우, 나머지 메시지들을 기초로 손실 메시지들의 복구가 가능한 최대 거리 분리 가능(Maximum Distance Separable: MDS) 코드이고,
상기 로드하는 단계는
상기 데이터 로드부가, 상기 tk개의 데이터 저장소들 각각으로부터 tk개씩 저장 메시지들이 추출되면, 상기 추출된 저장 메시지들에 할당되어 있는 인덱스 값과 상기 N개의 메시지들에 할당된 인덱스 값을 비교하여 상기 N개의 메시지들 중 상기 추출된 저장 메시지들에 포함되어 있지 않은 잔여 메시지가 존재하는 것으로 확인되면, 상기 추출된 저장 메시지들을 기초로 상기 잔여 메시지를 복구하여 상기 추출된 저장 메시지들과 상기 복구된 잔여 메시지를 상기 N개의 메시지들에 대한 로드 명령에 따른 데이터로 로드하는 분할 반복 부호를 이용한 데이터 분산 저장 방법.
The method of claim 13,
The N messages are a Maximum Distance Separable (MDS) code that enables recovery of lost messages based on the remaining messages when some messages are lost,
The loading step
When the data load unit extracts tk stored messages from each of the tk data stores, compares the index value allocated to the extracted stored messages with the index value allocated to the N messages, If it is determined that there is a residual message not included in the extracted stored messages among messages, the residual message is recovered based on the extracted stored messages, and the extracted stored messages and the recovered residual message are Data distributed storage method using divisional repetition codes for loading data according to a load command for the N messages.
제8항 내지 제14항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium having a computer program recorded thereon for executing the method of any one of claims 8 to 14 through combination with a computer. 제8항 내지 제14항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.A computer program stored in a storage medium for executing the method of any one of claims 8 to 14 through combination with a computer.
KR1020190022396A 2019-02-26 2019-02-26 Data distribution storage apparatus and method using partitioned iteration code KR102197993B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190022396A KR102197993B1 (en) 2019-02-26 2019-02-26 Data distribution storage apparatus and method using partitioned iteration code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190022396A KR102197993B1 (en) 2019-02-26 2019-02-26 Data distribution storage apparatus and method using partitioned iteration code

Publications (2)

Publication Number Publication Date
KR20200104034A KR20200104034A (en) 2020-09-03
KR102197993B1 true KR102197993B1 (en) 2021-01-04

Family

ID=72450291

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190022396A KR102197993B1 (en) 2019-02-26 2019-02-26 Data distribution storage apparatus and method using partitioned iteration code

Country Status (1)

Country Link
KR (1) KR102197993B1 (en)

Citations (6)

* 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
KR101738415B1 (en) 2016-01-27 2017-05-22 전남대학교산학협력단 Data storage apparatus and method for storing a message dispersedly
KR101741186B1 (en) 2015-12-30 2017-05-29 조선대학교산학협력단 Data distribution storage apparatus and method for verifying the locally repairable code
KR101873879B1 (en) 2016-11-18 2018-07-03 조선대학교산학협력단 Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element
KR101873878B1 (en) 2016-11-09 2018-07-03 조선대학교산학협력단 Data storage apparatus and method for storing a message dispersedly based on relative difference set
KR101893566B1 (en) 2016-12-15 2018-08-30 조선대학교산학협력단 Data distribution storage apparatus and method using cyclic difference family

Patent Citations (6)

* 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
KR101741186B1 (en) 2015-12-30 2017-05-29 조선대학교산학협력단 Data distribution storage apparatus and method for verifying the locally repairable code
KR101738415B1 (en) 2016-01-27 2017-05-22 전남대학교산학협력단 Data storage apparatus and method for storing a message dispersedly
KR101873878B1 (en) 2016-11-09 2018-07-03 조선대학교산학협력단 Data storage apparatus and method for storing a message dispersedly based on relative difference set
KR101873879B1 (en) 2016-11-18 2018-07-03 조선대학교산학협력단 Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element
KR101893566B1 (en) 2016-12-15 2018-08-30 조선대학교산학협력단 Data distribution storage apparatus and method using cyclic difference family

Also Published As

Publication number Publication date
KR20200104034A (en) 2020-09-03

Similar Documents

Publication Publication Date Title
US8811611B2 (en) Encryption/decryption of digital data using related, but independent keys
Tatti et al. The long and the short of it: summarising event sequences with serial episodes
US9864550B2 (en) Method and apparatus of recovering and encoding for data recovery in storage system
US10528567B2 (en) Generating and merging keys for grouping and differentiating volumes of files
CN110602147B (en) Data encryption safe storage method, system and storage medium based on cloud platform
Lin et al. 1xn pattern for pruning convolutional neural networks
WO2019225401A1 (en) Secret aggregate function calculation system, secret calculation device, secret aggregate function calculation method, and program
Auer et al. Graph coarsening and clustering on the GPU.
CN110930145A (en) Cold wallet generation method, transaction information processing method, device and storage medium
US20110225154A1 (en) Harvesting relevancy data, including dynamic relevancy agent based on underlying grouped and differentiated files
US20120246171A1 (en) Positional relationships between groups of files
KR102197993B1 (en) Data distribution storage apparatus and method using partitioned iteration code
CN109597913A (en) The method for being aligned document picture, device, storage medium and electronic equipment
KR101873879B1 (en) Data distribution storage apparatus and method using relative difference set generated from the group having the two-dimensional element
KR101741186B1 (en) Data distribution storage apparatus and method for verifying the locally repairable code
JP7099316B2 (en) Similarity arithmetic units, methods, and programs
US8442986B2 (en) Ranking importance of symbols in underlying grouped and differentiated files based on content
KR101893566B1 (en) Data distribution storage apparatus and method using cyclic difference family
US8843521B2 (en) Method for analyzing data utilizing weighted suffix tree
KR101873878B1 (en) Data storage apparatus and method for storing a message dispersedly based on relative difference set
CN107210005B (en) Matrix/key generation device, matrix/key generation system, matrix combination device, matrix/key generation method, and program
CN112181974B (en) Identification information distribution method, system and storage device
KR101669854B1 (en) Data concealment apparatus and method based on continuous integer transform
KR101738415B1 (en) Data storage apparatus and method for storing a message dispersedly
Torim et al. Concise Description of Telecom Service Use Through Concept Chains

Legal Events

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