确定是否要压缩通过网络传送的数据的方法和系统的制作方法

文档序号:7970624阅读:201来源:国知局
专利名称:确定是否要压缩通过网络传送的数据的方法和系统的制作方法
技术领域
本发明涉及确定是否要压缩通过网络传送的数据的方法、系统和程序。
背景技术
企业将大量信息收集和存档在也称为内容管理系统的内容存储库内。这样的内容管理系统为将内容可缩放和有效地递送到客户机工作站的用户创造条件。这样的系统有利于来自诸如web服务器、资料库之类的共享网络文件系统的数据传送。
内容管理系统可压缩通过网络传送的数据,以减少网络传输时间和提高递送速度。典型的是,内容递送策略包括取决于集中管理的压缩设置,以压缩方式或未压缩方式传送所有数据的静态系统配置。这样的静态压缩设置应用于数据所发送到的所有客户机工作站,无论在运行期间网络状况和压缩计算处理能力如何。此外,不同的压缩技术可能要求不同的计算资源量并具有不同的压缩效益,即压缩比。
因此,在本领域内需要一种得到改善的技术,用来确定在通过网络传送数据时如何配置压缩技术。

发明内容
所提供的是一种确定是否要压缩通过网络传送的数据的方法、系统和程序。确定用来压缩要通过网络传送给目标节点的数据的压缩算法的压缩性能,并且确定网络的网络性能。确定的压缩性能和网络性能被用来确定是否压要缩数据。响应于确定要压缩数据,压缩数据,并响应于压缩数据,将压缩的数据通过网络传送给目标节点。响应于确定不要压缩数据,将数据未经压缩地传送到目标节点。
在另一个实施例中,数据在网络上传送到目标节点以确定网络性能,并为不同的压缩算法和节点保持压缩性能。确定的压缩性能基于在目标节点和压缩并传送数据到目标节点的源节点使用压缩算法时的压缩性能。
在另一个实施例中,目标节点的压缩性能包括解压缩性能,确定的压缩性能包括源节点的压缩性能和解压缩计算成本的平均值。
在另一个实施例中,确定的压缩性能包括在目标节点和源节点执行的压缩算法的压缩性能的最小值。
在另一个实施例中,不同压缩算法的压缩性能由节点在节点操作期间计算,以提供节点特有的压缩性能。源节点向网络内其他节点广播计算的不同压缩算法的压缩性能,以供所述其他节点在确定是否要压缩数据时使用。
在另一个实施例中,使用确定的压缩性能和网络性能确定是否要压缩数据包括将压缩性能与包括网络性能的公式相比较。压缩性能必须超过包括网络性能的公式的结果以表明要压缩数据,其中公式的量级与网络性能相关地增大。
在另一个实施例中,确定在压缩算法压缩要传送的数据时得到的压缩比(CR)。使用确定的CR以及确定的压缩性能和网络性能确定是否要压缩数据。
在另一个实施例中,使用确定的压缩性能、网络性能和CR确定是否要压缩数据包括将压缩性能与包括网络性能和CR的公式相比较。压缩性能必须超过包括网络性能和CR的公式的结果以表明要压缩数据。
在另一个实施例中,公式的结果的量级与网络性能的量级正向相关而与压缩比的量级反向相关。
在另一个实施例中,公式包括2*NTR/(1-CR)。
在另一个实施例中,源节点保持表明到网络内不同节点的网络性能的第一数据结构、包括网络内节点对于不同压缩算法的压缩性能的第二数据结构、保持不同压缩算法的压缩比的第三数据结构和表明用于不同数据类型的压缩算法的第四数据结构。确定要传送的数据的数据类型。压缩算法包括对于确定的数据类型在第四数据结构内表明的压缩算法,网络性能包括在第一数据结构内表明的目标节点的网络性能,压缩性能包括在第二数据结构内表明的目标节点和压缩算法的压缩性能,压缩比包括对于压缩算法在第三数据结构内表明的压缩比。
在另一个实施例中,压缩性能包括以每秒字节表示的压缩吞吐率(throughput rate),而网络性能包括以每秒字节表示的网络吞吐率。


图1例示了网络计算环境的实施例。
图2例示了在网络计算环境的一个节点内的各个组件的实施例。
图3例示了为网络节点维护的网络性能信息的实施例。
图4例示了为网络节点维护的压缩性能信息的实施例。
图5例示了所保持的压缩算法的压缩比信息的实施例。
图6例示了数据类型信息的实施例。
图7例示了在网络节点收集和发布网络和压缩性能信息的操作的实施例。
图8例示了确定是否压缩要传送给网络节点的数据的操作的实施例。
具体实施例方式
图1例示了一个网络计算环境,它包括通过网络4进行通信的多个节点2a、2b、2c...、2n。其中的一些节点,例如节点2a和2c,可提供对存储系统6a、6b内的文件的访问。可提供对文件的访问的节点2a、2c可包括服务器、内容管理器等,它们接收来自诸如节点2b和2n之类的其他节点的对数据的请求。提供对存储6a、6b内的文件的访问的节点2a、2c可包括能够处理对数据的请求的服务器类机器。其他节点,例如节点2b和2n,可包括在本领域内已知的计算设备,如服务器、大型机、台式计算机、手持式计算机、便携式计算机、电话设备等。网络4可包括局域网(LAN)、存储区域网(SAN)、对等网、广域网(WAN)、无线网等。此外,还可以有多个网络,节点可通过这些网络进行通信。存储系统6a、6b可在本领域内已知的存储设备中实现,如硬盘驱动器、配置成直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)、简单磁盘捆绑(JBOD)等的多个互连硬盘驱动器、磁带设备、光盘设备、非易失电子存储设备(例如快擦写盘)、磁带库等。节点所请求的包括在存储系统6a、6b内的文件可包括多介质文件(例如,视频、音频等)、数据库文件、文本文件、结构化文档(例如,可扩展标记语言(XML)文档))等。
图2例示了提供对存储系统6a、6b内的数据的访问的节点2(如节点2a、2c)内的各个组件。节点2包括处理器10、可包括一个或多个物理存储器或存储设备的存储器12、一个或多个使得能够通过网络4与节点通信的网络适配器14(所示出的只是一个)。存储器12包括确定是否在将数据传送给网络4上的另一个节点之前先对数据进行压缩的数据传送程序16。执行校准(calibration)程序18来确定节点2相对于执行对测试数据进行压缩和解压缩的压缩算法20的计算性能。压缩算法20可包括在本领域内已知的数据压缩算法,如GNU zip(gzip)、Tar、LZOP、SZIP、JAR、PPMD、PKZIP、LHARK之类。一旦校准程序18确定节点对于不同的可用压缩算法20的计算性能,即压缩性能,校准程序18就可将压缩性能信息广播给网络4内的其他节点。
在确定是否要压缩数据以传送给另一个节点时,数据传送程序16可能用到存储器12内的以下各表,包括提供有关相对于网络4内不同节点的网络性能(例如,以每秒兆字节(MBps)表示的网络吞吐率)的信息的网络性能表22;提供网络4内各节点的压缩和解压缩计算性能(例如,以MBps表示的压缩/解压缩吞吐率)的压缩性能表24;提供不同的可用压缩算法20所实现的不同压缩比的压缩比(CR)表26,其中压缩比包括经压缩的对象大小除以原始对象大小;以及指出压缩算法20用于不同数据类型的数据类型表28。
图3例示了网络性能表22中的网络性能条目50的例子,对于节点2可用于传送数据的到目标节点的每条路线有一个条目50,如用来与目标节点通信的节点中的每个网络适配器的一个条目。一个网络性能条目50包括目标节点标识符(ID)52和与所标识的目标节点52通信的网络性能,如可以以每秒兆字节(MBps)表示的网络吞吐量或传输率。在节点具有多个适配器的情况下,条目50还将指出提供网络吞吐量54的网络适配器。校准程序18可测量不同网络节点的网络性能。网络吞吐率可以受到源节点与目标节点之间的中继段(hop)数、网络拥塞等的影响。
图4例示了为网络4内每个压缩算法20节点和要传送数据的当前节点2维护的压缩性能条目70的例子。条目70包括节点ID 72,其标识使用信息的节点或者说通过网络4可访问的、可将数据发送到的节点2a、2b...、2n;标识条目70信息适用的压缩算法的压缩算法74;由于应用压缩算法74而得到的压缩比(CR)76;在使用所标识的压缩算法74压缩数据时实现的压缩性能78;以及在使用所标识的压缩算法74解压缩数据时实现的解压缩性能80。CTR表26的条目70内的压缩78和解压缩80性能值可初始化为某个已知值,而后在从另一个节点的校准程序18接收到动态确定的性能数据时更新。压缩(解压缩)性能可包括以MBps表示的压缩数据的压缩(解压缩)吞吐率。
图5例示了标识压缩算法92和由于应用压缩算法92压缩数据而得到的压缩比(CR)94的CR条目90的例子,其中CR为经压缩的对象大小除以原始对象大小。CR表26为对数据传送程序16可用的每个压缩算法20具有一个条目90。
图6例示了数据类型表28内数据类型条目100的例子,它包括数据类型102和可用于所标识的数据类型102的压缩算法104。数据类型表28可为在存储系统6a、6b内维护保持的、可由节点2a、2b...、2n返回给请求的每个数据类型维护一个条目。
图7例示了由一个节点2内的校准程序18执行的操作,其中节点2a、2b、2c...、2n各包括执行这些操作的校准程序18。在方框150,校准程序18在节点初始化(例如冷或热启动)期间或者在节点运行期间启动校准操作。校准程序18可周期性地或响应事件在方框150启动操作。在被调用时,校准程序18确定网络内的其他节点(方框152)。网络内其他节点的身份可能已在节点初始化期间作为发现程序的一部分被确定。在一些实施例中,校准程序可能不确定网络内每个可能的节点,而只是按照预先规定的准则确定可能节点的子集。对于每个确定的网络节点,校准程序18确定到该网络节点的网络性能(方框154)。校准程序18可通过将测试分组通过网络4传送到目标节点来确定到该节点的网络性能。用确定的网络节点的网络性能更新网络性能表22(方框156)。
对于每个可用的压缩算法20,校准程序18对测试数据进行压缩和解压缩(方框158),以分别确定压缩算法20的压缩和解压缩性能。更新受测试的节点和压缩算法78的压缩性能条目70(方框160),以分别在字段78和80内包括新确定的压缩和解压缩性能。校准程序18向网络节点广播测试的压缩算法20的所确定的压缩和解压缩性能(方框162)。提供对存储的访问的网络节点,例如节点6a、6c,可以是保存该数据的节点。这样,通过在运行期间动态地确定压缩算法的计算性能,性能数据基于节点的当前负荷和情况,因此更为精确。
图8例示了由数据传送程序16执行的确定是否要压缩传送给另一节点的数据的操作的实施例。一旦启动确定是否压缩要传送给目标节点2a、2b...、2n的数据的操作(方框200),数据传送程序16确定要传送的数据的数据类型(方框202)和确定对于在字段102内指出的所确定的数据类型在数据类型条目100内指出的压缩算法104(图6)(方框204)。从压缩表条目90对在字段92内指出的确定的压缩算法确定压缩比94(图5)(方框206)。数据传送程序16还从网络性能表22确定对于在字段52内指出的目标节点的网络性能(图3)(方框208),并从压缩性能表26确定对于在节点字段72中标识的源节点的压缩性能78以及在压缩性能条目70内标识的目标节点的压缩性能78或解压缩性能80(方框210)。
数据传送程序16还根据在压缩性能表24内确定的源和目标节点的压缩性能信息确定压缩性能值(方框212)。例如,压缩性能值可分别包括针对源和目标节点的确定的压缩性能的最小值、源和目标节点的压缩性能的平均值或源和目标节点的压缩和解压缩性能的平均值。数据传送程序16然后用确定的网络性能和压缩比确定公式的结果(方框214)。在一个实施例中,公式结果的量级(magnitude)可能是与网络性能的量级正向相关而与压缩比的量级反向相关。例如,在一个实施例中,公式可为2*NTR/(1-CR),其中NTR为以MBps表示的网络吞吐率,而CR为压缩比。在另一个实施例中,公式可基于网络吞吐率,其中公式的结果分别随着网络吞吐率的提高或降低而增大和减小。
如果(在方框216)对于受压缩的数据确定的压缩性能大于公式的结果,数据传送程序16就用确定的压缩算法压缩要传送给目标节点的数据(方框218),并将经压缩的数据传送给目标节点(方框220)。如果(在方框216)确定压缩性能值小于公式的结果,就将未经压缩的数据传送给目标节点(方框222)。
这样,随着网络性能降低,因为压缩性能要求阈值较低,将更可能使用压缩,也就是说,在网络环境恶化的情况下压缩更可能是最佳的。此外,随着压缩比增大,由于较高的压缩比带来的压缩效益增加,压缩性能要求降低。
额外的实施细节所说明的操作可用标准编程和/或工程技术实现为方法、设备或产品,形成软件、固件、硬件或任何它们的组合。所说明的操作可实现为保存在“计算机可读介质”内的代码,处理器可从计算机可读介质读出该代码予以执行。计算机可读介质可包括诸如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光存储介质(CD-ROM、DVD、光盘等)、易失和非易失性存储器件(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、快镲写存储器、固件、可编程序逻辑等)之类的介质。实现所说明的操作的代码还可用硬件逻辑(例如,集成电路片、可编程门阵列(PGA)、专用集成电路(ASIC)等)实现。此外,实现所说明的操作的代码可用“传输信号”的方式实现,传输信号可通过空间或通过诸如光纤、铜线之类的传输介质传播。其中代码或逻辑经编码的传输信号还可包括无线信号、卫星传输、无线电波、红外信号、蓝牙等。其中代码或逻辑经编码的传输信号能由发送站发送而被接收站接收,传输信号内经编码的代码或逻辑可解码后存储在接收站和发送站或设备的硬件或计算机可读介质内。“产品”包括可提供代码的计算机可读介质、硬件逻辑和/或传输信号。当然,本领域技术人员可看到,可在不背离本发明的范围的情况下对这种配置进行许多修改,而产品可包括在本领域内已知的适当的信息承载介质。
术语“实施例”、“一个或多个实施例”、意味着“本发明的一个或多个(但不是所有的)实施例”,除非另有明确规定。
所谓“包括”、“具有”意味着“包括但并不局限于”,除非另有明确规定。
对一些项的列举并不意味着任何或所有的项是互斥的,除非另有明确规定。
所谓“一个”和“该”意味着“一个或多个”,除非另有明确规定。
对实施例的说明中使用了一些相互通信的组件,但这并不意味着所有这样的组件都是必需的。相反,还可有各种按需要任选的组件,这说明本发明有很多种可能的实现方式。
此外,虽然过程步骤、方法步骤、算法之类是按顺序说明的,但这样的过程、方法和算法可配置成按可替代的其他次序执行。也就是说,所说明的任何顺序或次序并不表示要求步骤必须按这个次序执行。在这里所说明的过程的这些步骤可按任何实用的次序执行。此外,有些步骤也可同时执行。
在这里所叙述的是单个设备或产品时,显然可用多个设备/产品(无论它们是否相配合)来代替单个设备/产品。类似,如果在这里所叙述的是多个器件或产品(无论它们是否相配合),显然可用单个器件/产品或不同数量的器件/产品来代替所说明的多个器件/产品。
一个器件的功能和/或特性也可用一个或多个没有明确地表示为具有这样的功能/特性的其他器件体现。因此,本发明的其他实现方式不需要包括器件本身。
图3、4、5和6示出了数据传送程序用以确定什么时候压缩数据的信息的结构。在这些图中所示的信息可以与所示的不同的格式和结构保持,也可提供不同的或附加的信息。
图7和8中例示的操作示出了按特定顺序发生的特定事件。在另一些实施例中,特定操作可按不同的次序执行,加以修改或者撤除。此外,一些步骤可添加到以上所说明的逻辑,而仍然适合所说明的实施例。此外,在这里所说明的操作可相继出现,或者某些操作可并行处理。还有,操作可用单个处理单元或者用分布式处理单元执行。
以上给出了对本发明的各个实施例的例示性和说明性的说明。这说明不是穷举性的,也不是要将本发明局限于所揭示的确切形式。根据以上所述,许多修改和变动都是可行的。应指出的是,本发明的专利保护范围不是由以上的详细说明而是由所附权利要求书限定。以上说明、实例和数据提供了对本发明的组成和使用的完整说明。由于在不背离本发明的精神实质和专利保护范围的情况下可用许多实现方式来实现本发明,因此本发明的专利保护范围由以下所附权利要求书给出。
权利要求
1.一种方法,包括确定用来压缩要通过网络传送给目标节点的数据的压缩算法的压缩性能;确定网络的网络性能;使用确定的压缩性能和网络性能确定是否要压缩数据;响应于确定要压缩数据,压缩数据,响应于压缩数据,通过网络将经压缩的数据传送到目标节点;以及响应于确定不要压缩数据,将数据未经压缩地传送到目标节点。
2.权利要求1的方法,还包括在网络上将数据传送到目标节点,以确定网络性能;以及为不同的压缩算法和节点保持压缩性能,其中确定的压缩性能基于在目标节点和压缩并传送数据到目标节点的源节点使用压缩算法时的压缩性能。
3.权利要求2的方法,其中目标节点的压缩性能包括解压缩性能,并且其中确定的压缩性能包括源节点的压缩性能和解压缩计算成本的平均值。
4.权利要求2的方法,其中确定的压缩性能包括在目标节点和源节点执行的压缩算法的压缩性能的最小值。
5.权利要求2的方法,其中不同压缩算法的压缩性能由节点在节点操作期间计算,以提供节点特有的压缩性能,所述方法还包括由源节点向网络内其他节点广播计算的不同压缩算法的压缩性能,以供所述其他节点在确定是否要压缩数据时使用。
6.权利要求1的方法,其中使用确定的压缩性能和网络性能确定是否要压缩数据包括将压缩性能与包括网络性能的公式相比较,从而压缩性能必须超过包括网络性能的公式的结果以表明要压缩数据,其中公式的量级与网络性能相关地增大。
7.权利要求1的方法,所述方法还包括确定在压缩算法压缩要传送的数据时得到的压缩比(CR);以及使用确定的CR以及确定的压缩性能和网络性能确定是否要压缩数据。
8.权利要求7的方法,其中使用确定的压缩性能、网络性能和CR确定是否要压缩数据包括将压缩性能与包括网络性能和CR的公式相比较,从而压缩性能必须超过包括网络性能和CR的公式的结果以表明要压缩数据。
9.权利要求8的方法,其中公式的结果的量级与网络性能的量级正向相关而与压缩比的量级反向相关。
10.权利要求9的方法,其中公式包括2*NTR/(1-CR)。
11.权利要求7的方法,所述方法还包括在源节点保持表明到网络内不同节点的网络性能的第一数据结构、包括网络内节点对于不同压缩算法的压缩性能的第二数据结构、保持不同压缩算法的压缩比的第三数据结构和表明用于不同数据类型的压缩算法的第四数据结构;以及确定要传送的数据的数据类型,其中压缩算法包括对于确定的数据类型在第四数据结构内表明的压缩算法,其中网络性能包括在第一数据结构内表明的目标节点的网络性能,其中压缩性能包括在第二数据结构内表明的目标节点和压缩算法的压缩性能,并且其中压缩比包括对于压缩算法在第三数据结构内表明的压缩比。
12.权利要求1的方法,其中压缩性能包括以每秒字节表示的压缩吞吐率,并且其中网络性能包括以每秒字节表示的网络吞吐率。
13.一种通过网络与目标节点通信的系统,包括处理器;以及计算机可读介质,包括由处理器执行以导致下列操作的代码确定用来压缩要传送的数据的压缩算法的压缩性能;确定网络的网络性能;使用确定的压缩性能和网络性能确定是否要压缩数据;响应于确定要压缩数据,压缩数据,响应于压缩数据,通过网络将经压缩的数据传送到目标节点;以及响应于确定不要压缩数据,将数据未经压缩地传送到目标节点。
14.权利要求13的系统,其中所述操作还包括在网络上将数据传送到目标节点,以确定网络性能;以及为不同的压缩算法和节点保持压缩性能,其中确定的压缩性能基于在处理器和目标节点使用压缩算法时的压缩性能。
15.权利要求14的系统,其中目标节点的压缩性能包括解压缩性能,其中确定的压缩性能包括处理器的压缩性能和解压缩计算成本的平均值。
16.权利要求14的系统,其中确定的压缩性能包括在目标节点和处理器执行的压缩算法的压缩性能的最小值。
17.权利要求14的系统,其中不同的压缩算法的压缩性能由处理器和目标节点在节点操作期间计算,以提供节点特有的压缩性能,其中操作还包括向网络内其他节点广播计算的不同压缩算法的压缩性能,以供所述其他节点在确定是否要压缩数据时使用。
18.权利要求13的系统,其中使用确定的压缩性能和网络性能确定是否要压缩数据包括将压缩性能与包括网络性能的公式相比较,从而压缩性能必须超过包括网络性能的公式的结果以表明要压缩数据,其中公式的量级与网络性能相关地增大。
19.权利要求13的系统,其中所述操作还包括确定在压缩算法压缩要传送的数据时得到的压缩比(CR);以及使用确定的CR以及确定的压缩性能和网络性能确定是否要压缩数据。
20.权利要求19的系统,其中使用确定的压缩性能、网络性能和CR确定是否要压缩数据包括将压缩性能与包括网络性能和CR的公式相比较,从而压缩性能必须超过包括网络性能和CR的公式的结果以表明要压缩数据。
21.权利要求20的系统,其中公式的结果的量级与网络性能的量级正向相关而与压缩比的量级反向相关。
22.权利要求21的系统,其中公式包括2*NTR/(1-CR)。
23.权利要求19的系统,其中操作还包括提供表明到网络内不同节点的网络性能的第一数据结构、包括网络内节点对于不同压缩算法的压缩性能的第二数据结构、保持不同压缩算法的压缩比的第三数据结构和表明用于不同数据类型的压缩算法的第四数据结构;以及确定要传送的数据的数据类型,其中压缩算法包括对于确定的数据类型在第四数据结构内表明的压缩算法,其中网络性能包括在第一数据结构内表明的目标节点的网络性能,其中压缩性能包括在第二数据结构内表明的目标节点和压缩算法的压缩性能,并且其中压缩比包括对于压缩算法在第三数据结构内表明的压缩比。
24.权利要求13的系统,其中压缩性能包括以每秒字节表示的压缩吞吐率,并且其中网络性能包括以每秒字节表示的网络吞吐率。
25.一种产品,所述产品包括在要通过网络向目标节点传送数据的源节点执行的代码,其中所述代码导致在源节点执行操作,所述操作包括如权利要求1-12中任一项所述的方法的步骤。
全文摘要
所提供的是一种确定是否要压缩通过网络传送的数据的方法、系统和程序。确定用来压缩要通过网络传送给目标节点的数据的压缩算法的压缩性能,并且确定网络的网络性能。确定的压缩性能和网络性能被用来确定是否压要缩数据。响应于确定要压缩数据,压缩数据,并响应于压缩数据,将压缩的数据通过网络传送给目标节点。响应于确定不要压缩数据,将数据未经压缩地传送到目标节点。
文档编号H04L29/06GK1968254SQ20061014397
公开日2007年5月23日 申请日期2006年11月8日 优先权日2005年11月9日
发明者卡塔尔多·梅加, 桑达·维里亚 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1