KR101907786B1 - Distributed storage method and apparatus for cooperation between multiple helper nodes with cached memory - Google Patents

Distributed storage method and apparatus for cooperation between multiple helper nodes with cached memory Download PDF

Info

Publication number
KR101907786B1
KR101907786B1 KR1020170055545A KR20170055545A KR101907786B1 KR 101907786 B1 KR101907786 B1 KR 101907786B1 KR 1020170055545 A KR1020170055545 A KR 1020170055545A KR 20170055545 A KR20170055545 A KR 20170055545A KR 101907786 B1 KR101907786 B1 KR 101907786B1
Authority
KR
South Korea
Prior art keywords
mds
codes
length
file
cache
Prior art date
Application number
KR1020170055545A
Other languages
Korean (ko)
Inventor
최완
김기범
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020170055545A priority Critical patent/KR101907786B1/en
Application granted granted Critical
Publication of KR101907786B1 publication Critical patent/KR101907786B1/en

Links

Images

Classifications

    • G06F17/30194
    • 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]
    • G06F17/30091

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

The present invention relates to a distributed storage method for enhancing the effects experienced by a user through inter-node collaboration in the wireless communication of multiple help nodes using cache memory and a device thereof. The method, which is for storing files to multiple help modes included in a cluster in a distributed manner, includes the steps of: determining the length of the entire maximum distance separable (MDS) codes coded to have at least a redundant part among multiple MDS codes while using specific files to be divided into the MDS codes based on an MDS coding scheme as a target; dividing the specific file into the MDS codes based on the entire length of the determined MDS codes; and storing the divided MDS codes in the cache corresponding to the help codes in a distributed manner.

Description

캐시 메모리를 이용한 다수의 보조 노드 무선 통신에서 노드간 협력을 통해 사용자의 체감 효과를 향상시키는 분산 저장 방법 및 장치{DISTRIBUTED STORAGE METHOD AND APPARATUS FOR COOPERATION BETWEEN MULTIPLE HELPER NODES WITH CACHED MEMORY}TECHNICAL FIELD [0001] The present invention relates to a distributed storage method and apparatus for enhancing a user's haptic effect through cooperation between nodes in a plurality of auxiliary node wireless communications using a cache memory. [0002] DISTRIBUTED STORAGE METHOD AND APPARATUS FOR COOPERATION BETWEEN MULTIPLE HELPER NODES WITH CACHED MEMORY [

본 발명은 클러스터(cluster)에 속하는 적어도 하나의 사용자 단말로 서비스와 관련된 데이터, 정보, 파일 등을 제공하기 위해 파일을 클러스터에 속하는 여러 보조 노드들에 분산 저장하는 기술에 관한 것이다. 더욱 상세하게는, 캐시를 구비한 여러 개의 보조 노드들(helper node)과 상기 복조 노드들 각각으로부터 서비스를 제공받는(예컨대, 데이터, 파일 등을 제공받는) 사용자 단말(User Equipment)을 하나의 통신 주체(클러스터(cluster))로 정의한 경우, 2개 이상의 보조 노드 간 협력을 통해 최적의 성능(예컨대, 전송 용량 증대)을 제공하는 캐시 메모리 분산 저장 기술에 관한 것이다. The present invention relates to a technique for distributing files to various auxiliary nodes belonging to a cluster in order to provide data, information, files, etc. related to a service to at least one user terminal belonging to a cluster. More specifically, a plurality of helper nodes having a cache and a user equipment (UE) receiving a service from each of the demodulation nodes (for example, receiving data, files, etc.) And more particularly to cache memory distributed storage techniques that provide optimal performance (e.g., increase in transfer capacity) through cooperation between two or more auxiliary nodes when defined as a subject (cluster).

클러스터(cluster)를 하나의 통신 주체로 볼 때, 하나의 클러스터는 하나 이상의 보조 노드(help node)와 보조 노드로부터 파일, 데이터 등을 제공받는 수신 노드, 즉, 사용자 단말을 포함할 수 있다. 여기서, 보조 노드는 기지국이 아닌 게이트웨이(gateway) 등의 중계장치로서, 기지국이 데이터를 수신 노드로 제공함에 따른 부담을 덜어주기 위한 보조 기능을 수행하기 위해 이용될 수 있으며, 보조 노드가 속하는 기지국은 송신 노드로 표현될 수 있다. When a cluster is regarded as one communication entity, one cluster may include one or more help nodes and a receiving node, that is, a user terminal, to which files, data, and the like are provided from an auxiliary node. Here, the auxiliary node may be a relay device such as a gateway rather than a base station, and may be used to perform an auxiliary function for relieving the burden of the base station providing data to the receiving node, and the base station to which the auxiliary node belongs May be represented as a transmitting node.

예를 들어, 하나의 클러스터는 일정 반경을 가지며, 일정 영역 이내에 캐시(cache)를 구비한 여러 개의 보조 노드가 포함될 수 있다. 그리고, 여러 개의 보조 노드가 속하는 하나의 기지국(즉, 송신 노드)가 존재할 수 있다. 그러면, 클러스터에 속하는 사용자 단말은 기지국으로부터 원하는 데이터를 제공받지 않고 사용자 단말 주변 또는 근처에 위치하는 보조 노드로부터 데이터를 제공받을 수 있다. 즉, 다른 클러스터의 송신 신호가 사용자에게 간섭으로 작용해 통신 품질을 저감시키는 문제가 존재한다. For example, one cluster may have a certain radius, and may include a plurality of auxiliary nodes having a cache within a certain area. There may be one base station (i.e., a transmitting node) to which a plurality of auxiliary nodes belong. Then, the user terminal belonging to the cluster can receive data from the auxiliary node located near or near the user terminal without receiving the desired data from the base station. That is, there is a problem that the transmission signal of the other cluster acts as an interference to the user, thereby reducing the communication quality.

그리고, 보조 노드 별로 장착된 캐시(cache)의 용량이 제한적이므로, 제한된 캐시에 어떤 데이터, 파일 등을 저장할 것인지에 대한 결정 문제가 존재한다. 예컨대, 캐시에 사용자 단말이 요청할 확률이 높은 파일 또는 데이터를 미리 저장해두면, 사용자 단말이 기지국 등에 접속할 필요없이 빠르게 원하는 서비스(즉, 파일 또는 데이터)를 제공받을 수 있다. 기존의 분산 저장 기법은 여러 개의 파일들이 존재하는 경우, 인기도가 높은 순서로 중요한 파일, 즉, 파일의 우선 순위를 결정하고, 우선 순위가 높은 순서에 따라 순차적으로 파일을 캐시에 분산 저장한다. 다른 분산 저장 기법으로 MDS(Maximum Distance Separable) 코딩 기반의 분산 저장 방법이 존재한다.Also, since the capacity of the cache installed for each auxiliary node is limited, there is a problem of determining which data, files, etc. are to be stored in the limited cache. For example, if a file or data having a high probability of requesting a user terminal from a cache is stored in advance, the user terminal can quickly receive a desired service (i.e., file or data) without having to access a base station. In the existing distributed storage technique, when there are a plurality of files, priority is given to the important files in order of popularity, and the files are sequentially distributed in the cache in order of priority. There is a distributed storage method based on Maximum Distance Separable (MDS) coding with other distributed storage techniques.

MDS 코딩 기반의 분산 저장 방법은 파일의 전체가 아닌 일부분의 패킷(concatenated packets) 만을 잘라서 MDS 코딩을 통해 분산 저장하는 방법이다. The distributed storage method based on the MDS coding is a method in which only concatenated packets of a file are cut out and distributed and stored through MDS coding.

예를 들어, 원본 파일이 k개의 패킷으로 이루어져 있는 경우, MDS 코딩 기반의 분산 저장 기법은 n개의 패킷을 만든 이후 n개의 패킷들 중에 임의의 k개의 패킷만 가지고도 원본을 복구할 수 있는 분산 저장 코딩 기법을 나타낸다. MDS 코딩의 경우, 잘라진 여러 개의 파일 조각들을 여러 개의 보조 노드에 저장을 해야 저장효율을 최대화 할 수 있으나, 이를 만족하기 위해서는 n이 매우 커져야 하는데 n이 매우 커져 파일을 여러 개의 보조 노드에 저장 시 경우의 수가 많아 계산도가 매우 복잡해져 실제 무선 통신 환경에 적용이 어렵다.For example, if the original file is composed of k packets, the distributed storage technique based on MDS coding is a distributed storage method capable of recovering the original even if only k packets among n packets after n packets are created Coding technique. In case of MDS coding, it is necessary to save several fragmented file fragments in several auxiliary nodes to maximize the storage efficiency. However, in order to satisfy this requirement, n must be very large. When n is large, The calculation is very complicated and it is difficult to apply to the actual wireless communication environment.

따라서, 두 개 이상의 클러스터가 존재하는 무선 통신 환경에서, 무선 통신 환경, 즉, 무선 채널의 특성을 고려하여 적절하게 캐시에 데이터(또는 파일 등)를 분산 저장하는 기술이 요구된다.Therefore, in a wireless communication environment in which two or more clusters exist, there is a need for a technology for distributing and storing data (or files, etc.) in a cache appropriately in consideration of characteristics of a wireless communication environment, i.e., a wireless channel.

한국공개특허 10-2010-00048130호는 클러스터 기반의 분산형 스토리지 시스템 및 동작 방법에 관한 것으로, 캐시에 데이터를 분산 저장한 후 클러스터로 멀티캐스팅하는 기술을 기재하고 있다. Korean Patent Laid-Open No. 10-2010-00048130 relates to a cluster-based distributed storage system and a method of operating the same, and discloses a technique of multicasting data into a cluster after distributing data in a cache.

본 발명은 여러, 보조 노드들과 하나의 사용자 단말(즉, 단일 사용자)이 속하는 클러스터에서 MDS 코딩 기반으로 보조 노드의 캐시에 파일을 분산 저장하는 기술에 관한 것이다.The present invention relates to a technique for distributing files in a cache of an auxiliary node based on MDS coding in a cluster to which a plurality of auxiliary nodes and a user terminal (i.e., a single user) belong.

또한, MDS(Maximum Distance Separable) 코딩에 기초하여 파일을 분산 저장하고, MDS 코딩(즉, MDS 코딩된 MDS 코드)의 길이(redundancy)를 조절하여 클러스터 내부의 파일 존재확률(hitting probability) 및 무선 통신 기법에 따른 통신 성능(예컨대, 평균 전송 용량)을 향상시키기 위한 기술에 관한 것이다.In addition, based on the Maximum Distance Separable (MDS) coding, files are distributed and stored, and the redundancy of the MDS coding (i.e., the MDS coded MDS code) (E.g., average transmission capacity) according to the technique of the present invention.

클러스터(cluster)에 속하는 복수의 보조 노드(help node)에 파일을 분산 저장하는 방법에 있어서, MDS(Maximum Distance Separable) 코딩에 기초하여 복수개의 MDS 코드로 분할하고자 하는 특정 파일을 대상으로, 상기 복수개의 MDS 코드 중 적어도 일부가 중복되도록(redundancy) 코딩된 MDS 코드의 전체 길이를 결정하는 단계, 결정된 MDS 코드의 전체 길이에 기초하여 특정 파일을 복수개의 MDS 코드로 분할하는 단계, 및 분할된 복수개의 MDS 코드들을 상기 복수의 보조 노드 각각에 해당하는 캐시에 분산 저장하는 단계를 포함할 수 있다.A method for distributedly storing files in a plurality of help nodes belonging to a cluster, the method comprising the steps of: extracting a plurality of MDS codes based on MDS (Maximum Distance Separable) Dividing a particular file into a plurality of MDS codes based on the total length of the determined MDS code, determining a total length of the plurality of MDS codes, And distributing the MDS codes to a cache corresponding to each of the plurality of auxiliary nodes.

일측면에 따르면, 상기 복수개의 MDS 코드로 분할하는 단계는, 상기 특정 파일을 동일 크기를 갖는 복수개의 MDS 코드로 분할할 수 있다.According to an aspect of the present invention, the dividing into the plurality of MDS codes may divide the specific file into a plurality of MDS codes having the same size.

다른 측면에 따르면, 상기 특정 파일이 분할된 복수개의 MDS 코드 각각에 해당하는 크기는, 캐시에 저장하고자 하는 파일의 개수 및 캐시의 메모리 크기에 기초하여 결정될 수 있다.According to another aspect, the size corresponding to each of the plurality of divided MDS codes of the specific file may be determined based on the number of files to be stored in the cache and the memory size of the cache.

또 다른 측면에 따르면, 상기 MDS 코드의 전체 길이를 결정하는 단계는, 상기 특정 파일이 분할된 복수개의 MDS 코드 각각에 해당하는 크기에 기초하여 상기 길이를 결정할 수 있다.According to another aspect, the step of determining the total length of the MDS code may determine the length based on a size corresponding to each of the plurality of MDS codes into which the specific file is divided.

또 다른 측면에 따르면, 상기 MDS 코드의 전체 길이를 결정하는 단계는, 상기 MDS 코드에 해당하는 크기와 상기 길이에 기초하여 전송 용량을 계산하는 단계, 및 상기 길이를 조절하여 계산된 복수의 전송 용량들 중 가장 높은 전송 용량에 해당하는 상기 길이와 크기를 결정하는 단계를 포함할 수 있다.According to another aspect of the present invention, the step of determining the total length of the MDS code includes: calculating a transmission capacity based on the size corresponding to the MDS code and the length; And determining the length and the size corresponding to the highest transmission capacity among the transmission capacity.

또 다른 측면에 따르면, 분할된 상기 복수개의 MDS 코드들 간의 중복 영역(redundancy)에 해당하는 데이터는, 상기 복수의 보조 노드들 간의 협력 통신을 기반으로 해당 파일을 요청한 사용자 단말로 제공될 수 있다.According to another aspect, data corresponding to a redundancy between the plurality of divided MDS codes may be provided to a user terminal requesting a corresponding file based on cooperative communication between the plurality of auxiliary nodes.

또 다른 측면에 따르면, 분할된 상기 복수개의 MDS 코드들을 대상으로, 상기 복수개의 MDS 코드 간 중복 영역(redundancy)을 제외한 나머지 영역에 해당하는 데이터는, 상기 복수의 보조 노드들 중 어느 하나의 보조 노드로부터 사용자 단말로 제공될 수 있다.According to another aspect of the present invention, data corresponding to a remaining region of the plurality of MDS codes excluding the redundancy between the plurality of MDS codes is allocated to one of the plurality of auxiliary nodes, To the user terminal.

또 다른 측면에 따르면, 상기 MDS 코드로 분할하는 단계는, 복수개의 파일들 중 선호도가 가장 높은 파일을 기준으로 선호도가 높은 순서에 따라 순차적으로 결정된 일정 개수의 파일을 대상으로, 해당 파일을 복수개의 MDS 코드로 분할할 수 있다.According to another aspect of the present invention, the step of dividing the MDS code into a plurality of files is a step of dividing the file into a plurality of files in order of a predetermined number of files sequentially determined in order of preference with respect to the file having the highest preference among the plurality of files, It can be divided into MDS code.

또 다른 측면에 따르면, 상기 클러스터는, 캐시를 구비한 복수의 보조 노드 및 단일 사용자 단말을 포함할 수 있다.According to another aspect, the cluster may comprise a plurality of auxiliary nodes with a cache and a single user terminal.

클러스터(cluster)에 속하는 복수의 보조 노드(help node)에 파일을 분산 저장하는 데이터 분산 저장 장치에 있어서, MDS(Maximum Distance Separable) 코딩에 기초하여 복수개의 MDS 코드로 분할하고자 하는 특정 파일을 대상으로, 상기 복수개의 MDS 코드 중 적어도 일부가 중복되도록(redundancy) 코딩된 MDS 코드의 전체 길이를 결정하는 길이 결정부, 결정된 MDS 코드의 전체 길이에 기초하여 특정 파일을 복수개의 MDS 코드로 분할하는 MDS 코드 분할부, 및 분할된 복수개의 MDS 코드들을 상기 복수의 보조 노드 각각에 해당하는 캐시에 분산 저장하는 저장 제어부를 포함할 수 있다.A data distribution storage device for distributedly storing files in a plurality of help nodes belonging to a cluster, the data distribution storage device comprising: means for searching a specific file to be divided into a plurality of MDS codes based on MDS (Maximum Distance Separable) A length determining unit for determining an overall length of a coded MDS code in which at least a part of the plurality of MDS codes is redundant, an MDS code for dividing a specific file into a plurality of MDS codes based on the determined total length of the MDS codes, And a storage control unit for distributing and storing the divided MDS codes into a cache corresponding to each of the plurality of auxiliary nodes.

일측면에 따르면, 상기 MDS 코드 분할부는, 상기 특정 파일을 동일 크기를 갖는 복수개의 MDS 코드로 분할할 수 있다.According to an aspect of the present invention, the MDS code division unit may divide the specific file into a plurality of MDS codes having the same size.

다른 측면에 따르면, 상기 특정 파일이 분할된 복수개의 MDS 코드 각각에 해당하는 크기는, 캐시에 저장하고자 하는 파일의 개수 및 캐시의 메모리 크기에 기초하여 결정될 수 있다.According to another aspect, the size corresponding to each of the plurality of divided MDS codes of the specific file may be determined based on the number of files to be stored in the cache and the memory size of the cache.

또 다른 측면에 따르면, 상기 길이 결정부는, 상기 특정 파일이 분할된 복수개의 MDS 코드 각각에 해당하는 크기에 기초하여 상기 길이를 결정할 수 있다.According to another aspect, the length determination unit may determine the length based on a size corresponding to each of the plurality of MDS codes into which the specific file is divided.

또 다른 측면에 따르면, 상기 길이 결정부는, 상기 MDS 코드에 해당하는 크기와 상기 길이에 기초하여 전송 용량을 계산하고, 상기 길이를 조절하여 계산된 복수의 전송 용량들 중 가장 높은 전송 용량에 해당하는 상기 길이와 크기를 결정할 수 있다.According to another aspect of the present invention, the length determiner calculates a transmission capacity based on the size corresponding to the MDS code and the length, and calculates a transmission capacity corresponding to the highest transmission capacity among the plurality of transmission capacities calculated by adjusting the length The length and size can be determined.

또 다른 측면에 따르면, 분할된 상기 복수개의 MDS 코드들 간의 중복 영역(redundancy)에 해당하는 데이터는, 상기 복수의 보조 노드들 간의 협력 통신을 기반으로 해당 파일을 요청한 사용자 단말로 제공될 수 있다.According to another aspect, data corresponding to a redundancy between the plurality of divided MDS codes may be provided to a user terminal requesting a corresponding file based on cooperative communication between the plurality of auxiliary nodes.

또 다른 측면에 따르면, 분할된 상기 복수개의 MDS 코드들을 대상으로, 상기 복수개의 MDS 코드 간 중복 영역(redundancy)을 제외한 나머지 영역에 해당하는 데이터는, 상기 복수의 보조 노드들 중 어느 하나의 보조 노드로부터 사용자 단말로 제공될 수 있다.According to another aspect of the present invention, data corresponding to a remaining region of the plurality of MDS codes excluding the redundancy between the plurality of MDS codes is allocated to one of the plurality of auxiliary nodes, To the user terminal.

또 다른 측면에 따르면, 상기 MDS 코드 분할부는, 복수개의 파일들 중 선호도가 가장 높은 파일을 기준으로 선호도가 높은 순서에 따라 순차적으로 결정된 일정 개수의 파일을 대상으로, 해당 파일을 복수개의 MDS 코드로 분할할 수 있다.According to another aspect of the present invention, the MDS code division unit divides the file into a plurality of MDS codes for a predetermined number of files sequentially determined in order of preference with respect to the file having the highest preference among the plurality of files Can be divided.

본 발명의 실시예들에 따르면, 여러, 보조 노드들과 하나의 사용자 단말(즉, 단일 사용자)이 속하는 클러스터에서 MDS 코딩 기반으로 보조 노드의 캐시에 파일을 분산 저장함에 있어서, 이상적인 MDS 코드가 아닌 MDS 코드의 중복(redundancy), 즉, 오버랩(overlap)을 허용함으로써, 유한한 MDS 코드 후보에서 캐시에 저장할 MDS 코드를 효과적으로 결정할 수 있다.According to embodiments of the present invention, in distributing and storing files in the cache of the secondary node based on MDS coding in a cluster to which a plurality of secondary nodes and a single user terminal (i.e., a single user) belong, By allowing redundancy, or overlap, of the MDS code, it is possible to effectively determine the MDS code to be stored in the cache in the finite MDS code candidate.

또한, MDS(Maximum Distance Separable) 코딩에 기초하여 파일을 분산 저장함에 있어서, MDS 코딩(즉, MDS 코딩된 MDS 코드)의 길이(redundancy)를 조절하여 복수의 보조 노드들 각각의 캐시에 MDS 코드(즉, 파일 조각)을 분산 저장함으로써, 클러스터 내부의 파일 존재확률(hitting probability) 및 통신 성능(예컨대, 평균 전송 용량)을 향상시킬 수 있다.Also, in a distributed storage of files based on Maximum Distance Separable (MDS) coding, the redundancy of the MDS coding (i.e., the MDS coded MDS code) is adjusted so that the MDS code That is, by dividing and storing file fragments, it is possible to improve the hitting probability and communication performance (for example, average transmission capacity) in the cluster.

도 1은 본 발명의 일실시예에 있어서, 복수의 보조 노드들을 포함하는 클러스터를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 기지국, 보조 노드 및 사용자 단말 간의 데이터 분산 저장을 위한 관계를 도시한 흐름도이다.
도 3은 본 발명의 일실시예에 있어서, 보조 노드 각각에 해당하는 캐시 메모리에 분산 저장된 데이터 구성 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 데이터 분산 저장 방법을 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 데이터 분산 저장 장치의 구성을 도시한 블록도이다.
도 6은 본 발명의 일실시예에 있어서, MRT를 이용하여 파일을 제공하는 보조 노드 간의 캐시 메모리의 구조를 도시한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 메모리 크기가 작은 경우의 전송 용량 증가율을 도시한 그래프이다.
도 8은 본 발명의 일실시예에 있어서, 메모리의 크기가 큰 경우의 전송 용량 증가율을 도시한 그래프이다.
1 is a diagram illustrating a cluster including a plurality of auxiliary nodes in an embodiment of the present invention.
FIG. 2 is a flowchart illustrating a data distribution storage relationship between a base station, an auxiliary node, and a user terminal according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating the configuration of data stored in a cache memory corresponding to each of auxiliary nodes in an embodiment of the present invention.
FIG. 4 is a flowchart illustrating a data distribution storage method according to an embodiment of the present invention.
5 is a block diagram illustrating a configuration of a data distribution storage device in an embodiment of the present invention.
6 is a diagram illustrating a structure of a cache memory between auxiliary nodes that provide a file using an MRT, according to an embodiment of the present invention.
FIG. 7 is a graph showing a transmission capacity increase rate when a memory size is small, in an embodiment of the present invention.
FIG. 8 is a graph showing a transmission capacity increase rate when a memory size is large, in an embodiment of the present invention. FIG.

이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명은 두 개 이상의 보조 노드들과 단일 사용자 단말이 하나의 통신 클러스터를 형성하는 무선 통신 환경에서, 클러스터 내부의 파일 존재확률(hitting probability)과 통신 성능(예컨대, 평균 전송 용량)을 향상시키는 기술에 관한 것이다. 특히, 본 발명은 기지국에서 저장하고 있는 복수의 파일들 중 적어도 하나의 파일을 기지국에 속하는 클러스터들 중 특정 클러스터에 해당하는 복수의 보조 노드들로 분산 저장하기 위해 MDS(Maximum Distance Separable) 코딩을 이용하고, MDS 코딩의 길이(redundancy)를 조절하여 분할된 MDS 코드(즉, 파일 조각/패킷)을 복수의 보조 노드들 각각의 캐시(cache)에 분산 저장하는 기술에 관한 것이다.In a wireless communication environment in which two or more auxiliary nodes and a single user terminal form a communication cluster, a technique for improving the hitting probability and communication performance (for example, average transmission capacity) . In particular, the present invention uses MDS (Maximum Distance Separable) coding to distribute at least one file among a plurality of files stored in a base station to a plurality of auxiliary nodes corresponding to a specific cluster among clusters belonging to a base station And a technique for distributing and storing divided MDS codes (i.e., file fragments / packets) in a cache of each of a plurality of auxiliary nodes by adjusting the redundancy of the MDS coding.

본 실시예들에서, 송신 노드는 기지국을 나타내고, 보조 노드는 기지국과 사용자 단말(user equipment) 사이에 존재하는 게이트웨이 등의 중계장치로서, 기지국이 데이터를 수신 노드로 제공함에 따른 부담을 덜어주기 위한 보조 기능을 수행하기 위해 이용될 수 있다. 예컨대, 송신 노드는 데이터 분산 저장 장치로 표현될 수 있다. 그리고, 수신 노드는 해당 클러스터가 속하는 송신 노드(즉, 기지국) 및 해당 클러스터에 속하는 보조 노드들 중 적어도 하나로부터 요청 파일에 해당하는 패킷(즉, 파일 조각)을 수신하는 사용자 단말을 나타낼 수 있다. 예컨대, 수신 노드는 스마트폰, 태블릿 PC, 노트북 등이 포함될 수 있다.In the present embodiments, the transmitting node represents a base station, and the auxiliary node is a relay device such as a gateway existing between a base station and a user equipment. The relaying device may be a relay device for relieving the burden of providing data to the receiving node Can be used to perform auxiliary functions. For example, the transmitting node may be represented as a data distributed storage device. The receiving node may indicate a user terminal receiving a packet (i.e., a file fragment) corresponding to the request file from at least one of the transmitting node (i.e., the base station) to which the corresponding cluster belongs and the auxiliary nodes belonging to the cluster. For example, the receiving node may include a smart phone, a tablet PC, a notebook, and the like.

또한, 보조 노드는 캐시(cache) 메모리를 구비하고 있으며, 보조 노드가 속하는 클러스터에 해당하는 기지국(Base Station), 즉, 송신 노드로부터 사용자 단말(User Equipment, UE)에서 자주 요청하는 파일들을 미리 저장하고 있을 수 있다. 예컨대, 상기 파일들은 일반적인 파일 시스템에서 저장되는 데이터 파일, 비디오, 음악 등의 멀티미디어 데이터, 통신 시스템의 연결 등을 위한 제어 데이터 등을 포함할 수 있다.In addition, the auxiliary node has a cache memory, and stores frequently requested files from a base station corresponding to a cluster to which the auxiliary node belongs, that is, a user equipment (UE) . For example, the files may include data files stored in a general file system, multimedia data such as video and music, control data for connection of a communication system, and the like.

본 실시예들에서, 파일 존재확률(hitting probability)은 보조 노드의 캐시(cache)에 사용자 단말에서 요청한 파일이 존재할 확률, 즉, 상기 캐시에 사용자 단말에서 요청한 파일의 일부가 저장되어 있을 확률을 나타낼 수 있다.In the present embodiments, the hitting probability indicates the probability that a file requested by the user terminal exists in the cache of the auxiliary node, that is, the probability that a portion of the file requested by the user terminal is stored in the cache .

본 실시예들에서, MDS 코드는 기지국에 저장된 파일을 복수의 보조 노드들 각각의 캐시에 분산 저장하기 위해 상기 파일을 MDS 코딩에 기초하여 분할된 패킷(즉, 파일 조각)을 나타낼 수 있다. 그리고, 보조 노드들 각각의 캐시(cache)에 저장될 MDS 코드의 크기는 S로 표현될 수 있으며, 특정 파일을 대상으로 분할된 MDS 코드에 해당하는 영역 중 적어도 일부가 중복되는 영역(redundancy)은 L로 표현될 수 있다. 예컨대, 파일 1이 2개로 분할된 경우, MDS 코드 1과 MDS 코드 2 간의 중복되는 영역(redundancy)이 L로 표현될 수 있다. 그리고, 파일, 즉, MDS 코딩의 전체 길이 중 일부분에 해당하는 MDS 코드가 각 캐시에 저장될 수 있다.In these embodiments, the MDS code may represent the packet as a fragmented packet (i.e., a piece of file) based on MDS coding to distribute the file stored in the base station to the cache of each of the plurality of auxiliary nodes. The size of the MDS code to be stored in the cache of each of the auxiliary nodes can be represented by S, and the redundancy of at least a part of the areas corresponding to the MDS codes divided for the specific file is L < / RTI > For example, when file 1 is divided into two, the redundancy between MDS code 1 and MDS code 2 can be represented by L. [ An MDS code corresponding to a portion of the file, that is, the entire length of the MDS coding, can be stored in each cache.

본 실시예들에서, 보조 노드들 각각의 캐시(cache)에 저장될 MDS 코드의 크기는 각 캐시에 저장될 MDS 코드를 위한 메모리의 크기를 나타낼 수 있다. 즉, 캐시의 전체 크기 중 상기 MDS 코드를 저장 가능한 크기에 기초하여 MDS 코딩 시 분할이 수행될 수 있다. 예컨대, 각 캐시에 랜덤하게 S만큼의 MDS 코드(즉, 패킷)이 저장되며, 이때, 전체 파일 중 S만큼의 코드가 각 캐시에 저장되므로, 서로 오버랩(overlap)되어 저장될 수 있다. 즉, MDS 코딩된 파일의 전체 길이 중 각 캐시에 저장되는 MDS 코드 중 일부가 중복되어 저장될 수 있다. In these embodiments, the size of the MDS code to be stored in the cache of each of the auxiliary nodes may indicate the size of the memory for the MDS code to be stored in each cache. That is, the partitioning may be performed in the MDS coding based on the size of the entire cache size that can store the MDS code. For example, the MDS codes (i.e., packets) corresponding to S are randomly stored in each cache. At this time, since S codes of all the files are stored in each cache, they can overlap and be stored. That is, some of the MDS codes stored in each cache among the entire lengths of the MDS-coded files may be stored redundantly.

본 실시예들에서, 보조 노드는 캐시(cache) 메모리를 구비하였음을 가정하기로 한다. 그리고, 중복(redundancy)을 허용하여 MDS 코딩된 MDS 코드의 전체 길이를 나타내는 L의 최소값은 1이고, 유한한 최대값은 존재하지 않음을 가정하기로 한다. In the present embodiments, it is assumed that the auxiliary node has a cache memory. It is assumed that the minimum value of L indicating the total length of the MDS-coded MDS code by allowing redundancy is 1, and that there is no finite maximum value.

도 1은 본 발명의 일실시예에 있어서, 복수의 보조 노드들을 포함하는 클러스터를 도시한 도면이다.1 is a diagram illustrating a cluster including a plurality of auxiliary nodes in an embodiment of the present invention.

도 1에 따르면, 클러스터는 복수의 보조 노드들(111, 112)과 하나의 사용자 단말(113)을 포함할 수 있다. 그리고, 송신 노드들(111, 112, 121, 122) 각각은 하나의 안테나를 구비함을 가정한다. 1, the cluster may include a plurality of auxiliary nodes 111 and 112 and a user terminal 113. In FIG. It is assumed that each of the transmission nodes 111, 112, 121, and 122 has one antenna.

클러스터(100)에 속하는 사용자 단말(113)이 요청한 파일과 관련된 패킷(예컨대, 파일 조각에 해당하는 MDS 코드)들이 보조 노드 1(111) 및 보조 노드 2(112) 각각의 캐시(cache)에 분산 저장되어 있을 수 있다. 그러면, 사용자 단말(113)은 상기 파일을 기지국에서 전송하지 않고, 상기 보조 노드 1(111) 및 보조 노드 2(112)를 통해 바로 제공받을 수 있다. 이때, 보조 노드 1(111) 및 보조 노드 2(112) 각각의 캐시(cache)에 서로 다른 패킷들(즉, MDS 코드들)이 저장될 수 있으며, MDS 코드들 각각에 해당하는 전체 영역 중 적어도 일부의 영역이 중복되어 각 캐시에 저장될 수 있다. 즉, 보조 노드 1(111) 및 보조 노드 2(112) 각각의 캐시(cache)에 저장된 MDS 코드의 일부가 중복되어 저장될 수 있다. 그러면, 사용자 단말(113)은 중복 저장된 영역(redundancy)에 해당하는 코드를 협력 통신을 기반으로 보조 노드들(111, 112) 모두로부터 동시에 제공받을 수 있고, 중복되지 않은 영역에 해당하는 코드는 해당 코드를 저장하고 있는 보조 노드로부터 제공받을 수 있다.The packets related to the file requested by the user terminal 113 belonging to the cluster 100 (for example, the MDS code corresponding to the file fragment) are dispersed in the cache of each of the auxiliary node 1 111 and the auxiliary node 2 112 May be stored. Then, the user terminal 113 can receive the file directly through the auxiliary node 1 (111) and the auxiliary node 2 (112) without transmitting the file from the base station. At this time, different packets (i.e., MDS codes) may be stored in the cache of each of the auxiliary node 1 111 and the auxiliary node 2 112, and at least one of the entire areas corresponding to each of the MDS codes Some of the areas may be duplicated and stored in each cache. That is, a part of the MDS code stored in the cache of each of the auxiliary node 1 111 and the auxiliary node 2 112 may be redundantly stored. Then, the user terminal 113 can simultaneously receive codes corresponding to the redundancy stored in the auxiliary nodes 111 and 112 based on the cooperative communication, and codes corresponding to the non-overlapping areas And can be provided from the auxiliary node storing the code.

도 2는 본 발명의 일실시예에 있어서, 기지국, 보조 노드 및 사용자 단말 간의 데이터 분산 저장을 위한 관계를 도시한 흐름도이다.FIG. 2 is a flowchart illustrating a data distribution storage relationship between a base station, an auxiliary node, and a user terminal according to an embodiment of the present invention.

210 단계에서, 송신 노드인 기지국(201)은 보조 노드들의 캐시에 저장하고자 하는 복수의 파일들 중 특정 파일을 대상으로 적어도 일부가 중복되도록, MDS 코딩에 기초하여 특정 파일을 복수개의 MDS 코드(즉, 파일 조각)으로 분할 할 수 있다.In step 210, the base station 201, which is a transmitting node, transmits a specific file to a plurality of MDS codes (that is, a plurality of MDS codes) based on MDS coding so that at least a part of the specific files among the plurality of files, , File fragment).

220 단계에서, 기지국(201)은 분할된 복수의 MDS 코드가 복수의 보조 노드들의 캐시에 분산 저장되도록 제어할 수 있다. 예컨대, 복수의 MDS 코드들을 복수의 보조 노드들로 브로드캐스트(broadcast)할 수 있다.In step 220, the base station 201 may control the plurality of divided MDS codes to be distributedly stored in the cache of the plurality of auxiliary nodes. For example, a plurality of MDS codes may be broadcast to a plurality of auxiliary nodes.

230 단계에서, 보조 노드들 각각(202)은 기지국(201)으로부터 제공받은 MDS 코드를 자신의 캐시에 저장할 수 있다.In step 230, each of the auxiliary nodes 202 may store the MDS code provided from the base station 201 in its own cache.

240 단계에서, 사용자 단말(230)이 특정 파일을 전송받고자 하는 경우(즉, 음악, 영화 등의 특정 서비스를 제공받고자 하는 경우), 보조 노드(202)는 특정 파일의 전송 요청을 사용자 단말(230)로부터 수신할 수 있다.If the user terminal 230 wants to receive a specific file (that is, to receive a specific service such as music or movie) in step 240, the auxiliary node 202 transmits a transmission request for a specific file to the user terminal 230 As shown in Fig.

250 단계에서, 요청된 파일의 일부인 MDS 코드가 보조 노드(202)의 캐시에 미리 저장되어 있음에 따라, 보조 노드(202)는 요청된 파일에 해당하는 MDS 코드를 별도로 기지국(201)으로 요청하지 않고 바로 사용자 단말(203)로 제공할 수 있다.In step 250, since the MDS code which is a part of the requested file is stored in advance in the cache of the auxiliary node 202, the auxiliary node 202 does not separately request the MDS code corresponding to the requested file to the base station 201 To the user terminal (203).

이처럼, 보조 노드들 각각의 캐시에 파일들이 분할되어 분산 저장될 수 있다. 그리고, 각 캐시에 저장할 파일의 개수는 Fc로 표현될 수 있으며, 통신 용량을 향상시키기 위해서는, 즉, 전송 용량을 증대시키기 위해서는 저장할 파일의 개수 Fc와 캐시에 저장되는 MDS 코드의 길이 L가 조절될 수 있다. 이때, L의 최소값은 1이고, 유한한 최대값은 존재하지 않을 수 있다. 전체 F개의 파일이 존재하는 경우, 각 파일

Figure 112017042218076-pat00001
의 선호도(예컨대, 인기도)
Figure 112017042218076-pat00002
는 지프 분포(Zipf distribution)를 따르며, 피크 상수(peakness constant)는 Zipf exponent인
Figure 112017042218076-pat00003
에 따라 아래의 수학식 1과 같이 결정될 수 있다.As described above, the files can be divided and stored in the cache of each of the auxiliary nodes. Then, the number of files stored in each cache can be represented as F c, in order to improve the capacity, that is, the length L of the MDS code which is stored the number of file F c and a cache store in order to increase the transmission capacity Lt; / RTI > At this time, the minimum value of L is 1, and a finite maximum value may not exist. If there are a total of F files, each file
Figure 112017042218076-pat00001
(E.g., popularity)
Figure 112017042218076-pat00002
Is followed by a Zipf distribution and the peakness constant is a Zipf exponent
Figure 112017042218076-pat00003
1 < / RTI >

[수학식 1][Equation 1]

Figure 112017042218076-pat00004
Figure 112017042218076-pat00004

보조 노드들 각각은 하나의 송신 안테나를 구비할 수 있으며, 각 보조 노드들은 캐시에 높은 선호도를 갖는

Figure 112017042218076-pat00005
개의 파일의 일부분을 저장할 수 있다. 예를 들어, 복수개의 파일들 중 선호도가 가장 높은 파일을 기준으로 선호도가 상대적으로 높은 순서에 따라 순차적으로 결정된 일정 개수(즉, Fc)의 파일의 일부분(MDS 코딩된 코드 중 일부에 해당하는 데이터, 즉, 복수개로 분할된 MDS 코드들 중 적어도 하나의 MDS 코드)가 캐시 메모리에 저장될 수 있다. 여기서, Fc개의 파일들 각각의 일부 영역이 저장된 보조 노드 각각의 캐시 메모리 상태는 아래의 도 3을 참고하여 후술하기로 한다. Each of the auxiliary nodes may have one transmitting antenna, and each of the auxiliary nodes may have a high preference in the cache
Figure 112017042218076-pat00005
A portion of the file can be stored. For example, a portion of a file of a predetermined number (i.e., F c ) sequentially determined in order of preference relative to a file having the highest preference among a plurality of files (a part of the MDS- Data, i.e., at least one MDS code among a plurality of divided MDS codes) may be stored in the cache memory. Here, the cache memory state of each of the auxiliary nodes, in which a partial area of each of the F c files is stored, will be described later with reference to FIG.

도 3은 본 발명의 일실시예에 있어서, 보조 노드 각각에 해당하는 캐시 메모리에 분산 저장된 데이터 구성 도시한 도면이다.FIG. 3 is a diagram illustrating the configuration of data stored in a cache memory corresponding to each of auxiliary nodes in an embodiment of the present invention.

도 3은 두 개의 보조 노드를 대상으로, 랜덤(random)하게 선택된 파일 조각에 해당하는 MDS 코드(즉, 패킷)가 저장된 캐시 메모리의 상태를 나타낼 수 있다. 예를 들어, 도 3에서는 도 1의 사용자 단말(113)로 요청 파일을 제공하는 2개의 보조 노드(H1,1, H1,2) 각각의 캐시에 저장되는 파일 1과 파일 2의 일부분을 나타낼 수 있다.FIG. 3 illustrates a state of a cache memory in which MDS codes (i.e., packets) corresponding to a randomly selected file fragment are stored for two auxiliary nodes. For example, in FIG. 3, files 1 and 2, which are stored in the cache of each of the two auxiliary nodes (H 1,1 , H 1,2 ) that provide the request file to the user terminal 113 of FIG. 1, .

일례로, 파일 1(File 1, 310)을 여러 캐시에 분산 저장하기 위해 MDS 코딩된 경우, MDS 코딩된 전체 코드들 중 일부분만이 여러 보조 노드의 캐시에 각각 나누어 저장될 수 있다. 이때, 각 캐시에 저장되는 MDS 코드의 크기(예컨대, 패킷의 크기)는 동일할 수 있다. 다시 말해, 파일 1(310)을 대상으로, MDS 코딩 시 균등한 크기가 되도록 MDS 코드가 분할될 수 있다. 예컨대, 분할된 MDS 코드 1인

Figure 112017042218076-pat00006
(311)과
Figure 112017042218076-pat00007
(313)의 크기가 동일할 수 있다. 보조 노드 1(H1,1)의 캐시는 파일 1의 일부에 해당하는 MDS 코드(
Figure 112017042218076-pat00008
, 330)와 파일 2의 일부에 해당하는 MDS 코드(
Figure 112017042218076-pat00009
, 350)를 S(0<S<1)의 양만큼 저장하고 있을 수 있다. 마찬가지로, 보조 노드 2(H1,2)의 캐시는 파일 1의 일부에 해당하는 MDS 코드(
Figure 112017042218076-pat00010
, 340)와 과 파일 2의 일부에 해당하는 MDS 코드(
Figure 112017042218076-pat00011
, 360)를 S(0<S<1)의 양만큼 저장하고 있을 수 있다. 이에 따라, 이에 따라, MDS 코드(, 330)와 MDS 코드For example, when MDS is coded to distribute the file 1 (File 1, 310) in a plurality of caches, only a part of the entire MDS-coded codes can be separately stored in the cache of the plurality of auxiliary nodes. At this time, the size of the MDS code stored in each cache (for example, the size of the packet) may be the same. In other words, the MDS code can be divided so that file 1 310 is an equal size in MDS coding. For example, when the divided MDS code 1
Figure 112017042218076-pat00006
(311) and
Figure 112017042218076-pat00007
(313) may be the same size. The cache of the auxiliary node 1 (H 1,1 ) is an MDS code corresponding to a part of the file 1
Figure 112017042218076-pat00008
, 330) and an MDS code corresponding to a part of the file 2
Figure 112017042218076-pat00009
, 350) by S (0 < S < 1). Similarly, the cache of the auxiliary node 2 (H 1,2 ) stores the MDS code corresponding to a part of the file 1
Figure 112017042218076-pat00010
, 340) and an MDS code corresponding to a part of the file 2
Figure 112017042218076-pat00011
, 360) by S (0 < S < 1). Accordingly, the MDS code ( , 330) and the MDS code

MDS 코드(330)을 저장하고 있는 보노 조드 1의 캐시와 MDS 코드(350)를 저장하고 있는 보조 노드 2의 캐시는 캐시는 파일 1과 관련하여 MDS 코딩 시 분할된 MDS 코드들의 적어도 일부가 중복되는 영역(313)에 해당하는 동일 데이터를 저장하고 있을 수 있다. 이때, 사용자 단말에서 파일 1(310)의 전송을 요청할 수 있으며, 파일 1을 구성하는 MDS 코드(330)와 파일 1을 구성하는 MDS 코드(340)의 고유한 부분의 합이 원래 데이터의 크기인 경우((즉, hitting probability로서 도 3에서는 1로 미리 정해질 수 있다), 파일 1(310)을 저장하고 있는 보조 노드 1 및 보조 노드 2만을 활용하여 사용자 단말이 요청하는 파일이 제공될 수 있다. 여기서, 파일 1을 구성하는 MDS 코드(330)와 파일 1을 구성하는 MDS 코드(340)의 고유한 부분의 합은

Figure 112017042218076-pat00013
(311)+
Figure 112017042218076-pat00014
(312)-중복되는 영역(313)을 나타낼 수 있다.The cache of BonozoD 1 storing the MDS code 330 and the cache of the auxiliary node 2 storing the MDS code 350 are arranged such that at least a part of the divided MDS codes are overlapped The same data corresponding to the area 313 may be stored. At this time, the user terminal can request the transfer of the file 1 310. The sum of the unique portion of the MDS code 330 constituting the file 1 and the unique portion of the MDS code 340 constituting the file 1 is the size of the original data A file requested by the user terminal can be provided using only the auxiliary node 1 and the auxiliary node 2 storing the file 1 310 (i.e., the hitting probability can be predetermined as 1 in FIG. 3) . Here, the sum of the unique portions of the MDS code 330 constituting the file 1 and the MDS code 340 constituting the file 1 is
Figure 112017042218076-pat00013
(311) +
Figure 112017042218076-pat00014
(312) -overlapping region (313).

하나의 클러스터에 속하는 보조 노드들은 기정의된 일정 시간 간격에 따라 순차적으로 자신의 MDS 코드를 사용자 단말로 전송할 수 있다. 예컨대, 보조 노드들 각각은 시분할(Time division) 방식으로 일정 시간 간격에 따라 순차적으로 이미 전송된 MDS 코드와는 다른 고유한 부분에 해당하는 데이터를 사용자 단말로 전송할 수 있다. 이때, 동일 파일을 대상으로 분할된 MDS 코드 간에 중복되는 영역(즉, 오버랩되는 영역)은 동일 클러스터에 속하는 모든 보조 노드들이 같은 정보를 알고 있는 구간에 해당하므로, MISO(multiple-input single-output)에 기초하여 모든 보조 노드들이 협력하여 해당 파일을 전송할 수 있다. 중복되는 영역에 해당하는 데이터를 협력 통신을 기반으로 사용자 단말에 전송하도록 제어하는 동작은 도 6을 참조하여 후술하기로 한다.The auxiliary nodes belonging to one cluster can sequentially transmit their MDS codes to the user terminal at predetermined regular time intervals. For example, each of the auxiliary nodes may transmit data corresponding to a unique portion different from the MDS code that has been transmitted sequentially in a time division manner at a predetermined time interval to the user terminal. In this case, the overlapping area (i.e., overlapping area) between the MDS codes partitioned for the same file corresponds to a section in which all the auxiliary nodes belonging to the same cluster know the same information, so that multiple-input single-output (MISO) All of the auxiliary nodes can cooperatively transmit the corresponding file. The operation of controlling the data corresponding to the overlapped area to be transmitted to the user terminal based on the cooperative communication will be described later with reference to FIG.

도 4는 본 발명의 일실시예에 있어서, 데이터 분산 저장 방법을 도시한 흐름도이고, 도 5는 본 발명의 일실시예에 있어서, 데이터 분산 저장 장치의 구성을 도시한 블록도이다.FIG. 4 is a flowchart illustrating a data distribution storage method in an embodiment of the present invention, and FIG. 5 is a block diagram illustrating a configuration of a data distribution storage device in an embodiment of the present invention.

도 4 및 도 5에서는 데이터 분산 저장 장치가 기지국인 경우를 예로 들어 설명하나, 이는 실시예에 해당되며, 데이터 분산 저장 장치는 복수의 보조 노드들 중 어느 하나의 보조 노드일 수도 있다. 예컨대, 사용자 단말에서 요청한 원본 데이터를 저장하고 있는 어느 하나의 보조 노드가 데이터 분산 장치로서 동작할 수 있다. 4 and 5 illustrate the case where the data distributed storage device is a base station, but this corresponds to the embodiment, and the data distribution storage device may be any one of the plurality of auxiliary nodes. For example, any one of the auxiliary nodes storing the original data requested by the user terminal may operate as a data distributing apparatus.

도 5에서, 데이터 분산 저장 장치(500)는 길이 결정부(510), MDS 코드 분할부(520), 및 저장 제어부(530)를 포함할 수 있다. 그리고, 데이터 분산 저장 장치(500)에 속하는 복수의 보조 노드들 각각은 메모리인 캐시(cache)를 구비할 수 있으며, 하나의 송신 안테나를 구비할 수 있다. 그리고, 도 4의 각 단계들(410 내지 430 단계)은 도 5의 구성 요소인 길이 결정부(510), MDS 코드 분할부(520), 및 저장 제어부(530)에 의해 수행될 수 있다.5, the data distribution storage apparatus 500 may include a length determination unit 510, an MDS code division unit 520, and a storage control unit 530. Each of the plurality of auxiliary nodes belonging to the data distributed storage device 500 may have a cache, which is a memory, and may have one transmission antenna. 4 may be performed by the length determination unit 510, the MDS code division unit 520, and the storage control unit 530, which are components of FIG.

410 단계에서, 길이 결정부(510)는 MDS 코딩에 기초하여 복수개의 MDS 코드로 분할하고자 하는 특정 파일을 대상으로, MDS 코드 간의 중복(redundancy)이 허용된 MDS 코드의 전체 길이(coded symbol length) L을 결정할 수 있다. 즉, 길이 결정부(510)는 특정 파일을 대상으로 MDS 코딩을 수행하는 경우에, MDS 코딩된 코드의 전체 길이 L을 결정할 수 있다. In step 410, the length determining unit 510 determines the length of the coded symbol length of the MDS code allowed to be redundant between the MDS codes, based on the MDS coding, on a specific file to be divided into a plurality of MDS codes, L can be determined. That is, when performing the MDS coding on a specific file, the length determiner 510 can determine the total length L of the MDS-coded code.

411 단계에서, 길이 결정부(510)는 특정 파일을 대상으로, 분할하고자 하는 MDS 코드의 크기 S를 결정할 수 있다. 이때, 길이 결정부(510)는 캐시에 저장하고자 하는 파일의 개수와 캐시 메모리의 크기에 기초하여 상기 MDS 코드의 크기 S를 결정할 수 있다. In step 411, the length determining unit 510 may determine the size S of the MDS code to be divided, with respect to a specific file. At this time, the length determining unit 510 can determine the size S of the MDS code based on the number of files to be stored in the cache and the size of the cache memory.

예를 들어, 길이 결정부(510)는 캐시에 저장하고자 하는 파일의 개수를 변경하면서 복수개의 MDS 코드의 크기 S를 계산할 수 있다. 이때, 길이 결정부(510)는 동일 파일을 대상으로 MDS 코드들을 균등한 크기로 분할할 수 있다. 예컨대, 파일 1이 N개로 분할된 경우, N개의 MDS 코드들의 크기가 동일할 수 있다. For example, the length determining unit 510 may calculate the size S of a plurality of MDS codes while changing the number of files to be stored in the cache. At this time, the length determining unit 510 may divide the MDS codes into equal sizes for the same file. For example, when the file 1 is divided into N, the sizes of the N MDS codes may be the same.

412 단계에서, 길이 결정부(510)는 MDS 코드의 크기 S가 결정되면, 길이 결정부(510)는 상기 크기 S에 최적화된 MDS 코드의 전체 길이 L을 계산할 수 있다. 예컨대, 복수개의 크기 S 별로 최적화된 상기 길이 L가 계산될 수 있다. 다시 말해, 크기 S가 변경됨에 따라, 중복 영역의 길이 L 역시 조절될 수 있다. 예컨대, Sdp 최적화된 L은 아래의 수학식 2 및 수학식 3에 기초하여 유도된 전송용량(sum rate)관련 수식을 L에 대해 미분할 수 있으며, 미분된 수식이 0이 되는 L값이 최적화된 L에 해당할 수 있다. In step 412, when the size S of the MDS code is determined, the length determination unit 510 may calculate the total length L of the MDS code optimized for the size S. [ For example, the length L optimized for each of the plurality of sizes S can be calculated. In other words, as the size S is changed, the length L of the overlapping area can also be adjusted. For example, the Sdp-optimized L may be differentiated with respect to L by a formula related to the transfer rate (sum rate) derived based on the following Equations 2 and 3, and the L value in which the differentiated formula is 0 is optimized L, respectively.

413 단계에서, 길이 결정부(510)는 계산된 MDS 코드의 크기 S와 전체 길이 L에 기초하여 전송 용량을 계산할 수 있다. 이때, 상기 길이 L이 조절됨에 따라, 해당하는 복수개의 전송 용량이 계산될 수 있다. 예컨대, M개의 크기 S가 계산되고, M개의 크기 S에 각각 최적화된(즉, 길이가 조절된) L이 계산된 경우, M개의 전송 용량이 계산될 수 있다.In step 413, the length determining unit 510 may calculate the transmission capacity based on the calculated size S and the total length L of the calculated MDS code. At this time, as the length L is adjusted, a corresponding plurality of transmission capacities can be calculated. For example, if M size S is calculated and L optimized (i.e., length adjusted) for each of M size S is calculated, M transmission capacities can be calculated.

414 단계에서, 길이 결정부(510)는 복수의 전송용량들 중 가장 높은 전송 용량에 해당하는 중복 영역의 길이 L과 MDS 코드의 크기 S를 최종적으로 MDS 코딩에 적용할 L과 S로 결정할 수 있다.In step 414, the length determiner 510 may determine the length L of the redundant area corresponding to the highest transmission capacity among the plurality of transmission capacities and the size S of the MDS code as L and S to be finally applied to the MDS coding .

411 내지 414 단계를 예를 들어 설명하면, F=10, M=3인 경우, Fc = 4, 5, 6 세 가지 경우가 존재할 수 있으며, S=0.75, 0.6, 0.5으로 변화(즉, 조절)될 수 있다. 이때, S=0.75, 0.6, 0.5 각 경우에 대해 최적화된 L 값이 계산될 수 있으며, (L, S) 조합에 따라 계산된 sum rate(예컨대, 전송 용량) 중 가장 높은 sum rate(예컨대, 전송 용량)를 가지는 (L,S) 조합이 선택될 수 있다.For example, if F = 10 and M = 3, there may be cases where Fc = 4, 5, 6 and S = 0.75, 0.6, 0.5. . At this time, the optimized L value can be calculated for each case of S = 0.75, 0.6, 0.5 and the highest sum rate (for example, transmission rate) of the sum rate Capacity) can be selected.

420 단계에서, MDS 코드 분할부(520)는 최종 결정된 길이 L과 MDS 코드의 크기 S에 기초하여 특정 파일을 복수개의 MDS 코드로 분할할 수 있다.In operation 420, the MDS code division unit 520 may divide the specific file into a plurality of MDS codes based on the finally determined length L and the size S of the MDS code.

430 단계에서, 저장 제어부(530)는 분할된 MDS 코드들을 복수의 보조 노드 각각에 해당하는 캐시에 분산 저장되도록 제어할 수 있다. 예를 들어, 저장 제어부(530)는 분할된 MDS 코드들을 보조 노드들로 브로드캐스트(broadcast)함으로써, MDS 코드들이 보조 노드들 각각의 캐시에 분산 저장되도록 제어할 수 있다.In step 430, the storage control unit 530 may control the divided MDS codes to be distributedly stored in the cache corresponding to each of the plurality of auxiliary nodes. For example, the storage control unit 530 may broadcast the divided MDS codes to the auxiliary nodes so that the MDS codes are distributedly stored in the cache of each of the auxiliary nodes.

도 6은 본 발명의 일실시예에 있어서, MRT를 이용하여 파일을 제공하는 보조 노드 간의 캐시 메모리의 구조를 도시한 도면이다.6 is a diagram illustrating a structure of a cache memory between auxiliary nodes that provide a file using an MRT, according to an embodiment of the present invention.

도 6을 참고하면, 길이 결정부(510)는 보조 노드의 캐시 메모리의 크기(예컨대, 캐시 메모리의 전체 크기 중 저장 가능한 크기, 601)를 복수 개로 분할하고자 하는 MDS 코드의 크기 S(602, 603)로 결정할 수 있다. 예를 들어, 복수의 보조 노드들은 각각 동일한 메모리 크기의 캐시를 구비할 수 있으며, 기지국인 데이터 분산 저장 장치(500)는 캐시 메모리의 크기를 미리 알고 있을 수 있다. 그리고, 길이 결정부(510)는 특정 파일을 대상으로, MDS 코드 간 중복(redundancy)을 허용하는 전체 길이 L(604)을 결정할 수 있다. 다시 말해, S가 1이고, 10개로 분할된 경우, L이 10이 아니고, 중복 허용으로 인해 10보다 작을 수 있다. 이때, 중복을 얼만큼 허용하는지 여부에 따라 길이 L이 조절될 수 있다. 예컨대, 중복(redundancy, 605)가 많이 허용될수록 길이 L(604)이 짧아지고, 중복(redundancy, 605)이 조금 허용될수록 길이 L(604)이 길어질 수 있다.6, the length determining unit 510 determines the size S (602, 603) of the MDS code for dividing the cache memory size of the auxiliary node (for example, a possible size of the cache memory 601) ). For example, the plurality of auxiliary nodes may each have a cache of the same memory size, and the data distributed storage device 500, which is a base station, may know the size of the cache memory in advance. The length determiner 510 may determine an overall length L (604) that allows redundancy between MDS codes for a specific file. In other words, if S is 1 and is divided into 10, then L may not be 10 and may be less than 10 due to redundancy. At this time, the length L may be adjusted depending on whether or not the redundancy is allowed. For example, the more the redundancy 605 is allowed, the shorter the length L 604, and the shorter the redundancy 605 is, the longer the length L 604 may be.

도 6에서, 중복되는 영역(605)은 동일 클러스터에 속하는 모든 보조 노드의 캐시에 같은 정보를 저장하고 있는 영역에 해당하므로, 모든 보조 노드들이 협력하여 해당 파일을 사용자 단말로 전송할 수 있다. 이때, MRT(Maximum Likelihood Transmission)에 기초하여 상기 협력이 수행될 수 있으며, 협력을 통해 획득 가능한 전송 용량은 아래의 수학식 2와 같이 표현될 수 있다.In FIG. 6, since the overlapping area 605 corresponds to an area storing the same information in the cache of all the auxiliary nodes belonging to the same cluster, all the auxiliary nodes can cooperate and transmit the corresponding file to the user terminal. At this time, the cooperation can be performed based on MRT (Maximum Likelihood Transmission), and the transmission capacity obtainable through collaboration can be expressed by Equation (2) below.

[수학식 2]&Quot; (2) &quot;

Figure 112017042218076-pat00015
Figure 112017042218076-pat00015

수학식 2에서는 보조 노드가 2개가 협력하여 중복 영역(605)에 해당하는 데이터를 사용자 단말로 제공하는 경우의 전송 용량을 나타내는 것으로서, h1은 보조 노드 1의 채널 정보, h2는 보조 노드 2의 채널 정보를 나타낼 수 있다. 그리고,

Figure 112017042218076-pat00016
는신호대 잡음비(SNR)를 나타낼 수 있다. 보조 노드의 개수가 3개 이상인 경우, 보조 노드의 개수에 해당하는 h가 수학식 2에 추가될 수 있다. 중복 영역(605)에 해당하는 데이터는 보조 노드 1 및 보조 노드 2를 통해 사용자 단말로 동시에 전송될 수 있다. 이처럼, 동시에 데이터를 전송하는 방식을 MRT 모드로 표현할 수 있다. 다시 말해, 수학식 2는 MRT 모드로 데이터 전송 시의 전송 용량을 나타낼 수 있다.In equation (2) the data to secondary nodes is the two are co corresponds to the overlapping region 605 as representing the transmission capacity of the case of providing to the user terminal, h 1 is the channel information of the secondaries 1, h 2 are two secondaries The channel information can be displayed. And,
Figure 112017042218076-pat00016
SNR &lt; / RTI &gt; If the number of auxiliary nodes is three or more, h corresponding to the number of auxiliary nodes may be added to Equation (2). Data corresponding to the redundant area 605 can be simultaneously transmitted to the user terminal through the auxiliary node 1 and the auxiliary node 2. As described above, the method of transmitting data at the same time can be expressed by the MRT mode. In other words, Equation (2) can represent the transmission capacity at the time of data transmission in the MRT mode.

이때, 사용자 단말에서 요청한 파일과 관련하여 MDS 코딩된 코드에서 중복 영역(605)을 제외한 나머지 영역에 해당하는 데이터는 동시 전송이 불가능하므로, 각 보조 노드가 TDMA 방식으로 사용자 단말로 전송할 수 있다. 이러한 데이터 전송 방식을 싱글(single) 모드로 표현할 수 있다. 싱글 모드로 데이터를 사용자 단말로 전송하는 경우의 전송 용량은 아래의 수학식 3과 같이 표현될 수 있다.At this time, since data corresponding to the remaining area excluding the overlapping area 605 in the MDS-coded code related to the file requested by the user terminal can not be transmitted simultaneously, each auxiliary node can transmit to the user terminal in the TDMA scheme. This data transmission scheme can be expressed in a single mode. The transmission capacity in the case of transmitting data to the user terminal in the single mode can be expressed by Equation (3) below.

[수학식 3]&Quot; (3) &quot;

Figure 112017042218076-pat00017
Figure 112017042218076-pat00017

수학식 3에서, hi는 i번째 보조 노드의 채널 정보,

Figure 112017042218076-pat00018
는신호대 잡음비(SNR)를 나타낼 수 있다. In Equation (3), h i denotes channel information of the i-th auxiliary node,
Figure 112017042218076-pat00018
SNR &lt; / RTI &gt;

이처럼, 보조 노드들 각각의 캐시에 저장된 파일(즉 MDS 코딩을 통해 분할된 MDS 코드)을사용자 단말로 전송하는 현재 시점에, MDS 코드간 중복되는 영역의 데이터를 전송하는지, 중복되지 않는 고유한 영역의 데이터를 전송하는지에 따라 전송 방식이 MRT 모드와 싱글 모드로 구분될 수 있으며, 협력을 기반으로 보조 노드들이 동시에 중복되는 영역에 해당하는 데이터를 사용자 단말 제공하고, 동시 전송이 아닌 보조 노드들 각각이 중복되지 않는 영역에 해당하는 데이터를 사용자 단말로 제공함에 따른 전체 평균 전송 용량은 아래의 수학식 4와 같이 표현될 수 있다.As described above, at the present time when a file stored in the cache of each of the auxiliary nodes (that is, MDS code divided by MDS coding) is transmitted to the user terminal, data of overlapping areas between MDS codes is transmitted, The MRT mode and the single mode can be distinguished according to whether the auxiliary nodes transmit the data of the auxiliary nodes, and the data corresponding to the overlapping areas of the auxiliary nodes simultaneously are provided to the user terminal based on cooperation, The total average transmission capacity by providing data corresponding to the non-overlapping area to the user terminal can be expressed by Equation (4) below.

[수학식 4]&Quot; (4) &quot;

Figure 112017042218076-pat00019
Figure 112017042218076-pat00019

수학식 4에서, Pr[hit]는 클러스터 내부의 파일 존재 확률(hitting probability)로서,히팅 이벤트가 발생활 확률을 나타내고,

Figure 112017042218076-pat00020
는 MRT 모드로 전송하는 시간 부분(time portion),
Figure 112017042218076-pat00021
는 싱글(single) 모드로 전송하는 시간 부분(time portion)을 나타낼 수 있다. 그리고,
Figure 112017042218076-pat00022
는, MRT 모드로 전송 시의 평균 전송 용량,
Figure 112017042218076-pat00023
는 싱글 모드로 전송 시 얻을 수 있는 평균 전송 용량을 나타낼 수 있다.In Equation (4), Pr [hit] is a file existence probability (hitting probability) inside the cluster,
Figure 112017042218076-pat00020
A time portion to transmit in MRT mode,
Figure 112017042218076-pat00021
May represent a time portion of transmission in a single mode. And,
Figure 112017042218076-pat00022
The average transmission capacity at the time of transmission in the MRT mode,
Figure 112017042218076-pat00023
Can represent the average transmission capacity that can be obtained when transmitting in the single mode.

수학식 4에서, 파일 존재 확률(hitting probability) Pr[hit]는 아래의 수학식 5와 같이 MDS 코딩된 데이터의 전체 길이 L과 MDS 코드의 크기 S로 표현될 수 있다.In Equation (4), the file existence probability Pr [hit] can be expressed by the total length L of the MDS coded data and the size S of the MDS code as shown in Equation (5) below.

[수학식 5]&Quot; (5) &quot;

Figure 112017042218076-pat00024
Figure 112017042218076-pat00024

그리고, 전체 길이 L과 MDS 코드의 크기 S 간의 관계에 따라 MRT 모드로 전송하는 시간 부분

Figure 112017042218076-pat00025
은 아래의 수학식 6과 같이 표현될 수 있다.Then, according to the relationship between the total length L and the size S of the MDS code,
Figure 112017042218076-pat00025
Can be expressed by Equation (6) below.

[수학식 6]&Quot; (6) &quot;

Figure 112017042218076-pat00026
Figure 112017042218076-pat00026

그러면, 미리 주어진 신호대 잡음비(SNR)

Figure 112017042218076-pat00027
에 기초하여
Figure 112017042218076-pat00028
Figure 112017042218076-pat00029
는 아래의 수학식 7과 같이 표현될 수 있다.Then, the signal-to-noise ratio (SNR)
Figure 112017042218076-pat00027
On the basis of
Figure 112017042218076-pat00028
Wow
Figure 112017042218076-pat00029
Can be expressed by Equation (7) below.

[수학식 7]&Quot; (7) &quot;

Figure 112017042218076-pat00030
Figure 112017042218076-pat00030

이때, 각 보조 노드 별 캐시 메모리의 크기가 M인 경우, 저장 가능한 파일의 개수는 M+1부터 최대 2M까지 변화될 수 있다. 이에 따라, MDS 코드의 크기 S는 파일의 개수와 캐시 메모리의 크기에 따라 결정될 수 있다. 예컨대, MDS 코드의 크기 S는 파일의 개수가 M+1, M+2, ..., 2M인 경우 별로 각각 계산될 수 있다. 그리고, 계산된 크기 S 별로 최적화된 L이 결정되고, S와 L에 기초하여 계산된 전송 용량 중 최대 전송 용량에 해당하는 S와 L이 특정 파일을 MDS 코딩하기 위한 최종 S와 L로 결정될 수 있다. At this time, if the size of cache memory for each auxiliary node is M, the number of storable files can be changed from M + 1 to 2M max. Accordingly, the size S of the MDS code can be determined according to the number of files and the size of the cache memory. For example, the size S of the MDS code can be calculated for each of the cases where the number of files is M + 1, M + 2, ..., 2M. Then, the optimized L is determined for each calculated size S, and S and L corresponding to the maximum transmission capacity among the transmission capacities calculated based on S and L can be determined as the final S and L for MDS coding a specific file .

도 7은 본 발명의 일실시예에 있어서, 메모리 크기가 적은 경우의 전송 용량 증가율을 도시한 그래프이다.FIG. 7 is a graph showing a transmission capacity increase rate when the memory size is small, in an embodiment of the present invention. FIG.

도 7에서는, 캐시 메모리의 크기 M에 대해 각 보조 노드에 MDS 코드 이용없이 0.5의 길이에 해당하는 각 파일의 전반부 데이터와 후반부 데이터를 분산 저장하는 경우(기존 기법) 대비 가장 좋은 전송 용량에 해당하는 S와 L에 기초하여 MDS 코딩된 데이터를 분산 저장하는 경우의 전송 용량 증가율을 나타낼 수 있다. 즉, SNR 및 지프 지수(Zipf exponent)

Figure 112017042218076-pat00031
에 따른 기존 기법 대비 전송 용량 증가율을 나타낼 수 있다. 예컨대, 도 6에서, 캐시 메모리의 크기M은 3인 경우(즉, M=3)를 가정한다.In FIG. 7, it is assumed that the first half and the second half of each file corresponding to the length of 0.5 without using the MDS code are distributed to the respective auxiliary nodes with respect to the size M of the cache memory (conventional technique) The transmission capacity increase rate when the MDS coded data is distributedly stored based on S and L can be shown. That is, SNR and Zipf exponent,
Figure 112017042218076-pat00031
The rate of increase of the transmission capacity compared to the conventional technique. For example, in FIG. 6, it is assumed that the size M of the cache memory is 3 (i.e., M = 3).

전체 파일의 개수가 F인 경우, 최대 min(2M, F)개가 저장될 수 있으며, 사용자 단말은 각 보조 노드로부터 파일 조각(즉, 분할된 MDS 코드)를 수신하여 단말이 요청한 파일을 복원할 수 있다. 이때, 획득 가능한 전송 용량은 아래의 수학식 8과 같이 표현될 수 있다.If the total number of files is F, a maximum min (2M, F) number can be stored. The user terminal can receive a file fragment (that is, a divided MDS code) from each secondary node and restore the file requested by the terminal have. At this time, the obtainable transmission capacity can be expressed by Equation (8) below.

[수학식 8]&Quot; (8) &quot;

Figure 112017042218076-pat00032
Figure 112017042218076-pat00032

아래의 표 1은 파라미터 별로 비교한 성능, 즉, 전송 용량 향상 정도를 나타낼 수 있다.Table 1 below shows the performance compared with each parameter, that is, the degree of improvement in transmission capacity.

ParameterParameter valuevalue Number of helper/userNumber of helper / user 22 Number of userNumber of user 1One Number of fileNumber of file 1010 Signal to noise ratio (Signal to noise ratio ( SNRSNR )) -10~-30dB-10 to -30 dB ZipfZipf distdist . exponent. exponent 0~20 to 2 Channel modelChannel model RayleighRayleigh flat fading flat fading

다시 도 7을 참고하면, 캐시 메모리의 크기 M=3인 경우(즉, 캐시 메모리의 크기가 적은 경우), SNR이 증가할수록

Figure 112017042218076-pat00033
Figure 112017042218076-pat00034
간의 차이가 감소함을 확인할 수 있다. 그리고, 지프 지수
Figure 112017042218076-pat00035
가 증가할수록 다수의 파일 저장에 의한 성능 이득이 감소하므로, 낮은 SNR과 높은 지프 지수에 대한 성능(예컨대, 평균 전송 용량)이 증가함을 확인할 수 있다. 이와 반대되는 구간, 즉, SNR이 높고 지프 지수
Figure 112017042218076-pat00036
가 낮을수록 상대적으로 성능(예컨대, 평균 전송 용량)이 감소함을 확인할 수 있다.Referring again to FIG. 7, when the cache memory size M = 3 (that is, when the cache memory size is small), as the SNR increases
Figure 112017042218076-pat00033
Wow
Figure 112017042218076-pat00034
The difference between them decreases. Then, the Jeep index
Figure 112017042218076-pat00035
It can be seen that the performance (for example, the average transmission capacity) for the low SNR and the high Jeep index increases. In contrast, the SNR is high and the Jeep index
Figure 112017042218076-pat00036
(For example, the average transmission capacity) is decreased.

도 8은 본 발명의 일실시예에 있어서, 메모리의 크기가 큰 경우의 전송 용량 증가율을 도시한 그래프이다.FIG. 8 is a graph showing a transmission capacity increase rate when a memory size is large, in an embodiment of the present invention. FIG.

도 8에서는 캐시 메모리의 크기 M=7인 경우의 전송 용량 증가율을 나타낼 수 있다.In FIG. 8, the transfer capacity increase rate in the case of the size M = 7 of the cache memory can be shown.

도 8을 참고하면, 도 7과 같이 캐시 메모리의 크기 M=3일 때보다 상대적으로 메모리의 크기가 큰 경우(M=7), 성능(즉, 전송 용량)이 증가함을 확인할 수 있다.Referring to FIG. 8, it can be seen that the performance (that is, the transfer capacity) increases when the memory size is relatively larger (M = 7) than when the cache memory size M = 3 as shown in FIG.

다시 말해, 메모리의 크기가 증가할수록 최대 S값이 증가하기 때문에, M=3일때 보다 상대적으로 높은 성능 향상일 발생함을 확인할 수 있다. 예컨대, SNR=0, 지프 지수

Figure 112017042218076-pat00037
=2인 경우, 도 7과 같이 M=3일 때의 성능(전송 용량)은 약 40%이고, 도 8와 같이 M=7일 때의 성능(전송 용량)은 약 100%로 성능 향상이 훨씬 높은 점을 확인할 수 있다. 이에 따라, 기존 기법 대비 약 2.1배의 전송 용량 확보가 가능할 수 있다.In other words, since the maximum S value increases as the memory size increases, it can be seen that a relatively high performance improvement occurs when M = 3. For example, SNR = 0, Jeep index
Figure 112017042218076-pat00037
= 2, the performance (transmission capacity) when M = 3 is about 40% as shown in FIG. 7, and the performance (transmission capacity) when M = 7 is about 100% High points can be confirmed. Accordingly, it is possible to secure a transmission capacity of about 2.1 times that of the conventional technique.

이상에서 설명한 바와 같이, 캐시 메모리를 구비한 복수의 보조 노드들과 사용자 단말로 구성된 클러스터 환경에서, MDS 코드의 전체 길이(즉, 생성 길이)를 조절하여 최적의 성능(전송 용량)을 달성할 수 있다. 그리고, MDS 코드 간 중복(redundancy)를 허용하여 추가적인 성능을 얻을 수 있는 무선 통신 기법(예컨대, MRT 모드로 전송)을 이용함으로써, 유한한 MDS 코드들 중 보조 노드에 저장할 부분이 결정될 수 있으며, 셀룰러 네트워크에서 이용되는 스몰셀이나 펨토셀 등의 환경에 적용될 수 있다.As described above, in the cluster environment composed of the plurality of auxiliary nodes having the cache memory and the user terminal, it is possible to adjust the overall length (i.e., generation length) of the MDS code to achieve the optimum performance have. By using a wireless communication technique (for example, transmission in the MRT mode) that allows redundancy between MDS codes to obtain additional performance, a portion of the finite MDS codes to be stored in the auxiliary node can be determined, And can be applied to an environment such as a small cell or a femtocell used in a network.

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

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI &gt; or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (17)

길이 결정부, MDS 코드 분할부, 및 저장 제어부를 포함하는 데이터 분산 저장 장치가 수행하는, 클러스터(cluster)에 속하는 복수의 보조 노드(help node)에 파일을 분산 저장하는 방법에 있어서,
상기 길이 결정부에서, MDS(Maximum Distance Separable) 코딩에 기초하여 복수개의 MDS 코드로 분할하고자 하는 특정 파일을 대상으로, 상기 복수개의 MDS 코드 중 적어도 일부가 중복되도록(redundancy) 코딩된 MDS 코드의 전체 길이를 결정하는 단계;
상기 MDS 코드 분할부에서, 결정된 MDS 코드의 전체 길이에 기초하여 특정 파일을 복수개의 MDS 코드로 분할하는 단계; 및
상기 저장 제어부에서, 분할된 복수개의 MDS 코드들을 상기 복수의 보조 노드 각각에 구비된 캐시에 분산 저장하는 단계
를 포함하는 데이터 분산 저장 방법.
A method for distributedly storing files in a plurality of help nodes belonging to a cluster, which is performed by a data distribution storage device including a length determination unit, an MDS code division unit, and a storage control unit,
Wherein the length determining unit determines the length of the entire MDS code that is coded by redundancy so that at least some of the plurality of MDS codes are overlapped on a specific file to be divided into a plurality of MDS codes based on Maximum Distance Separable (MDS) Determining a length;
Dividing a specific file into a plurality of MDS codes based on the total length of the determined MDS code in the MDS code division unit; And
Distributing a plurality of divided MDS codes in a cache provided in each of the plurality of auxiliary nodes in the storage control unit
/ RTI &gt;
제1항에 있어서,
상기 복수개의 MDS 코드로 분할하는 단계는,
상기 특정 파일을 동일 크기를 갖는 복수개의 MDS 코드로 분할하는 것을 특징으로 하는 데이터 분산 저장 방법.
The method according to claim 1,
Wherein the dividing into the plurality of MDS codes comprises:
And dividing the specific file into a plurality of MDS codes having the same size.
제1항에 있어서,
상기 특정 파일이 분할된 복수개의 MDS 코드 각각에 해당하는 크기는, 캐시에 저장하고자 하는 파일의 개수 및 캐시의 메모리 크기에 기초하여 결정되는 것
을 특징으로 하는 데이터 분산 저장 방법.
The method according to claim 1,
The size corresponding to each of the plurality of MDS codes into which the specific file is divided is determined based on the number of files to be stored in the cache and the memory size of the cache
And storing the data.
제1항에 있어서,
상기 MDS 코드의 전체 길이를 결정하는 단계는,
상기 특정 파일이 분할된 복수개의 MDS 코드 각각에 해당하는 크기에 기초하여 상기 길이를 결정하는 것
을 특징으로 하는 데이터 분산 저장 방법.
The method according to claim 1,
Wherein determining the total length of the MDS code comprises:
Determining the length based on a size corresponding to each of the plurality of MDS codes into which the specific file is divided
And storing the data.
제4항에 있어서,
상기 MDS 코드의 전체 길이를 결정하는 단계는,
상기 MDS 코드에 해당하는 크기와 상기 길이에 기초하여 전송 용량을 계산하는 단계; 및
상기 길이를 조절하여 계산된 복수의 전송 용량들 중 가장 높은 전송 용량에 해당하는 상기 길이와 크기를 결정하는 단계
를 포함하는 데이터 분산 저장 방법.
5. The method of claim 4,
Wherein determining the total length of the MDS code comprises:
Calculating a transmission capacity based on the size corresponding to the MDS code and the length; And
Determining the length and size corresponding to the highest transmission capacity among the plurality of transmission capacities calculated by adjusting the length,
/ RTI &gt;
제1항에 있어서,
분할된 상기 복수개의 MDS 코드들 간의 중복 영역(redundancy)에 해당하는 데이터는, 상기 복수의 보조 노드들 간의 협력 통신을 기반으로 해당 파일을 요청한 사용자 단말로 제공되는 것을 특징으로 하는 데이터 분산 저장 방법.
The method according to claim 1,
Wherein data corresponding to a redundancy between the plurality of divided MDS codes is provided to a user terminal requesting a corresponding file based on cooperation communication between the plurality of auxiliary nodes.
제1항에 있어서,
분할된 상기 복수개의 MDS 코드들을 대상으로, 상기 복수개의 MDS 코드 간 중복 영역(redundancy)을 제외한 나머지 영역에 해당하는 데이터는, 상기 복수의 보조 노드들 중 어느 하나의 보조 노드로부터 사용자 단말로 제공되는 것을 특징으로 하는 데이터 분산 저장 방법.
The method according to claim 1,
Data corresponding to a remaining area excluding the redundancy between the plurality of MDS codes is provided to the user terminal from any one of the plurality of auxiliary nodes with respect to the plurality of divided MDS codes, And storing the data.
제1항에 있어서,
상기 MDS 코드로 분할하는 단계는,
복수개의 파일들 중 선호도가 가장 높은 파일을 기준으로 선호도가 높은 순서에 따라 순차적으로 결정된 일정 개수의 파일을 대상으로, 해당 파일을 복수개의 MDS 코드로 분할하는 것
을 특징으로 하는 데이터 분산 저장 방법.
The method according to claim 1,
The step of dividing into the MDS code comprises:
Dividing a file into a plurality of MDS codes for a predetermined number of files sequentially determined in order of preference based on a file having the highest preference among the plurality of files
And storing the data.
제1항에 있어서,
상기 클러스터는, 캐시를 구비한 복수의 보조 노드 및 단일 사용자 단말을 포함하는 것을 특징으로 하는 데이터 분산 저장 방법.
The method according to claim 1,
Wherein the cluster comprises a plurality of auxiliary nodes with a cache and a single user terminal.
클러스터(cluster)에 속하는 복수의 보조 노드(help node)에 파일을 분산 저장하는 데이터 분산 저장 장치에 있어서,
MDS(Maximum Distance Separable) 코딩에 기초하여 복수개의 MDS 코드로 분할하고자 하는 특정 파일을 대상으로, 상기 복수개의 MDS 코드 중 적어도 일부가 중복되도록(redundancy) 코딩된 MDS 코드의 전체 길이를 결정하는 길이 결정부;
결정된 MDS 코드의 전체 길이에 기초하여 특정 파일을 복수개의 MDS 코드로 분할하는 MDS 코드 분할부; 및
분할된 복수개의 MDS 코드들을 상기 복수의 보조 노드 각각에 구비된 캐시에 분산 저장하는 저장 제어부
를 포함하는 데이터 분산 저장 장치.
CLAIMS What is claimed is: 1. A data distribution storage apparatus for distributedly storing files in a plurality of help nodes belonging to a cluster,
Determining a length of determining the total length of a redundantly coded MDS code for a specific file to be divided into a plurality of MDS codes based on MDS (Maximum Distance Separable) coding, at least a part of the plurality of MDS codes being redundant part;
An MDS code division unit for dividing a specific file into a plurality of MDS codes based on the total length of the determined MDS code; And
A storage controller for distributively storing a plurality of divided MDS codes in a cache provided in each of the plurality of auxiliary nodes,
Lt; / RTI &gt;
제10항에 있어서,
상기 MDS 코드 분할부는,
상기 특정 파일을 동일 크기를 갖는 복수개의 MDS 코드로 분할하는 것을 특징으로 하는 데이터 분산 저장 장치.
11. The method of claim 10,
The MDS code division unit,
And dividing the specific file into a plurality of MDS codes having the same size.
제10항에 있어서,
상기 특정 파일이 분할된 복수개의 MDS 코드 각각에 해당하는 크기는, 캐시에 저장하고자 하는 파일의 개수 및 캐시의 메모리 크기에 기초하여 결정되는 것
을 특징으로 하는 데이터 분산 저장 장치.
11. The method of claim 10,
The size corresponding to each of the plurality of MDS codes into which the specific file is divided is determined based on the number of files to be stored in the cache and the memory size of the cache
And the data distribution storage device.
제10항에 있어서,
상기 길이 결정부는,
상기 특정 파일이 분할된 복수개의 MDS 코드 각각에 해당하는 크기에 기초하여 상기 길이를 결정하는 것
을 특징으로 하는 데이터 분산 저장 장치.
11. The method of claim 10,
The length determining unit may determine,
Determining the length based on a size corresponding to each of the plurality of MDS codes into which the specific file is divided
And the data distribution storage device.
제13항에 있어서,
상기 길이 결정부는,
상기 MDS 코드에 해당하는 크기와 상기 길이에 기초하여 전송 용량을 계산하고, 상기 길이를 조절하여 계산된 복수의 전송 용량들 중 가장 높은 전송 용량에 해당하는 상기 길이와 크기를 결정하는 것
을 특징으로 하는 데이터 분산 저장 장치.
14. The method of claim 13,
The length determining unit may determine,
Calculating a transmission capacity based on the size corresponding to the MDS code and the length, and determining the length and size corresponding to the highest transmission capacity among the plurality of transmission capacity calculated by adjusting the length
And the data distribution storage device.
제10항에 있어서,
분할된 상기 복수개의 MDS 코드들 간의 중복 영역(redundancy)에 해당하는 데이터는, 상기 복수의 보조 노드들 간의 협력 통신을 기반으로 해당 파일을 요청한 사용자 단말로 제공되는 것을 특징으로 하는 데이터 분산 저장 장치.
11. The method of claim 10,
Wherein data corresponding to a redundancy between the plurality of divided MDS codes is provided to a user terminal requesting a corresponding file based on cooperative communication between the plurality of auxiliary nodes.
제10항에 있어서,
분할된 상기 복수개의 MDS 코드들을 대상으로, 상기 복수개의 MDS 코드 간 중복 영역(redundancy)을 제외한 나머지 영역에 해당하는 데이터는, 상기 복수의 보조 노드들 중 어느 하나의 보조 노드로부터 사용자 단말로 제공되는 것을 특징으로 하는 데이터 분산 저장 장치.
11. The method of claim 10,
Data corresponding to a remaining area excluding the redundancy between the plurality of MDS codes is provided to the user terminal from any one of the plurality of auxiliary nodes with respect to the plurality of divided MDS codes, And the data is stored in the storage unit.
제10항에 있어서,
상기 MDS 코드 분할부는,
복수개의 파일들 중 선호도가 가장 높은 파일을 기준으로 선호도가 높은 순서에 따라 순차적으로 결정된 일정 개수의 파일을 대상으로, 해당 파일을 복수개의 MDS 코드로 분할하는 것
을 특징으로 하는 데이터 분산 저장 장치.
11. The method of claim 10,
The MDS code division unit,
Dividing a file into a plurality of MDS codes for a predetermined number of files sequentially determined in order of preference based on a file having the highest preference among the plurality of files
And the data distribution storage device.
KR1020170055545A 2017-04-28 2017-04-28 Distributed storage method and apparatus for cooperation between multiple helper nodes with cached memory KR101907786B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170055545A KR101907786B1 (en) 2017-04-28 2017-04-28 Distributed storage method and apparatus for cooperation between multiple helper nodes with cached memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170055545A KR101907786B1 (en) 2017-04-28 2017-04-28 Distributed storage method and apparatus for cooperation between multiple helper nodes with cached memory

Publications (1)

Publication Number Publication Date
KR101907786B1 true KR101907786B1 (en) 2018-10-12

Family

ID=63876651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170055545A KR101907786B1 (en) 2017-04-28 2017-04-28 Distributed storage method and apparatus for cooperation between multiple helper nodes with cached memory

Country Status (1)

Country Link
KR (1) KR101907786B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200053863A (en) * 2018-11-09 2020-05-19 한국과학기술원 Method and system for probabilistic caching content under limited storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101432314B1 (en) 2006-02-22 2014-08-20 마이크로소프트 코포레이션 Reliable, efficient peer-to-peer storage
WO2016052665A1 (en) 2014-09-30 2016-04-07 株式会社日立製作所 Distributed storage system
US20170020469A1 (en) 2015-07-23 2017-01-26 Samsung Electronics Co., Ltd. X-ray apparatus and system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101432314B1 (en) 2006-02-22 2014-08-20 마이크로소프트 코포레이션 Reliable, efficient peer-to-peer storage
WO2016052665A1 (en) 2014-09-30 2016-04-07 株式会社日立製作所 Distributed storage system
US20170020469A1 (en) 2015-07-23 2017-01-26 Samsung Electronics Co., Ltd. X-ray apparatus and system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200053863A (en) * 2018-11-09 2020-05-19 한국과학기술원 Method and system for probabilistic caching content under limited storage
KR102225745B1 (en) * 2018-11-09 2021-03-10 한국과학기술원 Method and system for probabilistic caching content under limited storage

Similar Documents

Publication Publication Date Title
KR101785221B1 (en) Method and apparatus for determing caching probability based on transmissing success probability of the file in the wireless communication
CN109194763B (en) Caching method based on small base station self-organizing cooperation in ultra-dense network
KR101924691B1 (en) Distributed storage method and apparatus based on cache memory in the wireless communication
KR102197559B1 (en) Apparatus and method for wireless communication system
US20100226293A1 (en) Interference alignment scheme for use in communication network
KR102252896B1 (en) Method for performing edge caching at base station based on user mobility and multiple file preference and base station performing the same
CN109451517B (en) Cache placement optimization method based on mobile edge cache network
EP3697121A1 (en) Secondary wireless communication systems
CN109348454A (en) A kind of D2D Cache Communication content sharing method
KR102120660B1 (en) Content cachhing mehtod using mobile cache
KR101907786B1 (en) Distributed storage method and apparatus for cooperation between multiple helper nodes with cached memory
KR101966588B1 (en) Method and apparatus for receiving video contents
CN110602722A (en) Design method for joint content pushing and transmission based on NOMA
CN111314349B (en) Code caching method based on joint maximum distance code division and cluster cooperation in fog wireless access network
KR101794417B1 (en) Method and apparatus for user centric cache allocation in infrastructure wireless mesh networks
US20190132411A1 (en) Method and system for cache placement of base station and a corresponding base station
KR102015188B1 (en) Method for probabilistic file optial recovering in helper nodes with limited cache memory and distributed storage method and apparatus
KR102151314B1 (en) Optimization method and system of random content caching in heterogeneous small cell networks
KR20190016315A (en) Method and apparatus for group transmitting based on cached memory of user equipment
CN110351778B (en) Mobile communication and ground digital broadcast fusion system, method and user terminal thereof
KR101979117B1 (en) Multicast Transmission for Asynchronous Data Requests
KR101785220B1 (en) Method and apparatus for storing contents of small base station for minimizing ber
CN110611698A (en) Flexible cooperative transmission method and system based on random edge cache and realistic conditions
KR102043510B1 (en) Method and apparatus for coding index in user equipment with limited memori state information and wireless communication method
KR101711332B1 (en) Data trasmission method and device for secrecy energy efficiency in multi-tier wireless network

Legal Events

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