用于实时选择压缩操作的方法和系统的制作方法

文档序号:6397353阅读:162来源:国知局

专利名称::用于实时选择压缩操作的方法和系统的制作方法
技术领域
:本发明公开一般涉及计算机,更特别地,涉及计算环境中的压缩操作的实时选择。
背景技术
:在当前社会,计算机系统是十分普及的。计算机系统遍布工作场所、家庭和学校。计算机系统可包含用于处理和存储数据的数据存储系统或盘存储系统。近年来,软件和硬件技术均取得令人瞩目的进展。通过新的技术,增加了越来越多的功能,并且,更便于供这些电子装置使用。通过最近的计算机技术引入的最值得注意的变化中的一个是包括图像、视频和音频以增强计算机和电子装置的能力。在多媒体时代,要处理的信息量大大增加。处理大的数据文件的一种流行方法是压缩数据以供存储或传送。因此,处理非常大的数量的信息是要解决的关键问题。
发明内容伴随更快、更强大且更有效的存储信息的方式的需求的不断增加,存储技术的优化变为关键性挑战。可为了传送和/或存储而压缩逻辑数据对象(数据文件、图像文件、数据块等)。特别是当由于密集的中央处理单元(CPU)使用而使得压缩操作的数量增加时,需要为每个数据组找到最佳压缩操作(例如,产生大于或高于所限定的最小压缩比的压缩比的压缩算法)。因此并且鉴于以上情况,提供用于实时选择压缩操作的各种示例性的方法、系统和计算机程序产品实施例。在一个实施例中,仅作为例子,根据所分配的成功因子将可用的压缩操作初始化。为了确定压缩操作中的至少一个是否产生大于最小压缩比的压缩比,测试可用的压缩操作。应用为了压缩数据块中的至少一个而实时选择的可用的压缩操作。附加的系统和计算机程序产品实施例被公开,并且提供了相关的优点。除了以上的示例性的方法实施例以外,其它示例性的系统和计算机产品实施例被提供,并提供了相关的优点。已经提供了以上的
发明内容以便以简化的形式介绍对概念的选择,在后面的具体实施方式中进一步描述所述概念。本
发明内容不是要识别要求权利的主题的关键特征或基本特征,也不是要被用于帮助确定要求权利的主题的范围。要求权利的主题不限于解决在
背景技术
中提出的任意或全部缺点的实现。下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。在附图中:图1示出可以实现本发明的各方面的具有示例存储装置的计算机存储环境;图2示出表示可以实现本发明的各方面的计算机系统中的数据存储系统的硬件结构的示例性框图;图3示出用于计算成功因子的示例性框图;图4是示出用于在压缩比大于最小压缩比的情况下应用压缩比的示例性方法的流程图;图5是示出用于在压缩比大于最小压缩比的情况下选择压缩比的示例性方法的流程图;以及图6是示出用于通过使用压缩操作列表应用压缩操作的示例性方法的流程图。具体实施例方式如上所述,伴随着对于更快、更强大且更有效的存储信息的方式的需求的不断增力口,存储技术的优化变为关键性的挑战。对于特定的数据组,在存储阵列中,专门化的压缩算法可实现比通用的算法高的压缩比。数据压缩比可被用于量化通过数据压缩算法产生的数据表示(data-representation)尺寸的减小。数据压缩比可以是压缩尺寸与未压缩尺寸之间的比。压缩比依赖于被存储的数据。例如,对于图像数据组使用图像压缩算法将产生高的压缩比。另一方面,对于数据组中的视频内容,应用完全不同的算法可增加存储压缩比。因此,当在存储阵列中存储了多个内容类型(例如,联合图像专家组(JointPhotographicExpertsGroup,“JPEG”)、运动图像专家组(MovingPictureExpertsGroup“MPEG”)、MPEG-3“MP3”、第三代合作项目文件格式(ThirdGenerationPartnershipProjectFileFormat,“3GP”)、标签图像文件格式(TaggedImageFileFormat,“TIFF”)、图像互换格式(GraphicsInterchangeFormat,“GIF,,)、ZLIB和可移植网络图形(PortableNetworkGraphics,“PNG”))时,为每个数据组选择最佳算法是关键的。在许多情况下,数据组内容在压缩操作中是未知的。例如,在不检测内容类型的情况下,块存储阵列可能不知道存储于块存储阵列中的文件和文件类型。当内容被嵌入其它文件中时,数据类型的内容类型的检测也可被隐藏。例如,word文档可包含图像和音频内容。在云存储(blobstorage)中数据库文件也可包含视频,由于不能检测数据组的内容,因此,这也妨碍实现需要的压缩比。相反,并且为了解决上述的低效率,所示实施例的机制(mechanism)用于产生一种方案,其通过获得对如何构建给定文件的理解并从一组算法(例如,压缩操作)中选择对于目标数据组最有效的一个,来桥接应用与单纯存储平台之间的间隙。通过理解特定应用文件/块的布局,本发明的机制智能决定选择产生比在目标数据组上限定的最小接受压缩比大的压缩比的最佳压缩算法以供最佳存储之用。为了实现这些目标,在一个实施例中,从用于压缩数据块的列表中选择的至少一个压缩操作被应用于数据组。压缩操作中所选择的至少一个中的一个具有最高的压缩比。应当注意,本发明的机制寻求选择实现比限定的最小压缩比大或高的压缩比的压缩操作(例如,压缩算法)。本发明的机制可能未必找到、获得或定位产生最高压缩比的压缩操作。因此,可能不必检查和测试每一个可用的压缩比。转向图1,示出了可实现本发明的各方面的示例计算机系统10。计算机系统10包含与大容量存储设备14和存储器设备16连接的中央处理单元(CPU)12。大容量存储设备可包含可以以独立盘(RAID)的冗余阵列配置的硬盘驱动(HDD)设备。可以在位于系统10或别处的设备14上执行进一步描述的后备操作。存储器设备16可包含诸如电可擦可编程只读存储器(EEPROM)的存储器或大量的有关装置。存储器设备16和大容量存储设备14通过信号承载介质与CPU12连接。另外,CPU12通过通信端口18与具有附连的多个附加计算机系统22和24的通信网络20连接。计算机系统10可包含用于计算机系统10的每个单个部件的一个或更多个处理器装置(例如,CPU12)和附加的存储器设备16,以运行和执行这里描述的每个操作以实现本发明的目的。图2是示出根据本发明的计算机系统中的数据存储系统的硬件结构的示例性框图200。示出了主机计算机210、220、225,其每一个作为数据存储系统200的一部分,可以用作为用于执行数据处理的中央处理单元。主机(物理或虚拟的设备)210、220和225可以是数据存储系统200中的用于实现本发明的目的的一个或更多个新的物理装置或逻辑装置。在一个实施例中,仅作为例子,数据存储系统200可实现为IBMSystemStorageDS8000。网络连接260可以是光纤信道构造(fibrechannelfabric)、光纤信道点对点链接、以太网构造上的光纤信道构造或点对点链接、FICON或ESCONI/O接口、任何其它的I/O接口类型、无线网络、有线网络、LAN、WAN、异质、同质、公共(S卩,因特网)、私人或它们的任意组合。主机201、220和225可以是局部的或者分布在一个或更多个位置中,并且可配有到存储装置控制器240的任何类型的构造(或构造信道)(图2未示出)或网络适配器260,诸如光纤信道、FIC0N、ESC0N、以太网、光学纤维、无线或共轴适配器。因此,数据存储系统200配有用于通信的适当的构造(图2未示出)或网络适配器260。数据存储系统200在图2中被示为包含存储装置控制器240和存储装置230。为了有利于更清楚地理解这里描述的方法,存储装置控制器240在图2中被示为单个处理单元,包含在后面更详细地描述的微处理器242、系统存储器243和非易失性存储装置(“NVS”)216。应当注意,在一些实施例中,存储装置控制器240包含多个处理单元,每个具有它们自己的处理器集合体和系统存储器,并且通过数据存储系统200内的专用网络被互连。存储装置230可包含通过存储网络与存储装置控制器240连接的一个或更多个诸如存储阵列的存储设备。在一些实施例中,可以在回路架构中连接包含于存储装置230中的装置。存储装置控制器240管理存储装置230,并且有利于处理希望针对存储装置230的写入和读取请求。存储装置控制器240的系统存储器243存储处理器242可访问的程序指令和数据,以便执行与管理存储装置230相关的功能和方法步骤并执行计算机存储环境中的快照操作(snapshotoperation)的本发明的步骤和方法。在一个实施例中,系统存储器243可包含用于执行包含这里描述的方法和操作的计算机存储环境中的舍弃扫描的操作软件250、与其相关或者通信。如图2所示,系统存储器243还可包含这里也称为“高速缓存存储器”的用于存储装置230的高速缓存245或与其通信,该高速缓存245用于缓存分别参照写入/读取请求和它们的相关数据的“写入数据”和“读取数据”。在一个实施例中,在系统存储器243外面的设备中分配高速缓存245,然而该高速缓存245保持可由微处理器242访问,并且除了实施这里描述的操作以外,还可用于提供防止数据丢失的额外安全。在一些实施例中,高速缓存245通过易失性存储器和非易失性存储器来实现,并且为了增强数据存储系统200的性能而通过局部总线(图2未示出)与微处理器242耦合。包含于数据存储装置控制器中的NVS216可由微处理器242访问,并且用于为在其它附图中描述的本发明的操作和执行提供附加的支持。NVS216也可被称为“永久”高速缓存或“高速缓存存储器”,并且通过可以利用或者可以不利用外部电力以保持存储于其中的数据的非易失性存储器来实现。出于适于实现本发明的目标的目的,NVS可存储于高速缓存245中或者通过其被存储。在一些实施例中,诸如电池的备用电源(图2未示出)向NVS216供给足够的电力以在数据存储系统200存在电力损失的情况下保持存储于其中的数据。在某些实施例中,NVS216的容量小于等于高速缓存245的总容量。存储装置230可在物理上包含一个或更多个存储器件,诸如存储阵列。存储阵列是诸如硬盘的各单个存储器件的逻辑分组。在某些实施例中,存储装置230包含JB0D(JustaBunchOfDisks,磁盘簇)阵列或RAID(独立盘的冗余阵列)阵列。物理存储阵列的集合可进一步被组合以形成层级(rank),其使物理存储装置与逻辑配置不相关。层级中的存储空间可被分配到限定在写入/读取请求中规定的存储位置的逻辑体积(logicalvolume)中。在一个实施例中,仅作为例子,图2所示的存储系统可包含逻辑体积,或者简称为“体积”,可具有不同类型的分配。存储装置230a、230b和230η被示为数据存储系统200中的层级,并且在这里被称为层级230a、230b和230η。层级可以是数据存储系统200本地的,或者可位于物理远程位置上。换句话说,局部存储装置控制器可与远程存储装置控制器连接,并且管理远程位置上的存储装置。层级230a被示为配有两个整个体积234和236以及一个部分体积232a。层级230b被示为具有另一部分体积232b。因此,体积232跨层级230a和230b被分配。层级230η被示为完全分配给体积238—即,层级230η指的是用于体积238的整个物理存储装置。从以上的例子,可以理解,层级可被配置为包含一个或更多个部分和/或整个体积。体积和层级可进一步被分成所谓的“轨道(track)”,该轨道代表存储装置的固定块。轨道因此与给定的体积相关,并且可被赋予给定的层级。存储装置控制器240可包含压缩操作模块255和压缩操作列表模块257。压缩操作模块255和压缩操作列表模块257可与存储装置控制器240、主机210、220、225和存储设备230中的每一个部件结合工作。压缩操作模块255和压缩操作列表模块257均可在结构上是一个完整的模块,并且可与其它的单个模块相关和/或包含在一起。压缩操作模块255和压缩操作列表模块257也可位于高速缓存245或其它部件中。存储装置控制器240包含用于控制对于主机计算机210、220、225的光纤信道协议的控制开关(controlswitch)241;用于控制存储装置控制器240的全部的微处理器242;用于存储用于控制存储装置控制器240的操作的微程序(操作软件)250、用于控制的数据和后面描述的每个表的非易失性控制存储器243;用于暂时存储(缓存)数据的高速缓存245;和用于帮助高速缓存245读取和写入数据的缓冲器244;用于控制用于控制去向/来自存储设备230的数据传送的协议的控制开关241和可以设定其中信息的压缩操作模块255和压缩操作列表模块257。多个缓冲器244可通过本发明实现为帮助进行这里描述的操作。在一个实施例中,主机计算机或一个或更多个物理或虚拟设备210、220、225和存储装置控制器240通过作为接口的网络适配器(可以是光纤信道)260—即,通过称为“构造”的开关——被连接。在一个实施例中,描述图2所示的系统的操作。微处理器242可控制存储器243以存储来自主机设备(物理的或虚拟的)210的命令信息和用于识别主机设备(物理的或虚拟的)210的信息。控制开关241、缓冲器244、高速缓存245、操作软件250、微处理器242、存储器243、NVS216、压缩操作模块255和压缩操作列表模块257相互通信,并且可以是分开的或各单个部件(一个或多个)。并且,可将诸如操作软件250的数个部件,如果不是全部部件的话,与存储器243包括在一起。所示的设备内的部件中的每一个可被链接在一起,并且可出于适于本发明的目的而相互通信。图3示出用于计算成功因子的示例性框图300。在一个实施例中,机制寻求通过为每一数据组的内容选择最佳压缩方法(例如,选择产生大于或高于限定的最小压缩比的压缩比的压缩操作)来增加存储阵列的压缩比。通过选择产生大于最小接受和限定的压缩比的压缩比的第一压缩操作,而不是通过迭代和测试可用的压缩操作中的每一个,来增加效率和生产率。对于不同压缩算法中的每一个,机制测试事先实现的压缩比。不同于应用专用压缩算法,其中所应用的算法中的每一个都使用密集数量的CPU并且不能被用于大量的算法,机制通过在不限制所使用的压缩算法的数量的情况下实时地测试/尝试产生最高压缩比的压缩操作,来选择产生与在使用专用压缩算法时获得的压缩比类似的压缩比的压缩操作。并且,所使用的压缩算法的无限数量不影响CPU负载。机制使用收集的统计信息、成功和失败的学习机和用于选择应用于要被存储的数据的压缩算法的阈值算法测试。如图3所示,机制知道数据组的用于压缩的内容类型。为了通过为每一类型的数据内容选择最佳压缩操作(例如,选择产生大于或高于限定的最小压缩比的压缩比的压缩操作)来帮助增加数据存储的压缩比,使用下式:权利要求1.一种用于在计算环境中通过处理器设备实时选择压缩操作的方法,所述方法包括:根据所分配的成功因子将多个可用的压缩操作初始化;测试所述多个可用的压缩操作中的至少一个,以确定所述多个可用的压缩操作中的至少一个是否产生大于最小压缩比的压缩比;和应用实时选择的所述多个可用的压缩操作中的至少一个,以压缩多个数据块中的至少一个。2.根据权利要求1所述的方法,还包括:限定最小压缩比,所述最小压缩比用于确定要选择所述多个可用的压缩操作中的至少一个中的哪些。3.根据权利要求1所述的方法,其中,所述成功因子至少包含被选为产生大于所述最小压缩比的压缩比的所述多个可用的压缩操作中的每一个的频率的累积和值。4.根据权利要求1所述的方法,还包括:根据所述应用,继续应用用于压缩所述多个数据块中的至少一个的随后的一个的所述多个可用的压缩操作中的至少一个,直到所述压缩比小于所述最小压缩比。5.根据权利要求1所述的方法,还包括:根据所述初始化,按照所述成功因子在列表中配置所述多个可用的压缩操作中的至少一个。6.根据权利要求5的方法,还包括:在所述应用之后,更新所述多个可用的压缩操作中的至少一个的每一个的成功因子,其中,所述列表被重新排序。7.根据权利要求1所述的方法,还包括:结合所述应用,如果所述多个可用的压缩操作中的至少一个的每一个的压缩比小于所述最小压缩比,那么选择所述多个可用的压缩操作中的在列表中首先用于所述应用的至少一个。8.一种用于在计算环境中实时选择压缩操作的系统,包括:能够在所述计算环境中操作的处理器设备,其中,所述处理器设备适于:根据所分配的成功因子将多个可用的压缩操作初始化;测试所述多个可用的压缩操作中的至少一个,以确定所述多个可用的压缩操作中的至少一个是否产生大于最小压缩比的压缩比;和应用实时选择的所述多个可用的压缩操作中的至少一个,以压缩多个数据块中的至少一个。9.根据权利要求8所述的系统,其中,所述处理器设备进一步适于限定最小压缩比,所述最小压缩比用于确定要选择所述多个可用的压缩操作中的至少一个中的哪些。10.根据权利要求8所述的系统,其中,所述成功因子至少包含被选为产生大于所述最小压缩比的压缩比的所述多个可用的压缩操作中的每一个的频率的累积和值。11.根据权利要求8所述的系统,其中,所述处理器设备进一步适于根据所述应用,继续应用用于压缩所述多个数据块中的至少一个的随后的一个的所述多个可用的压缩操作中的至少一个,直到所述压缩比小于所述最小压缩比。12.根据权利要求8所述的系统,其中,所述处理器设备进一步适于根据所述初始化,按照所述成功因子在列表中配置所述多个可用的压缩操作中的至少一个。13.根据权利要求12所述的系统,其中,所述处理器设备进一步适于在所述应用之后,更新所述多个可用的压缩操作中的至少一个的每一个的成功因子,其中,所述列表被重新排序。14.根据权利要求8所述的系统,其中,所述处理器设备进一步适于结合所述应用,如果所述多个可用的压缩操作中的至少一个的每一个的压缩比小于所述最小压缩比,那么选择所述多个可用的压缩操作中的在列表中首先用于所述应用的至少一个。全文摘要本发明公开提供了用于实时选择压缩操作的方法、系统和计算机程序产品实施例。在一个实施例中,仅作为例子,根据所分配的成功因子将可用的压缩操作初始化。测试所述可用的压缩操作,以确定所述可用的压缩操作中的至少一个是否产生大于最小压缩比的压缩比。应用实时选择的所述可用的压缩操作中的至少一个,以压缩数据块中的至少一个。附加的系统和计算机程序产品实施例被公开,并且提供了相关的优点。文档编号G06F9/44GK103197924SQ201310000678公开日2013年7月10日申请日期2013年1月4日优先权日2012年1月6日发明者J·阿秘特,L·德米多,N·哈罗瓦尼申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1