CN106844090A - 基于压缩比历史的数据复制 - Google Patents
基于压缩比历史的数据复制 Download PDFInfo
- Publication number
- CN106844090A CN106844090A CN201610985164.3A CN201610985164A CN106844090A CN 106844090 A CN106844090 A CN 106844090A CN 201610985164 A CN201610985164 A CN 201610985164A CN 106844090 A CN106844090 A CN 106844090A
- Authority
- CN
- China
- Prior art keywords
- data
- compression ratio
- compression
- current
- file
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Abstract
提供了用于执行数据复制操作以将数据从第一数据处理系统复制到第二数据处理系统的机制。这些机制存储与将被复制的数据相关联的压缩比历史。压缩比历史存储用于一个或多个之前执行的数据复制操作的一个或多个压缩比。这些机制基于压缩比历史中的(多个)压缩比来确定数据压缩操作是否应当被应用到用于当前数据复制操作的数据。响应于确定数据压缩应当被应用到数据,数据压缩操作被执行并且压缩的数据被复制到第二数据处理系统。响应于确定数据压缩不应当被应用,数据没有压缩地被复制。
Description
技术领域
本申请一般性地涉及改进的数据处理装置和方法,并且更具体地涉及用于基于压缩比历史执行高效数据复制的机制。
背景技术
数据复制是在许多存储产品中实施以避免因程序错误、人为失误、或灾难事件引起的数据丢失的常用机制。通常,这样的数据复制定期地进行,诸如一天一次。在这种情况下,为了风险分散的目的,在生产场所处的源系统和在数据复制场所处的目标系统通常在物理上互相远离。源系统中的数据通过一个或多个计算机或数据通信网络被传送至目标系统,数据通信网络诸如广域网(WAN)(例如,互联网)和局域网(LAN)。
在这种通过计算机或数据通信网络的复制中,通常还使用数据压缩来减小通过网络传送的数据的大小。这是因为,在许多情况下,网络代表整个复制过程的瓶颈,并且因此尽可能使通过网络的数据传送的量最小化并由此提高复制过程被执行的速度是有益的。
具有压缩的数据复制机制的一个示例是“rsync”数据复制工具,其提供压缩选项来压缩通过网络传送的数据。rsync数据复制工具使用“zlib”,一种用于数据压缩的Linux库。从纽约阿蒙克的国际商用机器(IBM)公司可获得的IBM SONAS和IBM StorwizeV7000Unified使用rsync数据复制工具作为数据传送引擎以用于其数据复制功能。
发明内容
在一个说明性实施例中,提供了一种在第一数据处理系统中用于执行数据复制操作以将数据从第一数据处理系统复制到第二数据处理系统的方法。该方法包括:由第一数据处理系统存储与将被复制到第二数据处理系统的数据相关联的压缩比历史。压缩比历史存储用于至少一个之前执行的数据复制操作的至少一个压缩比。该方法进一步包括:由第一数据处理系统基于压缩比历史中的至少一个压缩比来确定数据压缩操作是否应当被应用到用于当前数据复制操作的数据。该方法还包括:响应于确定数据压缩应当被应用到数据,由数据处理系统对数据执行数据压缩操作并且执行当前数据复制操作以将压缩的数据复制到第二数据处理系统。另外,该方法包括:响应于确定数据压缩不应当被应用到数据,由数据处理系统执行当前数据复制操作以没有压缩地将数据复制到第二数据处理系统。
在其他说明性实施例中,提供了一种包括计算机可用或可读介质的计算机程序产品,计算机可用或可读介质具有计算机可读程序。该计算机可读程序当在计算设备上被执行时使得计算设备执行上文关于方法的说明性实施例所概述的操作中的各种操作和组合。
在又另一说明性实施例中,提供了一种系统/装置。该系统/装置可以包括一个或多个处理器以及与该一个或多个处理器耦合的存储器。该存储器可以包括指令,这些指令在由该一个或多个处理器执行时使得该一个或多个处理器执行上文关于方法的说明性实施例所概述的操作中的各种操作和组合。
本发明的这些和其他特征和优点将在本发明的示例实施例的以下详细描述中被描述,或者将鉴于该描述对本领域的普通技术人员变得明显。
附图说明
本发明及其优选的使用模式以及进一步的目的和优点将在结合附图阅读时通过参考说明性实施例的以下详细描述最佳地被理解,在附图中:
图1是说明性实施例的方面可以被实施在其中的分布式数据处理系统的示例图;
图2是说明性实施例的方面可以被实施在其中的计算设备的示例框图;
图3是图示了根据一个说明性实施例的用于执行数据复制操作的主要操作元件的示例功能框图;
图4是概述了根据一个说明性实施例的用于执行数据复制的示例操作的流程图;以及
图5是概述了根据另一说明性实施例的用于执行针对单个文件的数据复制操作的示例操作的流程图。
具体实施方式
说明性实施例提供了用于基于压缩比历史执行高效数据复制的机制。如上文所提到的,使用数据压缩的数据复制机制存在并且通常被使用。然而,在这种使用具有数据压缩的数据复制的系统中,即使数据压缩通过使需要被传送的数据的量以及执行数据复制过程的时间最小化来协助数据复制过程,但是有时候数据压缩不能良好地压缩数据。例如,已经被压缩的数据(例如,xxx.gz或xxx.zip类型文件)或已经被编码的图像/视频文件在许多情况下未被压缩非常多,即文件大小未减小或者仅略微减小。作为结果,执行数据压缩过程在时间和资源方面的成本可能超过从实现的压缩量获得的价值。因此,作为结果,如果文件大小没有明显地被数据压缩所影响,则有时候具有数据压缩的数据复制可能比没有数据压缩的数据复制花费更久来完成。
因此,将有益的是,能够确定在数据复制期间数据压缩何时将有益于数据复制过程并且不会导致比没有数据压缩的数据复制花费更久的数据复制过程。然而,在没有首先压缩数据的情况下难以知道多少数据能够被压缩,因为压缩比取决于实际的数据模式(data pattern),即数据压缩的益处不能先验地被确定,而是仅能够通过执行数据压缩并查看通过执行数据压缩所获得的数据大小减小的量而被测定。
说明性实施例提供了一种数据复制机制,其能够先验地确定数据压缩是否将改进数据复制过程,并且仅针对能够良好被压缩的文件应用数据压缩,并且凭借减少将通过数据通信网络传送的数据的量而导致数据复制过程中的改进,并且因此改进数据复制过程被执行的速度。
一种选择将是具有如下文件类型的列表,针对这些文件类型,数据压缩不应当被执行作为数据复制过程的一部分。例如,使用具有压缩选项的rsync数据复制工具,文件扩展名(诸如.zip、.gz、.iso、.mp4等)的列表可以被提供,并且正被复制的文件可以将它的扩展名与该列表相比较以确定是否存在匹配。如果存在匹配,则数据复制可以被执行而无需执行数据压缩。如果不存在匹配,则数据压缩可以被应用作为数据复制过程的一部分。尽管这工作良好,但是这种技术受限于与扩展名在列表中的文件有关的有效操作。也就是说,有效性被文件扩展名列表的全面性所限制。换句话说,可能存在不同类型的文件,它们未在文件扩展名列表中被列出并且在数据压缩被应用时没有导致明显的数据大小减小。此外,可能存在如下的文件,它们不具有恰当的扩展名但实际上是.zip、.gz等类型的数据文件。在这种情况下,具有数据压缩的数据复制过程将把数据压缩应用到文件,因为它不包括恰当的扩展名,即使该文件已经被压缩并且将不会导致由于应用数据压缩作为数据复制过程的一部分所致的明显数据大小差异,即这将会花费另外的时间和资源而没有显著的有益结果。
说明性实施例利用了一种机制,该机制基于与数据的一部分(为了解释的简便,在本文中被认为是“文件”)相关联的压缩比历史的存储。作为数据复制过程的一部分,如果文件被选择为利用数据压缩被传送,则文件的对应压缩比历史被更新以包括用于当前数据复制过程的压缩比,其中压缩比是压缩文件的大小与未压缩文件的大小的比率。与文件相关联的压缩比历史仅当文件实际上经受到数据压缩作为复制过程的一部分时被更新。因此,如果确定文件将没有压缩地被复制,则文件的关联压缩比历史不被更新。
文件的压缩比历史可以存储在执行数据复制过程时作为所执行的数据压缩过程的一部分而针对该文件确定的一个或多个压缩比。因此,在一个说明性实施例中,压缩比历史可以仅存储最新的压缩比。在其他说明性实施例中,压缩比历史可以按先入先出(FIFO)方式存储n个压缩比M(n),其中M(0)存储上次使用数据压缩执行文件的数据复制的最为近期的压缩比,并且M(n-1)具有针对该文件的最旧的所存储的压缩比,n次以前。在一些说明性实施例中,压缩比自身可以为1与100之间的整数值,其代表由数据压缩实现的数据大小减小的百分比,例如,100意味着压缩完全没有压缩数据,而50意味着文件的数据大小在数据压缩之后为文件的原始数据大小的一半大小。比率可以取整到对应的整数。作为结果,每个M(i)值可以为1个字节并且能够被存储作为文件的扩展属性。例如,如果N为1000,意味着文件的最后1000个压缩比被存储在压缩比历史中,则M的大小仅为1KB。
在确定是否使用数据压缩作为数据复制过程的一部分来传送文件时,一种过程可以将基于压缩比历史获得的值与一个或多个门限值相比较以确定数据压缩是否将被应用到文件。从压缩比历史获得的数据值可以是最新的压缩比、压缩比历史中存储的压缩比的平均值、或者压缩比历史中存储的压缩比中的一个或多个压缩比的函数。在一些说明性实施例中,如果压缩比小于门限值T,则执行具有数据压缩的数据复制操作快于执行没有数据压缩的数据复制操作,即存在充分的数据压缩,该数据压缩的成本被执行数据复制过程所要求的数据大小和时间上的减少所超过。如果压缩比等于或大于门限值T,则没有压缩的传送快于具有压缩的传送,即不存在通过应用数据压缩所实现的文件的明显量的数据大小减小,并且因此数据压缩的所添加的成本是不必要的。
(多个)门限值可以以任何期望的方式被确定,包括经验性地通过执行测试以确定(多个)门限值的最适当设置。例如,针对将被使用的特定数据压缩算法,数据的一部分(例如,32KB的数据)可以被提供,其具有1%的压缩比,即非常好地被压缩,以及100%的另一部分,即未非常好地被压缩。也可以针对压缩比的不同水平生成附加文件。这些文件可以使用具有压缩和没有压缩的数据复制过程和所测量的对应传送次数被传送。没有压缩的数据传送快于具有压缩的传送的场合下的最小压缩比可以被找到并且被用来设置(多个)门限值。当然,可以使用找到用于(多个)门限值的(多个)恰当值的其他方法而不偏离本发明的精神和范围。
除了压缩比历史以外,压缩比检查参数与文件相关联并且指定文件的压缩比将被检查的日期/时间。压缩比检查参数的日期/时间指定了文件在何时必须使用数据压缩作为数据复制过程的一部分被传送,以使得压缩比可以被更新。也就是说,即使说明性的机制基于压缩比历史确定文件不应当使用压缩作为数据复制过程的一部分被传送(因为由于数据大小上没有显著减小而将无法实现复制过程中的明显改进),但是如果当前日期/时间等于或后于压缩比检查参数中指定的日期/时间,则文件使用数据压缩作为数据复制过程的一部分被传送。以这种方式,压缩比历史将利用更为近期的数据压缩比值被更新,该更为近期的数据压缩比值能够被用来与当前(多个)门限值相比较以确定具有/没有压缩的数据复制是否适当。
各种机制可以被实施用于存储压缩比检查参数,包括将作为未来时间戳的特定日子/时间设置为与文件相关联的参数、设置倒数计时器或者每时间单位递增的计数器值,例如,如果压缩比检查参数是按照日子的,则压缩比检查参数中的值可以每天递减直到它到达零,在该点处上文所提到的压缩检查操作被执行。压缩比检查参数可以被设置为默认值,以使得所有文件在自从上次压缩比检查发生以来经过相同的时间量时使它们的压缩比被检查。替换地,可以设置用于检查文件的压缩比的最大经过时间,并且个体的压缩比检查参数可以基于文件的压缩特性被设置在该最大经过时间内。也就是说,如果文件的压缩特性指示压缩比从一个数据压缩过程至下一数据压缩过程、或随着时间显著地变化,则相比压缩比不像这样显著变化的文件更频繁地执行压缩比检查操作。
在一些说明性实施例中,函数D(s)可以被用来返回将被存储作为压缩比检查参数的值,例如直到下一压缩检查过程将被执行的天数。也就是说,使用天作为时间单位,压缩检查过程将在D(s)函数指定的天数经过之后被处理。对D(s)函数的输入可以为压缩比历史M(n)中的压缩比的统计测量或其他函数。例如,统计测量或其他函数表示压缩比随着时间的稳定性的测量。在一个说明性实施例中,这一统计测量或函数可以是在函数D(s)正被计算时用于文件的M的标准偏差s。如果M中的压缩比值的变化非常小,则压缩比是相当恒定的并且压缩检查过程不需要经常被执行。另一方面,如果M中的压缩比值极大地变化,则压缩比急剧地改变并且压缩检查操作应当更频繁地被执行。例如,如果想要检查接下来的最长30天内的任何文件,则D(s)能够被定义为D(s)=((50-s)/50)*30。使用这一函数作为示例,压缩比检查参数check_date可以被设置为例如check_date=D(s)+current_timestamp。
因此,根据一个说明性实施例,说明性实施例的机制将压缩比历史M(n)和压缩比检查参数check_date与每个文件相关联。说明性实施例的机制进一步包括如下的元件,这些元件用于确定压缩比历史M(n)中的压缩比的第一统计测量(诸如,例如平均值)以用于预测下一复制过程的压缩比。说明性实施例的机制进一步包括如下的元件,这些元件用于计算压缩比历史M(n)中的压缩比的第二统计测量(诸如,例如M的标准偏差)以确定压缩比如何分布并且提供跨最后N次复制过程的压缩比的变化性有关的信息。这一第二统计测量被用来确定压缩比检查将被执行的频率。
说明性实施例的机制进一步包括如下的元件,这些元件用于建立和利用一个或多个门限值T以用于确定压缩何时将被使用作为复制过程的一部分。此外,说明性实施例的机制包括如下的元件,这些元件用于应用函数D(s)以用于基于压缩比的第二统计测量来确定如何设置文件的压缩比检查参数check_date。说明性实施例的机制进一步包括如下的元件,这些元件用于利用上文的元件以促进主要基于压缩比历史和所确定的用于检查文件的压缩比的频率而针对经历数据复制过程的每个文件来动态地确定数据压缩是否将被使用作为数据复制过程的一部分。
在开始说明性实施例的各种方面的讨论之前,首先应当意识到贯穿于本描述,术语“机制”将被用来指代执行各种操作、函数等的本发明的元件。当该术语在本文中被使用时,“机制”可以是说明性实施例的函数或方面以装置、过程或计算机程序产品为形式的实施方式。在过程的情况中,该过程由一个或多个设备、装置、计算机、数据处理系统等来实施。在计算机程序产品的情况中,由在计算机程序产品中或其上具体化的计算机代码或指令所表示的逻辑由一个或多个硬件设备执行以便实施功能或执行与特定“机制”相关联的操作。因此,本文中描述的机制可以被实施为专用硬件、在通用硬件上执行的软件、存储在介质上的软件指令(以使得指令容易地由专用或通用的硬件可执行)、用于执行功能的过程或方法、或者上述中的任何项的组合。
本描述和权利要求可能利用与说明性实施例的特定特征和元件相关的术语“一种”、“至少一个”和“一个或多个”。应当意识到,这些术语和短语意图为陈述有存在于特定说明性实施例中的特定特征或元件中的至少一个,但是也可能存在多于一个。也就是说,这些术语/短语不意图为将描述或权利要求限制于单个特征/元件存在或者要求多个这种特征/元件存在。相反地,这些术语/短语仅要求至少单个特征/元件,以及多个这种特征/元件在本描述和权利要求的范围内的可能性。
另外,应当意识到,以下描述使用说明性实施例的各种元件的多个各种示例以进一步说明这些说明性实施例的示例实施方式,并且帮助理解说明性实施例的机制。这些示例意图为非限制性的并且不排除用于实施说明性实施例的机制的各种可能性。考虑到本描述,对本领域的普通技术人员将明显的是,不偏离本发明的精神和范围,存在用于这些各种元件的许多其他替换性实施方式,它们可以对本文提供的示例附加地、或者替代本文提供的示例而被利用。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中指定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中指定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现指定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行指定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
说明性实施例可以被用在许多不同类型的数据处理环境中。为了向说明性实施例的特定元件和功能的描述提供上下文,后文提供图1和图2作为说明性实施例的方面可以被实施在其中的示例环境。应当意识到,图1和图2仅是示例并且不意图为声明或暗示与本发明的方面或实施例可以被实施在其中的环境有关的任何限制。可以对所描绘的环境作出许多修改而不偏离本发明的精神和范围。
图1描绘了说明性实施例的方面可以被实施在其中的示例分布式数据处理系统的图形表示。分布式数据处理系统100可以包括说明性实施例的方面可以被实施在其中的计算机的网络。分布式数据处理系统100包含至少一个网络102,至少一个网络102是被用来提供分布式数据处理系统100内的连接在一起的各种设备和计算机之间的通信链路的媒介。网络102可以包括连接,诸如接线、无线通信链路、或光纤电缆。
在所描绘的示例中,服务器104和服务器106连接至网络102以及存储单元108。另外,客户端110、112和114也连接至网络102。这些客户端110、112和114可以例如为个人计算机、网络计算机等。在所描绘的示例中,服务器104向客户端110、112和114提供数据,诸如启动文件、操作系统图像、以及应用。客户端110、112和114在所描绘的示例中是对服务器104的客户端。分布式数据处理系统100可以包括另外的服务器、客户端、以及未示出的其他设备。
在所描绘的示例中,分布式数据处理器100是具有网络102的互联网,表示使用传输控制协议/互联网协议(TCP/IP)的协议套件与彼此进行通信的世界范围的网络和网关的集合。在互联网的心脏处,是主节点或主控计算机之间的高速数据通信线路的主干,包括对数据和消息进行路由的数千计的商业、政府、教育和其他计算机系统。当然,分布式数据处理系统100还可以被实施为包括若干不同类型的网络,诸如,例如内联网、局域网(LAN)、广域网(WAN)等。如上文所陈述的,图1意图作为示例,而不作为对于本发明的不同实施例的架构性限制,并且因此图1中所示出的特定元件不应当被认为关于本发明的说明性实施例可以被实施在其中的环境进行了限制。
根据说明性实施例,图1中所示出的计算设备中的一个或多个计算设备可以被配置为,例如,诸如以数据复制引擎120为形式来实施说明性实施例的方面。除了图1中未明确示出的其他元件以外,数据复制引擎120还包括复制控制逻辑122和数据压缩逻辑124。复制控制逻辑122包括用于控制由数据复制引擎120执行的数据复制操作的逻辑,数据复制操作包括根据说明性实施例确定何时执行数据压缩操作作为数据复制操作的一部分。数据压缩操作自身可以由数据压缩逻辑124根据一个或多个数据压缩算法来执行,并且进一步被扩增以包括如下的逻辑,该逻辑用于针对作为数据复制操作的一部分正被复制的每个文件来确定由数据压缩逻辑124实现的压缩比,并且将该压缩比信息存储在与被压缩的文件相关联的数据压缩比历史中。复制控制逻辑124可以进一步包括如下的逻辑,该逻辑用于确定将与经历数据复制操作的文件相关联的压缩检查参数,并且将压缩检查参数与该文件相关联、以及在确定是否执行文件的数据压缩作为数据复制操作的一部分时检查压缩检查参数。
因此,例如,如果数据复制操作在服务器104(源计算设备)上被触发用于经由网络102将数据复制到远程定位的服务器106(目标计算设备),则数据复制引擎120在复制控制逻辑122的控制下执行数据复制操作。作为由复制控制逻辑122执行的控制操作的一部分,复制控制逻辑122读取与将被复制到服务器106的(多个)文件相关联的扩展属性和/或参数并且基于扩展属性和/或参数来确定数据压缩是否将被应用到正被复制的文件。如上文所提到的,扩展属性和/或参数包括压缩比历史M(n),其中n是压缩比信息针对其而被维持在压缩比历史M中的数据复制操作的数目,例如最后N次复制操作。在这样做时,复制控制逻辑122包括如下的逻辑,该逻辑用于生成压缩比历史M(n)中的压缩比的统计测量,并且然后使用这些统计测量来确定压缩是否应当被应用到(多个)文件作为数据复制引擎120的一部分。另外,复制控制逻辑122包括如下的逻辑,该逻辑用以检查(多个)文件的压缩检查参数以确定压缩是否应当被应用作为数据复制操作的一部分而不管压缩比历史M(n)的统计测量是否指示压缩应当被应用与否。这确保了用于被确定为从作为复制过程一部分的压缩不会获益的这些文件的压缩比历史M(n)仍然使它们的压缩比信息定期地被更新,从而可能影响到在后续的数据复制过程期间是否将压缩应用到文件的动态条件被纳入考虑。
图2是说明性实施例的方面可以被实施在其中的示例数据处理系统的框图。数据处理系统200是计算机的示例,诸如图1中的客户端110,实施用于本发明的说明性实施例的过程的计算机可用代码或指令可以位于其中。
在所描绘的示例中,数据处理系统200采用集线器架构,包括北桥和存储器控制器集线器(NB/MCH)202以及南桥和输入/输出(I/O)控制器集线器(SB/ICH)204。处理单元206、主存储器208和图形处理器210连接至NB/MCH 202。图形处理器210可以通过加速图形端口(AGP)连接至NB/MCH 202。
在所描绘的示例中,局域网(LAN)适配器212连接至SB/ICH204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、CD-ROM驱动器230、通用串行总线(USB)端口和其他通信端口232、以及PCI/PCIe设备234通过总线238和总线240连接至SB/ICH 204。PCI/PCIe设备可以包括例如以太网适配器、插入卡、以及用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM 224可以例如为快闪基本输入/输出系统(BIOS)。
HDD 226和CD-ROM设备230通过总线240连接至SB/ICH 204。HDD 226和CD-ROM驱动器230可以使用例如集成驱动器电子器件(IDE)或串行高级技术附件(SATA)接口。超级I/O(SIO)设备236可以连接至SB/ICH 204。
操作系统运行在处理单元206上。操作系统协调和提供图2中的数据处理系统200内的各种组件的控制。作为客户端,操作系统可以是商用操作系统,诸如面向对象的编程系统,诸如JavaTM编程系统,可以与操作系统协同运行并且从数据处理系统200上执行的JavaTM程序或应用提供对操作系统的调用。
作为服务器,数据处理系统200可以例如为运行高级交互执行体操作系统或操作系统的IMB eServerTM系统计算机系统、基于PowerTM处理器的计算机系统等。数据处理系统200可以为包括处理单元206中的多个处理器的对称多处理器(SMP)系统。替换地,可以采用单个处理器系统。
用于操作系统、面向对象的编程系统、以及应用或程序的指令位于存储设备(诸如HDD 226)上,并且可以被加载到主存储器208中以用于由处理单元206执行。用于本发明的说明性实施例的过程可以由处理单元206使用计算机可用程序代码来执行,计算机可用程序代码可以位于存储器中,诸如,例如主存储器208、ROM 224、或者一个或多个外围设备226和230。
总线系统(诸如图2中所示出的总线238或总线240)可以由一个或多个总线构成。当然,可以使用任何类型的通信结构或架构(其提供附接至该结构或架构的不同组件或设备之间的数据的传送)来实施总线系统。通信单元(诸如图2的调制解调器222或网络适配器212)可以包括用来发送和接收数据的一个或多个设备。存储器可以例如为主存储器208、ROM 224、或诸如在图2中的NB/MCH 202中找到的缓存。
本领域的普通技术人员将意识到,图1和图2中的硬件可以取决于实施方式而变化。除了图1和图2中所描绘的硬件之外或者替代图1和图2中所描绘的硬件,可以使用其他内部硬件或外围设备,诸如闪存存储器、等效的非易失性存储器、或光盘驱动器等。此外,除了之前提到的SMP系统以外,说明性实施例的过程可被应用到多处理器数据处理系统,而不偏离本发明的精神和范围。
此外,数据处理系统200可以采用包括客户端计算设备、服务器计算设备、平板计算机、膝上型计算机、电话或其他通信设备、个人数字助理(PDA)等的多个不同数据处理系统中的任一项的形式。在一些说明性示例中,数据处理系统200可以是便携式计算设备,其被配置有闪存存储器以提供用于存储例如操作系统文件和/或用户生成数据的非易失性存储器。实质上,数据处理系统200可以是任何已知的或者以后开发的数据处理系统而没有架构性限制。
图3是图示了根据一个说明性实施例的用于执行数据复制操作的主要操作元件的示例功能框图。图3中所示出的元件可以被实施在例如图1中的数据复制引擎120的复制控制逻辑122和数据压缩逻辑124中的一个或多个中。图3中的元件可以被实施为计算设备的专用硬件单元、执行软件指令并因此被配置为执行根据一个或多个说明性实施例的操作的通用硬件单元、或者执行软件指令的专用硬件单元和通用硬件单元的任何组合。在一个说明性实施例中,假设图3中的元件被实施为加载到存储器中并且由计算设备的一个或多个处理器执行/处理的(诸如被加载到图2中的主存储器208中并且由处理单元206执行的)软件指令/数据。
如图3中所示出的,当数据复制操作或过程诸如响应于事件而被发起时,执行数据复制的用户发起的请求、或者针对数据复制的调度、文件310、或数据的其他部分(其是数据复制的对象)被数据复制引擎300的复制控制逻辑320分析。应当意识到,尽管图3中示出了单个文件310,但是可以对多个文件或数据部分执行数据复制操作,并且本文中描述的过程和操作可以被应用到经历数据复制操作的每个文件或数据部分。
文件310将压缩比历史312和压缩比检查参数314与之相关联,诸如以文件310的扩展属性或参数为形式。压缩比历史312存储对于数据压缩被使用的最后N次数据复制操作的针对文件310的数目N个压缩比值,即M(0)至M(N-1)压缩比值的历史。压缩比值可以以任何适合格式被存储。在一个说明性实施例中,压缩比值被存储为表示压缩比的百分比的取整的整数值,然而说明性实施例不限于此并且可以使用任何表示而不偏离本发明的精神和范围。
压缩比检查参数314存储用于文件310的压缩比的检查何时将被执行的日期/时间值,而不管复制控制逻辑320是否基于压缩比历史312确定文件310的压缩在执行数据复制操作时应当被应用。压缩比检查参数314可以取决于期望的特定实施方式而采取许多不同的形式,但是一般标识时间点、数据复制操作的数目、或者用于检查相关联的文件310的压缩比的触发准则。在一个说明性实施例中,压缩比检查参数314指定了压缩比的下一次检查应当发生时的具体日期和/或时间、数据复制操作的数目、经过的时间等。压缩比检查参数314中的值可以与当前日期/时间相比较,可以随着数据复制操作的实例或随着时间倒计数,或者是确定压缩比检查参数314中指定的触发准则是否被满足并且因此压缩比的检查被发起的任何其他方式。在一个说明性实施例中,压缩比检查参数314是压缩比检查将被执行时的未来时间的时间戳,并且检查参数评估逻辑328将这一时间戳与当前时间戳相比较,并且如果当前时间戳等于或超过压缩比检查参数314时间戳,则压缩比检查操作被发起。
因此,根据一个说明性实施例,两个新属性312和314与文件310相关联,如下表中所概述:
表1:用于在复制期间控制压缩的新文件属性
如图3中所示出的,数据复制引擎300包括复制控制逻辑320,复制控制逻辑320进而包括压缩比统计逻辑322、门限评估逻辑324、压缩比检查参数设置逻辑326、以及压缩比检查参数评估逻辑328。压缩比统计逻辑322基于文件310的压缩比历史312中存储的压缩比来生成统计测量或值。压缩比统计逻辑322可以生成任何适合值以用于由逻辑324和236评估和使用以用于执行它们的操作:针对门限评估这些值、以及基于文件310的压缩比的所确定的变化性来确定适合的压缩比检查参数值。在一个说明性实施例中,压缩比统计逻辑322生成压缩比历史312中的压缩比M(n)的平均值、以及压缩比历史312中的压缩比的标准偏差。压缩比的平均值被用来预测用于下一数据复制操作的压缩比。压缩比的标准偏差被用来知道用于文件310的压缩比如何分布并且确定如何设置文件310的压缩比检查参数314。例如,如果标准偏差接近于0,则压缩比历史312中的压缩比具有低变化性(变化不大)并且因此能够容易地被预测。然而,随着标准偏差值变大,压缩比被确定为变化得更多并且变得更难以预测。因此,较低值的标准偏差指示需要检查文件310的压缩比的较小频率,而较高值的标准偏差指示需要更频繁地检查文件310的压缩比。
因此,根据一个说明性实施例,压缩比统计逻辑322生成两个统计值,如下表中所示出:
表2:基于文件的压缩比历史的统计测量
压缩比统计逻辑322将压缩比的平均值(即M(n)的平均值)提供给门限评估逻辑324,门限评估逻辑324将压缩比的平均值与一个或多个门限T相比较以确定数据压缩是否应当被应用在当前数据复制操作期间。例如,如果从压缩比历史312中的压缩比确定的文件310的平均压缩比大于或等于门限T,则文件310应当没有压缩地被复制到目标计算系统,因为这被预测为快于具有压缩的数据复制,即数据压缩被预测为无法显著地压缩文件310而足以抵消数据压缩操作在执行数据压缩所需要的时间和资源方面的成本。
如果压缩比历史312中的压缩比的平均值小于门限T,则具有压缩的数据复制被确定为快于没有压缩的数据复制。也就是说,确定数据压缩的益处(即数据大小的减小)超过执行数据压缩操作的附加成本,并且因此数据压缩应当被应用。在这种情况下,复制控制逻辑320指令压缩逻辑330将一个或多个压缩算法332应用到文件310并且将用于复制的压缩文件输出至目标计算系统。另外,压缩逻辑330包括压缩比逻辑334,压缩比逻辑334使用(多个)压缩算法332来计算通过对文件310执行压缩操作获得的压缩比。这一压缩比然后被存储在与文件310相关联的压缩比历史312中。如上文所提到的,压缩比历史312可以是FIFO类型的数据结构,其中M(0)是最为近期的压缩比,并且因此,由压缩逻辑330发送的压缩比被存储在这一条目中。
在门限评估逻辑324确定压缩不应当被应用到文件310作为数据复制操作的一部分的情况下,数据复制引擎320将用于数据复制的非压缩文件310输出至目标计算系统,除非压缩比检查参数指示压缩应当被应用而不管门限评估逻辑324指示压缩不应当被应用的事实。也就是说,在门限评估逻辑324确定平均压缩比大于或等于门限值T的情况下,压缩比检查参数的附加检查由压缩比检查参数评估逻辑328执行以确定压缩比检查是否将被触发。如果压缩比检查参数314的准则被满足,则即使门限评估逻辑324指示压缩不应当被应用,复制控制逻辑320还是将命令输出至压缩逻辑330,以利用压缩比逻辑334进行的结果压缩比计算、使用(多个)压缩算法332对文件310执行数据压缩操作以及压缩比历史312的更新。
如上文所提到的,在一个说明性实施例中,压缩比检查参数314的触发准则的这一检查可以包括:将压缩比检查参数314中指定的时间戳与当前时间戳相比较,以确定当前时间戳是等于还是晚于压缩比检查参数314的时间戳。如果是这样,则压缩比检查操作应当被发起。如果不是,则压缩比检查操作不被发起。当压缩比检查操作被发起时,还由检查参数设置逻辑326执行压缩比检查参数314的更新。检查参数设置逻辑326从压缩比统计逻辑322接收变化性统计,例如压缩比历史312中的压缩比的标准偏差测量,并且确定用于压缩比检查参数314的设置。这一设置可以基于当前时间戳,例如,当压缩比检查操作应当再次被触发时将某一时间量添加到当前时间戳以生成用于未来日期/时间的时间戳。
如上文所提到的,在一个说明性实施例中,检查参数设置逻辑326可以利用函数D(s),函数D(s)返回压缩比检查不被执行的天数,即直到压缩比的下一次检查为止的天数。这一函数的输入是用于文件310的压缩比历史M(n)312的标准偏差。如果M(n)中的压缩比的变化非常小,则假设压缩比是相当恒定的并且压缩比检查操作不需要频繁地被发起。另一方面,如果M(n)中的压缩比被确定为极大地变化,则假设压缩比可能急剧地改变并且因此压缩比检查操作应当更频繁地被发起。可以为压缩比检查操作设置最大时间量、或数据复制操作的数目等,并且函数D(s)可以适应这一最大值。例如,在一个实施方式中,如果文件310将在接下来的30天内被检查(即,30天是最大时间量),则D(s)可以被定义为D(s)=((50-s)/50)*30。使用这一函数D(s),压缩比检查参数314check_date可以通过设置check_date=D(s)+current_timestamp被填充。这一check_date可以与文件310相关联地被存储作为压缩检查参数314。
因此,说明性实施例的机制允许基于过去的数据复制操作中针对文件或数据的一部分实现的压缩比历史来动态确定是否将数据压缩应用到文件或数据的一部分。作为结果,数据压缩不会明显地改进数据复制操作的实例可以被识别并且数据压缩可已被避免。因此,每个数据复制操作以最优的资源使用在最佳的可能时间被执行。
为了进一步例示说明性实施例的操作,考虑以下的示例文件集合以及对应的压缩比历史值、统计和压缩比检查参数:
表3:文件压缩比历史、统计和检查值的示例
这一示例使用上文描述的D(s)函数并且假设从0%至100%的压缩比范围,其中0%表示最优压缩的文件并且100%表示未实现压缩。为了这一示例的目的假设了40%的门限值T。如表3中所示出的,基于与门限T的比较,仅文件4被确定为应当没有压缩地被发送的文件,因为它的平均压缩比等于或大于T。然而,针对文件4的压缩比检查操作在每0天之后(即,每天)被检查,并且因此在下一数据复制操作时被检查。这是因为文件4的压缩比M(0)-M(4)的标准偏差相当大。尽管其他文件由于它们的平均压缩比低于门限T而在它们是数据复制操作的对象时将使压缩被应用,但是它们将基于由标准偏差指示的它们的压缩比的变化性而在各种时间处使它们的压缩比被检查。例如,文件1将在25天之后使它的压缩比被检查,文件2将在12天之后使它的压缩比被检查,并且文件3将在30天之后使它的压缩比被检查。
检查时间上的差异基于压缩比的变化性,其中能够看出,文件3的变化性非常小并且因此检查不需要非常经常地被执行,而是受限于如上文所提到的30天的最大值。针对文件2的压缩比的变化性远大于文件3,并且因此检查操作更经常地被执行。文件1的变化性大于文件3的变化性但是小于文件2的变化性,并且因此检查操作相比文件2较不经常地被执行但是相比文件3更经常地被执行。
因此,根据一个说明性实施例,说明性实施例的机制将压缩比历史M(n)和压缩比检查参数check_data与每个文件相关联。说明性实施例的机制进一步包括如下的元件,这些元件用于确定压缩比历史M(n)中的压缩比的第一统计测量(诸如,例如平均值)以用于预测下一复制过程的压缩比。说明性实施例的机制进一步包括如下的元件,这些元件用于计算压缩比历史M(n)中的压缩比的第二统计测量(诸如,例如M的标准偏差)以确定压缩比如何分布并且提供跨最后N次复制过程的压缩比的变化性有关的信息。这一第二统计测量被用来确定压缩比检查将被执行的频率。
说明性实施例的机制进一步包括如下的元件,这些元件用于建立并利用一个或多个门限值T以用于确定压缩何时将被使用作为复制过程的一部分。此外,说明性实施例的机制包括如下的元件,这些元件用于应用函数(例如,上文的函数D(s))以用于基于压缩比的第二统计测量来确定如何设置文件的压缩比检查参数,例如check_date参数。说明性实施例的机制进一步包括如下的元件,这些元件用于利用上文的元件以促进主要基于压缩比历史和所确定的用于检查文件的压缩比的频率、针对经历数据复制过程的每个文件动态地确定数据压缩是否将被使用作为数据复制过程的一部分。因此,在单个数据复制操作中,取决于由数据复制引擎个别地针对文件中的每个文件作出的决定,文件中的一些文件可以被压缩而其他文件不被压缩。
图4是概述了根据一个说明性实施例的用于执行数据复制的示例操作的流程图。根据一个说明性实施例,图4中所概述的操作可以例如由数据复制引擎的逻辑来实施。
如图4中所示出的,操作通过发起数据复制操作而开始(步骤410)。如上文所提到的,数据复制操作的这一发起可以响应于检测到事件(用户发起的执行数据复制的请求、所调度的数据复制事件等)而被执行。响应于数据复制操作被发起,针对数据复制操作中的下一文件的压缩比历史和压缩比检查参数被读取(步骤420),并且统计基于压缩比历史被生成(步骤430)。关于统计是否指示数据压缩应当被应用到文件作为数据复制操作的一部分作出确定(步骤440)。如上文所提到的,在一个说明性实施例中,这可以涉及将文件的压缩比历史的统计与一个或多个门限值相比较。如果统计指示压缩应当被应用,则文件被压缩并被复制到目标计算设备,并且用于文件的压缩比历史被更新(步骤450)。
如果统计没有指示数据压缩应当被应用,则关于压缩比检查参数是否指示压缩应当被应用作出确定(步骤460)。如上文所提到的,这可以涉及评估压缩比检查参数以查看压缩比检查参数的触发条件是否被满足,例如当前时间后于压缩比检查参数的时间戳。如果是这样,则文件被压缩并被复制到目标计算系统,并且压缩比检查参数和文件的压缩比历史相应地被更新(步骤470)。如果不是,则文件被复制到目标计算系统而压缩不被应用(步骤480)。
此后,关于是否存在更多的文件将被处理作为数据复制操作的一部分作出确定。如果是这样,则操作返回到步骤420,其中该过程针对数据复制操作中的下一文件被重复(步骤490)。如果不存在进一步的文件,则操作终止。
图5是概述了根据另一说明性实施例的用于执行针对单个文件的数据复制操作的示例操作的流程图。再次地,图5中所示出的操作可以由数据复制引擎的逻辑来实施,并且利用特定的门限T、check_date参数、压缩比历史M(n)和用于设置check_date参数的函数D(s),如之前所描述的。
如图5中所示出的,操作再次开始于数据复制操作的发起(步骤510)之后是从文件读取压缩比历史M(n)和压缩比检查日期参数check_date(步骤520)。关于压缩比历史M(n)中的最旧条目是否为空作出确定(步骤530)。如果这一条目为空,则压缩被应用到文件(步骤580)。这实质上确保了压缩比历史在确定在数据复制操作期间不使用压缩之前被填充。以这种方式,压缩比的完全历史被提供用于后续的确定以提供用以确定是否应用数据压缩的完全信息。
如果压缩比历史中的最后条目M(n-1)不为空,则关于check_date是否晚于当前日期作出检查(步骤540)。如果是这样,则压缩被应用到文件(步骤580)。如果check_date不晚于当前日期,则压缩比历史中的压缩比的平均值被计算(步骤550)。如果平均值等于或大于门限T,则文件的复制没有压缩地被执行(步骤570)。如果平均值小于所建立的门限T(步骤560),则文件的具有数据压缩的复制被执行(步骤580)。此后,如果因为M(n-1)为空、check_date晚于当前日期、或压缩比的平均值小于门限T所以压缩被应用,则通过将数据压缩应用到文件所实现的压缩比推送到压缩比历史上(步骤590)。然后关于压缩比历史中的最后条目是否为空作出确定(步骤600)。如果它为空,则操作终止。如果它不为空,则压缩比的标准偏差s被计算,并且check_date参数被设置为函数D(s)和当前日期的加和(步骤610)。
如上文所提到的,应当意识到,说明性实施例可以采取完全硬件的实施例、完全软件的实施例、或者包含硬件元件和软件元件这两者的实施例的形式。在一个示例实施例中,说明性实施例的机制在软件或程序代码中被实施,包括但不限于固件、驻留软件、微代码等。
适合于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或间接耦合至存储器元件的至少一个处理器。存储器元件能够包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置和缓存存储器,缓存存储器向至少一些程序代码提供暂时存储以便减少在执行期间必须从大容量存储装置取回代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、指向设备等)能够直接地或者通过中间I/O控制器耦合至系统。网络适配器还可以耦合至系统以使得数据处理系统能够通过中间的私有网络或公用网络耦合至其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是一些当前可用类型的网络适配器。
本发明的描述为了说明和描述的目的被提出,并且不意图为穷尽的或者限于所公开的形式的发明。许多修改和变化对本领域的普通技术人员将是明显的,而不偏离所描述的实施例的范围和精神。实施例被选取和描述以便最佳地解释本发明的原理、实践的应用,并且使得本领域的其他普通技术人员能够理解本发明,具有各种修改的各种实施例适合于所设想的特定用途。本文中所使用的术语被选取为最佳地解释实施例的原理、在市场中找到的技术上的实际应用或技术改进、或者使得本领域的其他普通技术人员能够理解本文中公开的实施例。
Claims (21)
1.一种在第一数据处理系统中用于执行数据复制操作以将数据从所述第一数据处理系统复制到第二数据处理系统的方法,所述方法包括:
由所述第一数据处理系统存储与将被复制到所述第二数据处理系统的数据相关联的压缩比历史,其中所述压缩比历史存储用于至少一个之前执行的数据复制操作的至少一个压缩比;
由所述第一数据处理系统基于所述压缩比历史中的所述至少一个压缩比来确定数据压缩操作是否应当被应用到用于当前数据复制操作的数据;
响应于确定数据压缩应当被应用到所述数据,由所述数据处理系统对所述数据执行所述数据压缩操作并且执行所述当前数据复制操作以将压缩的数据复制到所述第二数据处理系统;以及
响应于确定数据压缩不应当被应用到所述数据,由所述数据处理系统执行所述当前数据复制操作以没有压缩地将所述数据复制到所述第二数据处理系统。
2.根据权利要求1所述的方法,进一步包括响应于确定数据压缩应当被应用到所述数据:
计算用于所述数据压缩操作的当前压缩比;以及
基于所述当前压缩比来更新压缩比历史数据结构。
3.根据权利要求1所述的方法,其中所述压缩比历史仅存储针对最为近期地在之前执行的数据复制操作的用于所述数据的最为近期的压缩比。
4.根据权利要求1所述的方法,其中所述压缩比历史存储基于对所述数据的多个之前执行的数据压缩操作所生成的用于所述数据的多个压缩比,所述多个之前执行的数据压缩操作是多个之前执行的数据复制操作的一部分。
5.根据权利要求1所述的方法,其中所述数据为文件并且其中所述压缩比历史被存储为所述文件的扩展属性。
6.根据权利要求5所述的方法,其中所述文件的所述扩展属性包括多个整数值,每个整数值与之前执行的数据复制操作相关联并且表示用于所述之前执行的数据复制操作的压缩比。
7.根据权利要求1所述的方法,其中确定所述数据压缩操作是否应当被应用到用于所述当前数据复制操作的所述数据包括:将所述至少一个压缩比与门限值相比较,并且其中响应于所述至少一个压缩比与所述门限值具有预定关系而确定所述数据压缩操作应当被应用。
8.根据权利要求1所述的方法,其中确定所述数据压缩操作是否应当被应用到用于所述当前数据复制操作的所述数据包括:
基于所述至少一个压缩比来计算值;
将所述值与门限值相比较;以及
响应于所述值与所述门限值具有预定关系而确定所述数据压缩操作应当被应用到用于所述当前数据复制操作的所述数据。
9.根据权利要求1所述的方法,进一步包括:
与所述数据相关联地存储压缩比检查参数,所述压缩比检查参数指定用于所述数据的压缩比将被检查的日期和/或时间;以及
响应于所述压缩比检查参数指示在当前日期和/或当前时间之前的日期和/或时间,确定所述数据压缩操作应当被应用到用于所述当前数据复制操作的所述数据。
10.根据权利要求9所述的方法,其中所述压缩比检查参数基于函数被计算,所述函数响应于所述至少一个压缩比中的压缩比之间的差异相对恒定而生成与目前日期或时间相比的较大时间差异,并且其中所述函数响应于所述至少一个压缩比中的压缩比之间的差异相对不同而生成与所述目前日期或时间相比的较小时间差异。
11.一种包括计算机可读存储介质的计算机程序产品,所述计算机可读存储介质具有存储在其中的计算机可读程序,其中所述计算机可读程序当在计算设备上被执行时使得所述计算设备:
存储与将被复制到数据处理系统的数据相关联的压缩比历史,其中所述压缩比历史存储用于至少一个之前执行的数据复制操作的至少一个压缩比;
基于所述压缩比历史中的所述至少一个压缩比来确定数据压缩操作是否应当被应用到用于当前数据复制操作的数据;
响应于确定数据压缩应当被应用到所述数据,对所述数据执行所述数据压缩操作并且执行所述当前数据复制操作以将压缩的数据复制到所述数据处理系统;以及
响应于确定数据压缩不应当被应用到所述数据,执行所述当前数据复制操作以没有压缩地将所述数据复制到所述数据处理系统。
12.根据权利要求11所述的计算机程序产品,进一步包括响应于确定数据压缩应当被应用到所述数据:
计算用于所述数据压缩操作的当前压缩比;以及
基于所述当前压缩比来更新压缩比历史数据结构。
13.根据权利要求11所述的计算机程序产品,其中所述压缩比历史仅存储针对最为近期地之前执行的数据复制操作的用于所述数据的最为近期的压缩比。
14.根据权利要求11所述的计算机程序产品,其中所述压缩比历史存储基于对所述数据的多个之前执行的数据压缩操作所生成的用于所述数据的多个压缩比,所述多个之前执行的数据压缩操作是多个之前执行的数据复制操作的一部分。
15.根据权利要求11所述的计算机程序产品,其中所述数据为文件并且其中所述压缩比历史被存储为所述文件的扩展属性。
16.根据权利要求15所述的计算机程序产品,其中所述文件的所述扩展属性包括多个整数值,每个整数值与之前执行的数据复制操作相关联并且表示用于所述之前执行的数据复制操作的压缩比。
17.根据权利要求11所述的计算机程序产品,其中确定所述数据压缩操作是否应当被应用到用于所述当前数据复制操作的所述数据包括:将所述至少一个压缩比与门限值相比较,并且其中响应于所述至少一个压缩比与所述门限值具有预定关系而确定所述数据压缩操作应当被应用。
18.根据权利要求11所述的计算机程序产品,其中确定所述数据压缩操作是否应当被应用到用于所述当前数据复制操作的所述数据包括:
基于所述至少一个压缩比来计算值;
将所述值与门限值相比较;以及
响应于所述值与所述门限值具有预定关系而确定所述数据压缩操作应当被应用到用于所述当前数据复制操作的所述数据。
19.根据权利要求11所述的计算机程序产品,进一步包括:
与所述数据相关联地存储压缩比检查参数,所述压缩比检查参数指定用于所述数据的压缩比将被检查的日期和/或时间;以及
响应于所述压缩比检查参数指示在当前日期和/或当前时间之前的日期和/或时间,确定所述数据压缩操作应当被应用到用于所述当前数据复制操作的所述数据。
20.根据权利要求19所述的计算机程序产品,其中所述压缩比检查参数基于函数被计算,所述函数响应于所述至少一个压缩比中的压缩比之间的差异相对恒定而生成与目前日期或时间相比的较大时间差异,并且其中所述函数响应于所述至少一个压缩比中的压缩比之间的差异相对不同而生成与所述目前日期或时间相比的较小时间差异。
21.一种装置,包括:
处理器;以及
存储器,所述存储器耦合至所述处理器,其中所述存储器包括指令,所述指令在由所述处理器执行时使得所述处理器:
存储与将被复制到数据处理系统的数据相关联的压缩比历史,其中所述压缩比历史存储用于至少一个之前执行的数据复制操作的至少一个压缩比;
基于所述压缩比历史中的所述至少一个压缩比来确定数据压缩操作是否应当被应用到用于当前数据复制操作的数据;
响应于确定数据压缩应当被应用到所述数据,对所述数据执行所述数据压缩操作并且执行所述当前数据复制操作以将压缩的数据复制到所述数据处理系统;以及
响应于确定数据压缩不应当被应用到所述数据,执行所述当前数据复制操作以没有压缩地将所述数据复制到所述数据处理系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/960,557 | 2015-12-07 | ||
US14/960,557 US11281691B2 (en) | 2015-12-07 | 2015-12-07 | Data replication based on compression ratio history |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106844090A true CN106844090A (zh) | 2017-06-13 |
CN106844090B CN106844090B (zh) | 2021-06-08 |
Family
ID=58159698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610985164.3A Active CN106844090B (zh) | 2015-12-07 | 2016-11-09 | 基于压缩比历史的数据复制 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11281691B2 (zh) |
CN (1) | CN106844090B (zh) |
DE (1) | DE102016221813A1 (zh) |
GB (1) | GB2546163B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558088A (zh) * | 2018-12-03 | 2019-04-02 | 郑州云海信息技术有限公司 | 一种压缩方法、系统、设备及计算机可读存储介质 |
CN111752478A (zh) * | 2019-03-28 | 2020-10-09 | 国际商业机器公司 | 实现其中存储有压缩数据的独立盘冗余阵列(raid) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152527B1 (en) | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
US10310951B1 (en) | 2016-03-22 | 2019-06-04 | EMC IP Holding Company LLC | Storage system asynchronous data replication cycle trigger with empty cycle detection |
US10324635B1 (en) * | 2016-03-22 | 2019-06-18 | EMC IP Holding Company LLC | Adaptive compression for data replication in a storage system |
US9959063B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Parallel migration of multiple consistency groups in a storage system |
US10565058B1 (en) | 2016-03-30 | 2020-02-18 | EMC IP Holding Company LLC | Adaptive hash-based data replication in a storage system |
US9959073B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Detection of host connectivity for data migration in a storage system |
US10095428B1 (en) | 2016-03-30 | 2018-10-09 | EMC IP Holding Company LLC | Live migration of a tree of replicas in a storage system |
US10048874B1 (en) | 2016-06-29 | 2018-08-14 | EMC IP Holding Company LLC | Flow control with a dynamic window in a storage system with latency guarantees |
US10013200B1 (en) | 2016-06-29 | 2018-07-03 | EMC IP Holding Company LLC | Early compression prediction in a storage system with granular block sizes |
US10152232B1 (en) | 2016-06-29 | 2018-12-11 | EMC IP Holding Company LLC | Low-impact application-level performance monitoring with minimal and automatically upgradable instrumentation in a storage system |
US10083067B1 (en) | 2016-06-29 | 2018-09-25 | EMC IP Holding Company LLC | Thread management in a storage system |
US9983937B1 (en) | 2016-06-29 | 2018-05-29 | EMC IP Holding Company LLC | Smooth restart of storage clusters in a storage system |
US10715618B2 (en) * | 2016-12-12 | 2020-07-14 | Hughes Network Systems, Llc | Compressibility estimation for lossless data compression |
US10747638B2 (en) * | 2018-04-18 | 2020-08-18 | Oracle International Corporation | Computing memory health metrics |
CN111935261B (zh) * | 2020-07-30 | 2023-08-08 | 北京达佳互联信息技术有限公司 | 应答消息处理方法、装置、电子设备及存储介质 |
US11675809B2 (en) * | 2021-03-02 | 2023-06-13 | International Business Machines Corporation | Replicating data changes using multiple storage devices and tracking records of pending data changes stored on the storage devices |
US11836388B2 (en) * | 2021-04-21 | 2023-12-05 | EMC IP Holding Company LLC | Intelligent metadata compression |
US11687560B2 (en) | 2021-07-16 | 2023-06-27 | International Business Machines Corporation | Database replication using adaptive compression |
US11791835B1 (en) | 2022-06-13 | 2023-10-17 | International Business Machines Corporation | Compression improvement in data replication |
CN116860183B (zh) * | 2023-09-04 | 2023-12-01 | 北京安天网络安全技术有限公司 | 一种数据存储方法、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469142A (zh) * | 2010-11-16 | 2012-05-23 | 英业达股份有限公司 | 重复数据删除程序的数据传输方法 |
CN104216662A (zh) * | 2013-05-31 | 2014-12-17 | 国际商业机器公司 | 用于跨远程复制关系的卷布置的方法和系统 |
US20150112938A1 (en) * | 2013-02-15 | 2015-04-23 | Compellent Technologies | Data replication with dynamic compression |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7664763B1 (en) * | 2003-12-17 | 2010-02-16 | Symantec Operating Corporation | System and method for determining whether performing a particular process on a file will be useful |
US7719443B1 (en) | 2008-06-27 | 2010-05-18 | Emc Corporation | Compressing data in a continuous data protection environment |
WO2013136339A1 (en) * | 2012-03-15 | 2013-09-19 | Hewlett-Packard Development Company, L.P. | Regulating replication operation |
GB2533342A (en) | 2014-12-17 | 2016-06-22 | Ibm | Checkpointing module and method for storing checkpoints |
-
2015
- 2015-12-07 US US14/960,557 patent/US11281691B2/en active Active
-
2016
- 2016-11-08 DE DE102016221813.1A patent/DE102016221813A1/de active Granted
- 2016-11-09 CN CN201610985164.3A patent/CN106844090B/zh active Active
- 2016-12-05 GB GB1620659.1A patent/GB2546163B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469142A (zh) * | 2010-11-16 | 2012-05-23 | 英业达股份有限公司 | 重复数据删除程序的数据传输方法 |
US20150112938A1 (en) * | 2013-02-15 | 2015-04-23 | Compellent Technologies | Data replication with dynamic compression |
CN104216662A (zh) * | 2013-05-31 | 2014-12-17 | 国际商业机器公司 | 用于跨远程复制关系的卷布置的方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558088A (zh) * | 2018-12-03 | 2019-04-02 | 郑州云海信息技术有限公司 | 一种压缩方法、系统、设备及计算机可读存储介质 |
CN111752478A (zh) * | 2019-03-28 | 2020-10-09 | 国际商业机器公司 | 实现其中存储有压缩数据的独立盘冗余阵列(raid) |
Also Published As
Publication number | Publication date |
---|---|
DE102016221813A1 (de) | 2017-06-08 |
GB2546163B (en) | 2017-12-06 |
GB201620659D0 (en) | 2017-01-18 |
US20170161348A1 (en) | 2017-06-08 |
US11281691B2 (en) | 2022-03-22 |
CN106844090B (zh) | 2021-06-08 |
GB2546163A (en) | 2017-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844090A (zh) | 基于压缩比历史的数据复制 | |
CN105075222B (zh) | 采用动态压缩的数据复制 | |
AU2014334840B2 (en) | Method and system for dynamic and comprehensive vulnerability management | |
US8386850B2 (en) | System health monitor | |
US8997060B2 (en) | Parallel program analysis and branch prediction | |
US8572434B2 (en) | System health monitor | |
US20170124481A1 (en) | System for fully integrated capture, and analysis of business information resulting in predictive decision making and simulation | |
US9843802B1 (en) | Method and system for dynamic compression module selection | |
US9965518B2 (en) | Handling missing data tuples in a streaming environment | |
US9916320B2 (en) | Compression-based filtering for deduplication | |
CN106664101B (zh) | 自适应速率压缩散列处理装置 | |
CN102984233B (zh) | 用于在远程协助中进行数据传输的装置和方法 | |
US11829609B2 (en) | Data loss recovery in a secondary storage controller from a primary storage controller | |
US11645166B2 (en) | Method, device and computer program product for backuping data | |
US9146816B2 (en) | Managing system image backup | |
Gokhale et al. | HoIP: Haptics over internet protocol | |
US20200004904A1 (en) | System and method for multi-model generative simulation modeling of complex adaptive systems | |
Singh et al. | Modeling and prediction of performability of safety critical computer based systems using Petri nets | |
US9571698B1 (en) | Method and system for dynamic compression module selection | |
CN109643307B (zh) | 流处理系统和方法 | |
US9594666B2 (en) | Enhancing weak consistency | |
US9258374B2 (en) | Method and system for capturing expertise of a knowledge worker in an integrated breadcrumb trail of data transactions and user interactions | |
US8655845B2 (en) | Reducing duplicate information when reporting system incidents | |
US9626121B2 (en) | De-duplication as part of other routinely performed processes | |
US20220086217A1 (en) | Method for managing artificial intelligence application, device, and program product |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |