首页> 中国专利> 优化的数据去重复的动态高速缓存模块选择的方法和系统

优化的数据去重复的动态高速缓存模块选择的方法和系统

摘要

本发明的实施例提供用于针对优化的数据去重复的动态高速缓存模块选择的方法、系统和计算机程序产品。在本发明的实施例中,提供用于针对优化的数据去重复的动态高速缓存模块选择的方法。该方法包括接收检索数据的请求以及分类该请求。该方法还包括从每个具有不同配置的多个不同的高速缓存模块中识别与请求的类别相关联的特定的高速缓存模块。最后,该方法包括在识别的高速缓存模块中对数据去重复。

著录项

  • 公开/公告号CN104050098A

    专利类型发明专利

  • 公开/公告日2014-09-17

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201410093753.1

  • 发明设计人 R.D.卡拉韦;I.帕帕帕纳乔图;

    申请日2014-03-13

  • 分类号G06F12/08;H04L12/861;

  • 代理机构北京市柳沈律师事务所;

  • 代理人周少杰

  • 地址 美国纽约阿芒克

  • 入库时间 2023-12-17 01:14:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-01

    授权

    授权

  • 2014-10-22

    实质审查的生效 IPC(主分类):G06F12/08 申请日:20140313

    实质审查的生效

  • 2014-09-17

    公开

    公开

说明书

技术领域

本发明涉及数据去重复,并且更具体地涉及通过字节高速缓存的数据去 重复。

背景技术

数据去重复是指通过消除数据中的冗余来减小数据流。数据去重复的动 作可以减小通过通信信道传输的流量的量,从而提高在通过通信信道交换数 据的网络实体之间的通信的响应性。数据去重复在技术上可以以几种不同的 方式执行,包括数据压缩、△编码、代理缓存和数据冗余消除。

数据压缩通过用哈希值代表重复字节来在每对象的基础上去除冗余内 容。在△编码中,技术仅可应用于基于对象的Web,Web对象的类似部分可 以用哈希值代表。代理高速缓存,如同数据压缩和△编码,是基于对象的方 法,该方法通过存储随后可能潜在地被引用的对象来执行对象等级的去重复。 数据冗余消除,也称为字节高速缓存,不同于数据压缩、△编码和代理高速 缓存在于字节高速缓存操作在字节等级并且不仅仅限于Web对象和超文本传 输协议(HTTP)。

在字节高速缓存中,编码器和解码器的组合跨边带信道一致动作,以识 别在编码器内字节流中的重复字节的区域并且用哈希值代替这些区域,从而 在解码器重构为完全字节流。由字节高速缓存提供的精度可以提供去重复的 最有效形式,但是不是无需实质的计算和资源消耗。

具体地,作为数据处理系统中的中间件的字节高速缓存的使用可以导致 不期望的过多的存储器利用,并且处理循环的过利用造成在字节高速缓存点 的吞吐量的瓶颈。此外,到字节高速缓存依赖于合适的指纹大小选择的程度, 对于不同应用的数据流的字节高速缓存的利用可以仅对于一些应用有效,而 对其他无效,其中指纹大小选择在对于来自不同应用源的数据的有效性方面 不同。最后,字节高速缓存的有效性中的很多在字节流缺少冗余时,诸如加 密字节流,通过字节高速缓存的无效被减弱。

发明内容

本发明实施例致力于关于用于数据去重复的字节高速缓存的技术领域的 缺陷,并且提供新颖和非显而易见的、用于针对优化的数据去重复的动态高 速缓存模块选择的方法、系统和计算机程序产品。在本发明实施例中,提供 用于针对优化的数据去重复的动态高速缓存模块选择的方法。该方法包括接 收检索数据的请求以及分类该请求。该方法还包括从每个具有不同配置的多 个不同的高速缓存模块中识别与请求的类别相关联的特定的高速缓存模块。 最后,该方法包括在识别的高速缓存模块中对数据去重复。

在实施例的一方面,根据对于高速缓存模块中的不同高速缓存模块相关 不同请求的表格分类请求,例如表格使针对不同请求的每个的协议和网络地 址与高速缓存模块中的对应高速缓存模块相关。该表格可以包括通过以下确 定的条目:处理在高速缓存模块的每个中用于不同请求的每个的训练数据和 使不同请求的每个与模块中的最优的一个相关。在实施例的另一方面,高速 缓存模块包括每个配置有不同指纹大小的字节高速缓存模块。在实施例的另 一方面,高速缓存模块另外地包括对象高速缓存模块。在实施例的又一方面, 当请求指示数据是加密的时忽略数据的去重复。

在本发明的另一实施例中,数据去重复数据处理系统配置用于针对优化 的数据去重复的动态高速缓存模块选择。该系统包括通过计算机通信网络和 布置在服务器群和客户端计算机之间并在主机计算机的存储器中执行的中间 件通信地耦接到不同客户端计算机的服务器群。该中间件包括不同的高速缓 存模块,每个高速缓存模块具有不同的配置。最后,该系统包括调度程序, 以从不同的高速缓存模块中识别与请求的分类关联的特定高速缓存模块,并 且在识别的高速缓存模块中路由用于去重复的数据,该调度程序包括在主机 计算机的存储器中执行并且能够分类检索来自服务器群的数据的请求的程序 代码。

本发明的另外的方面将部分在随后的描述中阐述,并且部分从描述中将 是显然的,或者通过本发明的实施可以认识到。本发明的各方面将通过在权 利要求书中特别指出的元件和组合来实现和获得。要理解上述一般描述和以 下详细描述二者都仅仅是示例性的和说明性的,并且不限制如权利要求请求 保护的本发明。

附图说明

合并入并构成本说明书部分的附图图示本发明的实施例,并且与描述一 起用于说明本发明的原理。在此图示的实施例目前是优选的,然而能理解, 本发明不限于所示的精确安排和手段,其中

图1是用于针对优化的数据去重复的动态高速缓存模块选择的过程的绘 画图示;

图2是配置用于针对优化的数据去重复的动态高速缓存模块选择的数据 去重复数据处理系统的示意图示;以及

图3是图示用于针对优化的数据去重复的动态高速缓存模块选择的过程 的流程图。

具体实施方式

本发明的实施例提供针对优化的数据去重复的动态高速缓存模块选择。 根据本发明的实施例,入站(inbound)字节流可以被分类并与预定分类的表 格比较,该预定分类使特殊的分类与具有不同的指纹大小的不同配置的字节 流高速缓存器相关。可以根据入站字节流的分类和表格选择字节流高速缓存 器中的特定的一个,并且可以在选择的字节流高速缓存器中对于去重复路由 字节流。可选地,代理高速缓存器也可以包括在表格中,以便特定分类的字 节流可以路由到用于去重复的代理高速缓存器。作为进一步的选择,对于特 定分类的字节流,诸如加密的字节流,可以完全忽略去重复。

在进一步的图示中,图1绘画地示出用于针对优化的数据去重复的动态 高速缓存模块选择的过程。如图1中所示,数据源120可以通过定位请求的 字节流140响应于通过网络130来自客户端110的数据请求。优化的数据去 重复逻辑180可以例如按照客户端110中的消费应用、客户端110中的消费 应用的地址、以及通过其访问消费应用的客户端110中的端口来分类字节流 140。

其后,优化的数据去重复逻辑180可以选择与分类相关联的、若干不同 配置的编码去重复模块160中的特定的一个,以对字节流140执行字节高速 缓存。结果的字节高速缓存可以生成通过边带信道提供给若干不同配置的解 码去重复模块170中的对应的一个的已去重复的字节流150。最后,解码去 重复模块170中的对应的一个按照已去重复的字节流150动作以再生字节流 140用于传送到客户端110。

关于图1描述的过程可以在数据去重复数据处理系统中实现。在进一步 的图示中,图2示意性地示出配置用于针对优化的数据去重复的动态高速缓 存模块选择的数据去重复数据处理系统。该系统可以包括服务器群230,其 包括管理通过一个或多个服务器计算机来自数据存储的数据的存储和检索并 且经由通过服务器网关250的计算机通信网络220通信地耦接到数据消费客 户端210的数据存储。值得注意的,优化的数据去重复中间件可以布置在服 务器群230和客户端210之间。

中间件可以包括多个不同的编码高速缓存模块270A、270B、270C,每 个在主机计算机的存储器中执行并且通信地链接到对应的解码高速缓存模块 280A、280B、280C。中间件还可以包括配置为按照Web对象动作的代理高 速缓存器270N、280N。最后,每对编码和解码高速缓存模块270A、280A、 270B、280B、270C、280C可以是根据不同指纹大小每个不同配置的字节高 速缓存器。编码高速缓存模块270A、270B、270C的每个可以共享相同的存 储器空间。重要的,调度程序300可以在耦接到服务器网关250的主机计算 机的存储器中执行。调度程序300可以包括能够通过客户端210之一中的应 用分类对于服务器群230中的数据的请求。

调度程序300的程序代码还可以能够选择编码高速缓存模块270A、 270B、270之一来基于对于数据的请求的分类执行数据去重复(或者代理高 速缓存270N、280N)。在这点上,在实施例的一方面,调度程序300可以查 阅使不同类别与编码高速缓存模块270A、270B、270C中的不同编码高速缓 存模块相关的表格。类别例如可以包括与请求相关联的应用的身份、应用的 网络地址、用于与应用通信的端口、或者其任何组合。

表格本身可以根据训练数据构造,训练数据根据不同的协议从不同的服 务器提交到编码高速缓存模块270A、270B、270C中的每个。例如可以对于 吞吐量、处理器和存储器利用以及响应时间(仅指出几个例子)来监视和测 量编码高速缓存模块270A、270B、270C中的每个的性能度量。测量的度量 可以提交给性能函数,例如对于不同资源的利用加权不同的度量然后将加权 的结果合计到总合度量的函数。用于特定训练数据集合的总合度量可以与编 码高速缓存模块270A、270B、270C中的不同编码高速缓存模块中的用于相 同训练数据集合的其他总合度量比较。以该方式,可以用对应于分类的编码 高速缓存模块270A、270B、270C中的最优的一个来构造表格。可选地,编 码高速缓存模块270A、270B、270C的性能可以监视并反馈到调度程序300, 以便可以根据监视的编码高速缓存模块270A、270B、270C的性能改写表格。

一旦调度程序300已经选择编码高速缓存模块270A、270B、270C中的 特定的一个,则通过客户端210中的请求客户端中的应用的被请求数据的字 节流可以由编码高速缓存模块270A、270B、270C中的选择的一个来去重复, 并且通过边带信道传送到解码高速缓存模块280A、280B、280C中的对应一 个。解码高速缓存模块280A、280B、280C中的对应一个可以重构已去重复 的字节流,并且可以经由交换机通过网关/防火墙260将重构的字节流传送到 请求应用。

在调度程序300的操作的又一个图示中,图3是图示用于针对优化的数 据去重复的动态高速缓存模块选择的过程的流程图。在框310开始,字节流 可以从服务器群接收用于通过计算机通信网络传递到请求应用。在判断框 320,可以确定请求的字节流是否以及被调度程序300分类。如果没有,在框 330字节流可以根据用于传送请求的协议、传送地址的服务器的服务器地址 和与请求应用相关联的服务器的端口来分类。随后,在框340分类可以返回 到调度程序。

在判断框350,可以确定字节流是否要去重复。在这点上,如果分类指 示请求的协议不宜于高效去重复,则在框360,可以忽略高速缓存,并且在 框390过程可以结束。否则,在框370可以根据分类选择特定的高速缓存模 块,并且在框380字节流可以路由到选择的高速缓存模块。最后,在框390 过程可以结束。

所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方 法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式, 即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微 代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模 块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在 一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质 中包含计算机可读的程序代码。

可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以 是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如 可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装 置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非 穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、 随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器 (EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、 磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介 质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装 置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数 据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用 多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组 合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机 可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、 装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包 括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组 合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作 的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如 Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语 言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分 地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上 部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及 远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网 (LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例 如利用因特网服务提供商来通过因特网连接)。

上面根据本发明实施例的方法、装置(系统)和计算机程序产品的流程 图和/或框图描述了本发明。附图中的流程图和框图显示了根据本发明的多个 实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。 在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的 一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的 逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所 标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方 框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所 涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图 和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬 件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

还将理解,可以通过计算机程序指令来实现流程图图示和/或框图的每个 框以及流程图图示和/或框图中的各框的组合。这些计算机程序指令可以提供 给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生一种 机器,以便经由计算机或其他可编程数据处理装置的处理器执行的指令创建 用于实现流程图和/或框图的一个或多个框中规定的功能/动作的装置。

这些计算机程序指令还可以存储在指引计算机、其他可编程数据处理装 置、或其他设备以特定方式工作的计算机可读介质中,以便存储在计算机可 读介质中的指令产生一种包括实现流程图和/或框图的一个或多个框中规定 的功能/动作的指令的制造品。计算机程序指令还可以加载到计算机、其他可 编程数据处理装置、或其他设备上以使得在计算机、其他可编程装置、或其 他设备执行一系列操作步骤从而产生计算机实现的过程,以便在计算机或其 他编程装置上执行的指令提供用于实现流程图和/或框图的一个或多个框中 规定的功能/动作的过程。

最后,在此使用的术语仅用于描述特定实施例的目的,并且不意图限制 本发明。如在此使用的,单数形式“一”、“一个”和“这个”意图也包括复 数形式,除非上下文中另外清楚地指示。将进一步理解术语“包括”和/或“包 含”,当在本说明书中使用时,规定声明的特征、整数、步骤、操作、元件、 和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元 件、组件、和/或上述的组的存在或增加。

权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等 价物意图包括用于与如具体请求保护的其他请求保护的元件组合执行功能的 任何结构、材料、或动作。已经为了说明和描述的目的呈现本发明的说明书, 但是不意图以公开的形式穷举或限制本发明。许多修改和变化对本领域的技 术人员将是显然的,而不背离本发明的范围和精神。选择和描述实施例以便 最好地说明本发明的原理和实践应用,并且能使本领域的技术人员中的其他 人针对具有各种修改的各种实施例来理解本发明,如适合于预期的特定使用。

因此已经详细描述本申请的发明并且引用其实施例,修改和变化是可能 的而不脱离权利要求限定的发明的范围将是显然的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号