KR20220099978A - 압축 데이터의 부분 다운로드 - Google Patents

압축 데이터의 부분 다운로드 Download PDF

Info

Publication number
KR20220099978A
KR20220099978A KR1020227017337A KR20227017337A KR20220099978A KR 20220099978 A KR20220099978 A KR 20220099978A KR 1020227017337 A KR1020227017337 A KR 1020227017337A KR 20227017337 A KR20227017337 A KR 20227017337A KR 20220099978 A KR20220099978 A KR 20220099978A
Authority
KR
South Korea
Prior art keywords
file
compressed
compressed file
compressor
section
Prior art date
Application number
KR1020227017337A
Other languages
English (en)
Inventor
이카자 아모절루티아 미구엘 데
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20220099978A publication Critical patent/KR20220099978A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6052Synchronisation of encoder and decoder
    • 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
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

클라이언트는 내부 부분에 선행하는 압축 파일의 부분을 다운로드 및 압축 해제할 필요 없이 서버에서 압축 파일의 내부 부분을 압축 해제할 수 있다. 처음에 파일이 압축되면, 압축기의 상태(예: 사전)는 주기적으로 캡쳐되고 압축 파일 내의 위치와 관련하여 저장된다. 서버는 압축 파일과 관련하여 압축기 상태 및 위치를 저장한다. 클라이언트는 서버에 대해 압축 파일의 내부 섹션을 식별한다. 서버는 위치가 내부 섹션에 가장 가까운 압축기 상태를 선택한다. 서버는 선택된 압축기 상태 및 압축 파일의 내부 부분을 클라이언트에 전송한다. 클라이언트는 전송된 압축기 상태로 압축 해제기를 준비하고, 이후 준비된 압축 해제기는 압축 파일의 내부 부분을 압축 해제한다.

Description

압축 데이터의 부분 다운로드
압축 알고리즘은 데이터를 압축하는 데 오랫동안 사용되어 왔다. 압축으로 데이터를 줄이는 것은 스토리지 하드웨어 오버헤드를 줄이고, 네트워크 대역폭 소비를 줄이고, 정보 전송 속도를 높일 수 있는 등이 가능하다. 압축을 개선하기 위한 대부분의 노력은 압축 효율성, 즉 주어진 단위 데이터의 크기를 얼마나 줄일 수 있는지에 중점을 두어 왔다. 효율적인 압축 알고리즘은 일반적으로 압축되지 않은 데이터가 인코딩(압축)되는 방식을 제어하는 압축기 상태를 갖는다. 압축되지 않은 데이터를 읽고 통계적으로 분석할 때 압축 상태가 조정된다. 임의의 시점에서 데이터가 어떻게 압축되는지는 압축 알고리즘뿐만 아니라 선행하는 데이터의 압축에 의존한다.
전형적으로, 압축기 상태는 압축되지 않은 스트링 및 각각 대응하는 코드 사이의 연관 사전이다. 압축되지 않은 데이터의 압축 버전은 통계 분석에 의해 생성되고 각각의 압축되지 않은 스트링을 나타내는 코드 시퀀스를 점진적으로 구축한다. 압축되지 않은 데이터의 압축 형식은 압축되지 않은 단어/스트링 대신 코드로 구성될 것이다. 보다 정교한 기술과 사전이 존재하지만, 이들 대부분은 압축되지 않은 데이터를 압축 데이터에 매핑하는 동적 압축 상태를 포함한다.
오직 발명자에 의해 관찰된 바와 같이, 압축 알고리즘의 동적 압축/사전적 상태는 압축 효율을 위해 좋을 수 있지만, 먼저 선행하는 모든 데이터를 압축 해제하지 않고 압축 데이터의 내부 부분을 압축 해제하는 것은 불가능하다. 이렇게 하려면 물론 압축 데이터를 이용가능 해야만 한다. 따라서 압축 데이터 전부가 이용 가능해야 하고 데이터의 필요한 내부 서브셋이 압축 해제되기 전에 압축 해제되어야 하기 때문에 데이터를 압축하면서 발전하는 압축 알고리즘은 문제가 있다. 필요한 부분을 압축 해제하는 데 요구되는 상태와 사전을 다시 만들기 위해서는 필요한 부분에 선행하는 것이 압축 해제되어야 한다. 애플리케이션에 따라, 이는 상당한 처리 시간, 전송 대역폭, 저장 공간 등을 요구할 수 있다.
이 문제의 예는 압축 데이터 내의 개별 데이터 단위인 데이터 항목을 포함하는 압축 패키지에서 볼 수 있다. 다운로드를 위해 서버는 구성 파일을 포함하는 압축 패키지를 제공할 수 있다. 클라이언트는 압축 패키지 내에서 어떤 파일이 필요한지 알 수 있으며 서버에 대한 압축 스트림 내에서 파일의 위치를 지정할 수도 있다. 그러나 서버가 구성 파일을 포함하는 압축 데이터의 관련 서브셋만 추출한 경우에도, 클라이언트는 선행하는 압축 파일 전부가 없다면 해당 서브셋의 압축을 풀 수 없다.
아래에서 논의되는 기술은 선행하는 압축 데이터 전부의 압축 해제를 요구하지 않고 압축 데이터의 내부 섹션을 압축 해제하는 것과 관련된 기술이다.
다음 요약은 오직 아래의 상세한 설명에서 논의된 일부 개념을 소개하기 위해서만 포함된다. 이 요약은 포괄적이지 않으며 마지막에 제시된 청구범위에 의해 설명된 청구된 주제의 범위를 설명하기 위한 것이 아니다.
클라이언트는 내부 부분에 선행하는 압축 파일의 부분을 다운로드 및 압축 해제할 필요 없이 서버 상의 압축 파일의 내부 부분을 압축 해제할 수 있다. 이는 또한 압축, 예를 들어 사전이 주기적으로 캡쳐되고 압축 파일 내의 위치와 관련하여 저장되는 동안 불연속 시간에 오프라인 프로세스가 압축기 상태를 기록하고 캡쳐하게 함으로써 달성될 수 있다. 서버는 압축 파일과 관련하여 압축기 상태 및 위치를 저장한다. 압축 파일이 이미 존재하는 경우 압축기는 압축 파일을 생성할 필요 없이 압축되지 않은 파일을 처리하여 압축기 상태를 생성할 수 있다. 대안적으로, 서버 측은 클라이언트가 요청할 때 요청에 따라 사전 상태를 계산할 수 있다. 클라이언트는 서버에 대해 압축 파일의 내부 섹션을 식별한다. 서버는 위치가 내부 섹션에 가장 가까운 압축기 상태를 선택한다; 압축기 상태는 미리 계산된 상태이거나 서버의 요청에 따라 계산될 수 있다. 서버는 선택된 압축기 상태 및 압축 파일의 내부 부분을 클라이언트에 전송한다. 클라이언트는 전송된 압축기 상태로 압축 해제기를 준비하고, 이후 준비된 압축 해제기는 압축 파일의 내부 부분을 압축 해제한다.
첨부된 도면과 관련하여 고려되는 다음의 상세한 설명을 참조하여 많은 부수적인 특징이 아래에서 설명될 것이다.
본 설명은 첨부 도면에 비추어 읽은 다음의 상세한 설명으로부터 더 잘 이해될 것이며, 유사한 참조 번호는 첨부된 설명에서 유사한 부분을 지정하기 위해 사용된다.
도 1은 클라이언트가 압축 파일의 내부 섹션을 얻기 위해 서버로부터 압축 파일을 다운로드하는 것을 도시한다.
도 2는 압축되지 않은 파일을 압축하는 동안 압축 체크포인트가 어떻게 캡쳐될 수 있는지를 도시한다.
도 3은 랜덤 액세스 데이터를 생성하기 위한 프로세스를 도시한다.
도 4는 클라이언트가 필요한 섹션을 얻기 위해 최소량의 압축 파일 데이터를 다운로드 및 압축 해제할 수 있도록 클라이언트 및 서버가 협력하는 방법을 도시한다.
도 5는 압축 파일의 내부 부분, 연관된 압축기 상태 및 오프셋을 수신하는 클라이언트를 도시한다.
도 6은 부분 다운로드 및 압축 해제를 위한 다른 실시예를 도시한다.
도 7은 컴퓨팅 디바이스의 세부사항을 도시한다.
도 1은 압축 파일(102)의 내부 섹션(106)을 얻기 위해 서버(104)로부터 압축 파일(102)을 다운로드하는 클라이언트(100)를 도시한다. 섹션(106)은 압축 파일(102)의 시작 부분에 있지 않다는 점에서 내부적이다. 논의를 위해 본 명세서에 언급된 섹션 또는 부분은 내부적인 것으로 가정한다.
클라이언트(100)가 섹션(106)을 필요로 하기 전에, 압축 파일(102)은 압축되지 않은 파일(110)을 압축하는 압축기(108)에 의해 생성된다. 압축되지 않은 파일(110)은 압축기(108)에 대해 "압축되지 않은" 상태이고; 압축되지 않은 파일(110) 내의 데이터는 다른 압축기에 의해 이전에 압축되었을 수 있다. 클라이언트(100)가 섹션(106)을 필요로 할 때, 클라이언트는 프로세스(111)를 수행한다. 즉, 클라이언트는 서버(104)에 대해 압축 파일(102)을 식별한다. 서버(104)는 압축 파일(102)을 클라이언트(100)에 제공함으로써 응답한다. 클라이언트(100)는 압축 파일(102)을 압축 해제하고 압축되지 않은 파일(110)과 동등한 압축 해제된 파일(114)을 출력하는 압축 해제기(112)를 갖는다. 이후 클라이언트는 압축 해제된 파일(114)로부터 필요한 섹션(106)을 추출한다. 일부 압축 해제기는 섹션(106)의 마지막이 압축 해제되면 압축 해제를 중지할 수 있음에 주목한다. 하여튼, 클라이언트(100)는 적어도 섹션(106)에 선행하는 압축 파일(102) 전부(압축 프리픽스라 칭함)를 필요로 한다. 볼 수 있는 바와 같이, 압축 해제된 프리픽스의 데이터가 클라이언트에 필요하지 않더라도 가능한 큰 크기의 압축 프리픽스가 다운로드 및 압축 해제될 필요가 있다. 섹션(106)의 압축을 풀려면 압축 프리픽스가 필요하다. 압축은 서버가 아닌 엔티티에 의해 수행될 수도 있다.
여전히 도 1을 참조하면, 용어 "클라이언트" 및 "서버"는 도 1에 도시된 바와 같이 압축 데이터를 교환하는 임의의 2개의 엔티티를 구별하기 위한 레이블이다. 클라이언트 및 서버는 통신 링크 또는 네트워크를 통해 통신하는 각각의 컴퓨팅 디바이스일 수 있다. 클라이언트 및 서버는 컴퓨팅 클라우드 내의 서비스 또는 엔티티일 수 있다. 클라이언트 및 서버는 또한 예를 들어 가상 머신 또는 컨테이너와 같이 동일한 디바이스에서 실행되는 구성 요소일 수도 있다. 논의를 위해, 클라이언트는 서버로부터 네트워크를 통해 파일을 전송하는 데 적합한 애플리케이션-수준 프로토콜(예: 하이퍼텍스트 전송 프로토콜)을 사용하는 것으로 가정된다.
편의상, 단일 서버는 본 명세서에서 다양한 동작을 수행하고 다양한 정보를 제공하는 것으로 설명된다. 실제로, 동작 및 정보는 여러 협력 서버-측 컴퓨팅 디바이스에 의해 처리될 수 있다. 제1 서버 디바이스는 압축되지 않은 파일을 저장할 수 있고, 제2 서버 디바이스는 제1 서버 디바이스에서 압축되지 않은 파일을 프로세싱함으로써 압축기 상태 데이터를 생성할 수 있고, 제3 서버 디바이스는 압축기 상태 및 압축 데이터를 클라이언트 디바이스에 제공할 수 있다. 압축되지 않은 파일, 압축 파일 및 압축기 상태는 각각의 디바이스에 있을 수 있다. 압축 데이터 및 압축기 상태는 CDN(Content distribution network)에 의해 배포될 수 있다. CDN은 피어(peer)가 압축 데이터 및 압축기 상태를 배포하고 소비하는 피어-투-피어 네트워크일 수 있다. 본 명세서에서 단일 "서버"가 언급되는 경우, 이러한 다중-디바이스 아키텍처 변형도 포함된다. 또한 서버 및 클라이언트 디바이스는 아마도 클라우드에서 호스팅되는 동등한 클라우드 서비스 또는 가상 머신으로 대체될 수 있다.
도 1에서 압축된 파일은 압축기(108)에 의해 구현된 압축 알고리즘과 관련하여 단일 압축 단위인 것으로 가정된다. 즉, 파일은 단일 인코딩 단위로 압축되며, 파일 마지막 부분의 압축은 파일 시작 부분의 내용에 따라 달라질 수 있다. 이는 파일이 섹션화되고 각 섹션이 오직 자신의 내용에 기초하여 압축되는 압축 방식과 대조된다. 즉, 압축 알고리즘은 재설정되지 않고 전체 파일에 연속적으로 적용된다. 대부분의 경우 압축 알고리즘은 손실이 없지만, 본 명세서에 설명된 기술은 또한 롤링 압축 상태를 갖는 임의의 손실 압축 알고리즘과 함께 사용될 수도 있다. 압축기(108) 및 압축 해제기(112)는 상이한 요소로 지칭되지만, 실제로 그들은 압축 해제가 압축의 역기능인 동일한 모듈 또는 애플리케이션일 수 있다.
다음에 논의되는 바와 같이, 섹션(106)을 얻기 위해 압축 파일(102) 전부를 다운로드하는 것보다, 압축기(108)는 압축기 상태가 압축의 다른 단계에서 캡쳐되거나 임의의 주어진 위치에 대한 요구에 따라 압축 스트림으로 계산되도록 수정될 수 있다. 클라이언트가 오직 압축 파일의 섹션만 필요로 하는 경우, 압축 파일의 가장 가까운 부분 및 대응하는 압축기 상태가 클라이언트에게 전송된다. 클라이언트는 압축기 상태로 그의 압축기를 준비하고 이후 준비된 압축기는 무엇이 포괄하는 압축 데이터에 선행하든 압축 해제하지 않고 포괄하는 압축 데이터를 압축 해제한다.
도 2는 압축되지 않은 파일(110)을 압축하는 동안 압축 체크포인트(120)가 캡쳐될 수 있는 방법을 도시한다. 압축을 시작하기 전에 수정된 압축기(108)는 상태를 갖지 않는다. 압축기(108)는 압축되지 않은 파일(108)의 압축을 시작한다. 압축기는 체크포인트(120)를 주기적으로 캡쳐하도록 구성된다. 주기는 프로세싱된 압축되지 않은 데이터의 양, 생성된 압축 데이터의 양, 압축 상태(예: 사전 크기), 압축되지 않은 파일의 비율(예: 1/100) 및/또는 유사한 척도에 기초할 수 있다. 체크포인트 비율 또는 기준은 압축기의 파라미터를 설정하여 제어할 수 있다. 파일의 내용 또는 사용 데이터를 기반으로 체크포인트 또는 세분성을 경험적으로 편향시키는 것 또한 가능하며 특정 관심 영역을 식별하도록 파라미터를 설정하는 것 또한 가능하다. 전자와 관련하여, 체크포인트는 파일 내용에서 요소 또는 데이터 항목의 경계 또는 그 근처에서 강제될 수 있다. 구성 데이터 항목의 크기에 맞게 세분성을 늘릴 수 있다. 파일에 많은 작은 데이터 항목이 포함된 경우 체크포인트 세분성은 더 미세하게 될 수 있다. 파일이 큰 데이터 항목이 포함하는 경우 체크포인트 세분성은 더 굵게 만들어질 수 있다. 사용 데이터와 관련하여, 압축 파일의 어떤 구성 부분이 가장 자주 액세스되는지에 대한 이력 데이터가 있는 경우, 가장 자주 액세스되는 구성 부분의 경계에서 체크포인트가 강제될 수 있다.
압축기(108)가 제1 기간에 도달했다고 결정할 때, 제1 체크포인트(120)가 캡쳐된다. 적어도 체크포인트는 도 2에서 S1로 표시된 압축기 상태(122)를 포함한다. 압축기는 압축되지 않은 데이터(일반적으로 사전)를 분석하고 압축할 때 압축기 상태를 구축한다. 도 2에서, 상태 S1는 도 2에서 부분 Fu1로 표시된 압축되지 않은 파일의 이전 부분을 압축한 후 압축기가 구축한 정보(예: 사전)이다. 체크포인트(120)는 또한 Fu1에 대한 압축되지 않은 파일 오프셋(124)(Ou1) 및 압축 파일(104)의 대응하는 부분에 대한 압축 파일 오프셋(126)(Oc1)을 포함할 수 있다. 이는 각 파일의 시작 부분으로부터의 거리이다. 아래에서 설명되는 바와 같이, 이러한 오프셋은 압축 파일의 임의의 주어진 섹션이나 포인트를 압축 해제하기 위해 클라이언트가 필요로 할 압축 상태 및 압축 데이터를 찾는 데 사용될 수 있다.
제1 체크포인트가 취해진 후 압축은 다음 체크포인트에 도달할 때까지 계속된다. 현재 압축 포인트까지의 오프셋 및 압축기 상태를 포함하는 다음 체크포인트가 캡쳐된다. 압축기 상태는 이전 압축기 상태에서 변경되었을 수 있다. 압축기 상태는 이미 압축된 모든 데이터에 따라 달라진다. 이러한 프로세스는 압축되지 않은 파일 전부가 압축되어 압축 파일(102)을 생성할 때까지 반복된다. 체크포인트(120)는 압축 파일과 연관된 데이터셋으로서 저장되고, 바람직하게는 캡쳐된 순서대로 저장된다. 압축 파일의 마지막 부분에 대한 체크포인트는 불필요하다. 체크포인트 데이터는 모든 선행 압축 데이터를 다운로드 및 압축 해제할 필요 없이 압축 데이터에 대한 준-랜덤 액세스를 가능하게 하기 때문에 랜덤 액세스 데이터(128)로 지칭될 것이다.
일 실시예에서, 압축되지 않은 파일이 패키지 또는 아카이브인 경우 이는 구성 파일과 같은 개별 요소를 포함한다. 이 경우, 압축기는 또한 개별 요소 경계에 도달할 때마다 체크포인트를 강제할 수 있다. 이러한 체크포인트는 주기적인 체크포인트와 결합하거나 주기적인 체크포인트 대신 사용될 수 있다. 다른 실시예에서, 구성 요소의 오프셋은 마주칠 때 캡쳐되지만 압축기 상태는 오직 주기적으로만 캡쳐된다.
도 3은 랜덤 액세스 데이터(128)를 생성하기 위한 프로세스를 도시한다. 초기화 단계(140)에서 압축기(108)는 압축 파라미터를 얻고 자신을 파라미터로 구성한다. 압축 파라미터는 어떤 알고리즘을 사용할 지, 적용 가능한 경우 압축-수준 등과 같은 알려진 파라미터를 포함할 수 있다. 파라미터는 또한 체크포인팅을 켜거나 끄고, 체크포인트 빈도(세분성), 체크포인트가 발생할 수 있는 특정 위치 또는 체크포인트 표시 방법과 같은 체크포인팅 파라미터를 설정할 수 있다. 미세 세분성이 가능하지만, 압축 상태는 파일 크기에 비해 다소 클 수 있다(예: 1Gb 파일의 경우 50Mb). 너무 많은 체크포인트는 스토리지 및 효율성 문제를 야기할 수 있다.
압축기(108)를 구성한 후, 압축 단계(142)가 시작된다. 압축기는 압축되지 않은 파일을 일반적인 방식으로 압축하기 시작하여, 압축 상태를 누적하고 압축 상태 대비 지금까지 마주친 압축되지 않은 데이터의 인코딩인 압축 데이터를 출력한다. 압축기 상태는 압축기에 의해 일반적으로 생성되고 나중 단계에서 압축기에 의해 사용하기 위해 소정 형태로 유지되는 (그리고 유사하게 압축 해제기에 의해 생성되고 사용되는) 임의의 상태일 수 있다. 체크포인트에 도달했다고 압축기가 결정하면, 압축기 상태 및 대응하는 파일 오프셋이 캡쳐된다. 압축 및 체크포인팅은 압축되지 않은 파일이 압축될 때까지 계속된다. 최종 단계(144)에서 체크포인트는 적절한 객체, 데이터 구조, 또는 포맷, 예를 들어 마크업 파일, 테이블, JSON(JavaScript Object Notation) 파일 등일 수 있는 랜덤 액세스 데이터(128)로 저장된다. 랜덤 액세스 데이터(128)는 압축 파일(102)과 연관되어 저장되어 압축 파일의 섹션이 요청될 때 서버가 정확한 랜덤 액세스 데이터(128)에 액세스한다. 대안적으로, 체크포인트는 메타데이터 헤더에서 압축 파일과 패키징되거나, 압축 파일의 대응하는 포인트에 산재될 수 있다.
도 4는 클라이언트(100) 및 서버(104)가 협력하여 클라이언트가 필요한 섹션(106)을 얻기 위해 최소량의 압축 파일 데이터를 다운로드 및 압축 해제할 수 있게 하는 방법을 도시한다. 도 4에서 압축 파일 및 랜덤 액세스 데이터는 클라이언트가 섹션(106)을 필요로 하기 전에 이미 서버에서 이용 가능하다. 클라이언트는 그들 중 어떤 파일 및 섹션이 필요한지 결정함으로써 단계(160)에서 시작한다. 섹션은 오프셋 및 길이(압축된 또는 압축되지 않은)로 식별될 수 있으며, 또는 압축 파일이 개별적으로 설명되고 식별된 데이터 항목을 포함하는 경우 섹션은 데이터 항목의 식별자에 의해 식별될 수 있다. 그 후 파일 및 섹션의 표시가 다운로드 요청(162)에서 서버로 전송된다.
단계(164)에서 서버는 다운로드 요청(162)을 수신한다. 서버는 압축 파일 및 이에 관련된 랜덤 액세스 데이터(128)를 식별하기 위해 요청 내의 식별자를 사용한다. 압축 파일 및 랜덤 액세스 데이터(128)가 열리거나 액세스 가능하면, 서버는 섹션(106)의 표시를 사용하여 압축 파일의 섹션 시작에 선행하고 가장 가까운 체크포인트를 결정한다. 섹션(106)이 데이터 항목 식별자로 식별되면, 서버는 이를 사용하여 섹션의 시작을 식별한다. 클라이언트가 압축되지 않은 파일의 섹션 시작 위치를 전송한 경우, 체크포인트 데이터를 사용하여 가장 가까운 이전 체크포인트를 찾을 수 있다. 클라이언트가 압축 파일의 섹션 시작 위치를 전송한 경우, 랜덤 액세스 데이터를 검색하여 압축 파일의 섹션 시작보다 작은 가장 큰 압축 오프셋을 갖는 체크포인트를 찾는다.
일단 시작 체크포인트가 발견되면, 클라이언트에게 전송될 필요가 있는 압축 데이터의 양을 최소화하기 위해, 서버는 또한 압축 파일의 섹션의 끝(클라이언트에서 제공하거나 섹션의 ID로 유추할 수 있음)에 가장 가깝지만 그 뒤에 오는 압축 오프셋을 갖는 마지막 체크포인트를 결정할 수 있다. 마지막 체크포인트 오프셋은 클라이언트가 압축 해제하기에 충분하고 최소인 전송할 압축 데이터의 양을 결정하기 위해 서버에서 사용될 수 있다. 대안적으로, 서버는 클라이언트가 전송을 종료할 때까지 압축 데이터를 전송할 수 있다.
전송할 압축 데이터의 양(있는 경우) 및 시작 오프셋이 알려지면, 서버는 시작 오프셋 및 체크포인트의 오프셋 중 하나 또는 둘 모두의 압축기 상태에 대한 응답(166)을 클라이언트에 전송한다. 그 후 서버는 체크포인트의 압축 오프셋에서 시작해 압축 데이터를 전송하기 시작한다. 도 2 및 도 4의 예에서, 압축 파일에서 필요한 섹션(106)은 압축 파일의 제3 압축 부분(Fc3) 내에 포함되게 된다. 가장 가까운 선행 체크포인트는 제2 체크포인트(Ou2, Oc2, S2)이다. 따라서 서버는 적어도 제2 체크포인트(S2)에 대한 압축기 상태를 전송하고 오프셋 중 하나 또는 둘 모두를 전송할 수도 있다. 서버는 이전에 결정된 압축 데이터 양을 전송했거나 클라이언트가 전송을 종료하면 압축 데이터 전송을 중지한다.
단계(168)에서 클라이언트는 압축기 상태 및 하나 이상의 오프셋을 수신한다. 클라이언트의 압축 해제기(108)는 압축기 상태(예를 들어, S2)로 준비된다. 이는 압축 파일의 압축기 상태의 체크포인트에 선행하는 압축 데이터 전부를 압축 해제했다면 자연적으로 얻었을 상태로 압축 해제기를 구성하는 것을 포함한다. 도 2 및 도 4의 예에서, 이는 압축 파일의 시작부터 FC3의 시작 부분, 즉 Oc2까지의 압축 데이터라고 가정한다.
압축 해제기가 준비되면, 압축 해제기는 서버로부터 압축 파일 데이터의 압축 해제를 시작한다. 압축 해제기가 압축 해제된 파일 데이터를 생성하기 위해 압축 해제를 시작할 때, 클라이언트는 압축 해제기에 의해 출력되는 압축 해제된 데이터 내에서 필요한 섹션(106)의 시작에 언제 도달했는지 알 필요가 있다. 섹션의 시작이 압축되지 않은 파일의 시작 부분으로부터의 오프셋으로 클라이언트에게 알려진 경우, 섹션의 시작은 해당 위치에서 압축 해제된 데이터의 양에 서버로부터의 압축되지 않은 오프셋(예: X12)을 더한 값이 압축되지 않은 파일 내의 섹션의 오프셋과 동일하도록 선택된 압축 해제된 데이터의 위치가 된다. 대안적으로, 섹션의 시작은 압축 해제된 데이터 내의 데이터 패턴, 마크업 태그, 데이터 패턴, 섹션을 식별하는 식별자 등에 의해 식별 가능할 수 있다. 클라이언트는 유사한 방식으로 찾아질 수 있는 섹션 마지막에 도달할 때까지 데이터를 계속 수신 및 압축 해제한다. 위에서 언급했듯이 클라이언트는 서버에 데이터 전송을 중지하도록 신호를 보낼 수 있다. 클라이언트는 압축 데이터의 내부 하위-부분, 압축기 상태 및 섹션을 식별하거나 추출하는 데 도움이 될 수 있는 가능한 다른 정보만을 다운로드함으로써 필요한 섹션(106)을 얻는다.
도 5는 압축 파일(102)의 내부 부분(180), 연관된 압축기 상태(122) 및 오프셋(124)을 수신하는 클라이언트(100)를 도시한다. 먼저, 예를 들어 사용자에 의해 조작되는 웹 브라우저를 실행하는 클라이언트는 서버로부터 디렉토리 목록을 얻고 표시한다. 사용자는 웹 브라우저를 조작하여 디렉토리 목록에서 압축 파일(102)을 선택한다. 그 후 클라이언트는 매니페스트, 메타데이터, 카탈로그, 아카이브/패키지 헤더 또는 압축 파일의 데이터 항목을 나열하는 유사한 정보와 같은 내용 정보를 얻는다. 사용자는 웹 브라우저를 조작하여 다운로드를 위해 압축 파일의 데이터 항목을 상호적으로 선택한다. 웹 브라우저는 서버가 데이터 항목을 식별할 수 있도록 하는 정보(예: 오프셋 및 길이, 식별자, 데이터 항목을 가리키는 압축 파일의 노드 등)를 서버에 전송한다.
서버는 오프셋이 데이터 항목의 시작에 가장 근접하게 선행하는 체크포인트를 찾기 위해 데이터 항목에 대한 정보를 사용한다. 대응하는 압축기 상태(체크포인트 이전 데이터를 압축하여 얻음) 및 가능한 항목-식별 정보는 웹 브라우저로 전송되고, 이는 압축 해제기를 압축기 상태로 준비하고 이를 서버로부터의 압축 데이터로 전달하기 시작하며, 압축 해제기는 섹션을 포함하는 압축 해제된 파일 데이터(182)를 출력하기 위해 압축 해제를 시작한다. 항목-식별 정보는 오프셋(및 압축되지 않은 데이터에서 데이터 항목의 가능한 길이 또는 마지막 오프셋) 또는 데이터 항목을 표시하는 압축 해제된 데이터 내의 데이터 패턴일 수 있다. 일부 실시예에서, 서버는 항목-식별 정보를 전송하지 않는다. 대신 클라이언트는 서버에서 이전에 얻은 데이터 항목의 표시(예: 파일 이름, inode 식별자, xpath 등)를 사용한다. 웹 브라우저가 필요한 섹션의 시작을 결정하거나 감지하면 웹 브라우저는 섹션을 로컬 스토리지에 저장하거나 추출하기 시작한다. 섹션의 마지막이 결정되거나 감지되면 섹션이 완료되어 저장되고 압축 해제 및 다운로드가 중지된다.
도 6은 부분 다운로드 및 압축 해제를 위한 다른 실시예를 도시한다. 단계(190)에서 클라이언트는 서버에 대해 파일을 식별한다. 이 실시예에서, 단계(192)에서, 서버는 파일의 랜덤 액세스 데이터를 클라이언트에 전송한다. 그러면 클라이언트는 서버에 대해 필요한 압축 데이터를 식별하는 데 필요한 모든 정보를 갖는다. 단계(194)에서, 이전에 설명된 서버 활동과 유사한 방식으로, 클라이언트는 필요한 섹션을 결정한다. 섹션 및 랜덤 액세스 데이터에 기초하여, 클라이언트는 압축 파일의 어떤 압축 상태가 필요한지 및 어떤 부분이 필요한지를 결정한다. 클라이언트에서 이미 이용 가능한 압축기 상태는 클라이언트의 압축 해제기로 로드된다. 단계(196)에서 클라이언트는 랜덤 액세스 데이터당 압축 파일의 시작 오프셋을 명시하여 파일의 압축 데이터에 대한 요청을 서버에 전송한다. 단계(198)에서 클라이언트는 압축 데이터를 수신하고, 준비된 압축 해제기로 압축 해제하고, 압축 해제기에 의해 출력된 압축 해제된 파일 데이터로부터 필요한 섹션을 추출한다.
전술한 기술은 적응 압축과 함께 사용될 수 있다. 적응 압축은 동일한 데이터 집합을 압축하는 동안 압축 알고리즘 간 전환하는 것을 포함한다. 압축기가 체크포인트를 캡쳐할 때 압축기는 또한 체크포인트 데이터와 함께 압축 알고리즘도 포함한다. 먼저 압축기가 새로운 알고리즘으로 전환하면, 다음 체크포인트는 그 알고리즘에 대한 압축기 상태를 포함한다. 클라이언트는 알고리즘 전환에 대해 알 필요가 없고; 압축 해제기는 압축기와 마찬가지로 압축 데이터의 내용에 기초하여 알고리즘을 자동으로 전환한다.
도 7은 호스트(100)로서 기능할 수 있는 컴퓨팅 디바이스(300)의 세부사항을 도시한다. 본 명세서에서 기술적 개시는 프로그래머가 컴퓨팅 디바이스(300) 상에서 본 명세서에서 설명된 특징 또는 실시예 중 임의의 것을 구현하기 위해 실행될 소프트웨어를 작성하고/하거나 재구성 가능한 프로세싱 하드웨어(예: FPGA(field-programmable gate arrays))를 구성하고/하거나 ASIC(application-specific integrated circuit) 등을 설계하는 데 충분하다.
컴퓨팅 디바이스(300)는 하나 이상의 디스플레이(322), 하나의 네트워크 인터페이스(324)(또는 여러 개), 스토리지 하드웨어(326) 및 프로세싱 하드웨어(328)를 가질 수 있으며, 이는 중앙 프로세싱 유닛, 그래픽 프로세싱 유닛, 아날로그-디지털 변환기, 버스 칩, FPGA, ASIC, ASSP(Application-specific Standard Products) 또는 CPLD(복합 프로그래밍-가능 논리 디바이스) 등 중 임의의 하나 이상의 조합일 수 있다. 로컬 및/또는 원격일 수 있는 스토리지 하드웨어(326)는 자기 스토리지, 정적 메모리, 휘발성 메모리, 비휘발성 메모리, 광학적으로 또는 자기적으로 읽을 수 있는 물질 등의 임의의 조합일 수 있다. 본 명세서에 사용된 용어 "스토리지"의 의미는 신호 또는 에너지 그 자체를 지칭하는 것이 아니라 물리적 장치 및 물질의 상태를 지칭한다. 컴퓨팅 디바이스(300)의 하드웨어 요소는 기계 컴퓨팅 분야에서 잘 이해되는 방식으로 협력할 수 있다. 또한, 입력 디바이스는 컴퓨팅 디바이스(300)와 통합되거나 통신할 수 있다. 컴퓨팅 디바이스(300)는 임의의 폼 팩터를 가질 수 있거나 임의의 유형의 포괄하는 디바이스에서 사용될 수 있다. 컴퓨팅 디바이스(300)는 스마트폰, 태블릿 컴퓨터, 게임 디바이스, 서버, 랙 장착형 또는 후면판 컴퓨터 온 보드, 시스템 온 칩 등과 같은 핸드헬드 디바이스의 형태일 수 있다.
위에서 논의된 실시예 및 특징은 휘발성 또는 비휘발성 컴퓨터 또는 디바이스 판독가능 스토리지 하드웨어에 저장된 정보의 형태로 실현될 수 있다. 이는 프로세싱 하드웨어에 쉽게 이용 가능한 광학 스토리지(예: CD-ROM), 자기 매체, 플래시 읽기 전용 메모리(ROM) 또는 프로세싱 하드웨어(328)에 대해 쉽게 이용 가능하도록 디지털 정보를 저장하는 임의의 수단과 같은 최소한의 하드웨어를 포함하는 것으로 간주된다. 저장된 정보는 기계 실행가능 명령어(예를 들어, 컴파일된 실행가능 바이너리 코드), 소스 코드, 바이트코드, 또는 컴퓨팅 디바이스가 위에서 논의된 다양한 실시예를 수행할 수 있도록 하거나 구성하는데 사용될 수 있는 임의의 다른 정보의 형태일 수 있다. 이는 또한 적어도 실시예를 수행하는 프로그램을 실행하는 동안 중앙 프로세싱 유닛 명령어와 같은 정보를 저장하는 랜덤 액세스 메모리(RAM) 및/또는 가상 메모리와 같은 휘발성 메모리에 더하여 프로그램 또는 실행파일을 로드하고 실행할 수 있도록 하는 정보를 저장하는 비휘발성 매체를 포함하는 것으로 간주된다. 실시예 및 특징은 휴대용 디바이스, 워크스테이션, 서버, 모바일 무선 디바이스 등을 포함하는 임의의 유형의 컴퓨팅 디바이스에서 수행될 수 있다.

Claims (15)

  1. 프로세싱 하드웨어 및 스토리지 하드웨어를 포함하는 컴퓨팅 디바이스에 의해 수행되는 방법으로서,
    상기 방법은,
    요청 모듈로부터, 파일 식별자 및 섹션 식별자를 수신하는 단계 -상기 파일 식별자는 압축 파일을 식별하고, 상기 섹션 식별자는 상기 압축 파일의 섹션을 식별하고, 상기 섹션은 상기 압축 파일의 시작 및 상기 압축 파일 내의 상기 섹션의 시작 사이에 압축 데이터가 있도록 상기 압축 파일 내부에 있음-;
    상기 파일 식별자에 기초하여, 상기 압축 파일과 연관된 랜덤 액세스 데이터에 액세스하는 단계 -상기 랜덤 액세스 데이터는 압축되지 않은 파일을 상기 압축 파일로 압축하는 동안 캡쳐된 압축 체크포인트를 포함하고, 각각의 압축 체크포인트는 상기 압축 파일 내의 각각의 위치에 대응하고, 각각의 압축 체크포인트는 상기 압축 파일 내의 상기 체크포인트의 위치까지의 압축에 대응하는 각각의 압축기 상태를 포함함-;
    상기 섹션 식별자에 기초하여, 체크포인트를 선택하는 단계;
    상기 선택된 체크포인트의 상기 압축기 상태를 상기 모듈로 전송하는 단계; 및
    상기 선택된 체크포인트의 상기 위치에서 시작하는 압축 파일의 일부를 상기 모듈로 전송하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 모듈은 압축 해제기를 포함하고,
    상기 방법은,
    상기 모듈에 의해 상기 압축기 상태를 수신하는 단계;
    상기 압축 해제기를 상기 압축기 상태로 구성하는 단계; 및
    상기 구성된 압축 해제기에 의해 상기 압축 파일의 상기 일부를 압축 해제하여 압축 해제된 파일 데이터를 출력하는 단계를 더 포함하는, 방법.
  3. 제2항에 있어서,
    상기 압축 해제된 파일 데이터로부터 상기 섹션을 추출하는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서,
    상기 체크포인트는 상기 압축 파일의 상기 시작에 대한 각각의 오프셋을 더 포함하고,
    각각의 오프셋은 상기 압축 파일 내의 위치를 나타내는, 방법.
  5. 제4항에 있어서,
    연관된 상기 오프셋에 기초하여 상기 체크포인트를 선택하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서,
    상기 압축 파일을 생성하기 위해 상기 압축되지 않은 파일을 압축하는 단계를 더 포함하고,
    상기 압축되지 않은 파일은 상기 압축되지 않은 파일을 압축하는 압축기가 상기 압축되지 않은 파일 전부를 압축하는 동안 압축 사전을 발전시키도록 단일 압축 단위로 압축되는, 방법.
  7. 컴퓨팅 디바이스로서,
    상기 컴퓨팅 디바이스는,
    프로세싱 하드웨어;
    상기 프로세싱 하드웨어가 프로세스를 수행하는 것을 야기하도록 구성된 정보를 저장하는 스토리지 하드웨어를 포함하고,
    상기 프로세스는,
    압축 파일 및 그 내부 섹션을 식별하는 단계;
    상기 압축 파일 및 상기 내부 섹션의 표시를 서버에 전송하는 단계;
    상기 서버로부터 압축 사전 및 상기 압축 사전과 연관된 상기 압축 파일의 내부 부분을 수신하는 단계 -상기 내부 부분은 적어도 상기 내부 섹션의 시작 부분을 포함함-; 및
    상기 압축 사전으로 압축기를 준비(priming)하고 상기 준비된 압축기를 사용하여 상기 압축 파일의 상기 내부 부분을 압축 해제하는 단계를 포함하는, 컴퓨팅 디바이스.
  8. 제7항에 있어서,
    상기 압축 파일은 내부에 압축된 구성 파일로 구성된 압축 아카이브를 포함하고,
    상기 내부 섹션의 상기 표시는 구성 파일의 식별자를 포함하고,
    상기 컴퓨팅 디바이스는 클라이언트 컴퓨팅 디바이스를 포함하고,
    상기 서버는 서버 컴퓨팅 디바이스를 포함하고,
    상기 압축 파일 및 상기 내부 섹션의 상기 표시는 데이터 네트워크를 통해 상기 서버에 전송되고,
    상기 압축 사전 및 상기 압축 파일의 내부 부분은 상기 데이터 네트워크를 통해 수신되는, 컴퓨팅 디바이스.
  9. 제7항에 있어서,
    상기 서버는 압축기로부터 얻은 복수의 압축기 상태를 저장하고,
    각각의 압축기 상태는 상기 압축기 상태에 선행하는 상기 압축되지 않은 파일 데이터 전부의 압축에 따라 얻어지는, 컴퓨팅 디바이스.
  10. 제9항에 있어서,
    상기 서버는 상기 압축 파일의 상기 내부 섹션의 상기 표시 및 상기 압축되지 않은 파일 내의 상기 내부 섹션의 위치에 기초하여 상기 컴퓨팅 디바이스 및 상기 내부 부분에 전송되는 상기 압축기 상태를 선택하는, 컴퓨팅 디바이스.
  11. 제7항에 있어서,
    상기 내부 섹션의 상기 표시는 그 식별자, 상기 압축되지 않은 파일에 대한 오프셋, 또는 상기 압축 파일에 대한 오프셋을 포함하는, 컴퓨팅 디바이스.
  12. 하나 이상의 컴퓨터가 프로세스를 수행하는 것을 야기하도록 구성되는 정보를 저장하는 컴퓨터 스토리지 하드웨어로서,
    상기 프로세스는,
    클라이언트로부터 압축 파일의 내부 섹션에 관한 요청을 수신하는 단계;
    상기 요청에 응답하여, 상기 압축 파일의 상기 내부 섹션에 대응하는 상기 압축 파일 내의 포인트를 결정하는 단계;
    상기 압축 파일 내의 상기 포인트에 대응하는 압축기 상태를 얻는 단계 -상기 압축기 상태는 상기 압축 파일 내의 상기 포인트 이전의 상기 압축 파일 전부에 대응함-; 및
    상기 요청에 기초하여, 상기 얻은 압축기 상태 및 상기 압축 파일의 상기 내부 섹션을 포함하는 상기 압축 파일의 내부 부분을 상기 클라이언트에 전송하는 단계를 포함하는, 컴퓨터 스토리지 하드웨어.
  13. 제12항에 있어서,
    상기 압축기 상태는 상기 요청에 기초하여 상기 압축 파일 내의 상기 포인트 이전의 상기 압축 파일 전부에 대해 압축 알고리즘을 수행하고 상기 압축기로부터 상기 압축기 상태를 얻음으로써 얻어지는, 컴퓨터 스토리지 하드웨어.
  14. 제13항에 있어서,
    상기 압축 알고리즘은 상기 요청에 응답하여 수행되는, 컴퓨터 스토리지 하드웨어.
  15. 제12항에 있어서,
    상기 클라이언트는 상기 압축 파일의 상기 내부 부분에 선행하는 임의의 상기 압축 파일의 압축 해제 없이 상기 압축기 상태를 사용하여 상기 압축 파일의 상기 내부 부분을 압축 해제하는, 컴퓨터 스토리지 하드웨어.
KR1020227017337A 2019-11-13 2020-11-10 압축 데이터의 부분 다운로드 KR20220099978A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/682,937 2019-11-13
US16/682,937 US20210144226A1 (en) 2019-11-13 2019-11-13 Partial downloads of compressed data
PCT/US2020/059765 WO2021096822A1 (en) 2019-11-13 2020-11-10 Partial downloads of compressed data

Publications (1)

Publication Number Publication Date
KR20220099978A true KR20220099978A (ko) 2022-07-14

Family

ID=73654932

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227017337A KR20220099978A (ko) 2019-11-13 2020-11-10 압축 데이터의 부분 다운로드

Country Status (11)

Country Link
US (1) US20210144226A1 (ko)
EP (1) EP4059141A1 (ko)
JP (1) JP2023501054A (ko)
KR (1) KR20220099978A (ko)
CN (1) CN114731162A (ko)
AU (1) AU2020383341A1 (ko)
BR (1) BR112022006118A2 (ko)
CA (1) CA3157076A1 (ko)
IL (1) IL292733A (ko)
MX (1) MX2022005720A (ko)
WO (1) WO2021096822A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669640B (zh) * 2018-12-24 2023-05-23 浙江大华技术股份有限公司 一种数据存储方法、装置、电子设备及介质
US11681659B2 (en) * 2021-05-21 2023-06-20 Red Hat, Inc. Hybrid file compression model
US20230004533A1 (en) * 2021-07-01 2023-01-05 Microsoft Technology Licensing, Llc Hybrid intermediate stream format
WO2023086242A1 (en) * 2021-11-12 2023-05-19 AirMettle, Inc. Partitioning, processing, and protecting compressed data
US11971857B2 (en) * 2021-12-08 2024-04-30 Cohesity, Inc. Adaptively providing uncompressed and compressed data chunks
CN114422499B (zh) * 2021-12-27 2023-12-05 北京奇艺世纪科技有限公司 一种文件下载方法、系统及装置
US11977517B2 (en) 2022-04-12 2024-05-07 Dell Products L.P. Warm start file compression using sequence alignment
US20230325354A1 (en) * 2022-04-12 2023-10-12 Dell Products L.P. Hyperparameter optimization in file compression using sequence alignment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532121B1 (en) * 1999-10-25 2003-03-11 Hewlett-Packard Company Compression algorithm with embedded meta-data for partial record operation augmented with expansion joints
US7155173B2 (en) * 2001-03-14 2006-12-26 Nokia Corporation Method and system for providing a context for message compression
US8572287B2 (en) * 2008-02-14 2013-10-29 Blackberry Limited Method and apparatus for communicating compression state information for interactive compression
US9697221B2 (en) * 2014-03-19 2017-07-04 Oracle International Corporation OZIP compression and decompression
EP2975771B1 (en) * 2014-07-17 2020-12-30 Phase One A/S A method for selecting starting positions in parallel decoding of a compressed image

Also Published As

Publication number Publication date
CA3157076A1 (en) 2021-05-20
JP2023501054A (ja) 2023-01-18
WO2021096822A1 (en) 2021-05-20
CN114731162A (zh) 2022-07-08
BR112022006118A2 (pt) 2022-06-21
AU2020383341A1 (en) 2022-06-23
MX2022005720A (es) 2022-06-09
US20210144226A1 (en) 2021-05-13
EP4059141A1 (en) 2022-09-21
IL292733A (en) 2022-07-01

Similar Documents

Publication Publication Date Title
KR20220099978A (ko) 압축 데이터의 부분 다운로드
US8698657B2 (en) Methods and systems for compressing and decompressing data
CN104391728B (zh) 软件升级差量包获取方法和相应的升级方法以及装置
US8463944B2 (en) Optimal compression process selection methods
JP5819416B2 (ja) データ記憶とデータ送信の最適化
RU2689439C2 (ru) Улучшение производительности веб-доступа
US8189912B2 (en) Efficient histogram storage
US9338258B2 (en) Methods and network devices for communicating data packets
US20140215170A1 (en) Block Compression in a Key/Value Store
WO2014101451A1 (zh) 增量升级方法、应用该方法装置及存储介质
US8593308B1 (en) Method of accelerating dynamic Huffman decompaction within the inflate algorithm
CN108243022B (zh) 一种网络服务消息传输方法、装置、终端及服务器
CN109325006A (zh) 一种压缩存储的方法和装置、解压下载的方法和装置
CN104572966A (zh) 一种压缩文件的解压方法和装置
US10701150B2 (en) Method and apparatus for storing network data
US9317377B1 (en) Single-ended deduplication using cloud storage protocol
WO2013079999A1 (en) Methods and devices for encoding and decoding messages
EP3848815B1 (en) Efficient shared bulk loading into optimized storage
CN114124939A (zh) 一种预缓存文件处理方法、装置及文件预缓存系统
WO2018014761A1 (zh) 数据处理方法及装置
GB2584895A (en) Determining a state of a network
Dong et al. Record-aware compression for big textual data analysis acceleration
Kattan et al. Evolution of human-competitive lossless compression algorithms with GP-zip2
Ericsson The effects of xml compression on soap performance
US11994957B1 (en) Adaptive compression to improve reads on a deduplication file system