KR101592727B1 - P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법 - Google Patents

P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법 Download PDF

Info

Publication number
KR101592727B1
KR101592727B1 KR1020140085103A KR20140085103A KR101592727B1 KR 101592727 B1 KR101592727 B1 KR 101592727B1 KR 1020140085103 A KR1020140085103 A KR 1020140085103A KR 20140085103 A KR20140085103 A KR 20140085103A KR 101592727 B1 KR101592727 B1 KR 101592727B1
Authority
KR
South Korea
Prior art keywords
peer
server
data
bandwidth
distribution vector
Prior art date
Application number
KR1020140085103A
Other languages
English (en)
Other versions
KR20160005947A (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 KR1020140085103A priority Critical patent/KR101592727B1/ko
Priority to PCT/KR2015/001135 priority patent/WO2016006783A1/ko
Priority to US15/324,674 priority patent/US20170206132A1/en
Publication of KR20160005947A publication Critical patent/KR20160005947A/ko
Application granted granted Critical
Publication of KR101592727B1 publication Critical patent/KR101592727B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding 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

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)
  • Computer Security & Cryptography (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

클라우드 스토리지 시스템과 P2P 스토리지 시스템을 결합한 하이브리드 스토리지 시스템에 관한 것이다. 하이브리드 스토리지 시스템은, 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 대한 대역폭을 측정하는 노드 관리부와, 서버와 피어에 분산될 데이터의 단위를 결정하는 패킷 분배 벡터와 서버와 피어에 저장될 데이터에 대한 인코딩을 결정하는 파운틴 코딩율을 산출하는 변수 제어부와, 서버와 피어에 저장될 데이터에 파운틴 코딩율에 따른 파운틴 인코딩을 수행하는 인코딩부와, 측정된 대역폭 및 패킷 분배 벡터에 기반하여 서버와 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 산출하고, 전송 시간에 대한 정보를 변수 제어부에 전달하는 스케쥴러를 포함한다. 따라서, 사용자 데이터의 프라이버시 문제를 해결하고 데이터 복구율을 향상시킴과 동시에 최소한의 전송 시간으로 데이터를 저장할 수 있다.

Description

P2P를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법{HYBRID STORAGE SYSTEM USING P2P AND METHOD FOR TRANSMITTING DATA USING THE SAME}
본 발명은 스토리지 시스템에 관한 것으로, 더욱 상세하게는 클라우드 스토리지 시스템과 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는 본 발명의 실시예에 따른 패킷 분배 벡터의 결정을 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법을 설명하기 위한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 하이브리드 스토리지 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 하이브리드 스토리지 시스템(100)은 노드 관리부(110), 변수 제어부(120), 인코딩부(130) 및 스케쥴러(140)를 포함하여 구성될 수 있다.
노드 관리부(110)는 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 대한 대역폭(bandwidth)을 측정하여 후술하는 변수 제어부(120)와 스케쥴러(140)에 전송할 수 있다.
변수 제어부(120)는 노드 관리부(110)를 통해 얻은 정보들(대역폭)과 스케쥴러(140)에 의해 계산되는 전송 시간을 기반으로 서버와 피어들에게 분산될 데이터의 단위 또는 크기를 결정하는 패킷 분배 벡터(
Figure 112014064091425-pat00001
)와 서버와 피어들에 저장될 데이터에 대한 인코딩을 결정하는 파운틴 코드율(
Figure 112014064091425-pat00002
)을 산출할 수 있다.
여기서, 패킷 분배 벡터는
Figure 112014064091425-pat00003
로 표현될 수 있고, 패킷 분배 벡터의 첫번째 원소(
Figure 112014064091425-pat00004
)와 나머지 원소들(
Figure 112014064091425-pat00005
)은 서버와 피어들에 분산될 부호화 심볼을 포함하는 패킷의 개수를 나타낼 수 있으며,
Figure 112014064091425-pat00006
은 사용자에 제공되는 피어들의 초기 집합으로 데이터 저장이 가능한 피어의 수를 나타낼 수 있다.
인코딩부(130)는 변수 제어부(120)에 의해 결정된 파운틴 코드율에 따라 서버와 피어들에 저장될 데이터에 대해서 파운틴 인코딩을 수행할 수 있다. 예를 들어, 인코딩부(130)는 LT codes 또는 Raptor codes를 사용할 수 있다. 특히, 인코딩부(130)는 LT 인코딩을 수행할 수 있다.
스케쥴러(140)는 측정된 대역폭 및 패킷 분배 벡터에 기반하여 서버와 피어들에 데이터가 전송되는데 소요되는 시간인 전송 시간을 산출하고, 전송 시간에 대한 정보를 변수 제어부(120)에 전달(피드백)할 수 있다. 따라서, 변수 제어부(120)는 측정된 대역폭 및 전송 시간에 대한 정보를 이용하여 패킷 분배 벡터를 재산출할 수 있다.
또한, 스케쥴러(140)는 파운틴 코딩율에 의해 인코딩된 부호화 심볼을 패킷 분배 벡터에 따라 서버와 피어에 전송할 수 있다.
인코더부에 의해 생성된 부호화 심볼들은 스케쥴러(140)를 통해 패킷 분배 벡터에 따라 서버 및 피어들에게 전송될 수 있다.
본 발명의 실시예에 따른 하이브리드 스토리지 시스템(100)의 기능을 보다 상세히 설명하기 위한 용어를 정리하면 다음과 같다.
노드 유효성(node availability)은 주어진 시간 동안 클라우드 스토리지의 서버 또는 P2P 스토리지의 피어 상에 저장된 데이터를 되찾을 수 있는 확률을 의미할 수 있다. 여기서, 노드는 클라우드 스토리지의 서버 또는 P2P 스토리지의 피어들을 의미할 수 있다.
노드 유효성을 계산하는 과정을 설명한다. P2P 스토리지에서 시스템 내에 존재할 피어의 생존 시간은 스토리지 시스템 내에 머문 시간에 의존한다. 따라서 피어의 유효성은 다음의 수학식 1과 같이 계산된다
Figure 112014064091425-pat00007
수학식 1에서,
Figure 112014064091425-pat00008
는 피어가 앞으로 스토리지 시스템 내에 존재할 시간을 나타낸다. 따라서, 수학식에 따른 노드 유효성은
Figure 112014064091425-pat00009
시간 동안 스토리지 시스템에 머문 i번째 피어가
Figure 112014064091425-pat00010
시간 이상 스토리지 시스템에 존재할 확률을 나타낼 수 있다. 여기서, 랜덤 변수
Figure 112014064091425-pat00011
는 파레토 분포(Pareto distribution)로 모델링될 수 있다.
다음으로, 시스템 신뢰성(system reliability)은 성공적인 파운틴 디코딩을 위해 요구되는 부호화 심볼 개수 이상을 획득할 확률을 의미할 수 있다.
시스템 신뢰성을 계산하는 과정을 설명한다. 노드 유효성을 기반으로 하이브리드 스토리지 시스템(100)의 신뢰성 정도를 계산할 수 있다. 시스템 신뢰성의 계산을 위하여 다음의 수학식 2 및 수학식 5와 같은 두 가지 매트릭스를 정의할 수 있다.
Figure 112014064091425-pat00012
수학식 2는 노드 조합 매트릭스(node combination matrix)를 나타낸다.
수학식 2에 따른 노드 조합 매트릭스는 노드 상태 벡터(
Figure 112014064091425-pat00013
)를 원소로 가진다.
노드 상태 벡터는 다음의 수학식 3과 같이 표현될 수 있다.
Figure 112014064091425-pat00014
Figure 112014064091425-pat00015
이며,
Figure 112014064091425-pat00016
은 사용자에 제공되는 피어들의 초기 집합을 의미할 수 있다.
수학식 2에 따르면, 노드 상태 벡터에 상응하는 원소의 값은 주어진
Figure 112014064091425-pat00017
시간 동안 클라우드 스토리지의 서버 또는 P2P 스토리지의 피어에 접근 가능할 경우 1로 설정되고, 그렇지 않은 경우 0으로 설정될 수 있다.
수학식 5는 이벤트 확률 매트릭스(event probability matrix)를 나타낸다.
Figure 112014064091425-pat00018
수학식 5에서, 각각의 원소는 다음의 수학식 6 내지 8에 의해 정의될 수 있다.
Figure 112014064091425-pat00019
Figure 112014064091425-pat00020
Figure 112014064091425-pat00021
수학식 5의 각각의 원소 값들은 수학식 7 및 수학식 8에 의해 산출되는 확률값을 나타낼 수 있다.
수학식 7 및 수학식 8에서
Figure 112014064091425-pat00022
는 내적을 나타내고,
Figure 112014064091425-pat00023
의 모든 원소를 곱한값은 노드 상태 벡터가
Figure 112014064091425-pat00024
인 경우에
Figure 112014064091425-pat00025
이상의 부호화 심볼을 획득할 확률을 나타낸다. 여기서,
Figure 112014064091425-pat00026
는 패킷 내에 포함되는 부호화 심볼의 개수를 나타내고,
Figure 112014064091425-pat00027
은 소스 심볼을 성공적으로 복구하기 위해 필요한 부호화 심볼의 개수를 나타낼 수 있다.
따라서, 시스템 신뢰성은 다음의 수학식 9와 같이 이벤트 확률 매트릭스의 원소값을 이용하여 나타낼 수 있다.
Figure 112014064091425-pat00028
마지막으로, 데이터 복구율(data retrievability)는 사용자가 오류없이 하이브리드 스토리지 시스템(100)에 저장된 자신의 데이터를 복구할 확률을 의미할 수 있다.
데이터 복구율을 계산하는 과정을 설명한다. 파운틴 인코딩에 의해 생성된 부호화 심볼 중 일부가 손실되었다 하더라도, 일정 수준 이상의 부호화 심볼을 되찾았을 경우에는, 정해진 확률로 원래의 소스 심볼을 복구할 수 있다. 예를 들어, LT 디코딩 실패율 (
Figure 112014064091425-pat00029
)과 소스 심볼의 개수 (
Figure 112014064091425-pat00030
) 및
Figure 112014064091425-pat00031
개의 소스 심볼들을 성공적으로 복구하기 위해 요구되는 부호화 심볼들의 개수 (
Figure 112014064091425-pat00032
) 사이의 관계는 다음의 수학식 10에 의해 정의될 수 있다.
Figure 112014064091425-pat00033
수학식 10에서,
Figure 112014064091425-pat00034
는 robust solution 분포의 변수를 의미하는 것으로, 작은 실수의 값일 수 있다.
수학식 10에 따르면, 사용자 측에서 소스 심볼들의 개수 보다 약간 더 많은 수의 부호화 심볼들을 통해 높은 성공 확률로 모든 소스 심볼들을 원활히 복구할 수 있다.
데이터 복구율은 다음의 수학식 11에 의해 계산될 수 있다
Figure 112014064091425-pat00035
즉, 수학식 11은 되찾은 부호화 심볼들로부터 에러없이 원래의 소스 심볼을 성공적으로 복구할 확률을 나타낸다.
다음의 수학식 12에 따르면, 본 발명의 실시예에 따른 하이브리드 스토리지 시스템(100)의 변수 제어부(120)는 데이터 복구율이 미리 설정된 기준(
Figure 112014064091425-pat00036
) 이상이 되도록 패킷 분산 벡터를 결정할 수 있다. 여기서,
Figure 112014064091425-pat00037
는 스토리지 시스템이 요구하는 최소한의 데이터 복구율을 의미할 수 있다. 즉, 변수 제어부(120)는 데이터 복구율이 미리 설정된 기준 이상이 되도록 패킷 분배 벡터를 결정할 수 있다.
상세하게는, 데이터 복구율은 디코딩 실패율과 시스템 신뢰성에 기반하여 산출되고, 디코딩 실패율은 소스 심볼의 개수와 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수에 기반하여 산출될 수 있다. 여기서, 시스템 신뢰성은 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수 이상의 심볼을 획득하는 확률을 의미할 수 있다.
Figure 112014064091425-pat00038
또한, 변수 제어부(120)는 전송 시간(
Figure 112014064091425-pat00039
)을 최소화시키도록 패킷 분산 벡터를 결정할 수 있다.
더 나아가, 변수 제어부(120)는 다음의 수학식 13을 만족하도록 하여 클라우드 스토리지의 서버와 P2P 스토리지의 피어들에게 원래 소스 심볼의 개수 이하로 부호화 심볼 개수를 저장함으로써 사용자의 데이터 프라이버시를 보장하도록 할 수 있다.
Figure 112014064091425-pat00040
수학식 13에서,
Figure 112014064091425-pat00041
는 i번째 피어에 남아있는 스토리지 공간을 나타내고,
Figure 112014064091425-pat00042
은 심볼 사이즈를 나타내며,
Figure 112014064091425-pat00043
는 패킷에 포함되는 부호화 심볼의 개수를 나타낼 수 있다.
수학식 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>
패킷의 간격 개수
Figure 112014064091425-pat00044
Figure 112014064091425-pat00045
으로 설정할 수 있다. 여기서
Figure 112014064091425-pat00046
은 0과
Figure 112014064091425-pat00047
사이의 정수일 수 있다.
모든
Figure 112014064091425-pat00048
에 대해
Figure 112014064091425-pat00049
,
Figure 112014064091425-pat00050
Figure 112014064091425-pat00051
으로 초기화할 수 있다.
그 후에 다음의 수학식 14에 따라 나머지 패킷의 간격을 결정할 수 있다.
Figure 112014064091425-pat00052
수학식 14에서
Figure 112014064091425-pat00053
는 i 번째 피어에 전송될 패킷의 개수를 나타내고,
Figure 112014064091425-pat00054
는 예외적으로 클라우드 스토리지의 서버에 할당되는 패킷의 수를 나타낸다.
<단계 2>
Figure 112014064091425-pat00055
가 상기 단계 1에서 얻어진 전송 시간을 최소화하는 최적의 패킷 분배 벡터라 하자. 최소점
Figure 112014064091425-pat00056
과 최대점
Figure 112014064091425-pat00057
은 각각
Figure 112014064091425-pat00058
Figure 112014064091425-pat00059
의해서 갱신될 수 있다. 만약
Figure 112014064091425-pat00060
가 0 또는
Figure 112014064091425-pat00061
일 경우
Figure 112014064091425-pat00062
은 1로 설정되고, 그렇지 않은 경우에
Figure 112014064091425-pat00063
는 2로 설정될 수 있다.
<단계 3>
Figure 112014064091425-pat00064
이 될때 까지 상기의 단계 1 및 단계 2를 반복할 수 있다.
도 2(a)는 k=1인 경우, 도 2(b) 및 도 2(c)는 k=2인 경우, 도 2(d)는 k=3인 경우까지 단계 1 및 단계 2가 반복 수행된 경우를 나타낸다.
<단계 4>
최종적으로, 파일(데이터)의 첫 번째 소스 블록을 전송하기 위해 현재의 패킷 분배 벡터(
Figure 112014064091425-pat00065
)가 결정되고 파운틴 코드율은 다음의 수학식 15에 의해 결정될 수 있다.
Figure 112014064091425-pat00066
다음으로, 전송 과정 중 시변하는 네트워크 환경에 적절히 대응하기 위해 첫 번째 소스 블록을 제외한 나머지 소스 블록들의 전송 과정은 다음과 같다.
<단계 1>
나머지 블록을 전송하기 위해 이용 가능한 대역폭 벡터(
Figure 112014064091425-pat00067
)를 측정한다.
<단계 2>
대역폭에 변화가 발생하는지 확인한다. 만약 사용자와 서버 또는 피어 사이에 대역폭이 감소할 경우 대역폭의 감소량보다 추가된 피어들의 대역폭 총 합이 커질 때까지 추가 피어 집합 (
Figure 112014064091425-pat00068
)에 포함된 피어를 초기 피어 집합 (
Figure 112014064091425-pat00069
)에 추가할 수 있다.
<단계 3>
초기 피어 집합에 추가된 피어와 대역폭 감소를 나타낸 피어들에 기반하여 패킷 분배 벡터를 재결정 과정을 수행할 수 있다.
<단계 4>
모든 블록들이 전송될 때까지 상기 단계 1 내지 단계 3을 반복하여 수행할 수 있다.
도 3은 본 발명의 실시예에 따른 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법을 설명하기 위한 흐름도이다.
도 3을 참조하여 하이브리드 스토리지 시스템(100)을 통하여 클라우드 스토리지의 서버 또는 P2P 스토리지의 피어에 데이터를 전송 또는 업로드하는 과정을 설명한다. 즉, 본 발명의 실시예에 따른 하이브리드 스토리지 시스템(100)을 이용한 데이터 전송 방법은 상술한 패킷 분산 벡터의 결정 및 재결정 과정을 통하여 수행될 수 있다.
본 발명의 실시예에 따르면, 하이브리드 스토리지 시스템(100)을 이용하여 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 데이터를 분산 또는 업로드할 수 있다.
먼저, 서버와 피어의 대역폭에 대한 정보를 획득할 수 있다(S310).
대역폭에 대한 정보에 기반한 패킷 분배 백터를 결정하기 위하여 최소 패킷의 개수(
Figure 112014064091425-pat00070
), 최대 패킷의 개수(
Figure 112014064091425-pat00071
) 및 패킷 간격의 개수(
Figure 112014064091425-pat00072
)를 초기화할 수 있다(S320).
데이터 복구율 및 서버와 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 대역폭에 대한 정보에 기반하여 산출할 수 있다(S330).
상세하게는, 데이터 복구율은 디코딩 실패율과 시스템 신뢰성에 기반하여 산출되고, 디코딩 실패율은 소스 심볼의 개수와 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수에 기반하여 산출될 수 있다. 여기서, 시스템 신뢰성은 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수 이상의 심볼을 획득하는 확률을 의미할 수 있다.
데이터 복구율 및 전송 시간이 미리 설정된 기준을 만족하는지 판단할 수 있다(S340). 데이터 복구율 및 전송 시간이 미리 설정된 기준을 만족하는 경우, 해당 패킷 분배 벡터를 결정할 수 있다(S350). 또한, 데이터 복구율 및 전송 시간이 미리 설정된 기준을 만족하지 않는 경우, 다시 초기 단계(S310)로 넘어갈 수 있다.
또한, 대역폭에 대한 정보가 변경되었는지 확인할 수 있다(S360). 대역폭에 대한 정보가 변경되었다면, 변경된 대역폭에 대한 정보가 반영되도록 패킷 분배 벡터를 재결정할 수 있다(S370). 여기서, 재결정은 첫번째 소스 블록을 제외한 나머지 소스 블록을 전송하기 위해 수행될 수 있다. 예를 들어, 서버와 피어의 대역폭이 감소된 경우, 대역폭의 감소량 보다 추가될 피어의 대역폭의 합이 커지도록 피어를 추가하고, 추가된 피어를 고려하여 패킷 분배 벡터를 재결정할 수 있다.
마지막으로, 패킷 분배 백터에 따라 서버와 피어에 데이터를 분산하여 전송할 수 있다(S380). 또한, 패킷 분배 벡터에 기반하여 결정된 파운틴 코딩율에 따라 데이터를 부호화하여 전송할 수 있다. 여기서, 패킷 분배 백터에 따라 서버와 피어에 데이터를 분산하여 전송하는 과정은 모든 소스 블록에 대한 전송이 완료될 때까지 반복하여 수행될 수 있다.
더 나아가, 사용자가 저장된 자신의 데이터를 되찾기 위한 부호화 심볼의 다운로드 과정은 다음과 같다.
사용자가 자신의 데이터를 되찾고자 할 경우 업로드 시에 부호화 심볼을 저장한 피어 정보를 기반으로 서버 또는 피어들에 저장된 부호화 심볼의 다운로드를 요청할 수 있다. 이러한 경우, 다수의 피어들과 서버에게 동시에 부호화 심볼을 다운로드 받게되며, 복구 가능한 양의 부호화 심볼이 다운로드 되면 해당 블록의 부호화 심볼 다운로드를 종료하고 다음 블록에 대한 부호화 심볼에 대해 다운로드를 시작할 수 있다. 따라서, 모든 부호화 심볼을 다운로드하여 복호화함으로써, 자신의 데이터를 획득할 수 있다.
본 발명의 실시예에 따르면, 클라우드 스토리지 시스템과 P2P 스토리지 시스템을 결합한 하이브리드 클라우드 스토리지 시스템 상에서 사용자 데이터의 프라이버시 문제를 해결하고 데이터 복구율을 향상시킴과 동시에 최소한의 전송 시간으로 데이터를 저장할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 하이브리드 스토리지 시스템 110: 노드 관리부
120: 변수 제어부 130: 인코딩부
140: 스케쥴러

Claims (17)

  1. 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 대한 대역폭을 측정하는 노드 관리부;
    상기 서버와 상기 피어에 분산될 데이터의 단위를 결정하는 패킷 분배 벡터와 상기 서버와 상기 피어에 저장될 데이터에 대한 인코딩을 결정하는 파운틴 코딩율을 산출하는 변수 제어부;
    상기 서버와 상기 피어에 저장될 데이터에 상기 파운틴 코딩율에 따른 파운틴 인코딩을 수행하는 인코딩부; 및
    상기 측정된 대역폭에 기반하여 상기 서버와 상기 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 산출하고, 상기 전송 시간에 대한 정보를 상기 변수 제어부에 전달하는 스케쥴러를 포함하는, 하이브리드 스토리지 시스템.
  2. 청구항 1에 있어서,
    상기 패킷 분배 벡터는,
    상기 서버와 상기 피어에 분산될 부호화 심볼을 포함하는 패킷의 개수를 나타내는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
  3. 청구항 1에 있어서,
    상기 변수 제어부는,
    상기 측정된 대역폭에 변화가 발생하는 지 확인하여 상기 서버와 상기 피어의 대역폭이 감소된 경우, 대역폭의 감소량 보다 추가될 피어의 대역폭의 합이 커지도록 피어를 추가하고, 상기 추가된 피어를 고려하여 상기 패킷 분배 벡터를 재산출하는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
  4. 청구항 1에 있어서,
    상기 변수 제어부는,
    데이터 복구율 및 상기 전송 시간이 미리 설정된 기준을 만족하도록 상기 패킷 분배 벡터를 결정하는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
  5. 청구항 4에 있어서,
    상기 데이터 복구율은 디코딩 실패율과 시스템 신뢰성에 기반하여 산출되고,
    상기 디코딩 실패율은 소스 심볼의 개수와 상기 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수에 기반하여 산출되며,
    상기 시스템 신뢰성은 상기 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수 이상의 심볼을 획득하는 확률인 것을 특징으로 하는, 하이브리드 스토리지 시스템.
  6. 청구항 5에 있어서,
    상기 변수 제어부는,
    상기 피어에 남아있는 스토리지 공간 및 상기 피어에 저장되어 있는 패킷에 포함되는 부호화 심볼의 개수에 기반하여 상기 서버와 상기 피어에 상기 소스 심볼의 개수 보다 작은 부호화 심볼이 저장되도록 상기 패킷 분배 벡터를 결정하는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
  7. 청구항 1에 있어서,
    상기 인코딩부는,
    LT 인코딩을 수행하는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
  8. 청구항 1에 있어서,
    상기 스케쥴러는,
    상기 파운틴 코딩율에 의해 인코딩된 부호화 심볼을 상기 패킷 분배 벡터에 따라 상기 서버와 상기 피어에 전송하는 것을 특징으로 하는, 하이브리드 스토리지 시스템.
  9. 하이브리드 스토리지 시스템을 이용하여 클라우드 스토리지의 서버와 P2P 스토리지의 피어에 데이터를 분산하는 방법에 있어서,
    상기 서버와 상기 피어의 대역폭에 대한 정보를 획득하는 단계;
    상기 대역폭에 대한 정보에 기반한 패킷 분배 백터를 결정하기 위하여 최소 패킷의 개수, 최대 패킷의 개수 및 패킷 간격의 개수를 초기화하는 단계;
    데이터 복구율 및 상기 서버와 상기 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 상기 대역폭에 대한 정보에 기반하여 산출하는 단계; 및
    상기 데이터 복구율 및 상기 전송 시간이 미리 설정된 기준을 만족하도록 상기 패킷 분배 벡터를 결정하는 단계를 포함하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
  10. 청구항 9에 있어서,
    상기 패킷 분배 백터에 따라 상기 서버와 상기 피어에 데이터를 분산하여 전송하는 단계를 더 포함하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
  11. 청구항 10에 있어서,
    상기 서버와 상기 피어에 데이터를 분산하여 전송하는 단계는,
    상기 패킷 분배 벡터에 기반하여 결정된 파운틴 코딩율에 따라 데이터를 부호화하여 전송하는 것을 특징으로 하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
  12. 청구항 9에 있어서,
    상기 데이터 복구율은 디코딩 실패율과 시스템 신뢰성에 기반하여 산출되고,
    상기 디코딩 실패율은 소스 심볼의 개수와 상기 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수에 기반하여 산출되며,
    상기 시스템 신뢰성은 상기 소스 심볼을 복원하기 위해 필요한 부호화 심볼의 개수 이상의 심볼을 획득하는 확률인 것을 특징으로 하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
  13. 청구항 9에 있어서,
    상기 패킷 분배 벡터를 결정하는 단계는,
    상기 대역폭에 대한 정보가 변경된 경우, 상기 변경된 대역폭에 대한 정보가 반영되도록 상기 패킷 분배 벡터를 재결정하는 단계를 더 포함하는 것을 특징으로 하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
  14. 청구항 13에 있어서,
    상기 패킷 분배 벡터를 결정하는 단계는,
    상기 서버와 상기 피어의 대역폭이 감소된 경우,
    대역폭의 감소량 보다 추가될 피어의 대역폭의 합이 커지도록 피어를 추가하고, 상기 추가된 피어를 고려하여 상기 패킷 분배 벡터를 재결정하는 것을 특징으로 하는, 하이브리드 스토리지 시스템을 이용한 데이터 전송 방법.
  15. 하이브리드 스토리지 시스템에 의해 수행되는 방법에 있어서,
    클라우드 스토리지의 서버와 P2P 스토리지의 피어에 대한 대역폭을 측정하는 단계;
    상기 서버와 상기 피어에 분산될 데이터의 단위를 결정하는 패킷 분배 벡터와 상기 서버와 상기 피어에 저장될 데이터에 대한 인코딩을 결정하는 파운틴 코딩율을 산출하는 단계;
    상기 서버와 상기 피어에 저장될 데이터에 상기 파운틴 코딩율에 따른 파운틴 인코딩을 수행하는 단계; 및
    상기 측정된 대역폭에 기반하여 상기 서버와 상기 피어에 데이터가 전송되는데 소요되는 시간인 전송 시간을 산출하는 단계를 포함하는, 데이터 분산 방법.
  16. 청구항 15에 있어서,
    상기 측정된 대역폭에 변화가 발생하는 지 확인하여 상기 서버와 상기 피어의 대역폭이 감소된 경우, 대역폭의 감소량 보다 추가될 피어의 대역폭의 합이 커지도록 피어를 추가하고, 상기 추가된 피어를 고려하여 상기 패킷 분배 벡터를 재산출하는 단계를 더 포함하는, 데이터 분산 방법.
  17. 청구항 15에 있어서,
    상기 파운틴 코딩율에 의해 인코딩된 부호화 심볼을 상기 패킷 분배 벡터에 따라 상기 서버와 상기 피어에 전송하는 단계를 더 포함하는, 데이터 분산 방법.
KR1020140085103A 2014-07-08 2014-07-08 P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법 KR101592727B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020140085103A KR101592727B1 (ko) 2014-07-08 2014-07-08 P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법
PCT/KR2015/001135 WO2016006783A1 (ko) 2014-07-08 2015-02-04 P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법
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 (1)

Application Number Priority Date Filing Date Title
KR1020140085103A KR101592727B1 (ko) 2014-07-08 2014-07-08 P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법

Publications (2)

Publication Number Publication Date
KR20160005947A KR20160005947A (ko) 2016-01-18
KR101592727B1 true KR101592727B1 (ko) 2016-02-12

Family

ID=55064391

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140085103A KR101592727B1 (ko) 2014-07-08 2014-07-08 P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법

Country Status (3)

Country Link
US (1) US20170206132A1 (ko)
KR (1) KR101592727B1 (ko)
WO (1) WO2016006783A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
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
KR102631351B1 (ko) * 2016-10-07 2024-01-31 삼성전자주식회사 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템
CA3203827A1 (en) 2020-12-30 2022-07-07 Jose R. ROSAS BUSTOS Systems and methods of creating and operating a cloudless infrastructure of computing devices

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935366B2 (en) * 2009-04-24 2015-01-13 Microsoft Corporation Hybrid distributed and cloud backup architecture
KR20110041222A (ko) * 2009-10-15 2011-04-21 엘지전자 주식회사 패킷화를 고려한 파운틴 코딩을 이용한 데이터 전송 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"A Fountain Codes-based Hybrid P2P and Cloud Storage System", ICT CONVERGENCE, 2013.10
"Hybrid P2P and Cloud Storage System Based on Fountain Codes", POSTECH OASIS REPOSITORY, 2013.
"시스템 안정성과 QoS를 고려한 파운틴 코드 기반의 P2P 스토리지 클라우드 시스템", 한국정보과학회 한국컴퓨터 종합학술대회 논문집 1249-1951쪽, 2014. 06

Also Published As

Publication number Publication date
WO2016006783A1 (ko) 2016-01-14
KR20160005947A (ko) 2016-01-18
US20170206132A1 (en) 2017-07-20

Similar Documents

Publication Publication Date Title
JP4726557B2 (ja) ネットワークコーディングを使用したコンテンツ配信
Xiang et al. Joint latency and cost optimization for erasurecoded data center storage
CN110929880A (zh) 一种联邦学习方法、装置及计算机可读存储介质
EP3197167B1 (en) Image transmission method and apparatus
US20180254982A1 (en) Communication Paths for Distributed Ledger Systems
JP2010537318A (ja) オンラインキャッシュ及びピア・ツー・ピア転送を用いるメディアストリーミング
KR101592727B1 (ko) P2p를 이용한 하이브리드 스토리지 시스템 및 이를 이용한 데이터 전송 방법
KR101817437B1 (ko) 데이터 전송의 제어 방법 및 장치
CN113692578A (zh) 具有动态范围的错误控制编码
US10216593B2 (en) Distributed processing system for use in application migration
CN114650277A (zh) 一种文件传输的控制方法及装置
JP5724154B2 (ja) データ配信システム、データ配信のためのデータ通信装置およびプログラム
US10409688B2 (en) System and method of using encryption algorithms in P2P encryption mode to restore integrity of data
CN114666318B (zh) 流媒体数据的下载方法、装置、电子设备及存储介质
CN108632066B (zh) 一种构建视频多播虚拟网的方法和装置
KR101758065B1 (ko) 부하분산 시스템, 그 제어방법 및 이를 수행하기 위한 기록매체
Gaidamaka et al. Simulation of buffering mechanism for peer-to-peer live streaming network with collisions and playback lags
US11201901B2 (en) Methods and systems for streaming media data over a content delivery network
Park et al. A novel hybrid P2P and cloud storage system for retrievability and privacy enhancement
JP5812424B2 (ja) コンテンツ配信システムの配信経路計算方法および装置
CN114448838A (zh) 系统可靠度评估方法
KR20170089256A (ko) 분산 파일 시스템 및 이의 데이터 내결함성 지원 방법
CN110636104A (zh) 一种资源请求方法、电子设备及存储介质
JP6410563B2 (ja) コンテンツ配信ネットワークの配信装置、転送装置、クライアント装置及びプログラム
CN114816257B (zh) 一种应用于移动分布式存储的数据布局方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee