CN114731162A - 压缩数据的部分下载 - Google Patents
压缩数据的部分下载 Download PDFInfo
- Publication number
- CN114731162A CN114731162A CN202080079023.XA CN202080079023A CN114731162A CN 114731162 A CN114731162 A CN 114731162A CN 202080079023 A CN202080079023 A CN 202080079023A CN 114731162 A CN114731162 A CN 114731162A
- Authority
- CN
- China
- Prior art keywords
- file
- compressed
- compressed file
- compressor
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6052—Synchronisation of encoder and decoder
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
- H03M7/4012—Binary arithmetic codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (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示出了客户端100从服务器104下载压缩文件102以获得压缩文件102的内部段106。段106是内部的,因为它不在压缩文件102的起始。针对讨论,本文提到的段或部分将被假设是内部的。
在客户端100需要段106之前,压缩文件102由压缩器108压缩未压缩文件110而生成。未压缩文件110相对于压缩器108是“未压缩的”;未压缩文件110内的数据可能碰巧先前已被另一个压缩器压缩。当客户端100需要段106时,客户端执行过程111。即,客户端向服务器104标识压缩文件102。服务器104通过将压缩文件102提供给客户端100来响应。客户端100具有解压缩器112,解压缩器112解压缩压缩文件102,并且输出解压缩文件114,解压缩文件114相当于未压缩文件110。然后,客户端从解压缩文件114中提取所需的段106。注意,一些解压缩器可以在段106的末尾已被解压缩之后停止解压缩。在任何情况下,客户端100至少需要段106前面的所有压缩文件102(被称为压缩前缀)。如可以看出的,即使客户端不需要解压缩前缀的数据,也可能需要下载和解压缩可能相当大的压缩前缀。需要压缩前缀来解压缩段106。压缩也可以由除服务器之外的实体来执行。
仍然参考图1,术语“客户端”和“服务器”是用于区分如图1中所示那样交换压缩数据的任何两个实体的标签。客户端和服务器可以是通过通信链路或网络通信的相应计算设备。客户端和服务器可以是计算云中的服务或实体。客户端和服务器也可以是在相同设备上执行的部件,例如虚拟机或容器。针对讨论,假设客户端使用适于通过网络从服务器传输文件的应用级协议(例如,超文本传输协议)。
为了方便起见,本文将单个服务器描述为执行各种行动以及提供各种信息。在实践中,行动和信息可以由几个合作的服务器端计算设备来处理。第一服务器设备可以存储未压缩文件,第二服务器设备可以通过处理第一服务器设备处的未压缩文件来生成压缩器状态数据,并且第三服务器设备可以将压缩器状态和压缩数据提供给客户端设备。未压缩文件、压缩文件和压缩器状态可以在相应的设备上。压缩数据和压缩器状态可以通过内容分发网络(CDN)分发。CDN可以是对等网络,其中对等方都分发和消费压缩数据和压缩器状态。在本文提到单个“服务器”的情况下,也包括这些多设备架构变型。此外,服务器和客户端设备可以被替换为可能托管在云中的等效的云服务或虚拟机。
假设图1中压缩的文件是相对于由压缩器108实现的压缩算法的单个压缩单元。换句话说,文件作为单个编码单元被压缩,其中文件的最后部分的压缩可能取决于文件起始处的内容。这与文件被分段并且每个段仅基于其自己的内容进行压缩的压缩方法形成对比。换句话说,压缩算法持续应用于整个文件而不被复位。在大多数情况下,压缩算法将是无损的,但是本文描述的技术也可以与具有滚动压缩状态的任何有损压缩算法一起被使用。压缩器108和解压缩器112被称为不同的元件,但实际上它们可以是相同的模块或应用,其中解压缩是压缩的反函数。
如接下来讨论的,不是下载整个压缩文件102来获得段106,而是压缩器108可以被修改,使得可以在压缩的不同阶段捕获压缩器状态,或根据需要计算压缩流中任何给定位置的压缩器状态。如果客户端仅需要压缩文件的段,则将压缩文件的最近包含部分和对应的压缩器状态发送给客户端。客户端利用压缩器状态准备其压缩器,然后准备的压缩器解压缩包含的压缩数据,而无需解压缩包含的压缩数据前面的任何压缩数据。
图2示出了在压缩未压缩文件110时可以如何捕获压缩检查点120。在开始压缩之前,经修改的压缩器108没有状态。压缩器108开始压缩未压缩文件108。压缩器被配置为周期性地捕获检查点120。该周期可以是基于已处理的未压缩数据量、已生成压缩数据量、压缩状态(例如,字典的大小)、未压缩文件的比率(例如,1/100)和/或类似的度量。可以通过设置压缩器的参数来控制检查点速率或基准。也可以基于文件的内容或基于使用数据,启发式地偏置检查点或粒度,并且也可以设置参数来标识特定的感兴趣区域。关于前者,可以在文件内容中的元素或数据项的边界处或附近强制设置检查点。可以增加粒度以匹配组成数据项的大小。在文件包含许多小数据项的情况下,可以使检查点粒度更细。在文件包含大数据项的情况下,可以使检查点粒度更粗。关于使用数据,如果有关于最频繁访问压缩文件的哪些组成部分的历史数据,则可以在最频繁访问的组成部分的边界处强制设置检查点。
当压缩器108确定已经达到第一周期时,捕获第一检查点120。至少,检查点包括压缩器状态122,在图1中被表示为S1。压缩器在分析和压缩未压缩数据时构建其压缩器状态(通常是字典)。在图1中,状态S1是压缩器在压缩未压缩文件的前面部分(在图1中被标记为部分Fu1)之后构建的信息(例如字典)。检查点120还可以包括针对Fu1的未压缩文件偏移124(Ou1),以及针对压缩文件104的对应部分的压缩文件偏移126(Oc1)。这些是距相应文件起始的距离。如下面将解释的,这些偏移可以用于查找客户端解压缩压缩文件中的任何给定段或点所需的压缩器状态和压缩数据。
在取得第一个检查点之后,压缩继续直到到达下一个检查点。下一个检查点被捕获,其包括直到压缩的当前点的偏移和压缩器状态。压缩器状态可能已从先前的压缩器状态改变。压缩器状态将取决于已被压缩的所有数据。重复该过程直到整个未压缩文件已被压缩,以产生压缩文件102。检查点120被存储为与压缩文件相关联的数据集,优选地按照它们被捕获的顺序。针对压缩文件的末尾的检查点不是必需的。检查点数据将被称为随机访问数据128,因为它使能对压缩数据的准随机访问,而不必下载和解压缩所有前面的压缩数据。
在一个实施例中,如果未压缩文件是包含诸如组成文件的离散元素的包或存档。在该情况下,压缩器还可以在每次达到离散元素边界时强制设置检查点。这些检查点可以与周期性检查点组合使用或代替周期性检查点使用。在另一个实施例中,组成元素的偏移在遇到时被捕获,但压缩器状态仅被周期性地捕获。
图3示出了用于生成随机访问数据128的过程。在初始化步骤140处,压缩器108获得压缩参数,并且利用该些参数对其自身进行配置。压缩参数可以包括已知参数,诸如使用哪种算法、压缩水平(如果适用)等。该些参数还可以打开或关闭检查点,设置检查点参数,诸如检查点的频率(粒度),检查点可能发生的特定位置,或者将如何标记检查点。虽然细颗粒的粒度是可能的,但压缩状态相对于文件的大小可能有点大(例如,对于1GB文件,50MB)。过多的检查点可以引起存储和效率问题。
在配置压缩器108之后,压缩步骤142开始。压缩器以通常的方式开始压缩未压缩文件,累积压缩器状态并且输出压缩数据,压缩数据是每个压缩器状态迄今为止遇到的未压缩数据的编码。压缩器状态可以是通常由压缩器产生并且以某种形式保留以供压缩器在稍后阶段使用的任何状态(并且类似地由解压缩器产生和使用)。当压缩器确定已达到检查点时,压缩器状态和对应的文件偏移被捕获。压缩和检查点继续进行,直到未压缩文件已经被压缩。在最后步骤144处,检查点被存储为随机访问数据128,随机访问数据128可以是合适的对象、数据结构或格式,例如标记文件、表格、Javascript对象符号文件等。随机访问数据128与压缩文件102相关联地被存储,使得当请求压缩文件的段时,服务器访问正确的随机访问数据128。备选地,检查点可以与压缩文件一起被打包,在元数据报头中或散布在压缩文件中的对应点处。
图4示出了客户端100和服务器104如何协作,以使客户端能够下载和解压缩最少量的压缩文件数据来获得所需的段106。在图4中,在客户端需要段106之前,压缩文件和随机访问数据在服务器上已经可用。在步骤160处,客户端开始于确定需要哪个文件及其段。段可以通过偏移和长度(压缩或未压缩)来标识,或者,在压缩文件包含离散描述和标识的数据项的情况下,段可以通过数据项的标识符来标识。然后,在下载请求162中将文件的标记和段的标记发送到服务器。
在步骤164处,服务器接收下载请求162。服务器使用请求中的标识符,来标识压缩文件及其相关联的随机访问数据128。在压缩文件和随机访问数据128被打开或可访问之后,服务器使用段106的标记,来确定在压缩文件中的段的开头前面并且最接近该开头的检查点。如果段106由数据项标识符标识,则服务器将使用它来标识段的开头。如果客户端发送了未压缩文件中的段的开头的位置,则检查点数据可以用于找到最近的先前检查点。如果客户端发送了压缩文件中的段的开头的位置,则搜索随机访问数据,以找到小于压缩文件中的段的开头的、具有最大压缩偏移的检查点。
在找到开始检查点之后,为了最小化需要被发送到客户端的压缩数据的量,服务器还可以确定结束检查点,结束检查点具有最接近、但在压缩文件中的段的末尾之后的压缩偏移(其可以由客户端提供或通过段的身份推断)。结束检查点偏移可以被服务器使用,来确定要发送的压缩数据的量,该压缩数据的量既最小又足以由客户端解压缩。备选地,服务器可以发送压缩数据,直到客户端终止传输。
当起始偏移和要发送的压缩数据的量(如果有的话)已知时,服务器向客户端发送回复166,起始偏移的压缩器状态以及检查点的偏移中的一个或两个。然后,服务器开始从检查点的压缩偏移开始发送压缩数据。在图2和图4的示例中,在压缩文件中,所需段106恰好被包含在压缩文件的第三压缩部分(Fc3)内。最近的先前检查点是第二检查点(Ou2,Oc2,S2)。因此,服务器至少发送针对第二检查点(S2)的压缩器状态,并且还可以发送一个或两个偏移。当服务器发送了先前确定的压缩数据量或当客户端结束传输时,服务器停止发送压缩数据。
在步骤168处,客户端接收压缩器状态和一个或多个偏移。利用压缩器状态(例如,S2)准备客户端的解压缩器108。这涉及利用一种状态配置解压缩器,如果解压缩器解压缩了压缩文件中的压缩器状态检查点之前的所有压缩数据,它将自然获得该状态。在图2和图4的示例中,假设是从压缩文件的起始到Fc3的开头的压缩数据,即Oc2。
当解压缩器已被准备时,解压缩器开始解压缩来自服务器的压缩文件数据。当解压缩器开始解压缩以生成解压缩文件数据时,客户端将需要知道它何时到达由解压缩器输出的解压缩数据内的所需段106的起始。如果段的开头作为从未压缩文件的起始的偏移而对客户端已知,则段的开头将是解压缩数据中的一个位置,该位置被选择为使得在该位置处的解压缩数据量加上从服务器的未压缩偏移(例如,Ou2)等于该段在未压缩文件中的偏移。备选地,段的开头可以通过解压缩数据内的数据模式、标记标签、数据模式、标识段的标识符等来标识。客户端继续接收和解压缩数据,直到到达段的末尾,可以以类似的方式找到段的末尾。如上所述,客户端可以向服务器发信号以停止发送数据。客户端通过仅下载压缩数据的内部子部分、压缩器状态和可能的其他信息来帮助标识或提取该段,而获取了所需的段106。
图5示出了客户端100接收压缩文件102的内部部分180,以及相关联的压缩器状态122和偏移124。首先,客户端(例如执行由用户操作的网络浏览器)获得并且显示来自服务器的目录列表。用户操作网络浏览器,以从目录列表选择压缩文件102。然后,客户端获得内容信息,诸如清单、元数据、目录、存档/包报头或列出压缩文件中的数据项的类似信息。用户操作网络浏览器以交互地选择压缩文件中的数据项以进行下载。网络浏览器向服务器发送信息,允许服务器标识数据项,例如偏移和长度、标识符、压缩文件中指向数据项的节点等。
服务器使用关于数据项的信息,来找到其偏移在数据项的开头最紧密前面的检查点。对应的压缩器状态(通过压缩检查点之前的数据获得)和可能的项目标识信息被发送到网络浏览器,该网络浏览器利用压缩器状态准备解压缩器,并且开始将来自服务器的压缩数据传递给它,解压缩器开始解压缩该压缩数据,以输出包含段的解压缩文件数据182。项目标识信息可以是偏移(并且可以是未压缩数据中的数据项的长度偏移或末尾偏移)或解压缩数据内的数据模式,该数据模式划分数据项。在一些实施例中,服务器不发送任何项目标识信息。相反,客户端使用先前从服务器获得的数据项的标记(例如文件名、inode标识符、xpath等)。当网络浏览器确定或检测到所需段的开头时,网络浏览器开始将该段保存或提取到本地存储。当确定或检测到段的末尾时,该段完成并且被保存,并且解压缩和下载停止。
图6示出了用于部分下载和解压缩的另一个实施例。在步骤190处,客户端向服务器标识文件。在该实施例中,在步骤192处,服务器将文件的随机访问数据发送给客户端。然后,客户端具有向服务器标识所需压缩数据所需的所有信息。在步骤194处,以与先前描述的服务器活动类似的方式,客户端确定它需要什么段。基于段和随机访问数据,客户端确定它将需要什么压缩器状态以及压缩文件的什么部分。客户端上已经可用的压缩器状态被加载到客户端的解压缩器中。在步骤196处,客户端向服务器发送对文件的压缩数据的请求,按照随机访问数据指定压缩文件中的开始偏移。在步骤198处,客户端接收压缩数据,利用准备的解压缩器解压缩,并且从由解压缩器输出的解压缩文件数据提取所需的段。
上面描述的技术可以与自适应压缩一起使用。自适应压缩涉及在压缩相同的一组数据时在压缩算法之间切换。当压缩器捕获检查点时,压缩器还包括具有检查点数据的压缩算法。当压缩器第一次切换到新算法时,下一个检查点将包括针对该算法的压缩器状态。不需要向客户端通知算法切换;解压缩器将基于压缩数据的内容自动切换算法,就像压缩器所做的那样。
图7示出了可以用作主机100的计算设备300的细节。本文的技术公开将足以让编程者编写软件和/或配置可重新配置的处理硬件(例如,现场可编程门阵列(FPGA))),和/或设计专用集成电路(ASIC)等,以在计算设备300上运行来实现本文描述的任何特征或实施例。
计算设备300可以具有一个或多个显示器322、网络接口324(或多个),以及存储硬件326和处理硬件328,它们可以是以下任何一个或多个的组合:中央处理单元,图形处理单元、模数转换器、总线芯片、FPGA、ASIC、专用标准产品(ASSP)或复杂可编程逻辑器件(CPLD)等。可以是本地和/或远程的存储硬件326可以是磁性存储、静态存储器、易失性存储器、非易失性存储器、光学或磁性可读物质等的任何组合。本文使用的术语“存储”的含义不是指信号或能量本身,而是指物理装置和物质状态。计算设备300的硬件元件可以以机器计算领域中熟知的方式协作。此外,输入设备可以与计算设备300集成或与之通信。计算设备300可以具有任何形状因子或者可以用于任何类型的包含设备中。计算设备300可以是手持设备的形式,诸如智能手机、平板计算机、游戏设备、服务器、机架安装或背板的板上计算机、片上系统或其他。
上面讨论的实施例和特征可以以存储在易失性或非易失性计算机或设备可读存储硬件中的信息的形式来实现。这被认为至少包括硬件,诸如光学存储(例如,压缩盘只读存储器(CD-ROM))、磁介质、闪存只读存储器(ROM)或任何存储数字信息以使处理硬件328容易获得的部件。所存储的信息可以是以下形式:机器可执行指令(例如,编译的可执行二进制代码)、源代码、字节码或可以用于使能或配置计算设备执行上面讨论的各种实施例的任何其他信息。这也被认为至少包括易失性存储器(诸如随机存取存储器(RAM)和/或虚拟存储器,其在实施实施例的程序的执行期间存储诸如中央处理单元(CPU)指令等信息)以及用于存储允许加载或执行程序或可执行文件的信息的非易失性介质。实施例和特征可以在任何类型的计算设备上执行,包括便携式设备、工作站、服务器、移动无线设备等。
Claims (15)
1.一种由包括处理硬件和存储硬件的计算设备执行的方法,所述方法包括:
从请求模块接收文件标识符和段标识符,所述文件标识符标识压缩文件,所述段标识符标识所述压缩文件的段,其中所述段在所述压缩文件内部,使得在所述压缩文件的开头与所述压缩文件内的所述段的开头之间存在压缩数据;
基于所述文件标识符,访问与所述压缩文件相关联的随机访问数据,所述随机访问数据包括在将未压缩文件压缩为所述压缩文件时捕获的压缩检查点,每个压缩检查点对应于所述压缩文件中的相应位置,每个压缩检查点包括与直到所述压缩文件中的所述检查点的位置的压缩相对应的相应压缩器状态;
基于所述段标识符,选择检查点;
向所述模块发送所选择的所述检查点的所述压缩器状态;以及
从所选择的所述检查点的所述位置开始向所述模块发送所述压缩文件的一部分。
2.根据权利要求1所述的方法,其中所述模块包括解压缩器,所述方法还包括:
由所述模块接收所述压缩器状态;
利用所述压缩器状态配置所述解压缩器;以及
由经配置的所述解压缩器对所述压缩文件的所述一部分进行解压缩,以输出解压缩文件数据。
3.根据权利要求2所述的方法,还包括:从所述解压缩文件数据提取所述段。
4.根据权利要求1所述的方法,其中所述检查点还包括相对于所述压缩文件的所述开头的相应偏移,每个偏移指示所述压缩文件中的位置。
5.根据权利要求4所述的方法,还包括:基于与检查点相关联的偏移来选择所述检查点。
6.根据权利要求1所述的方法,还包括:压缩所述未压缩文件以产生所述压缩文件,其中所述未压缩文件作为压缩的单个单元被压缩,使得压缩所述未压缩文件的压缩器在压缩所述整个未压缩文件时,使压缩字典演进。
7.一种计算设备,包括:
处理硬件;
存储硬件,存储被配置为使所述处理硬件执行过程的信息,所述过程包括:
标识压缩文件和所述压缩文件的内部段;
将所述压缩文件的标记和所述内部段的标记发送给服务器;
从所述服务器接收压缩字典和与所述压缩字典相关联的所述压缩文件的内部部分,所述内部部分至少包含所述内部段的起始部分;以及
利用所述压缩字典准备压缩器,并且使用准备的所述压缩器解压缩所述压缩文件的所述内部部分。
8.根据权利要求7所述的计算设备,其中所述压缩文件包括压缩存档,所述压缩存档包括压缩在其中的组成文件,其中所述内部段的所述标记包括组成文件的标识符,其中所述计算设备包括客户端计算设备,其中所述服务器包括服务器计算设备,其中所述压缩文件的所述标记和所述内部段的所述标记通过数据网络被发送给所述服务器,并且其中所述压缩字典和所述压缩文件的内部部分经由所述数据网络被接收。
9.根据权利要求7所述的计算设备,其中所述服务器存储从压缩器获得的多个压缩器状态,其中每个压缩器状态根据所述未压缩文件数据中在所述压缩器状态之前的所有未压缩文件数据的压缩而被获得。
10.根据权利要求9所述的计算设备,其中所述服务器基于所述压缩文件的所述内部段的所述标记并且基于所述内部段在所述未压缩文件中的位置,来选择发送给所述计算设备的所述压缩器状态和所述内部部分。
11.根据权利要求7所述的计算设备,其中所述内部段的所述标记包括所述内部段的标识符、相对于所述未压缩文件的偏移、或相对于所述压缩文件的偏移。
12.一种存储信息的计算机存储硬件,所述信息被配置为使一个或多个计算机执行过程,所述过程包括:
从客户端接收对压缩文件的内部段的请求;
响应于所述请求,确定所述压缩文件中的对应于所述压缩文件的所述内部段的点;
获得对应于所述压缩文件中的所述点的压缩器状态,所述压缩器状态与所述压缩文件中在所述压缩文件中的所述点之前的所有压缩文件相对应;以及
基于所述请求,向所述客户端发送所获得的所述压缩器状态和所述压缩文件的内部部分,所述内部部分包括所述压缩文件的所述内部段。
13.根据权利要求12所述的计算机存储硬件,其中所述压缩器状态通过如下被获得:基于所述请求,对所述压缩文件中在所述压缩文件中的所述点之前的所有所述压缩文件执行压缩算法,以及从所述压缩器获得所述压缩器状态。
14.根据权利要求13所述的计算机存储硬件,其中所述压缩算法响应于所述请求而被执行。
15.根据权利要求12所述的计算机存储硬件,其中所述客户端使用所述压缩器状态、并且在不解压缩所述压缩文件中的在所述压缩文件的所述内部部分之前的任何压缩文件的情况下,解压缩所述压缩文件的所述内部部分。
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 |
---|---|
CN114731162A true CN114731162A (zh) | 2022-07-08 |
Family
ID=73654932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080079023.XA Withdrawn CN114731162A (zh) | 2019-11-13 | 2020-11-10 | 压缩数据的部分下载 |
Country Status (11)
Country | Link |
---|---|
US (1) | US20210144226A1 (zh) |
EP (1) | EP4059141A1 (zh) |
JP (1) | JP2023501054A (zh) |
KR (1) | KR20220099978A (zh) |
CN (1) | CN114731162A (zh) |
AU (1) | AU2020383341A1 (zh) |
BR (1) | BR112022006118A2 (zh) |
CA (1) | CA3157076A1 (zh) |
IL (1) | IL292733A (zh) |
MX (1) | MX2022005720A (zh) |
WO (1) | WO2021096822A1 (zh) |
Families Citing this family (8)
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)
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 |
-
2019
- 2019-11-13 US US16/682,937 patent/US20210144226A1/en not_active Abandoned
-
2020
- 2020-11-10 WO PCT/US2020/059765 patent/WO2021096822A1/en unknown
- 2020-11-10 AU AU2020383341A patent/AU2020383341A1/en active Pending
- 2020-11-10 JP JP2022519983A patent/JP2023501054A/ja active Pending
- 2020-11-10 CA CA3157076A patent/CA3157076A1/en active Pending
- 2020-11-10 BR BR112022006118A patent/BR112022006118A2/pt not_active Application Discontinuation
- 2020-11-10 CN CN202080079023.XA patent/CN114731162A/zh not_active Withdrawn
- 2020-11-10 KR KR1020227017337A patent/KR20220099978A/ko unknown
- 2020-11-10 MX MX2022005720A patent/MX2022005720A/es unknown
- 2020-11-10 EP EP20817160.3A patent/EP4059141A1/en not_active Withdrawn
-
2022
- 2022-05-03 IL IL292733A patent/IL292733A/en unknown
Also Published As
Publication number | Publication date |
---|---|
IL292733A (en) | 2022-07-01 |
MX2022005720A (es) | 2022-06-09 |
AU2020383341A1 (en) | 2022-06-23 |
US20210144226A1 (en) | 2021-05-13 |
EP4059141A1 (en) | 2022-09-21 |
KR20220099978A (ko) | 2022-07-14 |
JP2023501054A (ja) | 2023-01-18 |
BR112022006118A2 (pt) | 2022-06-21 |
CA3157076A1 (en) | 2021-05-20 |
WO2021096822A1 (en) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114731162A (zh) | 压缩数据的部分下载 | |
CN104391728B (zh) | 软件升级差量包获取方法和相应的升级方法以及装置 | |
JP4456554B2 (ja) | データ圧縮方法及び圧縮データ送信方法 | |
CN107395209B (zh) | 数据压缩方法、数据解压缩方法及其设备 | |
US8463944B2 (en) | Optimal compression process selection methods | |
CN107229420B (zh) | 数据存储方法、读取方法、删除方法和数据操作系统 | |
US20150006475A1 (en) | Data deduplication in a file system | |
US8189912B2 (en) | Efficient histogram storage | |
US9338258B2 (en) | Methods and network devices for communicating data packets | |
CN103023511A (zh) | 一种应用的压缩编码方法及装置 | |
US11070231B2 (en) | Reducing storage of blockchain metadata via dictionary-style compression | |
US10701150B2 (en) | Method and apparatus for storing network data | |
CN114764557A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US20110202509A1 (en) | Efficient extraction and compression of data | |
CN104572964A (zh) | 一种压缩文件的解压方法和装置 | |
US11847219B2 (en) | Determining a state of a network | |
Ramaprasath et al. | Performance optimization of big data in mobile networks | |
CN110032432B (zh) | 实例的压缩方法和装置、实例的解压方法和装置 | |
CN112054805B (zh) | 一种模型数据压缩方法、系统及相关设备 | |
Kattan et al. | Evolution of human-competitive lossless compression algorithms with GP-zip2 | |
CN113204683A (zh) | 信息重构方法和装置、存储介质及电子设备 | |
Ramaprasath et al. | Cache coherency algorithm to optimize bandwidth in mobile networks | |
US20180196790A1 (en) | System for and method of transceiving data using synchronization-based encoding | |
CN113590144B (zh) | 一种依赖处理方法及装置 | |
US11994957B1 (en) | Adaptive compression to improve reads on a deduplication file system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40071780 Country of ref document: HK |
|
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220708 |