KR20170010787A - 분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송 - Google Patents

분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송 Download PDF

Info

Publication number
KR20170010787A
KR20170010787A KR1020167034353A KR20167034353A KR20170010787A KR 20170010787 A KR20170010787 A KR 20170010787A KR 1020167034353 A KR1020167034353 A KR 1020167034353A KR 20167034353 A KR20167034353 A KR 20167034353A KR 20170010787 A KR20170010787 A KR 20170010787A
Authority
KR
South Korea
Prior art keywords
file
data
media content
fragments
storage nodes
Prior art date
Application number
KR1020167034353A
Other languages
English (en)
Other versions
KR101896048B1 (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 클라우드 크라우딩 코포레이션
Publication of KR20170010787A publication Critical patent/KR20170010787A/ko
Application granted granted Critical
Publication of KR101896048B1 publication Critical patent/KR101896048B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F17/30197
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • H04L1/0058Block-coded modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • 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
    • 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/1515Reed-Solomon codes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

개시된 내용은 분산된 저장 및 데이터의 분산에 관한 방법이다. 오리지널 데이터는 조각들로 분리되며 그리고 소거 코딩이 조각들 상에 수행된다. 분리된 조각들은 다수의 저장 매체들 상에 분산되어 저장되며, 상기 다수의 저장 매체들은 바람직하게는 지리적으로 서로 떨어져 있다. 데이터에 대한 액세스가 요청되는 경우, 상기 조각들이 네트워크를 통해 전송되며 그리고 오리지널 데이터로 재구성된다. 일부 실시예에서, 오리지널 데이터는 매체 콘텐트이며 이것은 상기 분산된 저장소로부터 사용자에게 스트리밍된다.

Description

분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송{DISTRIBUTED SECURE DATA STORAGE AND TRANSMISSION OF STREAMING MEDIA CONTENT}
관련 출원들의 상호 참조
본 출원은 2014년 5월 13일자로 출원된 "A Method for Data Storage" 라는 명칭의 미국 가출원(61/992,286) 및 2014년 9월 22일자로 출원된 "A Method for Media Streaming" 라는 명칭의 미국 가출원(62/053,255)의 우선권을 주장한다. 상기 미국 가출원들은 본 발명에 대한 참조로서 그 전체 내용이 본 명세서에 통합된다.
일반적으로, 본 발명의 주제는 보안 데이터(secure data) 저장 및 전송에 관련되며, 보다 상세하게는 매체 스트리밍 및 다른 어플리케이션들에서 사용하기 위한 분산된 보안 데이터 저장 및 전송에 관한 것이다.
정보 기술(IT)의 전경을 혁신하기 위한 클라우드의 약속은, 회사 자체의 데이터 센터 또는 로컬 네트워크 내에 이전에 보유되었던 하드웨어 리소스 및 소프트웨어 리소스 둘다가 제3자에 의해서 인터넷 상에서 호스팅되는 클라우드 서버들의 네트워크를 통해 이용가능해질 수 있으며, 따라서 회사들이 그들 자신의 공들인 IT 인프라스트럭처 및 데이터 센터들을 소유 및 관리할 필요성을 경감시킬 수 있다라는 전망에 기초한다. 하지만, 회사들이 그들의 데이터 저장소와 컴퓨팅 요구사항들을 이러한 제3자 "클라우드" 서버(들)로 이전할 만한 확신을 회사들에게 주기 위하여, 클라우드 서버들은 커스터머의 필요와 보안 우려들을 만족시킬 수 있는 소정 레벨의 성능, 데이터 보안, 쓰루풋(throughput) 및 사용 적합성 기준들(usability criteria)을 제공할 필요가 있다. 예를 들어, 저장 리소스들은, 기업 환경(enterprise space)에 클라우드 컴퓨팅의 전면적인 채용(full scale adoption)에 대해 병목으로 남는다. 현재의 클라우드-기반의 저장 리소스들은, 위험한 보안 취약성들, 이용가능성의 불확실성들, 및 과도한 비용을 포함하는 심각한 성능 우려들로 인해 고통을 받을 수 있다. 클라우드-기반의 저장소 또는 스토리지 에즈 어 서비스(Storage as a Sservice: StAAS)는 클라우드 내에 가상 "저장 디바이스" 를 반드시 생성해야 하며, 이는 회사의 데이터 센터 내에서 발견되는 현재의 인-하우스 저장 능력과 경쟁할 수 있다.
현재의 클라우드-기반의 저장 솔루션들은 대부분 통상적인 파일 저장(CIFS, NFS) 기술에 기초하며, 여기서에서는 전체 파일들 및 파일들의 그룹들이 하나의 물리적인 서버 위치에 저장된다. 이러한 접근법은 인터넷 상에서 찾아볼 수 있는 통상적인 통신 조건들 하에서, 납득할만한 데이터 전송 속도를 제공할 수 없다. 대기 시간(latency)은 열악하며, 그리고 최종-사용자 혹은 소비자는 최적으로 설계된 클라우드 어플리케이션들에서 조차도 성능 절벽을 경험할 수 있다. 또한, 대용량 데이터의 전송은 과도한 분량의 시간이 걸릴 수 있어, 비현실적이다. 예를 들어, 현재의 기술들을 이용하여 클라우드를 통해 1 Tb의 데이터를 전송하는 경우, 전송이 완료되기까지 수 주일이 요구될 수 있다.
클라우드 저장소에는, 완전한 파일들이 단일 위치에 저장되며, 그리고 상기 클라우드 저장소는 민감한 회사 정보에 관심있어하는 해커들에게 감질하는 타겟을 제공한다. 기업 데이터 센터의 보안 절차들의 설계에 쏟아붓는 모든 노력들은, 인터넷을 통해 작업하는 한명의 해커에 의해서 덧없이 사라질 수도 있다. 따라서, 클라우드-기반의 저장 시스템의 보안성을 증가시키는 것이 매우 바람직하다.
클라우드 저장 솔루션들은 또한, "운전정지(outages)"에 매우 취약한바, 운전정지는 기업 클라이언트와 그의 클라우드 저장 서버 사이의 인터넷 통신의 통신 두절을 유발할 수 있다. 이러한 운전정지는 지속기간이 다양하며, 그리고 예컨대, 서비스 거부(denial of service: DOS) 공격의 경우에는 매우 길어질 수도 있다. 이러한 운전정지 동안에 운영을 멈추어야만 한다면, 기업은 심각한 피해를 입을 수도 있다.
또한, 전체 파일들이 하나의 서버 위치에 저장되는 것에 기초하는 클라우드 저장 솔루션들은 만일, 서버 위치가 위태롭다면, 재해 복구(disaster recovery)를 잠재적으로 위험하게 만들 수 있다. 만일, 동일한 물리적인 서버 위치에서 복사본(replication)과 백업(backup)이 관리된다면, 고장 및 재해 복구의 문제점은, 대용량 데이터 손실이라는 실제적인 위험을 기업에 부과할 수 있다.
현재 기술에 따른 클라우드 저장 솔루션은, 저장된 기업 데이터의 안전을 보장하기 위하여, 완전한 복사본 및 백업의 저장 오버헤드를 필요로 한다. 통상적인 현재의 클라우드 저장 기술 셋업들은, 저장된 데이터의 800% 까지의 리던던시를 요구한다. 이러한 대규모의 필수 데이터 리던던시는, 클라우드 내에서 저장 용량을 유지하기 위하여 엄청난 비용 부담을 추가한다. 이러한 리던던시에 대한 요구는, 비용을 증가시킬 뿐만 아니라, 데이터 보안에 대한 새로운 문제점들을 야기한다. 또한, 모든 이러한 리던던시는, 클라우드 서버들이 모든 서버 데이터 트랜잭션에서 복사본을 지속적으로 사용하기 때문에, 성능 저하를 야기할 수 있다.
높은 데이터 처리량을 관리할 수 있는 능력을 인터넷 연결들이 개선시켜 왔기 때문에, 매체 스트리밍은, 불법 복제의 위험을 감소시키는 방식으로, 매체 콘텐트(예컨대, 비디오 및 음악)을 제공하는 가장 인기있는 방식이 되어가고 있다. 클라우드 저장은 많은 매체 콘텐트 스트리밍 체계들에서 매우 중요한 역할을 수행한다. 전형적으로, 매체 콘텐트는 회사의 웹 서버 상에 상주한다. 사용자에 의해서 요청되면, 매체 콘텐트는 연속적인 데이터 세그먼트들의 꾸준한 흐름(steady stream)으로서 인터넷을 통해 스트리밍되며, 데이터 세그먼트들은 매체 파일의 다음 세그먼트를 디스플레이하기 위한 시간에 맞춰서 클라이언트에 의해서 수신되는바, 오디오 또는 비디오의 매끄러운(seamless) 재생처럼 보이는 것을 사용자에게 제공할 수 있다.
현재의 매체 스트리밍 기술은 매체 파일들을, 세그먼트된 데이터 스트림으로서, 웹 서버들을 통해, 압축된 형태로 전송하는 개념에 기반하며, 세그먼트된 데이터 스트림은 연속 재생을 제공하도록 매체 파일의 다음 세그먼트를 디스플레이하기 위한 시간에 맞춰서 클라이언트에 의해서 수신된다. 몇몇 경우들에 있어서, 데이터 전송 속도는 데이터가 재생되는 속도를 초과하며 그리고 여분의 데이터는 후속 사용을 위해 버퍼링된다. 데이터 전송 속도가 데이터 재생 속도보다 느리다면, 매체의 다음 세그먼트를 재생하는데 필요한 데이터를 클라이언트가 모으는 동안, 재생이 중단될 것이다. 스트리밍 매체 기법의 장점들은, 대용량 매체 파일 전체(예컨대, 영화 한편 전체)를 다운로드하기 위해 클라이언트가 대기할 필요가 없다는 사실 및 주문형 다운로드 성질(on-demand download nature)은 클라이언트에 의한 매체 콘텐트의 비인가 복제를 방지하는 디지털 저작권 관리(Digital Rights Management: DRM) 체계를 프로세스하는데 적합하다는 사실에서 찾아볼 수 있다.
현재의 매체 스트리밍 기술은 전체 매체 파일의 완전한 카피를 웹 서버 또는 매체 서버에 저장하며, 클라이언트는 데이터 스트림을 수신하기 위하여 상기 웹 서버 또는 매체 서버에 접속한다. 전송 프로세스 동안의 데이터 손실들은, 전송 프로세스를 쉽게 중단시킬 수 있으며 그리고 클라이언트 상에서의 매체 콘텐트의 재생을 정지시킬 수 있다. 이러한 문제들을 방지하기 위하여, 종래의 기술에서는 다수의 서버 노드들 상에 동일한 매체 파일을 배치시킬 것이며 그리고 전 세계에 걸쳐서 다수의 데이터 센터들(이들이 공적이건 사적이건 간에)을 배치시킬 것인바, 따라서 사용자는 그들 인근의 서버 노드에 접속할 수 있다. 비록, 이러한 것이, 연결 문제들로 인한 데이터 패킷 손실들에 직면하여 꾸준한(stady) 데이터 전송 속도를 확보하기 위하여 필요한 것이기는 하지만, 동일한 파일의 다수의 카피들을 전 세계에 걸쳐있는 수 많은 서버들 상에 배치하는 것은, 매체 스트리밍 제공자에게 큰 부담을 줄 수 있다.
본 발명의 주제는, 전술한 하나 이상의 문제점들을 완화 및/또는 극복하는 것이며, 보다 상세하게는, 매체 스트리밍 및 다른 어플리케이션들에서 이용되기 위한 보다 안전한 데이터 저장 및 전송 방법을 제공하는 것이다.
본 개시 내용의 간략한 요약
본 명세서에는 매체 스트리밍의 요구들에 특히 적합한, 안전한 분산된 데이터 저장을 위한 방법 및 시스템이 개시된다.
특정한 데이터 저장 실시예는 매체 데이터 파일을 다수의 개별 조각들로 분리시키고, 이들 개별 조각들을 소거 코딩하고, 그리고 이들 조각들을 다수의 저장 유닛들 상에 분산시키는 것을 포함하며, 여기서 그 어떤 저장 유닛도 데이터 파일을 재구성하기에 충분한 데이터를 갖지 않는다. 맵이 생성되며, 상기 맵은 데이터 파일의 개별 조각들 각각이 어떤 저장 유닛에 저장되어 있는지를 나타낸다. 특히, 고유 식별자가가 개별 조각들 각각에 부여되며 그리고 고유 식별자들의 맵이 이용되어 상기 데이터 파일의 재조립을 가능케한다.
다른 실시예에서, 본 명세서에 개시된 데이터 저장 기법은 데이터 파일을 슬라이스들로 분리시키고, 각각의 슬라이스에 고유 식별자를 부여하고, 재조립을 가능케하도록 상기 고유 식별자들에 대한 맵을 생성하고, 각각의 슬라이스를 개별 슬라이스 조각들로 쪼개고, 슬라이스 조각들을 소거 코딩하고, 상기 조각들을 다수의 저장 유닛들 상에 분산시키고, 여기서 그 어떤 저장 유닛도 데이터 파일을 재구성하기에 충분한 데이터를 갖지 않으며, 그리고 어떤 저장 유닛들이 어떤 조각들을 갖고 있는지에 대한 맵을 생성하는 것을 포함한다.
데이터 보안 및 패킷 손실 완화라는 2개의 목표들은 개시된 바와 같은 소거 코딩 프로세스에 의해서 해결될 수 있다. 먼저, 데이터는 소거 코딩 프로세스 동안에 식별할 수 없는 조각들로 코딩되며, 이에 의해서 높은 정도의 보안성이 제공된다. 두번째로, 소거 코딩된 데이터는 데이터 손실의 경우 에러 정정을 제공한다. 비록, 소거 코딩이 데이터의 양을 증가시키지만, 데이터 사이즈에 있어서의 증가 보다 적은 데이터 손실들이 수용 및 복원될 수 있다. 특히, 본 발명의 바람직한 실시예에 따라 저장되는, 프로세싱된 그리고 소거 코딩된 데이터는 오리지널 데이터의 임의의 복제본들을 포함하지 않으며, 따라서 보안성을 크게 강화시킬 수 있다.
일실시예에서, 스트리밍 매체 콘텐트를 저장하기 위한 방법은, 디지털 매체 콘텐트 파일을 개별적인 피스들(pieces) 또는 조각들로 분리시키고, 이들 개별 조각들을 소거 코딩하고, 그리고 이들 개별 조각들을 다수의 저장 유닛들 상에 분산시키는 것을 포함하며, 여기서 그 어떤 저장 유닛도 매체 콘텐트를 재구성하기에 충분한 데이터를 갖지 않는다. 바람직한 실시예에서, 맵이 생성되며, 상기 맵은 개별 조각들 각각이 어떤 저장 유닛에 저장되어 있는지를 상세히 나타낸다. 고유 식별자가가 매체 콘텐트의 개별 조각들 각각에 부여되며 그리고 고유 식별자들의 맵이 이용되어 매체 콘텐트의 재조립을 가능케한다. 예를 들어, 상기 맵은 매체 파일을 재구성하기 위하여 클라이언트 디바이스에 의해서 사용될 수 있으며 그리고 브라우저 혹은 다른 것들인 클라이언트 디바이스 상에서 매체 콘텐트의 재생을 허용한다.
다른 실시예에서, 데이터 저장 방법은, 데이터 파일을 슬라이스들로 분리시키고, 각각의 슬라이스에 고유 식별자를 부여하고, 상기 고유 식별자들에 대한 맵을 생성하고, 슬라이스들을 개별 피스들 혹은 조각들로 쪼개고, 개별 조각들을 소거 코딩하고, 상기 개별 조각들을 다수의 저장 유닛들 상에 분산시키고, 여기서 그 어떤 저장 유닛도 데이터 파일을 재구성하기에 충분한 데이터를 갖지 않으며, 그리고 개별 조각들 각각이 어떤 저장 유닛들에 저장되어 있는지를 나타내는 맵을 생성하는 것을 포함한다. 디코딩은, 스트리밍된 매체 파일의 재생 및/또는 추가적인 저장을 허용하도록, 상기 맵들을 이용하여 클라이언트 디바이스 상에서 수행된다.
전술한 요약, 바람직한 실시예들, 및 본 발명의 다른 양상들은 첨부된 도면들과 함께, 특정 실시예들에 대한 다음의 상세한 설명들을 참조하여 가장 잘 이해될 것이다.
도1은 예시적인 저장 시스템의 3개의 계층들(layers)에 대한 개략도이다.
도2는 예시적인 실시예에 따른 파일 프로세싱의 다양한 단계들을 도시한 도면이다.
도3a 및 도3b는 예시적인 실시예에 따라 파일 프로세싱 동안에 수행되는 다양한 단계들을 예시한 차트이다.
도4a는 예시적인 실시예에 따른 파일 프로세싱의 제 1 섹션의 도면이다.
도4b는 예시적인 실시예에 따라, 분산(dispersal)을 위해 슬라이스 조각들(slice fragments)을 생성하기 위한 파일 슬라이스들의 소거 코딩을 도시한 도면이다.
도5는 예시적인 실시예에 따라, 파일을 데이터 저장 노드들에 업로드하는 프로세스를 예시한 상세 도면이다.
도6a 및 도6b는 예시적인 실시예에 따라, 데이터 저장소로부터 클라이언트에게 데이터를 다운로드하는 프로세스 동안에 수행되는 다양한 세부 단계들의 차트이다.
도7a는 예시적인 실시예에 따라, CSP에 대해 수행되는 클라이언트 다운로드 요청에 대한 도면이다.
도7b는 예시적인 실시예에 따라, 슬라이스 조각들에 대한 요청의 도면이다.
도8은 파일 다운로드 프로세스 동안의 CSP, FED 및 SNN 사이의 상호작용에 대한 상세 도면이다.
도9는 예시적인 실시예에 따른 데이터 가비지 수집 프로세스에 대한 도면이다.
도면들에서 유사한 참조번호들 및 명명들은 유사한 구성요소들을 나타낸다.
본 명세서에는 매체 파일들을 스트리밍하기 위한 클라우드 저장 기술이 개시되는데, 이는 각각의 데이터 파일을 파일 슬라이스 조각들(file slice fragments)로 부수며, 이는 바람직하게는 서로 다른 지리적 위치들 사이에 분산된다. 일실시예에서, 클라이언트 기업 매체 데이터는 객체 저장 기술을 이용하여 파일 슬라이스 조각들로 분해된다. 결과적인 이러한 모든 파일 슬라이스 조각들은 일련의 클라우드 서버들로 분산되기 전에, 소거 코딩(erasure coding)을 이용하여 암호화되며, 그리고 에러 정정에 대해 최적화된다. 이것은, 클라우드 내에 가상의 "데이터 디바이스"를 생성한다. 클라우드 내에서 데이터 저장에 이용되는 서버들은 데이터 쓰루풋의 속도 및 데이터 보안과 신뢰성 둘다를 최적화시키기 위하여, 클라이언트에 의해서 선택될 수 있다. 검색(retrieval)의 경우, 암호화되고 분산된 파일 슬라이스 조각들이 검색되며 그리고 클라이언트의 요청시에 오리지널 파일로 재건(rebuild)된다. 이러한 분산 접근법은 "가상 하드 드라이브" 디바이스를 생성하는바, 가상 하드 드라이브 디바이스에서 매체 파일은 하나의 물리적인 디바이스에 저장되는 것이 아니라, 클라우드 내의 일련의 물리적인 디바이스들 사이에 분산되며, 이들 각각은 파일의 암호화된 "조각들" 만을 오직 포함한다. 파일을 이동(moving), 삭제, 판독, 혹은 편집(edit)하기 위해서 파일에 액세스하는 것은, 파일 조각들을 실시간으로 빨라 재조립(reassemble)함으로써 성취된다. 이러한 접근법은 데이터 전송 속도 및 액세스 속도, 데이터 보안 및 데이터 이용가능성에 있어서 다양한 향상들을 제공할 수 있다. 이것은 또한, 기존의 하드웨어 및 소프트웨어 인프라스트럭처를 이용할 수 있으며 그리고 저장 기술 분야에 실질적인 비용 감소를 제공할 수 있다.
특히, 스트리밍 매체 데이터를 포함하는 데이터를 클라우드 서버들 상에 분산시켜 저장하는 것은, 하나의 특별히 유용한 어플리케이션이지만, LAN 혹은 WAN 등의 임의의 가능한 통신 기법들에 의해서 연결될 수 있는 다수의 저장 디바이스들 상에 데이터가 저장되는 구성들에도 동일한 기술이 적용될 수 있다. 본원에 개시된 기술의 속도 및 보안 이점들은, 최종적인 저장 디바이스들이 다수의 물리적인 하드 디스크들 또는 다수의 가상 하드 디스크들인 정보 기술(IT) 데이터 센터의 디바이스들 내에서도 유지될 수 있다. IT 사용자는 고속 LAN에 의해서 연결되며 회사(company) 전체에서 이용가능한 모든 저장 디바이스들을 사용하도록 선택할 수 있다. 다수의 저장 디바이스들은 심지어 사이버 공간의 다수의 개별 사용자들에 걸쳐 분산될 수도 있으며, 파일들은 네트워크에서 이용가능한 다수의 물리적 또는 가상의 하드 디스크들에 저장된다. 각각의 경우에서, 시스템에서의 데이터 전송 속도 및 데이터 저장소의 보안은 크게 향상된다.
본 명세서에 개시된 주제의 사용예들은, 백업 또는 재해 복구 목적인, 제2의 데이터 저장소를 포함한다. 개시된 주제는 또한, 서버-측 프로세싱이 없이 파일들이 액세스될 수 있는 주요 저장 요구들(primary storage needs)에도 적용될 수 있다. 일부 실시예들에서, 이것은 매체 콘텐트의 저장을 포함하는데, 상기 매체 콘텐트는 인터넷을 통한 스트리밍에 이용될 수 있는 비디오 혹은 오디오 콘텐트를 포함하지만, 이에 한정되는 것은 아니다.
데이터 저장 어드밴티지(Data Storage Advantages)
개시된 저장 기술은 기존 시스템들 대비 다양한 장점들을 제공한다. 이들 장점들은 다음과 같다:
A. 데이터 전송 속도
기존의 클라우드 저장 기술과 비교하면, 개시된 실시예들은 전형적인 인터넷 통신 조건들 하에서, 데이터 전송 속도의 실질적인 개선을 허용한다. 300 mbps 까지의 속도들이 시연되는데, 이 속도는 예를 들어, 1Tb 파일을 전송하는 경우, 10 시간 내에 완료될 수 있음을 의미한다(기존의 시스템들을 이용하면 거의 한달이 걸릴 수도 있음). 이러한 속도 개선은 여러 요인들로부터 기인한다.
파일을 재건할 때, 그것의 수반되는(attendant) "조각들(pieces)"이 다수의 서버들로부터/서버들로 병렬로 전송되며, 이는 실질적인 쓰루풋 개선을 야기한다. 이것은 오늘날 사용되고 있는 인기있는 다운로드 가속 기술들 중 일부와 비견될 수 있는바, 이는 다수의 채널들을 오픈하며, 결과적으로 다운로드 속도의 실질적인 부스팅을 야기한다. 클라우드 서버들 중 하나로의 전송 연결들 중 하나에서 발생할 수도 있는 레이턴시 병목현상은, 정상적인 레이턴시 조건 하에서 동작하는 다른 서버들로의 고속의 전송들을 중단시키지 않는다
분산된 저장으로부터 기인하는 데이터 보안 및 신뢰성에서 본질적인 개선들은 복사본을 통한 데이터 판독/기입들의 지속적인 미러링에 대한 필요성을 제거하며 따라서, 쓰루풋에 대한 추가적인 속도 개선을 가져올 수 있다.
전형적으로, 대부분의 리소스 집중형 데이터 프로세싱은, 클라우드 내의 하나 이상의 고성능 서버들 상의 서버 측에서 발생하며, 이들 고성능 서버들은 속도와 클라우드 서버 저장 사이트들 및 클라이언트 사이트들 둘다에 대한 연결성에 대해서 최적화된다.
특히, 일부 실시예에서 소거 코딩은 서버 측에서 수행되는바, 예를 들면, 후술되는 바와 같이, 다수의 데이터 프로세싱 서버들 상에서 수행된다. 이들 서버들은 높은 프로세싱 성능을 갖도록 선택될 수도 있는데, 왜냐하면 소거 코딩은 일반적으로 중앙 처리 유닛(CPU) 집중 태스크이기 때문이다. 이것은 소거 코딩이 클라이언트 측(클라이언트 측은 소거 코딩을 효율적으로 수행하기 위한 하드웨어 및 소프트웨어 인프라스트럭처가 부족할 수 있음) 또는 단일 서버에서 수행되는 것에 비하여 개선된 성능을 야기한다. 서버들의 최적화된 그룹으로 이러한 프로세싱을 옮기는 것은, 기존의 설계들에 비하여, 클라이언트 측에서의 부하 및 성능 요건을 감소시킨다.
B. 데이터 보안(Data Security)
개시된 "가상 디바이스" 저장은, 종래의 설계들에 비하여 데이터 보안에 관하여 상당한 개선을 제공한다. 각각의 매체 파일을 수 많은 파일 슬라이스 조각들로 쪼개고 그리고 상기 파일 슬라이스 조각들을 다수의 클라우드 저장 위치들(바람직하게는 지리적으로 분산된 위치들)에 분산시킴으로써, 해커는 상기 파일을 오리지널 형태로 재조립하는 것이 극도로 어려움을 알게 될 것이다. 또한, 일부 실시예들에서, 파일 슬라이스 조각들은 모두 암호화되며, 이는 데이터 보안의 또 하나의 계층을 추가함으로써 해커 지망자를 어리둥절하게 만든다. 클라우드 저장 위치들 중 하나에 대한 해킹이 성공했다고 해서, 이것이 전체 매체 파일을 재조립할 수 있는 능력을 해커에게 제공하지 않을 것이다. 이것은 데이터 보안 분야의 상당한 개선으로서, 종래의 설계들보다 우수한 것이다.
일부 실시예들에서, 파일 슬라이스 조각들의 프로세싱 및 저장 둘다에 이용되는 서버들은 다수의 클라이언트들에 의해서 공유될 수도 있는바, 데이터 슬라이스들이 어떤 클라이언트에게 속하는지를 상기 데이터 슬라이스들로부터 해커가 식별할 수 없는 방식으로 공유될 수 있다. 이러한 것은, 본 발명의 기술을 이용하여 저장된 파일 데이터의 보안성을 해커가 침해하는 것을 더 어렵게 만든다. 파일 슬라이스 조각들은 서로 다른 클라우드 저장 서버들에 랜덤하게 분산될 수 있으며, 이는 데이터 저장의 보안성을 더욱 향상시킨다. 일부 실시예들에서는, 심지어 클라이언트라도, 모든 파일 슬라이스 조각들이 직접적으로 분산된 위치들을 정확하게 알지 못할 수도 있다. 또한, 파일 슬라이스 조각들을 재조립하고 및/또는 파일 슬라이스 조각들을 복호화(decrypt)하기 위한 모든 키들(keys)이 저장되는 하나의 장소는 존재하지 않는다. 마지막으로, 데이터 보안성에 대한 추가적인 향상으로서, 메타데이터 저장의 2차원 모델이 이용될 수 있는바 여기서, 데이터를 재구성하는데 필요한 메타데이터는 클라이언트 측 및 원격 클라우드 저장 서버들 둘다에 저장된다.
C. 데이터 이용가능성(Data Availability)
개시된 "가상 디바이스" 저장소는 또한 종래의 저장 기법에 비하여, 데이터의 이용가능성에 대한 개선을 제공한다. 서로 다른 다수의 클라우드 서버들 상에 저장되는 다수의 파일 슬라이스 조각들로 파일을 쪼갬으로써, 클라이언트 위치와 물리적 클라우드 위치들 중 하나 사이의 통신 문제들은, 다른 데이터 위치들에서의 낮은 레이턴시를 갖는 정상 통신들에 의해서 보상될 수 있다. 파일 조각들을 다수의 위치들에 분산시키는 것의 전체적인 효과는, 사이트들 중 하나에서의 통신 중단으로 인한 운전정지(outages)로부터 전체 시스템을 격리한다는 점이다.
바람직하게는, 하기에 논의되는 중간 서버 프로세싱 노드들(intermediate server processing nodes) 모두는, 고성능 프로세서들로 구성되며 그리고 낮은 레이턴시들을 갖는다. 이것은 데이터 전송들에 대한 높은 이용가능성을 클라이언트에게 제공할 수 있다.
바람직하게는, 상기 중간 서버 프로세싱 노드들은, 서비스들을 요청하는 클라이언트와 관련된 레이턴시를 최소화하기 위한 각각의 클라이언트 요청에 응답하여, 동적으로 선택될 수도 있다. 클라이언트는 또한, 파일 슬라이스 조각들을 저장하는데 사용될 클라우드 저장 서버들의 목록으로부터 선택할 수도 있으며, 그리고 그의 지리적 위치 및 이들 서버들의 이용가능성에 기초하여 상기 목록을 최적화시킬 수도 있다. 이것은 또한, 각각의 전송 요청시에 각각의 클라이언트에 대한 데이터 이용가능성을 극대화한다.
D. 데이터 신뢰성(Data reliability)
개시된 "가상 디바이스" 저장소는 또한 종래 기술에 비하여, 클라우드 데이터 저장 시스템의 신뢰성에 대한 개선을 제공한다. 각각의 파일을 파일 슬라이스 조각들로 나누는 것은, 물리적 클라우드 저장 위치들 중 하나에서의 하드웨어 또는 소프트웨어 실패들 혹은 에러들이 상기 파일에 대한 액세스를 금지하지 않을 것임을 의미한다(과거의 일부 기존 시스템들에서와 같이, 전체 파일이 하나의 물리적 위치에 저장된다면 그러했던 것처럼). 또한, 본원에 논의된 소거 코드 기법의 사용은 시스템에서 고품질의 에러 정정 능력들을 보장하며, 이는 데이터 보안 뿐만 아니라 데이터 신뢰성을 향상시킨다. 본 발명에서 이용되는 파일 슬라이스 조각들과 소거 코딩 기술들의 조합은 기업들의 클라우드 기술의 채용을 격려하도록 신뢰성에 대한 주요한 이점을 제공한다.
E. 기존의 클라우드 인프라스트럭처 리소스들의 사용
본 명세서에 개시된 주제의 구성요소들은 공적 리소스들 및 사적 리소스들 둘다와 함께, 기존의 클라우드 서버 인프라스트럭처들을 이용할 수 있다. 현재의 클라우드 제공자들은, 개시된 방법론과 함께 사용하기 위하여, 그들의 기존의 하드웨어 및 소프트웨어 인프라스트럭처를 설정할 수 있다. 따라서, 본 명세서에 개시된 기술에 의해서 제공되는 장점들의 대부분은 최소한의 투자만으로 이용될 수 있는데, 왜냐하면 수정이 없거나 또는 최소한의 수정만으로도, 현재 존재하고 있는 클라우드 리소스들이 이용될 수 있기 때문이다.
F. 인프라스트럭처 비용의 절감
일부 실시예들은 기존의 클라우드 저장 기법 솔루션들에 비하여, 매우 적은 리던던시를 필요로 한다. 전술한 바와 같이, 과거의 저장 시스템은 미러링 및 복제에 전용되는 500% 정도까지의 추가적인 저장소를 필요로 할 수 있다. 본 명세세에 개시된 실시예들은, 오리지널 파일 사이즈에 대한 30%의 리던던시만을 가지고도 성공적으로 동작할 수 있는데, 왜냐하면 이들의 본질적인 높은 신뢰성 때문이다. 30%의 리던던시만을 가지고도, 기존의 시스템들에 비하여, 더 높은 레벨의 신뢰성을 획득할 수 있다. 높은 리던던시를 위한 필요성이 감소한 결과, 클라우드 저장 능력을 위한 비용이 감소한다. 기업 데이터 및 저장소 필요성들의 기하급수적인 증가가 해마다 관찰되고 있음을 감안하면, 이러한 리던던시 감소는, 기업의 로컬 데이터 센터에 대한 완전한 대체물로서 클라우드 솔루션을 경제적으로 실행가능하게 만드는 매우 중요한 인자가 될 수 있다.
본 명세서에 개시되는 바와 같이, 개시된 "가상 디바이스" 저장 기술에 대한 실시예들은, 다음과 같은 소정의 태스크들을 수행한다. 결과적으로는 기결정된 개수의 클라우드 저장 위치들로 전송될 파일 슬라이스들 및 파일 슬라이스 조각들로 파일들을 분할하고; 파일 슬라이스들 및 파일 슬라이스 조각들의 지도들을 생성하고, 클라이언트에 의한 파일의 재-조립을 허용하도록, 상기 지도들은 파일들이 어떻게 분할되었는지, 그리고 어떤 클라우드 위치에 파일 슬라이스 조각들의 그룹이 저장되는지를 나타내며; 추가적인 데이터 보안성을 제공하도록 상기 파일 슬라이스들 및 파일 슬라이스 조각들을 암호화하고; 에러 체크 및 복원을 위하여 상기 조각들에 소거 코딩 정보를 부가하고; 적절히 기입 및 분해되지 않거나 또는 판독 및 재조립되지 않은 고립된(orphaned) 파일 슬라이스 조각들의 가비지 수집(garbage collection)을 행한다.
도1에 도시된 바와 같이, 예시적인 시스템 실시예의 기본 구조는 3개의 계층들을 포함하는 것으로 도시될 수 있다. 제 1 계층은 클라이언트 측 프로세서(client-side processor: CSP)이며, 이는 클라이언트의 백 오피스(back office) 또는 데이터 센터에 위치할수 있다. 어플리케이션 파라미터들을 설정하거나, 클라이언트의 데이터 센터로부터 저장 노드 네트워크로인 파일들의 업로드들 및 저장 노드 네트워크로부터 클라이언트의 데이터 센터로인 파일들의 다운로드들을 개시하도록, 클라이언트 어플리케이션(가령, 브라우저에서 구동되는 웹 앱(web app))이 CSP에 액세스하는데 이용될 수 있다. 도면들에서, "슬라이스"는 일반적으로 파일 슬라이스를 지칭하는데 사용되며, "원자(atom)"는 파일 슬라이스 조각들을 지칭하는데 일반적으로 이용된다.
예시적인 시스템의 제 2 계층은 중간 데이터 프로세싱을 수행하는 프론트-엔드(front-end) 데이터 프로세서(FEDP)를 포함한다. 상기 FEDP는 클라우드 내의 다수의 분산된 장소들에 배치될 수 있다. 다수의 FEDP 서버들이 각각의 클라이언트에 대해 이용가능할 수 있으며, 각각의 FEDP 서버는 높은 프로세싱 능력 및 클라이언트 위치에 대한 높은 연결 유효성(high availability connections)을 제공한다.
예시적인 시스템 실시예의 제 3 계층은 저장 노드 네트워크(storage nodes network: SNN)이다. SNN은, 상업적인 클라우드 리소스 제공자들에 의해서 운영되는 다양한 클라우드 저장 센터들을 포함할 수 있다. SNN 내의 저장 노드들의 개수 및 신원은, 클라이언트의 클라이언트 어플리케이션을 이용하여 상기 클라이언트에 의해서 선택될 수도 있는데, 이는 가장 우수한 평균 레이턴시와 클라이언트의 위치로부터 가장 좋은 이용가능성을 나타내는 저장 노드들을 선택함으로써, 레이턴시와 저장소 설정의 보안성을 최적화하기 위한 것이다.
도1은 CSP, FEDP 및 SNN 사이의 상호관련성을 보여주는 개략도이다.
이들 3개의 계층들에 의해서 수행되는 기본 기능들은 다음과 같이 서술될 수 있다. CSP는 클라이언트 앱으로부터 SNN으로 파일을 업로드하기 위한 요청을 수신 및 시작할 수 있다. 제 1 단계로서, 이것은 파일을 다수의 슬라이스들(그 각각이 소정의 사이즈를 가짐)로 분할한다. 슬라이스들의 사이즈 및 개수는 클라이언트 앱에 이용가능한 파라미터들을 통해 변할 수 있다. 각각의 슬라이스는 클라이언트 키로 암호화될 수 있으며 그리고 고유 식별자가 부여될 수 있다. CSP는 또한 메타데이터 파일을 생성할 것인바, 메타데이터 파일은 오리지널 완성 파일로 슬라이스들이 재조립되는 것을 허용하도록 슬라이스들을 맵핑한다. 이러한 메타데이터 파일은 클라이언트의 데이터 센터에 저장될 수 있으며 그리고 또한 암호화될 수 있고 SNN에 카피될 수 있다. 예시적인 실시예에서, 이후 CSP는 슬라이스된 파일들을 후속 프로세싱을 위해 다음 계층, 프론트 엔드 데이터 프로세서(FEDP)로 전송할 수 있다.
FEDP는 CSP로부터 슬라이스된 파일들을 수신할 수 있고 그리고 각각의 슬라이스를 프로세싱할 수 있다. 이러한 프로세싱은 각각의 슬라이스를 일련의 파일 슬라이스 조각들로 분할할 수 있다. 예를 들어, 전송 프로세스 동안에 일부 데이터가 손실되는 경우, 에러 정정을 제공하도록 소거 코딩이 수행된다. 소거 코딩은, 다음에 후술되는 바와 같이, 에러 정정을 제공하기 위해서 각각의 파일 슬라이스 조각들의 사이즈를 증가시킬 것이다. FEDP는 또한, 그 자신의 암호화 키를 이용하여 파일 슬라이스 조각을 암호화할 수 있다. FEDP는 또 다른 메타데이터 파일을 생성할 것인데, 상기 다른 메타데이터 파일은 모든 파일 슬라이스 조각들을 다시(back) 그들의 오리지널 슬라이스들로 매핑하며 그리고 어떤 파일 슬라이스 조각들을 저장하는데 어떤 SNN 서버들이 사용되는지를 기록한다. 일단, 이러한 중간 프로세싱이 수행되면, FEDP는 파일 슬라이스 조각들의 그룹들을 클라우드 내의 그들의 지정된 SNN 서버들로 전송하며 그리고 FEDP가 생성했던 메타데이터 파일의 카피를 각각의 SNN 서버에 전송한다.
제 3 계층에서, 이제 SNN 서버들은, 프로세싱된 파일 슬라이스 조각들을 정상적으로 이용가능한 클라우드 호스팅 서버들에서 호스팅할 것이며, 시스템을 통한 향후 요청(파일 다운로드를 위한)의 수신을 기다린다. 다운로드 프로세스는 기본적으로는 3개의 프로세싱 계층들에서 앞서 서술된 단계들과 반대이며, 오리지널 파일 또는 파일 슬라이스들을 CSP에서 재건하기 위한 것이다.
도2는 예시적인 실시예들에 따라 SNN에 파일을 업로드하는 동안 CSP, FEDP, 및 SNN 각각에 대하여 앞서 논의된 파일 프로세싱의 다양한 스테이지들을 예시한다. 도3a 및 도3b은 예시적인 실시예들 따라 수행되는 파일 업로드 프로세스에 포함될 수 있는 세부적인 단계들에 대한 차트이다.
파일 업로딩
도4a 및 도4b는 각각, CSP로부터 FEDP로 그리고 그 다음에는 SNN으로 파일을 업로드하는 프로세스 동안의 2개의 기본적인 프로세싱 스테이지들을 도시한 것으로, 파일을 파일 슬라이스들로 만드는 CSP에서의 프로세싱과, SNN 들로의 분산을 위해 파일 슬라이스 조각들을 생성하도록 파일 슬라이스들에 대해 수행되는 FEDP 에서의 프로세싱이 그것이다. 도5는 스텝-바이-스텝 형식의 업로드 프로세스의 또 다른 예시로서, 이는 중간 단계들 중 일부를 보여준다.
파일 다운로딩
SNN에 이전에 업로드된 파일을 다운로딩하는 프로세스는 업로드 프로세스에서 사용된 단계들의 반대의 경우에 관련된다. 많은 SNN들에 걸쳐서 저장된 슬라이스 조각들은 제 2 메타데이터 파일을 이용하여 파일 슬라이스들로 재조립되어야만 하며, 상기 제 2 메타데이터 파일은 슬라이스 조각들이 슬라이스들로 어떻게 재조립되는지를 매핑한다. 이것은 FEDP에 의해서 수행된다. 이렇게 생성된 파일 슬라이스들은 CSP에 의해서 제 1 메타데이터를 이용하여 완전한 파일로 재조립되어야만 하며, 여기서 제 1 메타데이터는 클라이언트의 데이터 센터로 전달되기 위해 슬라이스들이 전체 파일로 어떻게 재조립되는지를 매핑한다. 제 2 메타데이터 파일은, 파일을 저장하는데 이용되는 SNN들 각각에 리던던트하게(redundantly) 저장되며, 그리고 제 1 메타데이터 파일은 클라이언트의 데이터 센터에 그리고 각각의 SNN 에도 또한 저장된다.
도6a 및 도6b는 다운로드 프로세스에 관련될 수 있는 세부 단계들에 대한 차트이다.
도7a는 3개의 계층들 사이에서의 다운로드 프로세스를 예시하며, CSP와 FEDP 사이에서의 요청들 및 FEDP와 SNN 사이에서의 요청들을 도시한다. 도7b는 FEDP가 SNN로부터 슬라이스 조각들을 요청하는 경우와 관련된 단계들을 예시하며, 이는 제 2 메타데이터 파일을 이용하여 요청된 파일 슬라이스를 재조립하기 위한 것이다.
도8은 다운로드 프로세스 동안의 CSP, FEDP, 및 SNN 사이에서의 상호작용들의 세부 단계들을 도시한다.
기술 최적화(Technology Optimizations)
전술한 바와 같이, 개시된 방법 및 시스템은 데이터 쓰루풋, 데이터 이용가능성, 데이터 신뢰성 및 데이터 보안 모두에 대해서 주요한 개선들을 제공한다.
시스템에서 이용되는 다수의 업로드 및 다운로드 노드들은 업로딩 및 다운로딩 둘다의 속도를 높일 것이다. CSP와 FEDP들 사이의 레이턴시를 최적화하고, 그리고 FEDP들의 이용가능한 최적의 현재 레이턴시를 선택함으로써, 쓰루풋 속도에서의 추가적인 증가가 성취될 수 있다. FEDP들과 SNN들 사이에서의 레이턴시를 최적화할 필요는 없는데, 왜냐하면 FEDP들은 고성능으로 셋업되며, SNN들에 대한 레이턴시를 자동적으로 최소화하도록 설계된 높은 이용가능성의 서버들이기 때문이다. 다수의 노드들의 사용은 또한, 하나의 특정 서버 경로가 높은 레이턴시를 경험하는 경우에 보여지는 퍼포먼스 히트(performance hit)를 감소시킨다.
파일 슬라이스 조각들을 저장하기 위하여 많은 저장 노드들을 이용하는 것은, 클라이언트 데이터의 저장에서 이용될 수 있는 보안성을 크게 증가시킨다. 수 많은 개수의 SNN들에 있는 이질적인(disparate) 슬라이스 조각들 모두를 이용(tap into)하도록 필요한 정보를 찾아내고 그리고 이들을 유용한 파일로 재조립하기 위한 해커의 업무량(task)는 어마어마할 것이다.
슬라이스 조각들의 분산을 위해 소거 코딩을 이용하는 것은, 그것의 본질적인 에러 체킹/정정 성질을 통해 신뢰성의 엑스트라 계층을 부가할 것인바, 이는 상기 시스템으로 하여금 다수의 데이터 복제에 대한 요구가 필요없게 할 것이며, 그것의 내재적인 퍼포먼스 히트 및 보안 위험들이 없어지게 할 것이다.
추가적인 이슈들
전술한 바와 같이, 여전히 리소스 집중형인 일 영역은, 소거 코딩 프로세스이며, 이는 매우 CPU 집중형이다. 이러한 이슈를 해결하기 위하여, 매우 고성능인 FEDP 하드웨어는, 이러한 FEDP 서버들에서 이용되는 CPU들(또는 가상 CPU들)이 시스템의 성능 요구들을 충족시킴을 보장한다. 또한, 전체 소프트웨어 패키지는 FEDP 서버들을 포함하여, "Go" 언어로 코딩될 수도 있다. "Go" 언어에 의해서 생성된 네이티브 코드 객체들(native code objects)은 전체적인 시스템 성능을 개선하는데 도움을 주며 특히, 소거 코딩이 주요 CPU 리소스들을 차지하는 FEDP 서버들에서 도움을 줄 수 있다.
클라이언트 앱은 클라이언트의 운영 시스템(OS) 플랫폼들 상에서 구동될 수 있는 임의의 클라이언트 에이전트일 수 있다. 선택적으로는, 클라이언트 앱은 브라우저들에서 구동되도록 자바스크립트로 쓰여질 수도 있다. 이것은, 이러한 클라이언트 앱이 매우 다양한 물리적 디바이스 상에 이용가능해질 수 있게 하는데 도움을 준다.
전술한 데이터 저장 기술들은 가상화된 서버들을 이용하도록 설계될 수 있다. 예를 들면, 성능을 개선시키고 그리고 하드웨어 독립성을 보장하도록, 하나의 실제 하드웨어 서버 대신에, 병렬인 3개의 가상 서버들이 이용될 수 있다. 현재의 시스템은 객체 저장 기술에 기초하며, 이는 임의의 특정한 파일 구조에 관계없이, 데이터를 참조되어야 하는 매스(mass)로 취급한다. 목표(goal)는 시스템을 생성하는 것이었으며, 데이터 저장에서의 현재의 가상화 기준들을 맞추도록, 이는 블록 저장으로 전환될 수 있다. 현재의 객체 모델은 미래의 블록 저장으로 용이하게 매핑될 수 있다.
일부 실시예들에서, 소거 코딩에 의한 에러 정정은 리드-솔로몬(Reed-Solomon) 코딩을 이용하여, FEDP 상에서 실행된다. 또한, FEDP와 SNN들 사이에서 불완전한 판독들 및 기입들이 있는 경우, 가비지 수집(garbage collection) 시스템이 FEDP에서 채용된다.
도9는 가비지 수집 프로세스의 단계들을 예시하며, 이는 저장 노드들에 불완전하게 저장된 객체들(즉, 마스크 카디널리티(mask cardinality)가 k 보다 작은 객체들)을 삭제하는데 필요하다. n - k 데이터 블록들 이상이 업로드에 실패하고 그리고 예상치않게 어플리케이션이 중단된다면, 이러한 객체들이 소정의 이유들 때문에 시스템에서 드물게 나타날 수 있다. 이러한 플로우는 4개의 단계들로 구성된다.
1. 리스트 불완전(List Incomplete): 고정된 매 시간 기간 마다(이것은 설정가능한 값이 될 수 있음), 메타데이터 저장소의 LIST_INCOMPLETE 함수를 이용하여 불완전한 객체들의 리스트를 검색한다
2. UID들의 검색(Retrieve UIDs): GET 함수를 이용하여 해당 데이터 블록 UIDs 를 검색한다(테이블 2 참조)
3. 데이터 삭제: 이들 UIDs 로부터 저장 노드들의 ID들 및 데이터 블록들의 ID들을 추출하고 그리고 DELETE 함수를 이용하여 저장 노드들로부터 해당 데이터 블록들을 삭제한다(테이블 1 참조).
4. 메타데이터 삭제: DELETE 함수를 이용하여 삭제된 객체 기록을 메타데이터 저장소로부터 제거한다.
어플리케이션들
회사 데이터 센터들로부터 클라우드로의 기업 데이터의 이주
개시된 본 발명에 따른, 크게 개선된 데이터 전송 속도, 보안성, 신뢰성 및 이용가능성은, 기업이 특히, 회사 데이터 센터들 외부의 스트리밍 매체 콘텐트를 포함하여, 기업의 데이터 중 많은 부분을 클라우드로 이주시킬 수 있게 한다. 이것은, 회사의 데이터가, 회사 내부 및 외부의 보다 넓은 범위의 데이터 소비자들에 대하여 이용될 수 있게 할 것이다.
개시된 기술은 기업이 현재 활용중인 데이터 저장 리소스들이, 보안 저장 노드들로서 이용될 수 있게 한다. 이것은 기업 저장 비용들(enterprise storage costs)을 크게 절감할 수 있으며, 그리고 분산된 보안 저장 네트워크들이 데이터 구조를 통해 확산되게 할 수 있다.
궁극적으로는, 활용 중인 데이터 저장 리소스들의 이러한 동일한 사용은, 활용 중인 저장 디바이스들의 그들의 컬렉션을 구비한 컴퓨터 소유자들의 일반 대중에게 끼여들 여지를 찾을 수 있다. 방대하게 분산된 저장 네트워크들은 집합될 수 있으며(assembled) 이는 비트토렌트 배후의 구식 개념(older concept behind BitTorrent)을 취할 것이며 그리고 크게 개선된 속도 및 보안성을 부가함으로써 그것을 과급(supercharge)할 것이다. 클라우드에서의 데이터의 이용가능성에 대하여 컴퓨터 기술에서의 모바일 디바이스 혁명이 예견된다. 과거의 시스템들에서, 이러한 욕구는 이들 밀접한 관련 기술들에서 약한 유대(weak link)가 있어왔는데, 이는 클라우드 저장 리소스들에서의 속도 및 신뢰성의 결여 때문이다. 특히, 매체 어플리케이션들을 스트리밍하기 위하여 더 많은 개인 및 기업 클라이언트들이 모바일 디바이스들을 통해 데이터에 액세스한다는 점에서, 지금 이것이 특별하게 요구되고 있다. 컴퓨터 사용량의 양상이 데스트 탑들 및 그 보다 적은 모바일 랩탑들 대신에 모바일 디바이스들의 과도한 사용(heavy use)을 향해 나아가고 있다는 점에서, 사용자들에 대한 데이터의 이용가능성은 클라우드 쪽으로의 데이터의 막대한 이주를 필요로 한다. 개시된 기술은 이러한 이주를 가능케하는데 도움을 줄 수 있다.
디지털 매체 스트리밍
개시된 기술은, 디지털 매체 스트리밍 기술의 요구들에 대하여 안성맞춤(natural fit)이다. 속도 및 보안에 있어서의 개시된 향상들 및 이용가능한 저장 리소스들에 대한 보다 큰 활용은, 현재의 통신 프로토콜들 및 기술들을 이용하여 더 빠른 스트리밍 속도들을 가능케한다. 또한, 비디오, 오디오 및 다른 메타데이터를 저장하기 위한 방대한 저장 공간은, 본 명세서에 개시된 예시적인 실시예들에 따른 기존의 리소스들 및 인프라스트럭처에 대한 증가된 이용가능성(availability) 및 활용(utilization)으로부터 이득을 얻을 수 있다.
위성 TV(Satellite TV)
위성 TV 기술에 들어가 있는 대용량 하드 드라이브들은, 위성 TV 사용자들의 일반 대중 사이에서 고속이며 안전한 분산된 저장 네트워크를 확립하도록, 활용 중인 저장 리소스들이 본원에 개시된 기술을 사용하기 위하여 어떻게 적응될 수 있는지에 대한 일례를 제공할 수 있다. 이러한 리소스는 위성 TV 네트워크의 가치를 크게 향상시킬 수 있으며, 그리고 완전히 새로운 상업적 기회들을 열 수 있다.
본 개시 내용에 따른 소정의 실시예들에서, 보안성이 높은 소거 코딩 알고리즘이 파일 조각들을 코딩하는데 이용되는데, 이는 전송 프로세스에서의 오류들로 인하여 일부 데이터가 손실되는 경우 데이터 복원을 제공하기 위한 것이다.
특히, 데이터 믹서 알고리즘(DMA)이 채용되어, 사이즈 L = │F│ 인 객체 F를 각각의 사이즈가 L/m(m < n)인 n 개의 식별할 수 없는(unrecognizable) 조각들 F1, F2, ... Fn 으로 인코딩하며, 따라서 오리지널 객체 F는 임의의 m 개의 조각들로부터 재건될 수 있다. DMA의 코어는 m-of-n 믹서 코드이다. DMA를 이용하여 프로세싱된 조각들 내의 데이터는 비밀(confidential)이며, 이는 오리지널 객체 F 내의 그 어떤 데이터도 m 개 보다 더 적은 조각들로부터 명백하게 재건될 수 없음을 의미한다. DMA의 세부 동작에 대한 예시적인 실시예가 이제 서술될 것이다.
상기 m-of-n 믹서 코드는 포워드 에러 정정 코드(FEC)이며, 그것의 출력은 임의의 입력 심볼들을 포함하지 않으며 그리고 이것은 m 심볼들의 메시지를 n 심볼들의 더 긴 메시지로 변환하는바 따라서, 길이 m의 n 개의 심볼들의 서브세트로부터 오리지널 메시지가 복원될 수 있다.
오리지널 객체 F는 먼저 그 각각의 사이즈가 L/m 인 m 개의 세그먼트들 S1, S2, ... Sm 으로 분할된다. 다음으로, m 개의 세그먼트들은 m-of-n 믹서 코드를 이용하여 n 개의 식별할 수 없는(unrecognizable) 조각들 F1, F2, ... Fn 으로 인코딩되는바, 예컨대:
(S1, S2, ... Sm) ㆍ Gm×n = (F1, F2, ... Fn),
여기서 Gm×n 는 믹서 코드의 생성 매트릭스(generator matrix)이며 그리고 다음의 조건을 충족시킨다.
1) Gm×n 의 임의의 컬럼은 m×n 아이덴티티 매트릭스(identity matrix)의 임의의 컬럼과 동등하지 않으며,
2) Gm×n 의 임의의 m 컬럼들은 m×n 비특이 매트릭스(nonsingular matrix)를 형성하며,
3) 생성 매트릭스 Gm×n 의 임의의 스퀘어 서브매트릭스(square submatrix)는 비특이(nonsingular)하다.
첫번째 조건은 코딩이 n 개의 식별할 수 없는 조각들로 귀결됨을 보장한다. 두번째 조건은 오리지널 객체 F가 임의의 m개의 조각들(여기서, m < n)로부터 재건될 수 있음을 보장한다. 세번째 조건은 DMA가 강력한 기밀성(confidentiality)을 가짐을 보장한다.
임의의 m-of-(m + n) 믹서 코드로부터, 강력한 기밀성을 갖는 DMA를 형성하는 효율적인 방법은 다음과 같다:
1) 임의의 m-of-(m + n) 믹서 코드를 선택한다, 여기서 생성 매트릭스는
Gm×(m+n) = (Cm×m│Dm×n) 이다.
2) DMA를 구성하며, 상기 DMA는 그것의 생성 매트릭스가
Figure pct00001
인 m-of-n 믹서 코드를 채용한다.
예를 들어, 생성 매트릭스는 아래에 도시된 바와 같은 코시 매트릭스(cauchy matrix)가 될 수 있다.
코시 매트릭스의 임의의 스퀘어 서브매트릭스,
Figure pct00002
여기서,
Figure pct00003
이며, 그리고
Figure pct00004
는 비특이하다. 따라서, 이러한 매트릭스에 기초하는 믹서 코드는 강력한 기밀성을 갖는다.
또 다른 일례로서, 생성 코드는 반데몬드 매트릭스(vandermonde matrix)가 될 수 있다.
그것의 생성 매트릭스가 반데몬드 매트릭스인 믹서 코드로부터, 강력한 기밀성을 가진 DMA를 구성하기 위하여, 생성 코드가 아래와 같은 m-of-(m + n) 믹서 코드를 선택한다.
Figure pct00005
여기서, a1, a2, ... am+n 은 서로 구별된다(distinct).
다음으로, 강력한 기밀성을 갖는 DMA가 재구성될 수 있으며, 이것의 대응 생성 매트릭스는 다음과 같다.
Figure pct00006
인코딩 일례(Encoding Example)
사이즈 L = │F│ 인 객체 F 를 갖는다고 가정하자. 본 일례에서, L = 1048576(1 Mb 파일)이다. 이것을 인코딩하기 위하여 다음의 단계들이 수행된다.
1. m 및 n 을 선택한다(앞선 설명 참조). 예를 들어, m = 4, n = 6 이다.
2. 워드 사이즈 w 를 선택한다(통상적으로 8, 16, 32이며, 본 일례에서는 8이 될 것이다).
3. 패킷 사이즈 z 를 선택한다(컴퓨터의 워드 사이즈의 배수(multiple)가 되어야만 하며, 본 일례에서는 256이 될 것이다).
4. 코딩 블록 사이즈 Z = wㆍz 를 계산하며, 이것도 또한 m 의 배수가 되어야만 한다. 본 일례에서, Z = 8ㆍ256 = 2048 (바이트)이며, 이것은 4의 배수이다.
5. 랜덤 바이트들로 오리지널 객체 F를 패드(pad)함으로써, 그것의 사이즈를 L에서 L' 으로 증가시키며, L' 은 Z 의 배수이다.
6. 객체 F 를 사이즈 Z의 조각들로 분할한다. 다음의 모든 단계들이 이들 조각들에 대해 수행될 것이지만, 우리는 이들을 여전히 F 로 지칭할 것이다.
7. F 를 시퀀스들 F = (b1, ...bm), (bm+1, ...b2m), ... 로 분할하며, 여기서, bi 는 w 비트 길이 캐릭터이다. 본 일례에서, 이것은 단지 바이트이다. 편의를 위해 S1 = (b1, ...bm), 기타등등으로 표현한다.
8. 믹싱 체계를 적용한다:
Fi = ci1, ci2, ... cin
여기서,
Figure pct00007
이며,
여기서, aij 는 n × m 코시 매트릭스(앞의 내용 참조)의 구성요소들이다.
참고로, Fi의 사이즈는 Li = L/m 이며, 본 일례에서 이것은 250 kb(162144 바이트)이다.
디코딩 일례
이제, 사이즈 Li 인 m 개의 객체 조각들 Fi 를 갖는다고 가정하자. F2 및 F4 가 전송 오류로 손실되었다라고 가정하면, 본 일례에서, i = 1, 3, 5, 6 이다. 오리지널 객체 F를 디코딩하고 재건하기 위해서, 다음의 단계들이 수행된다.
1. 넘버들 i 를 구비한 로우들(rows)을 제외한 모든 로우들을 제거함으로써, 인코딩을 위해 이용된 n×m 코시 매트릭스로부터 m×n 매트릭스 A 를 구성한다. 본 일례에서, 로우 2 및 로우 4가 제거된다.
2. 매트릭스 A를 반전(invert)시키고, 그리고 각각의 세그먼트 S1 = (b1, ... bm), 등등에 대하여 디-믹싱(de-mixing) 체계를 적용한다:
Figure pct00008
3. 오리지널 Z-길이 조각 F 에 세그먼트 Si 를 결합한다(join).
4. 오리지널, 패드된(padded) 객체 F를 형성하도록, Z-길이 블록들을 함께 결합한다
5. F 로부터 패딩을 제거하여, 사이즈 L로 맞춘다(fit).
예시적인 실시예들에서, 분산된 저장을 위한 데이터 프로세싱의 전술한 방법론들(methodologies) 및 오리지널 데이터를 식별불가능하게 만드는 소거 코딩이 이용되어, 스트리밍 매체 콘텐트를 프로세스한다. 앞서 설명된 바와 같이, 콘텐트 제공자의 매체 파일은 2-단계 프로세스에서, 작은 파일 슬라이스 조각들로 쪼개진다. 제 1 단계는 전체 파일(이는 압축될 수도 있고 압축되지 않을 수도 있음)을 일련의 파일 슬라이스들로 쪼갠다. 이러한 파일 슬라이스들은 암호화될 수도 있으며, 그리고 메타데이터 파일이 생성되는바, 메타데이터 파일은 이들 슬라이스들을 오리지널 파일로 어떻게 조립하는지를 매핑한다.
제 2 단계는 각각의 파일 슬라이스를 취하며 그리고 이것을 더 작은 데이터 조각들로 분할하는바, 상기 더 작은 데이터 조각들은 오리지널 데이터를 식별할 수 없게 만들기 위하여 전술한 기술들에 따라 소거 코딩된다. 소거 코딩은 고성능 파일 서버들의 세트에 의해서 수행될 수 있는데, 각각의 개별 서버는 그 자신의 파일 슬라이스(들)에 대하여 소거 코딩을 수행한다. 이것은, n 개의 소거 코딩 서버 유닛들 상에 분산된 가상 소거 코딩 시스템을 나타낸다. 소거 코딩은, 일련의 파일 슬라이스 조각들을 생성하는 동안 기-정의된 레벨의 리던던시를 데이터 컬렉션에 부가하며 이후, 상기 파일 슬라이스 조각들은 일련의 파일 조각 저장 노드들에 분산된다. 이러한 프로세스에서 이용되는 소거 코딩에 대해서는 30% 혹은 그 이상인 최적 리던던시가 바람직하다. 만일, 매체 파일이 빈번히 액세스된다면, 상기 시스템은 특정 슬라이스들의 파일 객체 리던던시를 증가시킬 수 있다.
본 명세서에 개시된 소거 코딩 기법은, 자동 에러 보정의 파워풀한 시스템을 부가하는데, 이는 패킷 손실에도 불구하고, 스트리밍된 매체 파일에 대한 올바를 데이터 패킷들을 클라이언트가 수신함을 보장한다. 또한, 각각의 데이터 조각들은 소거 코딩 프로세스에서 암호화될 수도 있다. 제 2 메타-데이터 파일은, 파일 슬라이스 조각들을 올바른 스트리밍된 매체 패킷들로 재조립하는데 필요한 프로세스를 매핑한다. 전형적으로는, 스트리밍을 위해 데이터를 성공적으로 프로세스하기 위하여, 최소 5개의 노드들이 필요할 수도 있다(비록, 노드들의 개수는 시스템 부하 및 다른 파라미터들의 함수이지만). 이들 노드들 모두가, 스트리밍된 데이터를 수신하게 될 클라이언트 인근에 위치할 필요는 없지만, 넓은 지리적 서비스 영역에 걸쳐서 위치될 수 있다.
스트리밍 매체 콘텐트를 재생하기 위하여, 클라이언트는 서버 노드들로부터 필요한 데이터 조각들을 다운로드하며, 이후 이들 데이터 조각들은 적절한 순서대로 재조립된다. 재조립은 데이터 조각들이 생성되었던 프로세스의 반대이다. 데이터 조각들은 파일 슬라이스들로 재조립되며, 그리고 파일 슬라이스들은 오리지널 매체 파일의 적어도 일부분들로 재조립된다. 모든 스트리밍 기법에서와 같이, 다운로드 속도 및 데이터 조각들의 프로세싱 속도는, 매체를 플레이하기 위하여 현재 필요한 데이터 패킷에 대한 시간에 맞춘(on time) 프로세싱을 허용할 정도로 충분히 빨라야 한다. 스트리밍된 매체를 플레이할 수 있는 임의의 디바이스를 포함하는 클라이언트 어플리케이션은, 스트리밍 매체 파일의 재생을 시작하기 위한 적절한 순서에서 파일 슬라이스 조각들을 검색(retrieve)한다.
스트리밍된 매체의 경우, 처음부터 끝까지 상기 매체를 보거나 혹은 청취하기 위해서는, 모든 데이터 조각들이 적절한 순서대로 순차적으로 재-조립됨이 필수적이다. 클라이언트 디바이스는 적절한 시퀀스에서 조각들을 적절히 획득하기 위하여, 메타-데이터 파일들로부터의 맵 데이터를 이용하여 데이터 조각들을 재-조립한다. 현재의 스트리밍 기법들에서와 같이, 만일 매체 데이터의 다음 패킷들을 디스플레이하는데 필요한 시간 보다 다운로드 속도가 더 빠르다면, 리더(reacer)는 다운로드할 것이며 그리고 미래의 시간 조각들(future time fragment)을 조립할 것인바, 이는 매체 플레이어가 이러한 시간 세그먼트에 도달할 때 사용하기 위해 버퍼에 저장된다. 파일 조각들은 실제로는 오리지널 매체 파일로 조립되지 않을 수도 있지만, 적절한 시간에 단지 플레이될 수 있고 그리고 데이터 조각들로서 저장될 수 있다. 이러한 것은, 사용자가 매체 파일에 대한 법적인 권리를 갖고 있지 않는 경우, 플레이 중인 디지털 매체의 보안성을 증가시킨다. 물론, 사용자가 오리지널 매체 파일에 대한 법적 권리를 갖는다면, 상기 조각들은 완전한 오리지널 매체 파일의 형태로 클라이언트의 디바이스 상에 조립될 수 있다(모든 조각들이 다운로드되면). 매체 파일이 다수의 노드들로부터 전송되기 때문에, 파일 다운로드 속도들은 종래 기술에서 보여지는 통상적인 속도들을 휠씬 뛰어넘을 것이다. 바람직하게는, 데이터 조각들을 다운로딩하기 위하여 그 시점에서 클라이언트에 대해 가장 양호한 연결성을 갖는 노드들이 채용된다. 노드들 상의 데이터가 리던던트하기 때문에, 스트리밍된 데이터를 읽을 때 클라이언트 소프트웨어는, 다운로드에 이용하도록 가장 높은 데이터 전송 속도들을 갖는 이들 노드들을 바람직하게 선택할 수 있다.
본 기술은 데스크탑, 랩탑, 테블릿, 스마트폰, 기타 등등의 모든 유형들의 클라이언트 디바이스들에 적용가능하다. 현재의 스트리밍 기술 소프트웨어를 대체해야할 필요는 없지만, 적절한 순서대로 재조립하기 위해 맵 파일들을 이용하도록 또 다른 계층을 그것의 탑(top) 상에 단지 부가할 수 있다.
이전의 시스템들에 대한 장점들
개시된 바와 같은 분산된 저장소 및 소거 코딩-기반의 스트리밍 기술은 종래의 스트리밍 기술들에서 앞서 논의된 제한들에 대한 실질적인 개선책들을 제공한다.
A. 데이터 전송 속도
앞서 논의된 이유들 때문에, 본 발명에 따른 실시예들은 종래 기술에 따른 스트리밍 기술에 비하여, 통상적인 인터넷 통신 조건들 하에서 데이터 전송의 속도에 있어서 실질적인 개선을 제공한다.
매체 콘텐트 제공자가 클라우드 내의 고성능 서버들에 데이터 조각들을 분산시킬 것을 선택할 수도 있지만, 그는 또한, 임의의 다른 유형의 네트워크에서 연결된 다수의 저장 디바이스들 상에 데이터 조각들을 저장할 것을 선택할 수 있다. 매체 파일을 재구성할 때, "조각들" 은 다수의 서버들로/로부터 병렬로 전송될 수 있으며, 이는 실질적인 쓰루풋 개선을 야기한다. 이것은 오늘날 사용되는 인기있는 다운로드 액셀레이터 기법들과 유사할 수 있으며, 상기 기법들은 또한 파일의 조각들을 다운로드하기 위하여 다수의 채널들을 오픈하며, 이는 다운로드 속도들의 실질적인 부스팅을 야기한다. 노드 서버들 중 하나로의 전송 연결들 중 하나에서의 레이턴시 병목은, 정상 레이턴시의 조건들 하에서 동작 중인 다른 서버들로의 빠른 전송들을 중단시키지 않을 것이다. 보다 빠른 데이터 전송 속도는, 대규모의, 압축되지 않은 매체 파일들이 실시간으로 플레이될 수 있게하며, 따라서 고-신뢰성의 재생을 스트리밍 매체에 제공할 수 있다.
클라이언트 측 소프트웨어 기술은, 특정 클라이언트에 대해서 그의 위치에서 가장 높은 현재 쓰루풋을 제공하는 이들 노드들로부터 다운로드할 것을 바람직하게 선택할 수 있는바, 이는 쓰루풋에 대한 추가적인 속도 개선을 야기한다. 이용가능한 노드들의 전세계적인 전체 풀(entire worldwide pool)로부터, 각각의 클라이언트 어플리케이션은 그 시점에서 가장 높은 쓰루풋을 제공하는 이들 노드들로부터 매체 스트림들을 판독할 것을 선택할 수 있다. 또한, 소거 코딩의 리던던시는 2 이상의 노드가 다음번 필요 조각들(next needed fragments)을 포함하고 있음을 의미하며, 이는 클라이언트가 이용가능한 가장 높은 쓰루풋 노드들을 선택할 수 있게 한다.
또한, 데이터 조각들을 데이터 저장 노드들로 분산시키는 것은 현재의 쓰루풋 조건들에 기초하여 최적화될 수 있다. 가장 양호한 연결성을 갖는 노드들이, 더 큰 용량의 데이터 조각들을 저장하도록 선택될 수 있으며, 따라서 분산 프로세스 동안 최대 데이터 전송 속도에 대하여 이용가능한 저장 노드들을 최적화할 수 있다.
특히, 본 발명에서 사용되는 소거 코딩은 서버 측에서(고성능을 위해 선택된 서버들 상에서) 수행될 수 있는데, 왜냐하면 소거 코딩은 CPU 집중형 태스크가 될 수 있기 때문이다.
B. 데이터 보안성
전술한 바와 같이, 본 명세서에 개시된 분산된 그리고 "가상 소거 코딩" 스트리밍 기법은, 하나의 물리적인 클라우드 저장 위치에 전체 파일을 저장하는 종래의 스트리밍 기법에 비하여, 크게 개선된 데이터 보안성을 제공한다.
또한, 파일 슬라이스 조각들의 프로세싱 및 저장 둘다에 이용되는 서버들은, 파일 슬라이스가 어떤 클라이언트에게 속하는지를 해커가 슬라이스들로부터 식별할 수 없는 방식으로, 다수의 클라이언트들에 의해서 공유될 수 있다. 이러한 점은, 본 기술을 이용하여 저장된 매체 파일 데이터의 보안성을 해커가 침해하는 것을 더욱 힘들게 한다.
C. 데이터 이용가능성
전술한 바와 같이, 본 명세서에 개시된 분산된 저장 및 "가상 소거 코딩" 스트리밍 기법은 종래 기술에 따른 스트리밍 기법에 비하여, 데이터의 이용가능성 측면에서 개선들을 또한 제공한다. 파일을 다수의 파일 슬라이스 조각들로 분할함으로써(이들 파일 슬라이스 조각들은 다수의 물리적 노드들 상에 저장되며, 상기 다수의 물리적 노드들은 서로 다른 위치들에 배치되는 것이 바람직하다), 클라이언트 위치와 물리적 노드들 중 하나 사이에서의 통신 문제들이, 다른 데이터 위치들과의 정상 통신들에 의해서 상쇄될 수 있다. 다수의 위치들을 갖는 것의 전체적인 효과는, 사이트들 중 하나에서의 통신 중단에 기인하는 운전정지(outages)로부터 시스템을 격리시키는 것이다.
오리지널 데이터를 식별할 수 없게(unrecognizable) 만드는 소거 코딩의 이용 및 리던던트 데이터를 구비한 다수의 노드들은 강력하고 그리고 안전한 에러 정정 기술을 추가한다. 종래의 스트리밍 기술을 괴롭히던 패킷 손실 문제들은, 더 이상 유의미한 고려 대상이 아니다. 종래의 스트리밍 기술은 종종 동일한 매체 파일의 다수의 카피들을 지리적 서비스 영역에 걸쳐 있는 많은 서버들 상에 배치해야만 했는데, 이는 클라이언트가 플레이하기를 원하는 데이터 스트림을 저장하는 서버에 대한 양호한 연결성을 각각의 클라이언트가 가짐을 보장하기 위해서이다. 본 명세서에 개시된 스트리밍 기술은, 서비스 영역에 걸쳐있는 다수의 서버들 상에 오리지널 매체 파일 완전한 리던던트 카피들(full redundant copies)을 배치할 필요성을 제거한다.
D. 데이터 신뢰성
본 명세서에 개시된 분산된 저장 및 "가상 소거 코딩" 스트리밍 기법은 종래 기술에 비하여, 스트리밍 매체의 신뢰성에 있어서 큰 개선을 가져온다. 각각의 파일을 파일 슬라이스 조각들로 분리하는 것은, 물리적인 서버 저장 위치들 중 하나에서의 하드웨어 또는 소프트웨어 실패들 혹은 에러들이, 파일에 대한 액세스를 없애지 않을 것임을 의미하는바, 종래 기술에서와 같이 전체 파일이 하나의 물리적 위치에 저장되는 경우에는 그러하지 아니하였다. 오리지널 데이터를 식별할 수 없게(unrecognizable) 만드는 소거 코딩 기술은 매체 콘텐트의 보안성을 향상시킴과 아울러 고품질의 에러 정정 능력들을 보장한다.
E. 디지털 저작권 관리 보안성(Digital Rights Management Security)
디지털 저작권(DRM)에 대한 보호는 스트리밍 매체 파일들의 경우 특히 중요한 문제이다. 매체 스트리밍에서 DRM 보호 체계를 회피할 수 있는 많은 제3자 제품(third-party product)들이 이용가능하다. 본 명세서에 개시된 기술은 데이터 스트림을 데이터 조각들로 쪼개기 때문에(여기서, 상기 데이터 조각들은 암호화될 수 있으며 그리고 오리지널 데이터를 식별할 수 없게 만들 수 있는 소거 코딩으로 각각의 데이터 조각들이 프로세싱될 수 있음), DRM 보호 체계가 크게 개선될 수 있다. 만일, 스트리밍 매체를 요청하는 클라이언트가 그 파일 자체에 대한 권리를 갖고 있지는 않지만, 그 파일을 플레이하기 위한 권리만을 갖는다면, 암호화되고 그리고 소거-코딩된 데이터 조각들은, 심지어 플레이 동안에도, 클라이언트 디바이스 상에서 실제 매체 파일로 물리적으로 조립되어야할 필요는 없다. 이러한 것은 훨씬 강력한 DRM 체계들을 제공하며, 이러한 강력한 DRM 체계들은 오늘날 사용되는 통상적인 제3자 기술들에 의해서 용이하게 회피될 수 없다.
요약하면, 예시적인 실시예들에서, 본 명세서에 개시된 바와 같은, 분산된 저장 및 "가상 소거 코딩" 스트리밍 기법은 다음과 같은 기본적인 과제들을 성취할 수 있다.
1) 콘텐트 제공자의 매체 파일을 조각들 또는 파일 슬라이스들로 쪼개고, 이들 파일 슬라이스들은 결과적으로 파일 조각들로 더욱 쪼개질 것이며, 파일 조각들은 식별할 수 없는 조각들을 제공하도록 분산된 소거 코딩 서버들 상에서 소거 코딩된다.
2) 클라이언트에서 데이터의 재-조립을 할 수 있도록 파일들이 어떻게 쪼개졌는지를 기술하는 파일 슬라이스들의 맵들을 생성한다. 이러한 맵은 메타데이터 파일에 저장된다.
3) 선택적으로는, 추가적인 데이터 보안을 위하여, 파일 슬라이스들이 암호화된다.
4) 선택적으로는, 데이터 저장의 사이즈를 감소시키고 그리고 전송 속도를 개선하도록, 파일 슬라이스들이 압축된다.
5) 파일 슬라이스들에 대한 소거 코딩은, 향상된 데이터 정정 및 데이터 복원을 가능케한다.
6) 파일 슬라이스 조각들의 맵을 생성하는데, 상기 맵은 파일 슬라이스 조각들을 파일 슬라이스들로 재조립하는데 필요하다.
7) 선택적으로는, 추가적인 데이터 보안을 위하여, 파일 슬라이스 조각들이 암호화된다.
8) 선택적으로는, 저장 공간 요건들을 감소시키고 그리고 전송 속도를 개선하도록, 파일 슬라이스 조각들이 압축된다.
9) 클라이언트 디바이스 상에서 파일 슬라이스 조각들을 디코딩하고 그리고 파일 슬라이스들로 재-조립하며, 이후 클라이언트 매체 플레이어(또는 브라우저) 상에서 플레이하기 위하여 전체 매체 파일로 재조립한다. 다음을 유의해야 하는바, 조각들은 적절한 순서대로 슬라이스들로 조립되어야만 하며, 그리고 슬라이스들은 적절한 순서대로 전체 파일로 조립되어야만 한다. 클라이언트 소프트웨어는 2개의 메타데이터 파일들에 의해서 제공되는 맵핑 정보를 사용하여 이들 2개의 스테이지에서 매체 파일을 재조립한다.
본 발명에 따른 기술의 기본 구조는 다음의 4개의 계층들에 의해서 구현될 수 있다.
1. CSP(도1 참조)는 콘텐트 제공자의 매체 파일을 파일 슬라이스들로 분리하며, 선택적으로는 슬라이스들을 암호화하고, 그리고 슬라이스들이 오리지널 매체 파일로 어떻게 재-조립될 수 있는지에 관한 맵을 구비한 메타-데이터 파일을 생성한다. 메타-데이터 파일은 또한, 적절한 순서대로 슬라이스들을 조립하는데 필요한 각각의 파일 슬라이스의 순서에 대한 정보를 포함한다.
2. FEDP(도1 참조)는 소거 코딩을 이용하여 각각의 파일 슬라이스를 파일 슬라이스 조각들로 쪼개며, 소거 코딩은 식별할 수 없는 조각들을 생성한다. 예시적인 실시예에서, 소거 코딩은 30%의 데이터 리던던시를 부가한다. 제 2 메타-데이터 파일은 파일 슬라이스 조각들이 파일 슬라이스들로 어떻게 재조립되는지를 매핑한다. 제 2 메타-데이터 파일은 또한, 클라이언트 디바이스 상에서 조각들을 플레이하는 동안에 적절한 순서대로 슬라이스들을 조립하는데 필요한 각각의 조각의 순서에 대한 정보를 포함한다.
3. SNN(도1 참조)은 데이터 조각들을 분산시키는데 사용되는 다양한 저장 노드들이다. 저장 노드들은 반드시 클라우드 내에 모든 서버들일 필요는 없다. 노드들은 데이터 센터, 컴퓨터의 하드 디스크, 모바일 디바이스, 혹은 데이터를 저장할 수 있는 일부 다른 멀티미디어 디바이스가 될 수 있다. 이들 저장 노드들의 개수 및 신원(identity)은, 최저의 평균 레이턴시 및 가장 우수한 이용가능성을 갖는 노드들로 저장 설정의 레이턴시 및 보안성을 최적화하도록, 콘텐트 제공자에 의해서 선택될 수 있다.
4. 최종 사용자 클라이언트 디코더(end-user client decoder: ECD)는 현재 기술의 스트리밍 매체 플레이어 소프트웨어의 최상부에 구현될 수도 있다. 이러한 제 4 계층은 스트리밍 매체를 위해 콘텐트 제공자에 대한 요청을 개시하며, 그리고 계층(1) 및 계층(2)에서 형성된 2 개의 메타-데이터 파일들로부터 도출된 매핑 파일들을 수신하는바, 이는 매체 파일의 재생 혹은 저장을 위해 ECD가 파일 슬라이스 조각들을 슬라이스들로, 그리고 슬라이스들을 오리지널 매체 파일로 조립할 수 있게 한다. 명백한 바와 같이, 매체 파일은, 매체 콘텐트에 대한 온 디맨드 플레잉을 위해 필요한 적절한 순서대로 조립되어야만 한다. 만일, 클라이언트가 완전한 파일을 다운로드하기 위하여 스트리밍된 매체에 대한 권리를 구입하였다면, ECD는 오리지널 매체 파일을 플레이 및 조립 둘다를 할 것이다(이것이 완전히 다운로드되면). 만일, 클라이언트가 매체 파일을 플레이할 권리만을 가지고 있다면, ECD는 가능한 리-플레이(re-play)를 위해 파일 슬라이스 조각들을 저장함과 아울러 적절한 순서대로 상기 매체 파일을 플레이만 할 것이며, 파일 슬라이스 조각들을 완전한 파일로 조립하지는 않는다. 또한, 다운로드 속도가 매체 재생 속도를 초과한다면, 상기 ECD는 데이터 조각들을 클라이언트 디바이스 상의 저장소에 버퍼링할 것인데, 이는 대부분의 시간에서 발생한다. 또한, ECD는 현재 시간의 매체 파일 플레이의 앞 또는 뒤에 배치되는 매체 파일 세그먼트들에 대한 요청들을 수신 및 프로세스하도록 매체 플레이어와 상호작용한다.
추가적인 성능 고려사항들
만일, 특정한 매체 파일이 다수의 클라이언트들로부터 요구가 많으면(high demand), 증가된 요구를 충족시키기 위해 취해질 수 있는 2개의 주요한 접근법이 존재한다.
먼저, 소거 코딩된 데이터 조각들의 분산을 위해 많은 개수의 조각 저장 노드들이 채용될 수 있다. 만일, 이러한 요구가 하나의 지리적 영역으로부터 주로 온다면, 그 영역에 있는 클라이언트들에게 최상의 데이터 쓰루풋 속도들을 제공하도록, 분산을 위해 노드들이 선택될 수 있다.
두번째로, 소거 코딩 단계에 대하여 더 높은 레벨의 리던던시가 선택될 수도 있다. 예를 들어, 30%의 리던던시 대신에, 더 높은 레벨의 리던던시는, 더 많은 이용가능한 부족 부하(under load)를 보장하는데 도움을 줄 것이다.
이들 2개의 단계들은 특별한 요구 및 부하 요건들을 충족하도록 동적으로 수행될 수 있다(이들이 실시간으로 출현하므로).
또한, 이용가능성을 향상시키도록 더 큰 레벨들의 리던던시를 위해 소정의 슬라이스들 혹은 조각들이 선발될 수도 있다. 특히, 매체 파일들의 제 1 세그먼트들에는 더 높은 레벨의 리던던시가 주어질 수 있는바, 이는 증가된 요구를 충족시키기 위한 것이다.
비록, 개시된 본 발명의 주제는 소정의 예시적인 실시예들에 관하여 서술 및 예시되었지만, 해당 기술분야의 당업자는 다음을 이해할 것인바, 개시된 실시예들의 피처들은 본 개시 내용의 기술적 사상의 범위 내에 속하는 추가적인 실시예들을 생성하도록 결합, 재배열, 및 수정될 수 있으며, 그리고 본 발명의 사상 및 범위를 벗어남이 없이도 다양한 다른 변경들, 생략들, 및 추가사항들이 만들어질 수 있다.

Claims (29)

  1. 매체 콘텐트를 프로세싱하는 방법으로서,
    상기 매체 콘텐트를 복수의 파일 슬라이스들로 분리하는 단계;
    상기 파일 슬라이스들로부터 상기 매체 콘텐트를 재조립하기 위한 메타데이터를 생성하는 단계;
    상기 파일 슬라이스들을 소거 코딩(erasure coding)하는 단계, 상기 파일 슬라이스들은 개별적인 파일 슬라이스 조각들로 분리되며;
    상기 파일 슬라이스 조각들로부터 상기 파일 슬라이스들을 재조립하기 위한 메타데이터를 생성하는 단계; 및
    상기 파일 슬라이스 조각들을 복수의 분산된 네트워크 저장 노드들로 전송하는 단계를 포함하며,
    상기 복수의 분산된 네트워크 저장 노드들로부터 상기 매체 콘텐트가 검색(retrieve)될 수 있으며 그리고 상기 메타데이터를 이용하여 재구성될 수 있는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  2. 제1항에 있어서,
    상기 매체 콘텐트는 상기 소거 코딩된 파일 슬라이스 조각들로부터 식별될 수 없는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  3. 제2항에 있어서,
    상기 소거 코딩하는 단계는, 복수의 데이터 프로세서들 상에서 수행되는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  4. 제2항에 있어서,
    클라이언트 디코더에서 상기 파일 슬라이스 조각들을 상기 네트워크 저장 노드들로부터 수신하는 단계; 및
    상기 메타데이터에 따라 상기 매체 콘텐트를 재구성하는 단계
    를 더 포함하는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  5. 제4항에 있어서,
    상기 매체 콘텐트는 스트리밍 비디오 및 오디오 콘텐트 중 하나이며, 상기 매체 콘텐트를 재구성하는 단계는, 상기 매체 콘텐트의 재생 동안에 동시에 수행되는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  6. 제5항에 있어서,
    상기 수신하는 단계 및 상기 재구성하는 단계는 상기 매체 콘텐트에 대한 클라이언트 요청에 응답하여 수행되며; 및/또는
    상기 각각의 파일 슬라이스 조각들에는 고유 식별자가 부여되고 그리고 상기 메타데이터는 상기 고유 식별자에 기초하여 상기 복수의 분산된 네트워크 저장 노드들에 있는 파일 슬라이스 조각들 각각의 위치를 나타내며; 및/또는
    상기 소거 코딩하는 단계는 적어도 30%의 데이터 리던던시 레벨을 야기하는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  7. 제6항에 있어서,
    제 3의 대안으로서(third alternative), 상기 네트워크 저장 노드들의 레이턴시를 감소시키도록, 상기 네트워크 저장 노드들의 개수 및 신원이 콘텐트 제공자에 의해서 선택되는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  8. 제1항에 있어서,
    상기 네트워크 저장 노드들은 물리적으로 분리된 디바이스들에 위치되는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  9. 제8항에 있어서,
    상기 물리적으로 분리된 디바이스들은 지리적으로 분산되는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  10. 제1항에 있어서,
    그 어떤 저장 노드도, 상기 매체 콘텐트의 재구성을 허용할 정도로 충분한 정보를 갖지 않는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  11. 매체 콘텐트를 수신하는 방법으로서,
    소거-코딩된 파일 슬라이스 조각들로서 복수의 분산된 네트워크 저장 노드들에 저장되어 있는 매체 콘텐트를 요청하는 단계;
    상기 소거-코딩된 파일 슬라이스 조각들 및 상기 파일 슬라이스 조각들로부터 상기 매체 콘텐트를 재구성하기 위한 정보를 포함하는 메타데이터를 클라이언트 디코더에서 수신하는 단계; 및
    상기 메타데이터에 기초하여 상기 파일 슬라이스 조각들로부터 상기 매체 콘텐트를 상기 클라이언트 디코더에서 재구성하는 단계
    를 포함하는 것을 특징으로 하는 매체 콘텐트를 수신하는 방법.
  12. 제11항에 있어서,
    상기 매체 콘텐트는 스트리밍 비디오 및 오디오 콘텐트 중 하나인 것을 특징으로 하는 매체 콘텐트를 수신하는 방법.
  13. 제12항에 있어서,
    상기 매체 콘텐트는 상기 파일 슬라이스 조각들로부터 식별될 수 없는 것을 특징으로 하는 매체 콘텐트를 수신하는 방법.
  14. 제11항에 있어서,
    상기 복수의 분산된 네트워크 저장 노드들에 있는 파일 슬라이스 조각들의 위치를 나타내는 고유 식별자가 각각의 파일 슬라이스 조각들에 부여되며; 및/또는
    상기 네트워크 저장 노드들의 레이턴시를 감소시키도록, 상기 네트워크 저장 노드들의 개수 및 신원이 콘텐트 제공자에 의해서 선택되는 것을 특징으로 하는 매체 콘텐트를 수신하는 방법.
  15. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 파일 슬라이스들은 소거 코딩 이전에 암호화되며; 및/또는
    상기 파일 슬라이스들은 상기 매체 콘텐트를 프로세싱하는 방법에서 상기 소거 코딩하는 단계 이전에 압축되는 것을 특징으로 하는 매체 콘텐트를 수신하는 방법.
  16. 데이터의 분산된 프로세싱 및 저장을 위한 방법으로서,
    데이터 파일을 복수의 파일 슬라이스들로 나누는 단계;
    상기 파일 슬라이스들을 수신하기 위해 복수의 데이터 프로세서들을 제공하는 단계, 상기 데이터 프로세서들 각각은 복수의 식별할 수 없는 파일 슬라이스 조각들을 생성하도록, 상기 파일 슬라이스들 중 적어도 하나를 소거 코딩하며;
    상기 파일 슬라이스 조각들을 저장 노드들의 네트워크에 저장하는 단계
    를 포함하며,
    그 어떤 저장 노드도 상기 데이터 파일의 재구성을 허용할 정도로 충분한 정보를 갖지 않는 것을 특징으로 하는 데이터의 분산된 프로세싱 및 저장을 위한 방법.
  17. 제16항에 있어서,
    상기 소거 코딩은, 임의의 m 개의 파일 슬라이스 조각들로부터 n 개의 파일 슬라이스 조각들의 재구성을 허용하는 데이터 믹서 알고리즘을 이용함으로써, m 개의 세그먼트들을 갖는 파일 슬라이스를 n 개의 식별할 수 없는 복수의 파일 슬라이스 조각들로 나누며, 여기서 n > m 인 것을 특징으로 하는 데이터의 분산된 프로세싱 및 저장을 위한 방법.
  18. 제17항에 있어서,
    상기 데이터 믹서 알고리즘은 생성 매트릭스로서 코시 매트릭스(cauchy matrix)를 이용하며; 또는
    상기 데이터 믹서 알고리즘은 생성 매트릭스로서 반데몬드 매트릭스(vandermonde matrix)를 이용하는 것을 특징으로 하는 데이터의 분산된 프로세싱 및 저장을 위한 방법.
  19. 제5항에 있어서,
    상기 수신하는 단계 및 상기 재구성하는 단계는 상기 매체 콘텐트에 대한 클라이언트 요청에 응답하여 수행되는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  20. 제5항에 있어서,
    상기 각각의 파일 슬라이스 조각들에는 고유 식별자가 부여되고 그리고 상기 메타데이터는 상기 고유 식별자에 기초하여 상기 복수의 분산된 네트워크 저장 노드들에 있는 파일 슬라이스 조각들 각각의 위치를 나타내는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  21. 제5항에 있어서,
    상기 소거 코딩하는 단계는 적어도 30%의 데이터 리던던시 레벨을 야기하는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  22. 제21항에 있어서,
    상기 네트워크 저장 노드들의 레이턴시를 감소시키도록, 상기 네트워크 저장 노드들의 개수 및 신원이 콘텐트 제공자에 의해서 선택되는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  23. 제1항에 있어서,
    상기 파일 슬라이스들은 소거 코딩하는 단계 이전에 암호화되는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  24. 제1항에 있어서,
    상기 파일 슬라이스들은 상기 소거 코딩하는 단계 이전에 압축되는 것을 특징으로 하는 매체 콘텐트를 프로세싱하는 방법.
  25. 제11항에 있어서,
    상기 복수의 분산된 네트워크 저장 노드들에 있는 파일 슬라이스 조각들의 위치를 나타내는 고유 식별자가 각각의 파일 슬라이스 조각들에 부여되는 것을 특징으로 하는 매체 콘텐트를 수신하는 방법.
  26. 제11항에 있어서,
    상기 네트워크 저장 노드들의 레이턴시를 감소시키도록, 상기 네트워크 저장 노드들의 개수 및 신원이 콘텐트 제공자에 의해서 선택되는 것을 특징으로 하는 매체 콘텐트를 수신하는 방법.
  27. 제11항에 있어서,
    상기 파일 슬라이스들은 소거 코딩 이전에 암호화되는 것을 특징으로 하는 매체 콘텐트를 수신하는 방법.
  28. 제17항에 있어서,
    상기 데이터 믹서 알고리즘은 생성 매트릭스로서 코시 매트릭스를 이용하는 것을 특징으로 하는 데이터의 분산된 프로세싱 및 저장을 위한 방법.
  29. 제17항에 있어서,
    상기 데이터 믹서 알고리즘은 생성 매트릭스로서 반데몬드 매트릭스를 이용하는 것을 특징으로 하는 데이터의 분산된 프로세싱 및 저장을 위한 방법.
KR1020167034353A 2014-05-13 2015-05-11 분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송 KR101896048B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461992286P 2014-05-13 2014-05-13
US61/992,286 2014-05-13
US201462053255P 2014-09-22 2014-09-22
US62/053,255 2014-09-22
PCT/US2015/030163 WO2015175411A1 (en) 2014-05-13 2015-05-11 Distributed secure data storage and transmission of streaming media content

Publications (2)

Publication Number Publication Date
KR20170010787A true KR20170010787A (ko) 2017-02-01
KR101896048B1 KR101896048B1 (ko) 2018-09-06

Family

ID=54480500

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167034353A KR101896048B1 (ko) 2014-05-13 2015-05-11 분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송

Country Status (14)

Country Link
US (1) US20170048021A1 (ko)
EP (1) EP3143525A4 (ko)
JP (1) JP6296316B2 (ko)
KR (1) KR101896048B1 (ko)
CN (1) CN106462605A (ko)
AU (1) AU2015259417B2 (ko)
BR (1) BR112016026524A2 (ko)
CA (1) CA2948815A1 (ko)
EA (1) EA031078B1 (ko)
IL (1) IL248808A (ko)
MX (1) MX364334B (ko)
PH (1) PH12016502261A1 (ko)
SG (1) SG11201609471TA (ko)
WO (1) WO2015175411A1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019125069A1 (ko) * 2017-12-21 2019-06-27 바스아이디 랩 재팬 컴퍼니 리미티드 블록체인을 이용한 개인정보 분리 후 조합을 통한 인증 시스템
WO2019125041A1 (ko) * 2017-12-21 2019-06-27 바스아이디 랩 재팬 컴퍼니 리미티드 블록체인을 이용한 개인정보 분리 후 분산저장을 통한 인증 시스템
WO2019125081A1 (ko) * 2017-12-21 2019-06-27 문인식 블록체인을 이용한 일회성 접근 권한 부여 시스템
KR20190076197A (ko) * 2017-12-22 2019-07-02 주식회사 케이티 블록체인 기반의 데이터 저장 장치 및 방법
KR20200143197A (ko) * 2019-06-13 2020-12-23 주식회사 한컴위드 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법
KR20210047503A (ko) * 2019-10-22 2021-04-30 한국항공대학교산학협력단 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치
KR20210085389A (ko) * 2019-12-30 2021-07-08 주식회사 안랩 블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256904B1 (en) 2008-08-14 2016-02-09 Experian Information Solutions, Inc. Multi-bureau credit file freeze and unfreeze
GB2532039B (en) 2014-11-06 2016-09-21 Ibm Secure database backup and recovery
US10437676B2 (en) * 2015-02-27 2019-10-08 Pure Storage, Inc. Urgent reads and using data source health to determine error recovery procedures
US11188665B2 (en) * 2015-02-27 2021-11-30 Pure Storage, Inc. Using internal sensors to detect adverse interference and take defensive actions
JP6055023B2 (ja) * 2015-05-11 2016-12-27 レノボ・シンガポール・プライベート・リミテッド クラウド環境にデータを保存する情報処理装置、端末装置および保存方法
US10891058B2 (en) * 2015-05-29 2021-01-12 Pure Storage, Inc. Encoding slice verification information to support verifiable rebuilding
US10235240B2 (en) * 2015-07-03 2019-03-19 Acronis International Gmbh System and method of reliable distributed data storage with controlled redundancy
US11782789B2 (en) 2015-07-31 2023-10-10 Pure Storage, Inc. Encoding data and associated metadata in a storage network
US10042704B2 (en) * 2015-07-31 2018-08-07 International Business Machines Corporation Validating stored encoded data slice integrity in a dispersed storage network
US10375144B2 (en) * 2015-09-28 2019-08-06 Sony Corporation Uploading over parallel requests
US10356663B2 (en) * 2015-09-30 2019-07-16 Ntt Docomo, Inc. Service allocation determining methid
US10757154B1 (en) 2015-11-24 2020-08-25 Experian Information Solutions, Inc. Real-time event-based notification system
KR102482324B1 (ko) * 2016-01-05 2022-12-29 삼성전자주식회사 클라우드 스토리지 서비스를 지원하는 무선 통신 시스템에서 파일 송/수신 장치 및 방법
ES2899933T3 (es) * 2016-03-15 2022-03-15 Datomia Res Labs Ou Gestión y seguridad de datos del sistema de almacenamiento distribuido
US10931402B2 (en) 2016-03-15 2021-02-23 Cloud Storage, Inc. Distributed storage system data management and security
US10116629B2 (en) 2016-05-16 2018-10-30 Carbonite, Inc. Systems and methods for obfuscation of data via an aggregation of cloud storage services
US10404798B2 (en) * 2016-05-16 2019-09-03 Carbonite, Inc. Systems and methods for third-party policy-based file distribution in an aggregation of cloud storage services
US11100107B2 (en) 2016-05-16 2021-08-24 Carbonite, Inc. Systems and methods for secure file management via an aggregation of cloud storage services
US10356158B2 (en) 2016-05-16 2019-07-16 Carbonite, Inc. Systems and methods for aggregation of cloud storage
CN106170014A (zh) * 2016-07-11 2016-11-30 安徽斗转星移信息科技有限公司 一种云存储系统和方法
EP3321846A1 (en) * 2016-11-15 2018-05-16 Mastercard International Incorporated Systems and methods for secure biometric sample raw data storage
US10491378B2 (en) * 2016-11-16 2019-11-26 StreamSpace, LLC Decentralized nodal network for providing security of files in distributed filesystems
US11227001B2 (en) 2017-01-31 2022-01-18 Experian Information Solutions, Inc. Massive scale heterogeneous data ingestion and user resolution
CN108696559B (zh) * 2017-04-11 2021-08-20 华为技术有限公司 流处理方法及装置
CA3061047A1 (en) * 2017-04-27 2018-11-01 Financial & Risk Organisation Limited Systems and methods for distributed data mapping
US10430350B1 (en) * 2017-06-27 2019-10-01 Wells Fargo Bank, N.A. Secure storage of data through a multifaceted security scheme
US10735183B1 (en) 2017-06-30 2020-08-04 Experian Information Solutions, Inc. Symmetric encryption for private smart contracts among multiple parties in a private peer-to-peer network
CN107689926B (zh) * 2017-08-03 2021-01-26 深圳市盛路物联通讯技术有限公司 一种通讯协议的数据传输方法及系统
WO2019033368A1 (zh) * 2017-08-17 2019-02-21 深圳市优品壹电子有限公司 数据存储方法及装置
WO2019037877A1 (en) * 2017-08-25 2019-02-28 Huawei Technologies Co., Ltd. APPARATUS AND METHOD FOR DEDUPLICATING DATA
CN107506153B (zh) * 2017-09-26 2021-07-02 深信服科技股份有限公司 一种数据压缩方法、数据解压方法及相关系统
WO2019124610A1 (ko) * 2017-12-21 2019-06-27 문인식 블록체인을 이용한 개인정보 분리 후 분산 저장 및 조합을 통한 인증 방법
CN109995821A (zh) * 2017-12-29 2019-07-09 中移(苏州)软件技术有限公司 文件上传的方法及系统、客户端、服务器、对象存储系统
JP2021513712A (ja) * 2018-02-07 2021-05-27 メディキャプチャー・インコーポレイテッド 分散型データストレージのためのシステムおよび方法
CN108551450B (zh) * 2018-04-18 2021-04-20 何小林 一种基于无线协议的数据分段传输方法和系统
CN108777803A (zh) * 2018-06-05 2018-11-09 四川师范大学 广电云平台视频流处理方法、装置、设备及介质
CN108897497B (zh) * 2018-06-29 2021-10-08 吴俊杰 一种无中心的数据管理方法及装置
RU2714219C1 (ru) 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
CN109302391B (zh) * 2018-09-21 2021-03-02 深圳市九洲电器有限公司 一种安防数据上传方法及装置、客户端
CN109088729B (zh) * 2018-09-28 2021-03-26 北京金山安全软件有限公司 一种密钥存储方法及装置
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2714602C1 (ru) 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
CN109753809B (zh) * 2018-11-27 2021-07-06 国网浙江省电力有限公司 一种基于云存储系统的电网数据块分割方法
RU2714373C1 (ru) 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) * 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
US11620403B2 (en) 2019-01-11 2023-04-04 Experian Information Solutions, Inc. Systems and methods for secure data aggregation and computation
EP3918484A4 (en) 2019-01-29 2023-03-29 Cloud Storage, Inc. METHOD FOR REPAIRING ENCODE AND MEMORY NODES FOR MINIMUM MEMORY REGENERATION CODES FOR DISTRIBUTED MEMORY SYSTEMS
WO2020160259A1 (en) 2019-01-30 2020-08-06 Practechal Solutions,Inc A method and system for surveillance system management
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения
CN109936769B (zh) * 2019-04-23 2021-06-04 深圳大学 一种视频卡顿检测方法、检测系统、移动终端及存储装置
JP7173646B2 (ja) * 2019-05-22 2022-11-16 ミョータ インコーポレイテッド 強化セキュリティ、レジリエンス、及び、コントロールによる分散データストレージのための方法及びシステム
US11314593B2 (en) * 2019-06-25 2022-04-26 Western Digital Technologies, Inc. Storage node processing of data functions using overlapping symbols
US11055018B2 (en) 2019-06-25 2021-07-06 Western Digital Technologies, Inc. Parallel storage node processing of data functions
US10990324B2 (en) 2019-06-25 2021-04-27 Western Digital Technologies, Inc. Storage node processing of predefined data functions
US11281531B2 (en) 2019-06-25 2022-03-22 Western Digital Technologies, Inc. Serial storage node processing of data functions
CN110381061A (zh) * 2019-07-19 2019-10-25 广东省新一代通信与网络创新研究院 文件的多云存储方法、下载方法、装置及存储介质
EP3791538B1 (en) * 2019-08-01 2023-04-12 Advanced New Technologies Co., Ltd. Shared blockchain data storage based on error correction code
US11277467B1 (en) * 2019-09-30 2022-03-15 Cadence Design Systems, Inc. Method, system, and product for orchestrating uploads of very large design files to selected cloud providers in a multi-cloud arrangement
US11308041B2 (en) * 2019-10-31 2022-04-19 Seagate Technology Llc Distributed secure edge storage network utilizing redundant heterogeneous storage
JP7152723B2 (ja) 2020-02-04 2022-10-13 株式会社Terada Oaタップ格納ボックス
CN111459940B (zh) * 2020-04-02 2023-09-19 中电工业互联网有限公司 一种高效可靠的数据集成方法
CN114070576B (zh) * 2020-08-07 2024-03-08 腾讯科技(深圳)有限公司 内容显示方法、内容生成方法、装置、设备及存储介质
JP2022074807A (ja) * 2020-11-05 2022-05-18 株式会社日立製作所 ファイルストレージ及びコンピュータシステム
CN112612411A (zh) * 2020-12-01 2021-04-06 北京亿智云科技有限公司 基于分布式云存储的数据备份和即时访问的系统及方法
CN112612668A (zh) * 2020-12-24 2021-04-06 上海立可芯半导体科技有限公司 一种数据处理方法、装置和计算机可读介质
CN112860189B (zh) * 2021-02-19 2022-12-30 山东大学 一种成本驱动的冷热分层云存储冗余存储方法与系统
CN113194330A (zh) * 2021-03-25 2021-07-30 电子科技大学 一种碎片化多云视频资源管理方法及系统
US11936699B2 (en) 2022-06-03 2024-03-19 Micro Focus Llc Optimal usage of content storage in a managed network
CN115982503B (zh) * 2023-02-07 2023-10-13 深圳慧梧科技有限公司 一种基于云平台的网站信息采集方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100094957A1 (en) * 2008-10-15 2010-04-15 Patentvc Ltd. Methods and systems for fast segment reconstruction

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665308B1 (en) * 1995-08-25 2003-12-16 Terayon Communication Systems, Inc. Apparatus and method for equalization in distributed digital data transmission systems
US6307868B1 (en) * 1995-08-25 2001-10-23 Terayon Communication Systems, Inc. Apparatus and method for SCDMA digital data transmission using orthogonal codes and a head end modem with no tracking loops
JP2007018563A (ja) * 2005-07-05 2007-01-25 Toshiba Corp 情報記憶媒体、情報記録方法及び装置、情報再生方法及び装置
US8285878B2 (en) * 2007-10-09 2012-10-09 Cleversafe, Inc. Block based access to a dispersed data storage network
US7574579B2 (en) * 2005-09-30 2009-08-11 Cleversafe, Inc. Metadata management system for an information dispersed storage system
US8694668B2 (en) * 2005-09-30 2014-04-08 Cleversafe, Inc. Streaming media software interface to a dispersed data storage network
JP4772752B2 (ja) * 2007-06-14 2011-09-14 日本電信電話株式会社 分散型マルチメディアサーバシステム、そのためのバッファサーバ、およびその分割マルチメディア情報蓄積配信方法
WO2010033644A1 (en) * 2008-09-16 2010-03-25 File System Labs Llc Matrix-based error correction and erasure code methods and apparatus and applications thereof
US9043489B2 (en) * 2009-10-30 2015-05-26 Cleversafe, Inc. Router-based dispersed storage network method and apparatus
US9462316B2 (en) * 2009-12-29 2016-10-04 International Business Machines Corporation Digital content retrieval utilizing dispersed storage
US20110314070A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Optimization of storage and transmission of data
US8473778B2 (en) * 2010-09-08 2013-06-25 Microsoft Corporation Erasure coding immutable data
US8627066B2 (en) * 2011-11-03 2014-01-07 Cleversafe, Inc. Processing a dispersed storage network access request utilizing certificate chain validation information
US8868647B2 (en) * 2012-01-11 2014-10-21 Alcatel Lucent Reducing latency and cost in resilient cloud file systems
WO2014005279A1 (zh) * 2012-07-03 2014-01-09 北京大学深圳研究生院 一种可精确再生的分布式存储码的构建方法及装置
CN103281400A (zh) * 2013-06-18 2013-09-04 清华大学 用于云存储网关的数据切分编码和恢复方法
US9241044B2 (en) * 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100094957A1 (en) * 2008-10-15 2010-04-15 Patentvc Ltd. Methods and systems for fast segment reconstruction

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019125069A1 (ko) * 2017-12-21 2019-06-27 바스아이디 랩 재팬 컴퍼니 리미티드 블록체인을 이용한 개인정보 분리 후 조합을 통한 인증 시스템
WO2019125041A1 (ko) * 2017-12-21 2019-06-27 바스아이디 랩 재팬 컴퍼니 리미티드 블록체인을 이용한 개인정보 분리 후 분산저장을 통한 인증 시스템
WO2019125081A1 (ko) * 2017-12-21 2019-06-27 문인식 블록체인을 이용한 일회성 접근 권한 부여 시스템
KR20190076197A (ko) * 2017-12-22 2019-07-02 주식회사 케이티 블록체인 기반의 데이터 저장 장치 및 방법
KR20200143197A (ko) * 2019-06-13 2020-12-23 주식회사 한컴위드 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법
KR20210047503A (ko) * 2019-10-22 2021-04-30 한국항공대학교산학협력단 블록 동기화 과정 생략 및 원격 저장소 제공을 위한 분산파일시스템 활용 블록 데이터 매핑 방법 및 노드 장치
KR20210085389A (ko) * 2019-12-30 2021-07-08 주식회사 안랩 블록체인 네트워크에서 저장소에 복수의 데이터 조각들을 저장하는 방법 및 저장된 복수의 데이터 조각들을 수신하는 방법

Also Published As

Publication number Publication date
MX364334B (es) 2019-04-23
AU2015259417B2 (en) 2016-09-22
IL248808A (en) 2017-07-31
EP3143525A1 (en) 2017-03-22
EA031078B1 (ru) 2018-11-30
SG11201609471TA (en) 2016-12-29
MX2016014221A (es) 2017-05-04
WO2015175411A1 (en) 2015-11-19
BR112016026524A2 (pt) 2017-08-15
PH12016502261A1 (en) 2017-02-06
JP6296316B2 (ja) 2018-03-20
CA2948815A1 (en) 2015-11-19
US20170048021A1 (en) 2017-02-16
KR101896048B1 (ko) 2018-09-06
EA201650049A1 (ru) 2017-04-28
CN106462605A (zh) 2017-02-22
JP2017523493A (ja) 2017-08-17
AU2015259417A1 (en) 2016-09-01
WO2015175411A9 (en) 2016-07-07
EP3143525A4 (en) 2017-03-22

Similar Documents

Publication Publication Date Title
KR101896048B1 (ko) 분산된 보안 데이터 저장 및 스트리밍 매체 콘텐트의 전송
US20190036648A1 (en) Distributed secure data storage and transmission of streaming media content
US10613776B2 (en) Appyling multiple hash functions to generate multiple masked keys in a secure slice implementation
US10656998B2 (en) End-to-end secure data storage in a dispersed storage network
US10574395B2 (en) Storing a stream of data in a dispersed storage network
US10095441B2 (en) End-to-end secure data retrieval in a dispersed storage network
JP6704856B2 (ja) 通信ネットワーク上の情報の安全な記憶と加速された伝送
US8527828B2 (en) Data distribution utilizing unique write parameters in a dispersed storage system
US9823845B2 (en) Adaptive dispersed storage network (DSN) and system
US9413393B2 (en) Encoding multi-media content for a centralized digital video storage system
US11704195B1 (en) Pre-positioning target content in a storage network
US9330241B2 (en) Applying digital rights management to multi-media file playback
US10805042B2 (en) Creating transmission data slices for use in a dispersed storage network
US10834196B2 (en) Segmenting and merging data in a dispersed storage network
CN111149365B (zh) 用于传输数据的装置、系统和方法
WO2017039538A1 (en) Systems and methods for unified storage services

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
N231 Notification of change of applicant
AMND Amendment
X701 Decision to grant (after re-examination)