压缩数据的部分下载制造技术

技术编号:34083296 阅读:33 留言:0更新日期:2022-07-11 19:23
客户端能够解压缩服务器上的压缩文件的内部部分,而无需下载和解压缩压缩文件中在内部部分之前的部分。初始地,当文件被压缩时,压缩器的状态(例如字典),被周期性地捕获并且与压缩文件中的位置相关联地被存储。服务器存储与压缩文件相关联的压缩器状态和位置。客户端向服务器标识压缩文件的内部段。服务器选择其位置最接近内部段的压缩器状态。服务器向客户端发送所选择的压缩器状态和压缩文件的内部部分。客户端利用发送的压缩器状态准备解压缩器,然后准备的解压缩器解压缩压缩文件的内部部分。部分。部分。

【技术实现步骤摘要】
【国外来华专利技术】压缩数据的部分下载

技术介绍

[0001]压缩算法长期以来一直用于压缩数据。通过压缩减少数据可以减少存储硬件开销、减少网络带宽消耗、增加信息传输速率等。改进压缩的大多数努力集中在压缩效率上,即给定单元数据的大小可以被减少多少。高效的压缩算法通常具有压缩器状态,压缩器状态控制如何编码(压缩)未压缩数据。压缩状态随着未压缩数据被读取和统计分析而适应。在任何时间点如何压缩数据取决于它前面的数据的压缩以及压缩算法。
[0002]通常,压缩器状态是未压缩字符串与分别对应的代码之间的关联的字典。未压缩数据的压缩版本通过统计分析而被生成,并且逐渐建立表示相应未压缩字符串的代码序列。未压缩数据的压缩形式将由代替未压缩词/字符串的代码组成。存在更复杂的技术和字典,但它们中的大多数涉及将未压缩数据映射到压缩数据的动态压缩状态。
[0003]如仅由专利技术人所观察到的,压缩算法的动态压缩/字典状态可以有利于压缩效率,但是它使得在不首先解压缩压缩数据之前的所有数据的情况下,解压缩压缩数据的内部部分是不可能的。为此,压缩数据当然必须可用。因此,随着数据被压缩而演进的压缩算法是有问题的,因为所有压缩数据必须可用,并且必须在需要的数据内部子集可以被解压缩之前被解压缩。所需部分前面的内容必须被解压缩,以便重新创建解压缩所需部分所需要的状态和字典。根据应用,这可能需要大量的处理时间、传输带宽、存储空间等。
[0004]这个问题的一个示例可以在包含数据项的压缩包中看到,数据项是压缩数据内的离散数据单元。服务器可能正在提供包含组成文件的压缩包以供下载。客户端可能知道它需要压缩包中的哪个文件,并且甚至可能能够向服务器指定文件在压缩流中的位置。然而,即使服务器仅提取了包含组成文件的压缩数据的相关子集,客户端也无法在没有压缩文件前面的所有压缩文件的情况下解压缩该子集。
[0005]下面讨论的是与解压缩压缩数据的内部段而不需要解压缩它前面的所有压缩数据有关的技术。

技术实现思路

[0006]包括以下
技术实现思路
仅是为了介绍以下具体实施方式中讨论的一些概念。该
技术实现思路
不是全面的,并且不旨在描述所要求保护的主题的范围,该范围由最后提出的权利要求阐述。
[0007]客户端能够解压缩服务器上的压缩文件的内部部分,而不必下载和解压缩在内部部分前面的压缩文件部分。这可以通过具有离线过程记录以及在压缩期间的离散时间处捕获压缩器的状态来实现,例如,字典被周期性地捕获并且与压缩文件中的位置相关联地被存储。服务器存储与压缩文件相关联的压缩器状态和位置。如果压缩文件已经存在,则压缩器可以处理未压缩文件以生成压缩器状态,而不必生成压缩文件。备选地,服务器端可以在客户端请求时按需计算字典的状态。客户端向服务器标识压缩文件的内部段。服务器选择其位置最接近内部段的压缩器状态;压缩器状态可以是预先计算的状态,或者可以由服务器按需计算。服务器向客户端发送所选择的压缩器状态和压缩文件的内部部分。客户端利
用发送的压缩器状态准备解压缩器,然后准备的解压缩器解压缩压缩文件的内部部分。
[0008]下面将参考结合附图考虑的以下详细描述来解释许多伴随特征。
附图说明
[0009]根据附图阅读以下详细描述,将更好地理解本描述,其中在所附描述中使用相同的附图标记来表示相同的部件。
[0010]图1示出了客户端从服务器下载压缩文件以获得压缩文件的内部段。
[0011]图2示出了在压缩未压缩文件时如何捕获压缩检查点。
[0012]图3示出了用于生成随机访问数据的过程。
[0013]图4示出了客户端和服务器如何协作以使客户端能够下载和解压缩最少量的压缩文件数据以获得所需的段。
[0014]图5示出了客户端接收压缩文件的内部部分、关联的压缩器状态和偏移。
[0015]图6示出了用于部分下载和解压缩的另一个实施例。
[0016]图7示出了计算设备的细节。
具体实施方式
[0017]图1示出了客户端100从服务器104下载压缩文件102以获得压缩文件102的内部段106。段106是内部的,因为它不在压缩文件102的起始。针对讨论,本文提到的段或部分将被假设是内部的。
[0018]在客户端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。压缩也可以由除服务器之外的实体来执行。
[0019]仍然参考图1,术语“客户端”和“服务器”是用于区分如图1中所示那样交换压缩数据的任何两个实体的标签。客户端和服务器可以是通过通信链路或网络通信的相应计算设备。客户端和服务器可以是计算云中的服务或实体。客户端和服务器也可以是在相同设备上执行的部件,例如虚拟机或容器。针对讨论,假设客户端使用适于通过网络从服务器传输文件的应用级协议(例如,超文本传输协议)。
[0020]为了方便起见,本文将单个服务器描述为执行各种行动以及提供各种信息。在实践中,行动和信息可以由几个合作的服务器端计算设备来处理。第一服务器设备可以存储未压缩文件,第二服务器设备可以通过处理第一服务器设备处的未压缩文件来生成压缩器状态数据,并且第三服务器设备可以将压缩器状态和压缩数据提供给客户端设备。未压缩文件、压缩文件和压缩器状态可以在相应的设备上。压缩数据和压缩器状态可以通过内容
分发网络(CDN)分发。CDN可以是对等网络,其中对等方都分发和消费压缩数据和压缩器状态。在本文提到单个“服务器”的情况下,也包括这些多设备架构变型。此外,服务器和客户端设备可以被替换为可能托管在云中的等效的云服务或虚拟机。
[0021]假设图1中压缩的文件是相对于由压缩器108实现的压缩算法的单个压缩单元。换句话说,文件作为单个编码单元被压缩,其中文件的最后部分的压缩可能取决于文件起始处的内容。这与文件被分段并且每个段仅基于其自己的内容进行压缩的压缩方法形成对比。换句话说,压缩算法持续应用于整个文件而不被复位。在大多数情况下,压缩算法将是无损的,但是本文描述的技术也可以与具有滚动压缩状态的任何有损压缩算法一起被使用。压缩器108和解压缩器112被称为不同的元件,但实际上它们可以是相同的模块或应用,其中解压缩是压缩的反函数。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种由包括处理硬件和存储硬件的计算设备执行的方法,所述方法包括:从请求模块接收文件标识符和段标识符,所述文件标识符标识压缩文件,所述段标识符标识所述压缩文件的段,其中所述段在所述压缩文件内部,使得在所述压缩文件的开头与所述压缩文件内的所述段的开头之间存在压缩数据;基于所述文件标识符,访问与所述压缩文件相关联的随机访问数据,所述随机访问数据包括在将未压缩文件压缩为所述压缩文件时捕获的压缩检查点,每个压缩检查点对应于所述压缩文件中的相应位置,每个压缩检查点包括与直到所述压缩文件中的所述检查点的位置的压缩相对应的相应压缩器状态;基于所述段标识符,选择检查点;向所述模块发送所选择的所述检查点的所述压缩器状态;以及从所选择的所述检查点的所述位置开始向所述模块发送所述压缩文件的一部分。2.根据权利要求1所述的方法,其中所述模块包括解压缩器,所述方法还包括:由所述模块接收所述压缩器状态;利用所述压缩器状态配置所述解压缩器;以及由经配置的所述解压缩器对所述压缩文件的所述一部分进行解压缩,以输出解压缩文件数据。3.根据权利要求2所述的方法,还包括:从所述解压缩文件数据提取所述段。4.根据权利要求1所述的方法,其中所述检查点还包括相对于所述压缩文件的所述开头的相应偏移,每个偏移指示所述压缩文件中的位置。5.根据权利要求4所述的方法,还包括:基于与检查点相关联的偏移来选择所述检查点。6.根据权利要求1所述的方法,还包括:压缩所述未压缩文件以产生所述压缩文件,其中所述未压缩文件作为压缩的单个单元被压缩,使得压缩所述未压缩文件的压缩器在压缩所述整个未压缩文件时,使压缩字典演进。7.一种计算设备,包括:处理硬件;存储硬件,存储被配置为使所述处理硬件执行过程的信息,所述过程包括:标识压缩文件和所述压缩文件的内部段;将所述压缩文件的标记和所述内部段的标记发送给服务器;从所述服务器接收压缩字典和与所述压缩字典相关联的所述压缩文件的内部部分,所述内部部分至少包含所述内部段的起始部分;以及利用所述压缩字典准备压缩器,并且使用准备的所述压缩器解压缩所述压缩文件的所述内部部分。8.根据权利要求7所述的计算设备,其...

【专利技术属性】
技术研发人员:M
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1