WO2016006783A1 - P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법 - Google Patents
P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법 Download PDFInfo
- Publication number
- WO2016006783A1 WO2016006783A1 PCT/KR2015/001135 KR2015001135W WO2016006783A1 WO 2016006783 A1 WO2016006783 A1 WO 2016006783A1 KR 2015001135 W KR2015001135 W KR 2015001135W WO 2016006783 A1 WO2016006783 A1 WO 2016006783A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- peer
- server
- data
- distribution vector
- packet distribution
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3761—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
Definitions
- the present invention relates to a storage system, and more particularly, to a hybrid storage system combining a cloud storage system and a P2P storage system.
- Dropbox one of its remote storage services, reached 100 million users in 2012.
- these remote storage systems fall into two categories: cloud storage systems and peer-to-peer storage systems.
- Cloud storage systems based on server clusters use a so-called mirroring technique that copies stored data to ensure high data recovery rates.
- the data recovery rate means that a user who stores data successfully retrieves his data without error.
- the stored user's data may be exposed to a third user or an administrator. Therefore, data privacy is one of the most important issues to address in cloud storage. The problem of scalability of cloud storage servers as storage users increase is also serious.
- the P2P storage system solves the problem of the cloud storage system.
- the peculiarity of P2P storage systems is that peers share their resources. Therefore, as the number of users of the P2P storage system increases, the storage resources of the P2P storage system increase constantly.
- users can download their own data from multiple peers at the same time, resulting in higher download speeds than cloud storage systems.
- data privacy can also be enhanced when the user's data is divided and stored across multiple peers.
- the biggest problem with P2P cloud storage is the low data recovery rate due to the dynamic peer characteristics. To date, many studies have been conducted to ensure that P2P storage systems have the same recovery rate as cloud storage systems.
- An efficient way to increase the data repayment rate of P2P storage systems is to use erasure protection codes such as LDPC, LT code, and RS code before data storage to encode the data to be stored and then apply it to multiple peers to satisfy the desired data recovery rate. To store the encoded data.
- erasure protection codes such as LDPC, LT code, and RS code
- server-based cloud storage and P2P-based P2P storage which are one of cloud computing service technologies, have respective advantages and disadvantages.
- Cloud storage can be used with a high probability by servers with low failure rates, so data storage will have a high data recovery rate.
- cloud storage there is a problem of server scalability due to the rapid increase in the number of users, and data privacy problems occur as all the user's data is stored on the server.
- An object of the present invention for solving the above problems is to provide a hybrid storage system using a combination of the two storage systems in order to compensate for the limitation when the cloud storage system and the P2P storage system is used independently.
- Another object of the present invention for solving the above problems is to provide a method for transmitting data using a hybrid storage system.
- the node management unit for measuring the bandwidth for the peer of the server and P2P storage of the cloud storage, and a packet for determining the unit of data to be distributed to the server and the peer
- a variable control unit for calculating a distribution vector and a fountain coding rate for determining encoding of data to be stored in the server and the peer, an encoding unit for performing fountain encoding according to the fountain coding rate in the data to be stored in the server and the peer, and measured
- a scheduler that calculates a transmission time, which is a time required for data to be transmitted to the server and the peer, based on the bandwidth and the packet distribution vector, and transmits information about the transmission time to the variable controller.
- the packet distribution vector may indicate the number of packets including encoded symbols to be distributed to a server and a peer.
- variable control unit may recalculate the packet distribution vector by using the information on the measured bandwidth and transmission time.
- variable control unit may determine the packet distribution vector such that the data recovery rate is equal to or greater than a preset reference.
- the data recovery rate may be calculated based on the decoding failure rate and the system reliability.
- the decoding failure rate may be calculated based on the number of source symbols and the number of coding symbols required to recover the source symbols.
- the system reliability may be a probability of obtaining a symbol equal to or more than the number of encoded symbols required to recover the source symbol.
- variable controller may determine the packet distribution vector such that the encoded symbols smaller than the number of the source symbols are stored in the server and the peer based on the storage space remaining in the peer and the number of encoded symbols included in the packet.
- the encoding unit may perform LT encoding.
- the scheduler may transmit the encoded symbol encoded by the fountain coding rate to the server and the peer according to the packet distribution vector.
- a data transmission method using a hybrid storage system includes: Acquiring information about the bandwidth of the peer, initializing the minimum number of packets, the maximum number of packets, and the number of packet intervals to determine a packet distribution vector based on the information on the bandwidth; Calculating a transmission time, which is a time required for data to be transmitted to the peer, based on the information on the bandwidth; and determining a packet distribution vector such that the data recovery rate and the transmission time satisfy a predetermined criterion.
- the data transmission method using the hybrid storage system may further include distributing and transmitting data to a server and a peer according to a packet distribution vector.
- data may be encoded and transmitted according to a fountain coding rate determined based on a packet distribution vector.
- the data recovery rate is calculated based on the decoding failure rate and the system reliability
- the decoding failure rate is calculated based on the number of source symbols and the number of encoded symbols required to recover the source symbols
- the system reliability is calculated based on the recovery of the source symbols. It may be a probability of obtaining more than a number of symbols required for the coding symbol.
- the determining of the packet distribution vector may further include re-determining the packet distribution vector so that the information on the changed bandwidth is reflected when the information on the bandwidth is changed.
- the determining of the packet distribution vector may include adding a peer so that the sum of the bandwidths of the peers to be added becomes larger than the decrease amount of the bandwidth when the bandwidths of the server and the peer are reduced, and considering the added peers.
- the distribution vector can be re-determined.
- a method for distributing data includes measuring bandwidths of a server and peer-to-peer storage of a cloud storage, and determining a unit of data to be distributed to the server and the peer. Calculating a fountain coding rate for determining a distribution vector and encoding for data to be stored in the server and the peer; performing fountain encoding according to the fountain coding rate in the data to be stored in the server and the peer; Calculating a transmission time which is a time required for data to be transmitted to the server and the peer based on the packet distribution vector.
- the hybrid storage system may transmit the data by determining the packet distribution vector so as to improve the data recovery rate and minimize the transmission time.
- hybrid storage systems can use P2P storage systems with cloud storage systems to solve data privacy issues.
- FIG. 1 is a block diagram illustrating a hybrid storage system according to an exemplary embodiment of the present invention.
- FIG. 3 is a flowchart illustrating a data transmission method using a hybrid storage system according to an embodiment of the present invention.
- first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
- the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
- FIG. 1 is a block diagram illustrating a hybrid storage system according to an exemplary embodiment of the present invention.
- the hybrid storage system 100 may include a node manager 110, a variable controller 120, an encoder 130, and a scheduler 140.
- the node manager 110 may measure a bandwidth of the server of the cloud storage and the peer of the P2P storage and transmit the measured bandwidth to the variable controller 120 and the scheduler 140 which will be described later.
- variable controller 120 distributes a packet to determine a unit or size of data to be distributed to servers and peers based on the information (bandwidth) obtained through the node manager 110 and the transmission time calculated by the scheduler 140.
- vector( ) And the fountain code rate (which determines the encoding of the data to be stored on the server and peers) ) Can be calculated.
- the packet distribution vector is The first element of the packet distribution vector ( ) And the rest of the elements ( ) May represent the number of packets including encoded symbols to be distributed to the server and peers. Is an initial set of peers provided to the user and may indicate the number of peers capable of storing data.
- the encoding unit 130 may perform fountain encoding on data to be stored in the server and peers according to the fountain code rate determined by the variable controller 120.
- the encoding unit 130 may use LT codes or Raptor codes.
- the encoding unit 130 may perform LT encoding.
- the scheduler 140 calculates a transmission time which is a time required for data to be transmitted to the server and the peers based on the measured bandwidth and the packet distribution vector, and transmits information about the transmission time to the variable controller 120 (feedback). can do. Accordingly, the variable controller 120 may recalculate the packet distribution vector by using the information on the measured bandwidth and transmission time.
- the scheduler 140 may transmit the encoded symbol encoded by the fountain coding rate to the server and the peer according to the packet distribution vector.
- the encoded symbols generated by the encoder unit may be transmitted to the server and the peers according to the packet distribution vector through the scheduler 140.
- Node availability may refer to the probability of recovering data stored on a server of cloud storage or a peer of P2P storage for a given time.
- the node may mean servers of cloud storage or peers of P2P storage.
- Equation 1 Represents the time when the peer will exist in the storage system in the future. Therefore, the node validity according to the equation The i-th peer on the storage system for It can represent the probability of being present in the storage system for more than time. Where random variables Can be modeled as a Pareto distribution.
- system reliability may refer to a probability of obtaining more than the number of coded symbols required for successful fountain decoding.
- the degree of reliability of the hybrid storage system 100 may be calculated based on node validity.
- two matrices such as Equation 2 and Equation 5, may be defined.
- Equation 2 shows a node combination matrix
- the node combination matrix according to Equation 2 is a node state vector ( ) As an element.
- the node state vector may be expressed as Equation 3 below.
- the value of the element corresponding to the node state vector is given by It may be set to 1 if the server of the cloud storage or the peer of the P2P storage is accessible for time, and 0 otherwise.
- Equation 5 shows an event probability matrix
- Equation 5 each element may be defined by the following Equations 6-8.
- Each element value of Equation 5 may represent a probability value calculated by Equations 7 and 8.
- Equation 7 and Equation 8 Represents the dot product, Multiply all the elements of by the node state vector in case of Indicates the probability of obtaining the above coded symbols.
- data retrievability may refer to a probability that a user recovers his data stored in the hybrid storage system 100 without error.
- Equation 10 Denotes a variable of the robust solution distribution and may be a small real number.
- the data recovery rate can be calculated by the following equation (11).
- Equation 11 represents the probability of successfully recovering the original source symbol without errors from the recovered coded symbols.
- the variable control unit 120 of the hybrid storage system 100 is based on a preset data recovery rate ( Packet dispersion vector can be determined. here, May mean a minimum data recovery rate required by the storage system. That is, the variable controller 120 may determine the packet distribution vector such that the data recovery rate is equal to or greater than a preset reference.
- Packet dispersion vector can be determined. here, May mean a minimum data recovery rate required by the storage system. That is, the variable controller 120 may determine the packet distribution vector such that the data recovery rate is equal to or greater than a preset reference.
- the data recovery rate may be calculated based on the decoding failure rate and the system reliability
- the decoding failure rate may be calculated based on the number of source symbols and the number of encoded symbols required to recover the source symbols.
- the system reliability may refer to a probability of acquiring a symbol equal to or more than the number of encoded symbols required to recover the source symbol.
- variable control unit 120 transmits ( Packet distribution vector can be determined to minimize
- variable control unit 120 may satisfy the following equation 13 to ensure the data privacy of the user by storing the number of encoded symbols to the server of the cloud storage and the peers of the P2P storage below the number of original source symbols. Can be.
- Equation 13 Represents the storage space remaining on the i th peer, Represents the symbol size, May indicate the number of coding symbols included in the packet.
- variable controller 120 may generate a packet distribution vector to store encoded symbols smaller than the number of source symbols in the server and the peer based on the storage space remaining in the peer and the number of encoded symbols included in the packet. You can decide.
- FIG. 2 is a conceptual diagram illustrating the determination of a packet distribution vector according to an embodiment of the present invention.
- a size of a packet transmitted to a server of a cloud storage or a peer of a P2P storage may be determined through a process of determining and re-determining a packet distribution vector.
- FIG. 2 is an exemplary diagram illustrating the size of a packet transmitted to each node when four nodes are selected.
- the size of the packet may determine the size of the source block.
- the process of determining and re-determining a packet distribution vector is a process of narrowing the interval and search range of the number of packets to be stored in each node.
- FIG. 2 illustrates a process of determining a packet distribution vector indicating the number of packets transmitted to each node when a user is provided with a cloud server and a total of three peers.
- FIG. 2 (a) shows a process of setting an initial interval for determining a packet distribution vector (initial interval is set to 8 in FIG. 2 (a)).
- the process according to FIG. 2 (b) may determine the temporary packet distribution vector based on the initial interval set in FIG. 2 (a) and reduce the search interval (eg, interval 4) and the search range by one step.
- the process according to FIG. 2 (c) may re-determine the temporary packet distribution vector based on the reduced search interval and search range by one step, and the process according to FIG. 2 (d) may be determined by the temporary packet distribution vector determined in FIG. 2 (c). You can further reduce the search interval (eg, interval 2) and search range based on.
- the size of a packet transmitted to a server of a cloud storage or a peer of a P2P storage may be determined through a process of determining and re-determining a packet distribution vector.
- Algorithms for determining control variables, such as packet distribution vectors, are two steps.
- the first is to determine the packet distribution vector with low complexity within a given set of peers, and the second is to re-determine the packet distribution vector according to the time-varying bandwidth during transmission.
- Number of intervals in the packet To Can be set with here Is 0 and It can be an integer between.
- the interval of the remaining packets may be determined according to Equation 14 below.
- Equation (14) Represents the number of packets to be sent to the i th peer, Exception represents the number of packets allocated to the server of cloud storage.
- Min And maximum points are each and Can be updated by if Is 0 or If Is set to 1, otherwise May be set to two.
- Step 1 and step 2 may be repeated until this occurs.
- the current packet distribution vector ( ) and the fountain code rate can be determined by the following equation (15).
- the transmission process of the remaining source blocks except the first source block is as follows.
- the packet distribution vector may be re-determined.
- Steps 1 to 3 may be repeated until all blocks have been transmitted.
- FIG. 3 is a flowchart illustrating a data transmission method using a hybrid storage system according to an embodiment of the present invention.
- a process of transmitting or uploading data to a server of cloud storage or a peer of P2P storage through the hybrid storage system 100 will be described with reference to FIG. 3. That is, the data transmission method using the hybrid storage system 100 according to the embodiment of the present invention may be performed through the above-described determination and redetermination of the packet dispersion vector.
- the hybrid storage system 100 may be used to distribute or upload data to a server of cloud storage and a peer of P2P storage.
- the minimum number of packets ( ), The maximum number of packets ( ) And the number of packet intervals ( ) May be initialized (S320).
- the data recovery rate and a transmission time which is a time required for data to be transmitted to the server and the peer, may be calculated based on the information on the bandwidth (S330).
- the data recovery rate may be calculated based on the decoding failure rate and the system reliability
- the decoding failure rate may be calculated based on the number of source symbols and the number of encoded symbols required to recover the source symbols.
- the system reliability may refer to a probability of acquiring a symbol equal to or more than the number of encoded symbols required to recover the source symbol.
- the process may proceed back to the initial step (S310).
- the packet distribution vector may be re-determined to reflect the information on the changed bandwidth (S370).
- the redetermination may be performed to transmit the remaining source blocks except the first source block. For example, if the bandwidth of the server and the peer is reduced, the peer may be added so that the sum of the bandwidths of the peers to be added is greater than the amount of the bandwidth reduction, and the packet distribution vector may be determined in consideration of the added peers.
- data may be distributed and transmitted to the server and the peer according to the packet distribution vector (S380).
- data may be encoded and transmitted according to a fountain coding rate determined based on a packet distribution vector.
- the process of distributing and distributing data to the server and the peer according to the packet distribution vector may be repeatedly performed until the transmission for all the source blocks is completed.
- the user may request to download the encoded symbols stored in the server or the peers based on the peer information storing the encoded symbols at the time of upload.
- encoded symbols are simultaneously downloaded to a plurality of peers and servers, and when a recoverable amount of encoded symbols is downloaded, the encoding symbol download of the corresponding block may be terminated and the download of the encoded symbols for the next block may be started. Therefore, by downloading and decoding all coded symbols, it is possible to obtain its own data.
- data can be stored with a minimum transfer time while solving a privacy problem and improving a data recovery rate on a hybrid cloud storage system combining a cloud storage system and a P2P storage system.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
클라우드 스토리지 시스템과 P2P 스토리지 시스템을 결합한 하이브리드 스토리지 시스템에 관한 것이다. 하이브리드 스토리지 시스템은, 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 대한 대역폭을 측정하는 노드 관리부와, 서버와 피어에 분산될 데이터의 단위를 결정하는 패킷 분배 벡터와 서버와 피어에 저장될 데이터에 대한 인코딩을 결정하는 파운틴 코딩율을 산출하는 변수 제어부와, 서버와 피어에 저장될 데이터에 파운틴 코딩율에 따른 파운틴 인코딩을 수행하는 인코딩부와, 측정된 대역폭 및 패킷 분배 벡터에 기반하여 서버와 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 산출하고, 전송 시간에 대한 정보를 변수 제어부에 전달하는 스케쥴러를 포함한다. 따라서, 사용자 데이터의 프라이버시 문제를 해결하고 데이터 복구율을 향상시킴과 동시에 최소한의 전송 시간으로 데이터를 저장할 수 있다.
Description
본 발명은 스토리지 시스템에 관한 것으로, 더욱 상세하게는 클라우드 스토리지 시스템과 P2P 스토리지 시스템을 결합한 하이브리드 스토리지 시스템에 관한 것이다.
최근 인터넷 환경에서 원격으로 유비쿼터스 데이터에 접속하는 것을 가능하게 하는 Amazon Glacier, Google Drive, Microsoft SkyDrive 등과 같은 많은 원격 스토리지 서비스들이 성공적으로 서비스되고 있다.
한 예로 원격 스토리지 서비스 중 하나인 Dropbox는 2012년 사용자의 수가 1억 명에 도달했다. 일반적으로 이러한 원격 스토리지 시스템은 클라우드 스토리지 시스템과 P2P 스토리지 시스템 두 가지로 분류된다.
서버 클러스터를 기반으로 하는 클라우드 스토리지 시스템은 저장된 데이터를 복사하는 일명 미러링(mirroring) 기법을 이용하여 높은 데이터 복구율을 보장한다. 여기서 데이터 복구율이란 데이터를 저장하는 사용자가 원하는 시점에 자신의 데이터를 성공적으로 에러 없이 되찾는 것을 의미한다. 그러나 클라우드 스토리지 시스템에서는 모든 데이터가 서버에 저장되기 때문에 저장된 사용자의 데이터가 제 3의 사용자 또는 관리자에게 노출될 우려가 있다. 따라서, 데이터 프라이버시는 클라우드 스토리지에서 가장 중요하게 해결해야 하는 문제 중 하나이다. 스토리지 사용자 증가에 따른 클라우드 스토리지 서버의 확장성의 문제도 심각하다.
반면에 P2P 스토리지 시스템에서는 클라우드 스토리지 시스템의 문제점이 해결된다. P2P 스토리지 시스템의 특성은 피어(peer)들이 자신의 자원을 공유하는 것이다. 따라서 P2P 스토리지 시스템의 사용자가 증가함에 따라 P2P 스토리지 시스템의 스토리지 자원은 끊임없이 증가하게 된다. 또한, P2P 스토리지 시스템에서 사용자는 저장된 자신의 데이터를 다중 피어들로부터 동시에 다운로드 받게 됨에 따라 클라우드 스토리지 시스템에 비하여 더 높은 다운로드 속도를 가지게 된다. 더 나아가, 데이터 프라이버시 역시 사용자의 데이터가 분할되어 여러 피어에게 나누어 저장될 때 향상될 수 있다. 그러나 P2P 클라우드 스토리지에서 가장 큰 문제점은 동적인 피어의 특성에 따른 낮은 데이터 복구율이다. 지금까지 P2P 스토리지 시스템이 클라우드 스토리지 시스템과 동일한 복구율을 보장하도록 하기 위해 많은 연구들이 진행되어 왔다. P2P 스토리지 시스템의 데이터 상환율을 높이기 위한 효율적인 방안으로는 데이터 저장 전 LDPC, LT코드, RS 코드 등과 같은 erasure protection 코드를 사용하여 저장하고자 하는 데이터를 인코딩한 뒤 원하는 데이터 복구율을 만족하도록 다수의 피어들에게 인코딩된 데이터를 저장하는 것이다. 그러나, 이러한 방법은 데이터 저장을 위한 전송 시간을 증가시켜 또 다른 문제를 야기한다.
상술한 바와 같이, 클라우드 컴퓨팅 서비스 기술 중 하나인 서버 기반의 클라우드 스토리지와 P2P 기반의 P2P 스토리지는 각각의 장단점을 가진다. 클라우드 스토리지는 낮은 고장률을 갖는 서버에 의해 높은 확률로 사용이 가능하기 때문에, 데이터를 저장할 경우 높은 데이터 복구율을 가지게 된다. 그러나 클라우드 스토리지에서는 급격한 사용자 수의 증가로 인한 서버 확장성 문제가 발생하며 사용자의 데이터가 모두 서버에 저장됨에 따라 데이터의 프라이버시 문제가 발생한다.
반면 P2P 스토리지에서는 클라우드 스토리지에 비해 스토리지 확장성이 높으며 사용자의 데이터를 분산 저장함에 따라 클라우드 스토리지에 비해 비교적 높은 데이터 프라이버시를 보장할 수 있다. 그러나 데이터를 저장할 경우 피어의 동적인 특성에 따라 낮은 데이터 복구율을 가지게 되는 문제가 발생한다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 클라우드 스토리지 시스템과 P2P 스토리지 시스템이 독립적으로 활용될 경우의 한계를 보완하기 위하여 두 개의 스토리지 시스템을 결합하여 활용하는 하이브리드 스토리지 시스템을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 하이브리드 스토리지 시스템을 이용하여 데이터를 전송하는 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 하이브리드 스토리지 시스템은, 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 대한 대역폭을 측정하는 노드 관리부와, 서버와 피어에 분산될 데이터의 단위를 결정하는 패킷 분배 벡터와 서버와 피어에 저장될 데이터에 대한 인코딩을 결정하는 파운틴 코딩율을 산출하는 변수 제어부와, 서버와 피어에 저장될 데이터에 파운틴 코딩율에 따른 파운틴 인코딩을 수행하는 인코딩부와, 측정된 대역폭 및 패킷 분배 벡터에 기반하여 서버와 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 산출하고, 전송 시간에 대한 정보를 변수 제어부에 전달하는 스케쥴러를 포함한다.
여기에서, 상기 패킷 분배 벡터는, 서버와 피어에 분산될 부호화 심볼을 포함하는 패킷의 개수를 나타낼 수 있다.
여기에서, 상기 변수 제어부는, 측정된 대역폭 및 전송 시간에 대한 정보를 이용하여 패킷 분배 벡터를 재산출할 수 있다.
여기에서, 상기 변수 제어부는, 데이터 복구율이 미리 설정된 기준 이상이 되도록 패킷 분배 벡터를 결정할 수 있다.
여기에서, 데이터 복구율은, 디코딩 실패율과 시스템 신뢰성에 기반하여 산출될 수 있다.
여기에서, 상기 디코딩 실패율은, 소스 심볼의 개수와 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수에 기반하여 산출될 수 있다.
여기에서, 시스템 신뢰성은, 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수 이상의 심볼을 획득하는 확률일 수 있다.
여기에서, 상기 변수 제어부는, 피어에 남아있는 스토리지 공간 및 패킷에 포함되는 부호화 심볼의 개수에 기반하여 서버와 피어에 소스 심볼의 개수 보다 작은 부호화 심볼이 저장되도록 패킷 분배 벡터를 결정할 수 있다.
여기에서, 상기 인코딩부는, LT 인코딩을 수행할 수 있다.
여기에서, 상기 스케쥴러는, 파운틴 코딩율에 의해 인코딩된 부호화 심볼을 패킷 분배 벡터에 따라 서버와 피어에 전송할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법은, 하이브리드 스토리지 시스템을 이용하여 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 데이터를 분산하는 방법에 있어서, 서버와 피어의 대역폭에 대한 정보를 획득하는 단계와, 대역폭에 대한 정보에 기반한 패킷 분배 백터를 결정하기 위하여 최소 패킷의 개수, 최대 패킷의 개수 및 패킷 간격의 개수를 초기화하는 단계와, 데이터 복구율 및 서버와 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 대역폭에 대한 정보에 기반하여 산출하는 단계와, 데이터 복구율 및 전송 시간이 미리 설정된 기준을 만족하도록 패킷 분배 벡터를 결정하는 단계를 포함한다.
여기에서, 상기 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법은, 패킷 분배 백터에 따라 서버와 피어에 데이터를 분산하여 전송하는 단계를 더 포함할 수 있다.
여기에서, 상기 서버와 상기 피어에 데이터를 분산하여 전송하는 단계는, 패킷 분배 벡터에 기반하여 결정된 파운틴 코딩율에 따라 데이터를 부호화하여 전송할 수 있다.
여기에서, 데이터 복구율은 디코딩 실패율과 시스템 신뢰성에 기반하여 산출되고, 디코딩 실패율은 소스 심볼의 개수와 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수에 기반하여 산출되며, 시스템 신뢰성은 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수 이상의 심볼을 획득하는 확률일 수 있다.
여기에서, 상기 패킷 분배 벡터를 결정하는 단계는, 대역폭에 대한 정보가 변경된 경우, 변경된 대역폭에 대한 정보가 반영되도록 상기 패킷 분배 벡터를 재결정하는 단계를 더 포함할 수 있다.
여기에서, 상기 패킷 분배 벡터를 결정하는 단계는, 서버와 피어의 대역폭이 감소된 경우, 대역폭의 감소량 보다 추가될 피어의 대역폭의 합이 커지도록 피어를 추가하고, 추가된 피어를 고려하여 상기 패킷 분배 벡터를 재결정할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 다른 측면에 따른 데이터 분산 방법은, 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 대한 대역폭을 측정하는 단계와, 서버와 피어에 분산될 데이터의 단위를 결정하는 패킷 분배 벡터와 서버와 피어에 저장될 데이터에 대한 인코딩을 결정하는 파운틴 코딩율을 산출하는 단계와, 서버와 피어에 저장될 데이터에 파운틴 코딩율에 따른 파운틴 인코딩을 수행하는 단계와, 측정된 대역폭 및 패킷 분배 벡터에 기반하여 서버와 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 산출하는 단계를 포함한다.
상기와 같은 본 발명의 실시예에 따른 하이브리드 스토리지 시스템은 데이터 복구율을 향상시키고, 전송 시간을 최소화할 수 있도록 패킷 분배 벡터를 결정하여 데이터를 전송할 수 있다.
또한, 하이브리드 스토리지 시스템은 P2P 스토리지 시스템을 클라우드 스토리지 시스템과 함께 사용하도록 함으로써 데이터의 프라이버시 문제를 해결할 수 있다.
도 1은 본 발명의 실시예에 따른 하이브리드 스토리지 시스템을 설명하기 위한 블록도이다.
도 2 (a) 내지 (d)는 본 발명의 실시예에 따른 패킷 분배 벡터의 결정을 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법을 설명하기 위한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 하이브리드 스토리지 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 하이브리드 스토리지 시스템(100)은 노드 관리부(110), 변수 제어부(120), 인코딩부(130) 및 스케쥴러(140)를 포함하여 구성될 수 있다.
노드 관리부(110)는 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 대한 대역폭(bandwidth)을 측정하여 후술하는 변수 제어부(120)와 스케쥴러(140)에 전송할 수 있다.
변수 제어부(120)는 노드 관리부(110)를 통해 얻은 정보들(대역폭)과 스케쥴러(140)에 의해 계산되는 전송 시간을 기반으로 서버와 피어들에게 분산될 데이터의 단위 또는 크기를 결정하는 패킷 분배 벡터()와 서버와 피어들에 저장될 데이터에 대한 인코딩을 결정하는 파운틴 코드율()을 산출할 수 있다.
여기서, 패킷 분배 벡터는 로 표현될 수 있고, 패킷 분배 벡터의 첫번째 원소()와 나머지 원소들()은 서버와 피어들에 분산될 부호화 심볼을 포함하는 패킷의 개수를 나타낼 수 있으며, 은 사용자에 제공되는 피어들의 초기 집합으로 데이터 저장이 가능한 피어의 수를 나타낼 수 있다.
인코딩부(130)는 변수 제어부(120)에 의해 결정된 파운틴 코드율에 따라 서버와 피어들에 저장될 데이터에 대해서 파운틴 인코딩을 수행할 수 있다. 예를 들어, 인코딩부(130)는 LT codes 또는 Raptor codes를 사용할 수 있다. 특히, 인코딩부(130)는 LT 인코딩을 수행할 수 있다.
스케쥴러(140)는 측정된 대역폭 및 패킷 분배 벡터에 기반하여 서버와 피어들에 데이터가 전송되는데 소요되는 시간인 전송 시간을 산출하고, 전송 시간에 대한 정보를 변수 제어부(120)에 전달(피드백)할 수 있다. 따라서, 변수 제어부(120)는 측정된 대역폭 및 전송 시간에 대한 정보를 이용하여 패킷 분배 벡터를 재산출할 수 있다.
또한, 스케쥴러(140)는 파운틴 코딩율에 의해 인코딩된 부호화 심볼을 패킷 분배 벡터에 따라 서버와 피어에 전송할 수 있다.
인코더부에 의해 생성된 부호화 심볼들은 스케쥴러(140)를 통해 패킷 분배 벡터에 따라 서버 및 피어들에게 전송될 수 있다.
본 발명의 실시예에 따른 하이브리드 스토리지 시스템(100)의 기능을 보다 상세히 설명하기 위한 용어를 정리하면 다음과 같다.
노드 유효성(node availability)은 주어진 시간 동안 클라우드 스토리지의 서버 또는 P2P 스토리지의 피어 상에 저장된 데이터를 되찾을 수 있는 확률을 의미할 수 있다. 여기서, 노드는 클라우드 스토리지의 서버 또는 P2P 스토리지의 피어들을 의미할 수 있다.
노드 유효성을 계산하는 과정을 설명한다. P2P 스토리지에서 시스템 내에 존재할 피어의 생존 시간은 스토리지 시스템 내에 머문 시간에 의존한다. 따라서 피어의 유효성은 다음의 수학식 1과 같이 계산된다
[수학식 1]
수학식 1에서, 는 피어가 앞으로 스토리지 시스템 내에 존재할 시간을 나타낸다. 따라서, 수학식에 따른 노드 유효성은 시간 동안 스토리지 시스템에 머문 i번째 피어가 시간 이상 스토리지 시스템에 존재할 확률을 나타낼 수 있다. 여기서, 랜덤 변수 는 파레토 분포(Pareto distribution)로 모델링될 수 있다.
다음으로, 시스템 신뢰성(system reliability)은 성공적인 파운틴 디코딩을 위해 요구되는 부호화 심볼 개수 이상을 획득할 확률을 의미할 수 있다.
시스템 신뢰성을 계산하는 과정을 설명한다. 노드 유효성을 기반으로 하이브리드 스토리지 시스템(100)의 신뢰성 정도를 계산할 수 있다. 시스템 신뢰성의 계산을 위하여 다음의 수학식 2 및 수학식 5와 같은 두 가지 매트릭스를 정의할 수 있다.
[수학식 2]
수학식 2는 노드 조합 매트릭스(node combination matrix)를 나타낸다.
노드 상태 벡터는 다음의 수학식 3과 같이 표현될 수 있다.
[수학식 3]
[수학식 4]
이며,
수학식 2에 따르면, 노드 상태 벡터에 상응하는 원소의 값은 주어진 시간 동안 클라우드 스토리지의 서버 또는 P2P 스토리지의 피어에 접근 가능할 경우 1로 설정되고, 그렇지 않은 경우 0으로 설정될 수 있다.
수학식 5는 이벤트 확률 매트릭스(event probability matrix)를 나타낸다.
[수학식 5]
수학식 5에서, 각각의 원소는 다음의 수학식 6 내지 8에 의해 정의될 수 있다.
[수학식 6]
[수학식 7]
[수학식 8]
수학식 5의 각각의 원소 값들은 수학식 7 및 수학식 8에 의해 산출되는 확률값을 나타낼 수 있다.
수학식 7 및 수학식 8에서 는 내적을 나타내고, 의 모든 원소를 곱한값은 노드 상태 벡터가 인 경우에 이상의 부호화 심볼을 획득할 확률을 나타낸다. 여기서, 는 패킷 내에 포함되는 부호화 심볼의 개수를 나타내고, 은 소스 심볼을 성공적으로 복구하기 위해 필요한 부호화 심볼의 개수를 나타낼 수 있다.
따라서, 시스템 신뢰성은 다음의 수학식 9와 같이 이벤트 확률 매트릭스의 원소값을 이용하여 나타낼 수 있다.
[수학식 9]
마지막으로, 데이터 복구율(data retrievability)는 사용자가 오류없이 하이브리드 스토리지 시스템(100)에 저장된 자신의 데이터를 복구할 확률을 의미할 수 있다.
데이터 복구율을 계산하는 과정을 설명한다. 파운틴 인코딩에 의해 생성된 부호화 심볼 중 일부가 손실되었다 하더라도, 일정 수준 이상의 부호화 심볼을 되찾았을 경우에는, 정해진 확률로 원래의 소스 심볼을 복구할 수 있다. 예를 들어, LT 디코딩 실패율 ()과 소스 심볼의 개수 () 및 개의 소스 심볼들을 성공적으로 복구하기 위해 요구되는 부호화 심볼들의 개수 () 사이의 관계는 다음의 수학식 10에 의해 정의될 수 있다.
[수학식 10]
수학식 10에 따르면, 사용자 측에서 소스 심볼들의 개수 보다 약간 더 많은 수의 부호화 심볼들을 통해 높은 성공 확률로 모든 소스 심볼들을 원활히 복구할 수 있다.
데이터 복구율은 다음의 수학식 11에 의해 계산될 수 있다
[수학식 11]
즉, 수학식 11은 되찾은 부호화 심볼들로부터 에러없이 원래의 소스 심볼을 성공적으로 복구할 확률을 나타낸다.
다음의 수학식 12에 따르면, 본 발명의 실시예에 따른 하이브리드 스토리지 시스템(100)의 변수 제어부(120)는 데이터 복구율이 미리 설정된 기준() 이상이 되도록 패킷 분산 벡터를 결정할 수 있다. 여기서, 는 스토리지 시스템이 요구하는 최소한의 데이터 복구율을 의미할 수 있다. 즉, 변수 제어부(120)는 데이터 복구율이 미리 설정된 기준 이상이 되도록 패킷 분배 벡터를 결정할 수 있다.
상세하게는, 데이터 복구율은 디코딩 실패율과 시스템 신뢰성에 기반하여 산출되고, 디코딩 실패율은 소스 심볼의 개수와 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수에 기반하여 산출될 수 있다. 여기서, 시스템 신뢰성은 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수 이상의 심볼을 획득하는 확률을 의미할 수 있다.
[수학식 12]
더 나아가, 변수 제어부(120)는 다음의 수학식 13을 만족하도록 하여 클라우드 스토리지의 서버와 P2P 스토리지의 피어들에게 원래 소스 심볼의 개수 이하로 부호화 심볼 개수를 저장함으로써 사용자의 데이터 프라이버시를 보장하도록 할 수 있다.
[수학식 13]
수학식 13을 참조하면, 변수 제어부(120)는 피어에 남아있는 스토리지 공간 및 패킷에 포함되는 부호화 심볼의 개수에 기반하여 서버와 피어에 소스 심볼의 개수 보다 작은 부호화 심볼이 저장되도록 패킷 분배 벡터를 결정할 수 있다.
도 2는 본 발명의 실시예에 따른 패킷 분배 벡터의 결정을 설명하기 위한 개념도이다.
도 2를 참조하면, 패킷 분배 벡터에 대한 결정 및 재결정 과정을 통하여 클라우드 스토리지의 서버 또는 P2P 스토리지의 피어에 전송되는 패킷의 크기가 결정될 수 있다. 예를 들어, 도 2는 4개의 노드가 선택된 경우, 각각의 노드에 전송되는 패킷의 크기를 나타내는 예시도이다. 여기서, 패킷의 크기는 소스 블록의 크기를 결정할 수 있다.
상세하게는, 패킷 분배 벡터의 결정 및 재결정 과정은 각 노드에 저장하기 위한 패킷 수의 간격과 탐색 범위를 단계적으로 좁혀나가는 과정이다.
도 2는 사용자가 클라우드 서버와 총 세 개의 피어를 제공받은 상황에서 각각의 노드에 전송되는 패킷의 수를 나타내는 패킷 분배 벡터의 결정 과정을 나타낸다.
도 2에서는 각 노드가 저장할 수 있는(전송할 수 있는) 최대 패킷의 수를 32라 가정한다.
도 2 (a)에 따른 과정은 패킷 분배 벡터 결정을 위한 초기 간격의 설정 과정을 나타낸다(초기 간격은 도 2 (a)에서 8로 설정됨).
도 2 (b)에 따른 과정은 도 2 (a)에서 설정된 초기 간격을 기반으로 임시 패킷 분배 벡터를 결정하고 탐색 간격(예: 간격 4)과 탐색 범위를 한 단계 줄일 수 있다.
도 2 (c)에 따른 과정은 한 단계 줄어든 탐색 간격과 탐색 범위를 기반으로 임시 패킷 분배 벡터를 재결정할 수 있으며, 도 2 (d)에 따른 과정은 도 2 (c)에서 결정된 임시 패킷 분배 벡터를 기반으로 한 단계 더 탐색 간격(예: 간격 2)과 탐색 범위를 줄일 수 있다.
이러한 과정은 탐색 간격이 1이 될 때까지 진행된다. 따라서, 도 2를 참조하면, 패킷 분배 벡터에 대한 결정 및 재결정 과정을 통하여 클라우드 스토리지의 서버 또는 P2P 스토리지의 피어에 전송되는 패킷의 크기를 결정할 수 있다.
패킷 분배 벡터와 같은 제어 변수 결정 알고리즘은 두 가지 과정으로 이루어진다.
첫 번째는 주어진 피어 집합 내에서 낮은 복잡도로 패킷 분배 벡터를 결정하는 과정이며, 두 번째는 전송 과정에서 시변하는 대역폭에 따라 적절히 패킷 분배 벡터를 재결정하는 과정이다.
먼저, 본 발명의 실시예에 따른 하이브리드 스토리지 시스템(100)에서 파일(데이터)의 첫 번째 소스 블록을 저장하기 위한 세부 과정은 다음과 같다.
<단계 1>
그 후에 다음의 수학식 14에 따라 나머지 패킷의 간격을 결정할 수 있다.
[수학식 14]
<단계 2>
가 상기 단계 1에서 얻어진 전송 시간을 최소화하는 최적의 패킷 분배 벡터라 하자. 최소점 과 최대점 은 각각 과 의해서 갱신될 수 있다. 만약 가 0 또는 일 경우 은 1로 설정되고, 그렇지 않은 경우에 는 2로 설정될 수 있다.
<단계 3>
도 2(a)는 k=1인 경우, 도 2(b) 및 도 2(c)는 k=2인 경우, 도 2(d)는 k=3인 경우까지 단계 1 및 단계 2가 반복 수행된 경우를 나타낸다.
<단계 4>
[수학식 15]
다음으로, 전송 과정 중 시변하는 네트워크 환경에 적절히 대응하기 위해 첫 번째 소스 블록을 제외한 나머지 소스 블록들의 전송 과정은 다음과 같다.
<단계 1>
<단계 2>
대역폭에 변화가 발생하는지 확인한다. 만약 사용자와 서버 또는 피어 사이에 대역폭이 감소할 경우 대역폭의 감소량보다 추가된 피어들의 대역폭 총 합이 커질 때까지 추가 피어 집합 ()에 포함된 피어를 초기 피어 집합 ()에 추가할 수 있다.
<단계 3>
초기 피어 집합에 추가된 피어와 대역폭 감소를 나타낸 피어들에 기반하여 패킷 분배 벡터를 재결정 과정을 수행할 수 있다.
<단계 4>
모든 블록들이 전송될 때까지 상기 단계 1 내지 단계 3을 반복하여 수행할 수 있다.
도 3은 본 발명의 실시예에 따른 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법을 설명하기 위한 흐름도이다.
도 3을 참조하여 하이브리드 스토리지 시스템(100)을 통하여 클라우드 스토리지의 서버 또는 P2P 스토리지의 피어에 데이터를 전송 또는 업로드하는 과정을 설명한다. 즉, 본 발명의 실시예에 따른 하이브리드 스토리지 시스템(100)을 이용한 데이터 전송 방법은 상술한 패킷 분산 벡터의 결정 및 재결정 과정을 통하여 수행될 수 있다.
본 발명의 실시예에 따르면, 하이브리드 스토리지 시스템(100)을 이용하여 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 데이터를 분산 또는 업로드할 수 있다.
먼저, 서버와 피어의 대역폭에 대한 정보를 획득할 수 있다(S310).
데이터 복구율 및 서버와 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 대역폭에 대한 정보에 기반하여 산출할 수 있다(S330).
상세하게는, 데이터 복구율은 디코딩 실패율과 시스템 신뢰성에 기반하여 산출되고, 디코딩 실패율은 소스 심볼의 개수와 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수에 기반하여 산출될 수 있다. 여기서, 시스템 신뢰성은 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수 이상의 심볼을 획득하는 확률을 의미할 수 있다.
데이터 복구율 및 전송 시간이 미리 설정된 기준을 만족하는지 판단할 수 있다(S340). 데이터 복구율 및 전송 시간이 미리 설정된 기준을 만족하는 경우, 해당 패킷 분배 벡터를 결정할 수 있다(S350). 또한, 데이터 복구율 및 전송 시간이 미리 설정된 기준을 만족하지 않는 경우, 다시 초기 단계(S310)로 넘어갈 수 있다.
또한, 대역폭에 대한 정보가 변경되었는지 확인할 수 있다(S360). 대역폭에 대한 정보가 변경되었다면, 변경된 대역폭에 대한 정보가 반영되도록 패킷 분배 벡터를 재결정할 수 있다(S370). 여기서, 재결정은 첫번째 소스 블록을 제외한 나머지 소스 블록을 전송하기 위해 수행될 수 있다. 예를 들어, 서버와 피어의 대역폭이 감소된 경우, 대역폭의 감소량 보다 추가될 피어의 대역폭의 합이 커지도록 피어를 추가하고, 추가된 피어를 고려하여 패킷 분배 벡터를 재결정할 수 있다.
마지막으로, 패킷 분배 백터에 따라 서버와 피어에 데이터를 분산하여 전송할 수 있다(S380). 또한, 패킷 분배 벡터에 기반하여 결정된 파운틴 코딩율에 따라 데이터를 부호화하여 전송할 수 있다. 여기서, 패킷 분배 백터에 따라 서버와 피어에 데이터를 분산하여 전송하는 과정은 모든 소스 블록에 대한 전송이 완료될 때까지 반복하여 수행될 수 있다.
더 나아가, 사용자가 저장된 자신의 데이터를 되찾기 위한 부호화 심볼의 다운로드 과정은 다음과 같다.
사용자가 자신의 데이터를 되찾고자 할 경우 업로드 시에 부호화 심볼을 저장한 피어 정보를 기반으로 서버 또는 피어들에 저장된 부호화 심볼의 다운로드를 요청할 수 있다. 이러한 경우, 다수의 피어들과 서버에게 동시에 부호화 심볼을 다운로드 받게되며, 복구 가능한 양의 부호화 심볼이 다운로드 되면 해당 블록의 부호화 심볼 다운로드를 종료하고 다음 블록에 대한 부호화 심볼에 대해 다운로드를 시작할 수 있다. 따라서, 모든 부호화 심볼을 다운로드하여 복호화함으로써, 자신의 데이터를 획득할 수 있다.
본 발명의 실시예에 따르면, 클라우드 스토리지 시스템과 P2P 스토리지 시스템을 결합한 하이브리드 클라우드 스토리지 시스템 상에서 사용자 데이터의 프라이버시 문제를 해결하고 데이터 복구율을 향상시킴과 동시에 최소한의 전송 시간으로 데이터를 저장할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (17)
- 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 대한 대역폭을 측정하는 노드 관리부;상기 서버와 상기 피어에 분산될 데이터의 단위를 결정하는 패킷 분배 벡터와 상기 서버와 상기 피어에 저장될 데이터에 대한 인코딩을 결정하는 파운틴 코딩율을 산출하는 변수 제어부;상기 서버와 상기 피어에 저장될 데이터에 상기 파운틴 코딩율에 따른 파운틴 인코딩을 수행하는 인코딩부; 및상기 측정된 대역폭 및 상기 패킷 분배 벡터에 기반하여 상기 서버와 상기 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 산출하고, 상기 전송 시간에 대한 정보를 상기 변수 제어부에 전달하는 스케쥴러를 포함하는, 하이브리드 스토리지 시스템.
- 청구항 1에 있어서,상기 패킷 분배 벡터는,상기 서버와 상기 피어에 분산될 부호화 심볼을 포함하는 패킷의 개수를 나타내는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
- 청구항 1에 있어서,상기 변수 제어부는,상기 측정된 대역폭 및 상기 전송 시간에 대한 정보를 이용하여 상기 패킷 분배 벡터를 재산출하는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
- 청구항 1에 있어서,상기 변수 제어부는,데이터 복구율이 미리 설정된 기준 이상이 되도록 상기 패킷 분배 벡터를 결정하는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
- 청구항 4에 있어서,상기 데이터 복구율은 디코딩 실패율과 시스템 신뢰성에 기반하여 산출되고,상기 디코딩 실패율은 소스 심볼의 개수와 상기 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수에 기반하여 산출되며,상기 시스템 신뢰성은 상기 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수 이상의 심볼을 획득하는 확률인 것을 특징으로 하는, 하이브리드 스토리지 시스템.
- 청구항 1에 있어서,상기 변수 제어부는,상기 피어에 남아있는 스토리지 공간 및 패킷에 포함되는 부호화 심볼의 개수에 기반하여 상기 서버와 상기 피어에 상기 소스 심볼의 개수 보다 작은 부호화 심볼이 저장되도록 상기 패킷 분배 벡터를 결정하는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
- 청구항 1에 있어서,상기 인코딩부는,LT 인코딩을 수행하는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
- 청구항 1에 있어서,상기 스케쥴러는,상기 파운틴 코딩율에 의해 인코딩된 부호화 심볼을 상기 패킷 분배 벡터에 따라 상기 서버와 상기 피어에 전송하는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
- 하이브리드 스토리지 시스템을 이용하여 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 데이터를 분산하는 방법에 있어서,상기 서버와 상기 피어의 대역폭에 대한 정보를 획득하는 단계;상기 대역폭에 대한 정보에 기반한 패킷 분배 백터를 결정하기 위하여 최소 패킷의 개수, 최대 패킷의 개수 및 패킷 간격의 개수를 초기화하는 단계;데이터 복구율 및 상기 서버와 상기 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 상기 대역폭에 대한 정보에 기반하여 산출하는 단계; 및상기 데이터 복구율 및 상기 전송 시간이 미리 설정된 기준을 만족하도록 상기 패킷 분배 벡터를 결정하는 단계를 포함하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
- 청구항 9에 있어서,상기 패킷 분배 백터에 따라 상기 서버와 상기 피어에 데이터를 분산하여 전송하는 단계를 더 포함하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
- 청구항 10에 있어서,상기 서버와 상기 피어에 데이터를 분산하여 전송하는 단계는,상기 패킷 분배 벡터에 기반하여 결정된 파운틴 코딩율에 따라 데이터를 부호화하여 전송하는 것을 특징으로 하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
- 청구항 9에 있어서,상기 데이터 복구율은 디코딩 실패율과 시스템 신뢰성에 기반하여 산출되고,상기 디코딩 실패율은 소스 심볼의 개수와 상기 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수에 기반하여 산출되며,상기 시스템 신뢰성은 상기 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수 이상의 심볼을 획득하는 확률인 것을 특징으로 하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
- 청구항 9에 있어서,상기 패킷 분배 벡터를 결정하는 단계는,상기 대역폭에 대한 정보가 변경된 경우, 상기 변경된 대역폭에 대한 정보가 반영되도록 상기 패킷 분배 벡터를 재결정하는 단계를 더 포함하는 것을 특징으로 하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
- 청구항 13에 있어서,상기 패킷 분배 벡터를 결정하는 단계는,상기 서버와 상기 피어의 대역폭이 감소된 경우,대역폭의 감소량 보다 추가될 피어의 대역폭의 합이 커지도록 피어를 추가하고, 상기 추가된 피어를 고려하여 상기 패킷 분배 벡터를 재결정하는 것을 특징으로 하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
- 하이브리드 스토리지 시스템에 의해 수행되는 방법에 있어서,클라우드 스토리지의 서버와 P2P 스토리지의 피어에 대한 대역폭을 측정하는 단계;상기 서버와 상기 피어에 분산될 데이터의 단위를 결정하는 패킷 분배 벡터와 상기 서버와 상기 피어에 저장될 데이터에 대한 인코딩을 결정하는 파운틴 코딩율을 산출하는 단계;상기 서버와 상기 피어에 저장될 데이터에 상기 파운틴 코딩율에 따른 파운틴 인코딩을 수행하는 단계; 및상기 측정된 대역폭 및 상기 패킷 분배 벡터에 기반하여 상기 서버와 상기 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 산출하는 단계를 포함하는, 데이터 분산 방법.
- 청구항 15에 있어서,상기 측정된 대역폭 및 상기 전송 시간에 대한 정보를 이용하여 상기 패킷 분배 벡터를 재산출하는 단계를 더 포함하는, 데이터 분산 방법.
- 청구항 15에 있어서,상기 파운틴 코딩율에 의해 인코딩된 부호화 심볼을 상기 패킷 분배 벡터에 따라 상기 서버와 상기 피어에 전송하는 단계를 더 포함하는, 데이터 분산 방법.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/324,674 US20170206132A1 (en) | 2014-07-08 | 2015-02-04 | Hybrid storage system using p2p and data transmission method using same |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2014-0085103 | 2014-07-08 | ||
| KR1020140085103A KR101592727B1 (ko) | 2014-07-08 | 2014-07-08 | P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2016006783A1 true WO2016006783A1 (ko) | 2016-01-14 |
Family
ID=55064391
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2015/001135 Ceased WO2016006783A1 (ko) | 2014-07-08 | 2015-02-04 | P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20170206132A1 (ko) |
| KR (1) | KR101592727B1 (ko) |
| WO (1) | WO2016006783A1 (ko) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107918525A (zh) * | 2016-10-07 | 2018-04-17 | 三星电子株式会社 | 能执行对等通信的存储设备和包括其的数据存储系统 |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10375032B2 (en) * | 2016-01-06 | 2019-08-06 | Thomas Lorini | System and method for data segmentation and distribution across multiple cloud storage points |
| US11496448B2 (en) | 2020-12-30 | 2022-11-08 | Jose R. ROSAS BUSTOS | Systems and methods of creating and operating a cloudless infrastructure of computing devices |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100274982A1 (en) * | 2009-04-24 | 2010-10-28 | Microsoft Corporation | Hybrid distributed and cloud backup architecture |
| KR20110041222A (ko) * | 2009-10-15 | 2011-04-21 | 엘지전자 주식회사 | 패킷화를 고려한 파운틴 코딩을 이용한 데이터 전송 방법 |
-
2014
- 2014-07-08 KR KR1020140085103A patent/KR101592727B1/ko not_active Expired - Fee Related
-
2015
- 2015-02-04 US US15/324,674 patent/US20170206132A1/en not_active Abandoned
- 2015-02-04 WO PCT/KR2015/001135 patent/WO2016006783A1/ko not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100274982A1 (en) * | 2009-04-24 | 2010-10-28 | Microsoft Corporation | Hybrid distributed and cloud backup architecture |
| KR20110041222A (ko) * | 2009-10-15 | 2011-04-21 | 엘지전자 주식회사 | 패킷화를 고려한 파운틴 코딩을 이용한 데이터 전송 방법 |
Non-Patent Citations (3)
| Title |
|---|
| PARK, GI SEOK ET AL.: "A Fountain Code-based P2P Storage Cloud System Considering System Stability and QoS", KIISE PROCEEDINGS OF THE KOREA COMPUTER CONGRESS, June 2014 (2014-06-01), pages 1249 - 1951 * |
| PARK, GI SEOK ET AL.: "A Fountain Codes-based Hybrid P2P and Cloud Storage System", ICT CONVERGENCE, 16 October 2013 (2013-10-16), pages 78 - 79, XP032527217, DOI: doi:10.1109/ICTC.2013.6675310 * |
| PARK, GI SEOK: "Hybrid P2P and Cloud Storage System Based on Fountain Codes", POSTECH DIVISION OF IT CONVERGENCE ENGINEERING MASTER'S THESIS, 2013 * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107918525A (zh) * | 2016-10-07 | 2018-04-17 | 三星电子株式会社 | 能执行对等通信的存储设备和包括其的数据存储系统 |
| CN107918525B (zh) * | 2016-10-07 | 2022-08-16 | 三星电子株式会社 | 能执行对等通信的存储设备和包括其的数据存储系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20160005947A (ko) | 2016-01-18 |
| US20170206132A1 (en) | 2017-07-20 |
| KR101592727B1 (ko) | 2016-02-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2020166879A1 (en) | Apparatus for performing threshold design on secret key and method thereof | |
| WO2014069783A1 (ko) | 패스워드 기반 인증 방법 및 이를 수행하기 위한 장치 | |
| WO2020071809A1 (en) | Method and apparatus for enhanced assertion management in cloud media processing | |
| WO2014010992A1 (ko) | 컨텐츠 이름 기반의 컨텐츠 중심 네트워크에서 컨텐츠 및 실시간 스트리밍 컨텐츠 제공을 위한 컨텐츠 요청자 및 컨텐츠 제공자의 통신 방법 | |
| WO2016171401A1 (ko) | 공동 편집 문서를 공유하는 방법 및 장치 | |
| WO2022114857A1 (ko) | 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법 | |
| WO2016006783A1 (ko) | P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법 | |
| WO2018076829A1 (zh) | 终端数据的处理方法、装置、系统、存储介质及服务器 | |
| WO2012124985A2 (en) | Method and apparatus for synchronizing personal inforamtion | |
| EP3909193A1 (en) | Apparatus for processing approximately encrypted messages and methods thereof | |
| WO2013009061A2 (ko) | 무선 통신 시스템에서 그룹키 갱신 방법 및 장치 | |
| WO2021230464A1 (ko) | 모바일 에지 컴퓨팅 시스템의 비동기식 자원 할당 방법 및 장치 | |
| WO2017024805A1 (zh) | 一种文件分发方法、装置和系统 | |
| EP2260654A2 (en) | Method and apparatus for managing tokens for digital rights management | |
| EP4555701A1 (en) | Methods and devices for managing communication of artificial intelligence data between devices | |
| WO2021107515A1 (en) | Identity-based encryption method based on lattices | |
| WO2013183944A1 (en) | Apparatus and method for transmitting and receiving files in general purpose device | |
| WO2023063694A1 (ko) | 블록체인 네트워크에서 부분 원장을 가진 전자 장치 및 그의 동작 방법 | |
| WO2024071458A1 (ko) | 양자 통신 시스템에서 기저 선택에 사전 공유키를 적용하여 사용자 인증을 수행하는 방법 및 이를 위한 장치 | |
| WO2012026727A9 (ko) | 프리앰블을 이용하여 특성 정보를 공유하는 통신 방법, 상기 프리앰블을 생성하는 방법, 상기 방법들이 적용되는 통신 시스템 | |
| EP3854024A1 (en) | Identity-based encryption method based on lattices | |
| WO2015174779A1 (en) | Method of distributing data and device supporting the same | |
| WO2023249166A1 (ko) | 멀티 클라우드의 블록 데이터 전송을 위한 유효 대역폭 추정 방법과 제어 메시지 생성 방법 및 트리 정보 전달 방법과 이를 위한 블록 전송 시스템 | |
| WO2023080344A1 (ko) | 양자키 관리장치 및 그 동작 방법 | |
| WO2021085721A1 (ko) | 정보 중심 네트워크 환경에서 생산자 이동성 관리 방법, 이를 수행하기 위한 기록 매체 및 장치 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15818269 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 15324674 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 15818269 Country of ref document: EP Kind code of ref document: A1 |
























