CN110389859B - 用于复制数据块的方法、设备和计算机程序产品 - Google Patents
用于复制数据块的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN110389859B CN110389859B CN201810365408.7A CN201810365408A CN110389859B CN 110389859 B CN110389859 B CN 110389859B CN 201810365408 A CN201810365408 A CN 201810365408A CN 110389859 B CN110389859 B CN 110389859B
- Authority
- CN
- China
- Prior art keywords
- identifiers
- data block
- data
- identifier
- target server
- 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.)
- Active
Links
Images
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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
- G06F16/1752—De-duplication implemented within the file system, e.g. based on file segments based on file chunks
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
- G06F7/14—Merging, i.e. combining at least two sets of record carriers each arranged in the same ordered sequence to produce a single set having the same ordered sequence
- G06F7/16—Combined merging and sorting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例涉及用于复制数据块的方法、设备和计算机程序产品。该方法包括获取与第一客户端相关联的第一标识符集合和与第二客户端相关联的第二标识符集合,第一标识符集合包括已从第一客户端复制到目标服务器上的数据块的标识符,第二标识符集合包括已从第二客户端复制到目标服务器上的数据块的标识符。该方法还包括将第一标识符集合和第二标识符集合合并为第三标识符集合,以去除重复的标识符。该方法还包括基于第三标识符集合和待复制数据块的标识符,将待复制数据块复制到目标服务器。通过使用上述方法,使得可以减少备份服务器中的存储标识符集合的高速缓存文件的大小,从而节省存储空间。
Description
技术领域
本公开的实施例涉及数据复制领域,具体地涉及用于复制数据块的方法、设备和计算机程序产品。
背景技术
随着计算机网络的快速发展,应用于计算机中的许多数据(例如通信协议标准、规则、法规等)一般是不随时间发生改变的。因此,客户端一般是会这些数据备份到备份服务器以保证数据的安全性。在将数据备份到备份服务器上时,针对不同客户端的相同数据内容仅需要备份一次,这样可以减少备份服务器端的存储空间的浪费。
然而,为了防止备份服务器出现故障时无法正确地读取出先前存储的数据。服务器提供商将备份服务器上的数据复制到目标服务器以防止数据的丢失。当备份服务器故障时,则可以从目标服务器进行数据恢复,从而保证了数据的准确性和完整性。然而,在将数据从备份服务器复制到目标服务器时需要为每个客户端创建对应的数据管理信息。当连接到备份服务器的客户端的数目较多时,会导备份服务器端存储的数据管理信息的数据量变得非常大,从而影响了备份服务器的性能。
发明内容
本公开的实施例提供一种用于复制数据块的方法、设备和计算机程序产品。
根据本公开的第一方面,提供了一种用于复制数据块的方法。该方法包括获取与第一客户端相关联的第一标识符集合和与第二客户端相关联的第二标识符集合,第一标识符集合包括已从第一客户端复制到目标服务器上的数据块的标识符,第二标识符集合包括已从第二客户端复制到目标服务器上的数据块的标识符。该方法还包括将第一标识符集合和第二标识符集合合并为第三标识符集合,以去除重复的标识符;该方法还包括基于第三标识符集合和待复制数据块的标识符,将待复制数据块复制到目标服务器。
根据本公开的第二方面,提供了一种用于复制数据块的电子设备。该电子设备包括处理器;存储器,存储有计算机程序指令,处理器运行存储器中的计算机程序指令控制电子设备执行动作,该动作包括获取与第一客户端相关联的第一标识符集合和与第二客户端相关联的第二标识符集合,第一标识符集合包括已从第一客户端复制到目标服务器上的数据块的标识符,第二标识符集合包括已从第二客户端复制到目标服务器上的数据块的标识符。该动作还包括将第一标识符集合和第二标识符集合合并为第三标识符集合,以去除重复的标识符。该动作还包括基于第三标识符集合和待复制数据块的标识符,将待复制数据块复制到目标服务器。
根据本公开的第三方面,提供了一种计算机程序产品,该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行本公开的第一方面中的方法的步骤。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1图示了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境100的示意图;
图2图示了根据本公开的实施例的用于合并标识符集合和复制数据块的方法200的流程图;
图3图示了根据本公开的实施例的用于合并标识符集合的方法300的流程图;
图4图示了根据本公开的实施例的复制数据块的方法400的流程图;
图5图示了根据本公开的实施例的复制数据块的另一方法500的流程图;
图6图示了适于用来实施本公开内容的实施例的示例设备600的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在备份服务器中,会为每个客户端建立一个高速缓存文件,该高速缓存储有已复制到目标服务器中的数据块的标识符的集合。然而,当客户端的数目增大时,备份服务器内则会维持很多的高速缓存文件。如果每个客户端备份的数据比较多时,则会导致相应的高速缓存文件变得很大。因此,针对客户端的这些高速缓存文件会在备份服务器占用很大的存储空间,这直接影响了备份服务器的性能。
此外,由于每个高速缓存文件中存储的数据是针对对应客户端的。因此,不同的高速缓存文件可能存储的相同的数据,这会导致在不同的高速缓存中存储了许多相同的数据,造成了存储空间的浪费。
因此,本公开提出了一种减少高速缓存文件大小的技术方案。在该技术方案中,通过将针对不同客户端的多个高速缓存文件合并为一个高速缓存文件,以去除掉高速缓存文件中的重复数据来减少高速缓存文件占用的存储空间。在将多个文件合并为一个文件后,实现了对作为稀疏文件的高速缓存文件的压缩,从而节省了磁盘空间。此外,由于高速缓存文件变小,在复制时减少了加载的数据量,从而节省了高速缓存空间。
图1示出了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境100的示意图。在该环境中,存在两个客户端101A和101B、备份服务器102和目标服务器108。备份服务器102用于备份来自客户端101A和101B的数据,以避免客户端101A或101B故障时在客户端存储的数据丢失。而目标服务器108则用来备份来自备份服务器102的数据,以避免备份服务器102故障时在备份服务器102存储的数据丢失。
应当注意,图1中所示的客户端和服务器的数目仅是示意,而非对本公开的限制,其可以包括任意数目的客户端和服务器。在一个示例中,客户端101A、101B、备份服务器102和目标服务器108是基于内容寻址存储的。
客户端101A和客户端101B可以被实现为任何类型的计算设备,包括但不限于移动电话(例如,智能手机)、膝上型计算机、便携式数字助理(PDA)、电子书(电子书)阅读器、便携式游戏机、便携式媒体播放器、游戏机、机顶盒(STB)、智能电视(TV)、个人计算机、膝上型计算机、车载计算机(例如,导航单元)等。
客户端101A和客户端101B将数据块备份到备份服务器102。在一个示例中,客户端101A和101B向备份服务器102传送的数据块来自内容固定的数据文件。这类固定内容的数据文件主要包括法律条文、标准和规范的电子文档以及数字化医学信息、电子邮件及附件、支票图像、卫星图像、音频/视频信息等。在一个示例中,客户端101A和101B将备份到备份服务器102的数据文件划分为数据块。
为了保证数据的安全性以及避免由于备份服务器102故障造成的损失,备份服务器102会将数据块复制到目标服务器104。在一个示例中,备份服务器102仅将新增加的数据复制到目标服务器108。备选地或附加地,备份服务器102基于设置的时间点或时间段来将数据复制到目标服务器108。
在备份服务器102中会针对每个客户端建立一个高速缓存文件,该高速缓存文件内存储有标识符集合。标识符集合包括已被复制到目标服务器108的数据块的标识符。在备份服务器102上,当针对客户端的进程将来自该客户端的数据块复制到目标服务器108时,该进程会将来自该客户端的数据块的标识符与标识符集合内的标识符进行比较。基于该比较,确定是否将数据块复制到目标服务器108。
以客户端10lA为例,备份服务器102内会存储有针对客户端101A的高速缓存文件,该高速缓存文件内存储第一标识符集合,该第一标识符集合包括与客户端101A相关联的已从备份服务器102复制到目标服务器108的数据块的标识符。在一个示例中,在该标识符集合中标识符是按标识符的大小来顺序存储的。备选地或附加地,第一标识符集合内的标识符通过对标识符进行哈希计算来实现顺序存储的。在一个示例中,第一标识符集合包括已从客户端101A复制到目标服务器108的数据块的标识符。
在针对客户端101A的进程将来自客户端101A的数据块复制到备份服务器102时,先确定该数据块的标识符,然后将该标识符与针对客户端101A的第一标识符集合进行比较。在一个示例中,如果在该第一标识符集合内存在该标识符,则不复制该数据块。如果在第一标识符集合中不存在该标识符,则将该标识符发送到目标服务器108以确定目标服务器108上是否存储有与该标识符相对应的数据块。如果目标服务器108上存储有与标识符对应的数据块,则在针对该客户端101A的高速缓存文件中存储该标识符。如果目标服务器108上未存储与该标识符相对应的数据块,则将该数据块复制到目标服务器108,并且在针对客户端101A的高速缓存文件中存储该标识符。
备选地,如果在第一标识符集合内不存在该标识符,则将数据块直接发送到目标服务器108,并且在第一标识符集合中存储该标识符。
在一个示例中,数据块的该标识符是通过对数据块进行哈希处理得到的,数据块的标识符对应于数据块的存储地址。确定目标服务器108上是否有该数据块是通过确定标识符映射的地址是否存储有数据块来实现的。
在备份服务器102内将针对不同客户端的多个高速缓存文件中的标识符集合合并。备份服务器102然后基于合并后的标识符集合进行数据块的复制。
目标服务器108用于存储从备份服务器102发送的数据块以实现数据的备份。当备份服务器102故障时,目标服务器108可以向备份服务器102提供待恢复的数据。在一个示例中,目标服务器108也可以直接向客户端发送待恢复数据。
上面描述了用于复制数据块的示例环境100,下面结合图2描述标识符集合合并和复制数据块的方法200。在示例环境100中客户端的数目可以为多个,因此,在备份服务器102上针对客户端的标识符集合的数目也为多个。下面针对两个客户端101A和101B的两个标识符集合进行描述,其仅是作为示例,而非对本公开的限制。
在框202处,获取与客户端101A(以下也称为第一客户端)相关联的标识符集合(以下也称为“第一标识符集合”)和与客户端101B(以下也称为第二客户端)相关联的标识符集合(以下也称为“第二标识符集合”)。在一个示例中,第一标识符集合包括已从第一客户端复制到目标服务器108上的数据块的标识符,第二标识符集合包括已从第二客户端复制到目标服务器108上的数据块的标识符。在另一示例中,第一标识符集合包括已存储在目标服务器108上的针对第一客户端的数据块的标识符。第二标识符集合包括已存储在目标服务器108上的针对第二客户端的数据块的标识符。
下面以第一客户端为例来说明获取第一标识符集合的过程。在一个示例中,在备份服务器102上运行针对第一客户端的复制进程时,该进程获取从第一客户端接收的要复制到目标服务器108的数据块的标识符。
在一个示例中,数据块的标识符是从客户端接收的并存储在备份服务器102上的,因此,在获取数据块的标识符时可在备份服务器102处直接获得。该标识符为客户端对数据块进行哈希计算而得到的哈希值并且唯一地标识该数据块。在一个示例中,对从第一客户端复制到目标服务器108上的数据块进行哈希处理,以得到数据块的哈希值。在获得哈希值后,将该哈希值确定为数据块的标识符。在另一示例中,获得哈希值后,通过预先设置的哈希值与标识符的映射关系来确定标识符。在又一示例中,在获得哈希值后,对哈希值进行转换来生成数据块的标识符。上述形成标识符的方式仅是示例,而非对本公开的技术方案的限制,通过哈希值来确定标识符的任意方法均可以被使用。
此外,在备份服务器102上还获得针对第一客户端的第一标识符集合。在一个示例中,第一标识符集合存储在备份服务器102中。在另一示例中,第一标识符集合从与备份服务器102相连接的其他设备获取。然后,将要复制到目标服务器108上的数据块的标识符与第一标识符集合进行比较,如果待复制数据块的标识符与第一标识符集合匹配,则表明目标服务器108内存储有该数据块,因此,不需要将数据块复制到目标服务器108。
如果待复制数据块的标识符与第一标识符集合不匹配,则将待复制数据块的标识符发送到目标服务器108以确定目标服务器108上是否存储有该数据块。在一个示例中,数据块的标识符与数据块的存储位置相对应。备选地或附加地,该数据块的标识符为数据块在目标服务器108上的存储地址。如果该存储位置内有该数据块,则表明目标服务器108已存储该数据块。则仅将数据块的标识符增加到第一标识符集合。如果该存储位置内不具有该数据块,则将数据块的标识符增加到第一标识符集合中,并将数据块发送到目标服务器108以存储在与数据块的标识符相对应的存储位置。
在一个示例中,数据块的标识符基于哈希计算而被映射到第一标识符集合的预定位置,使得第一标识符集合是依据标识符的大小而顺序存储的。
在框204处,将第一标识符集合和第二标识符集合合并为第三标识符集合,以去除重复的标识符。下面将结合图3详细描述合并标识符的一个示例。图3图示了根据本公开的实施例的用于合并标识符集合的方法300的流程图,其中描述了第一标识符和第二标识符合并过程的示例。
在对第一标识符集合和第二标识符集合进行合并之前,将第一标识符集合和第二标识符集合内的标识符确定为依据标识符的大小顺序存储的。
在框302处,对与第一标识符集合中的标识符相对应的哈希值按照大小进行排序。在一个示例中,在第一标识符集合中存储标识符时是按标识符的大小进行存储的。备选地或附加地,标识符在标识符集合中的存储位置是基于对标识符进行哈希计算确定的。
在框304处,对与第二标识符集合中的标识符相对应的哈希值按照大小进行排序。在一个示例中,在第二标识符集合中存储标识符时是按标识符的大小进行存储的。备选地或附加地,标识符在标识符集合中的存储位置是基于对标识符进行哈希计算确定的。
由于第一标识符集合和第二标识符集合均是按序存储的标识符集合,在框306处,利用树结构对经排序的标识符集合进行合并。树结构可以具有多种形式或者多种类型,例如可以是败者树、胜者树和/或其他任何适当形式或类型的树。
通过上述方法,将两个标识符集合合并为一个标识符集合。通过设置标识符集合内的标识符为顺序存储的,因此可以通过树结构实现快速的合并过程,减少了合并过程浪费时间较长的问题,提高了合并的效率。
继续参考图2,在框206处,基于第三标识符集合和待复制数据块的标识符,将待复制数据块复制到目标服务器108。在将第一标识符集合和第二标识符集合合并后,在备份服务器102上再将数据复制到目标服务器108时,要将数据块的标识符与第三标识符集合进行匹配来确定是否将数据块传送到目标服务器108。下面将结合图4和图5详细描述基于第三标识符和待复制数据块的标识符来复制数据的过程。
图4图示了根据本公开的实施例的复制数据块的方法400的流程图,其中详细描述了利用第三标识符集合进行快速的数据块复制的示例。
在合并形成第三标识符集合后,下面以复制来自第一客户端的数据块为例来进行说明。下面的内容仅是用于说明复制的过程,而非对本公开的限制。
在针对第一客户端的进程将来自第一客户端的数据块复制到目标服务器108时,在框402处将待复制数据块的标识符确定为第一标识符。
在框404处,将第一标识符与第三标识符集合中的标识符进行匹配。如果第一标识符与第三标识符集合中的标识符匹配,则表明该数据块已复制到目标服务器108。因此,不需要将数据块复制到目标服务器108。
在406处,需要确定第一标识符与第三标识符集合中的标识符是否均不匹配。如果均不匹配,则在框408处将待复制数据块复制到目标服务器108,并且将第一标识符增加到第三标识符集合。
通过上述操作,可以基于一个总的标识符集合来确定待复制的数据块的复制操作。由于使用合并的标识符集合,可以避免该标识符针对一个客户端的标识符集合内不存在而在针对其他客户端的标识符集合存在时,还需要将标识符发送到复制服务器进行验证的过程,从而减少了发送到复制服务器的标识符的数据量,节省了带宽,提高了数据复制的效率。
作为上述方法400的替代实施方式,下面结合图5描述利用第三标识符集合进行快速的数据块复制的另一种方法500。
在图5中,框502-506描述的内容与框402-406描述的内容相似,因此不再详细描述。
在确定第一标识符与第三标识符集合中的标识符均不匹配后,在框508处,将第一标识符发送到目标服务器108,以使得目标服务器108确定在目标服务器108上是否具有待复制数据块。
在框510处,确定目标服务器108上是否具有待复制数据块。如果目标服务器108不具有待复制数据块,则在框512处将待复制数据块复制到目标服务器108,并且将数据块的标识符增加到第三标识符集合。如果目标服务器108上存储有与第一标识符相对应的数据块,则备份服务器102则会将第一标识符增加到第三标识符集合。
通过上述操作,除了减少了发送到复制服务器的标识符来节省了带宽外,还通过第一标识符来判定是否需要传送相对应的数据块,减少了直接向复制服务器发送数据块的量。
在将针对不同的客户端的标识符集合合并为第三标识符集合后,由于针对每个客户端的复制进程都会使用该第三标识符集合,为了保证数据的准确性和安全性,在将标识符写入第三标识符集合的进程执行期间,第三标识符集合对于其他进程是不可访问的。
图6示出了可以用来实施本公开内容的实施例的示例设备600的示意性框图。例如,如图1所示的101A-101B、102、106、108的任一项可以由设备600来实施。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM603中,还可存储设备600操作所需的各种程序和数据。CPU601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200、300、400和500,可由处理单元601执行。例如,在一些实施例中,200、300、400或500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法200、300、400或500的一个或多个动作。
本公开可以是方法、装置、***和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言-诸如Smalltalk、C++等,以及常规的过程式编程语言-诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (15)
1.一种用于复制数据块的方法,包括:
在确定第一数据块集合中的每个数据块不存在于目标数据库并且所述第一数据块集合中的每个数据块的标识符不存在于与第一客户端相关联的第一高速缓存文件中时,将所述第一数据块集合从所述第一客户端复制到目标服务器;
将对应于所述第一数据块集合中的每个数据块的第一标识符集合存储在所述第一高速缓存文件中;
在确定第二数据块集合中的每个数据块不存在于所述目标数据库并且所述第二数据块集合中的每个数据块的标识符不存在于与第二客户端相关联的第二高速缓存文件中时,将所述第二数据块集合从所述第二客户端复制到所述目标服务器;
将对应于所述第二数据块集合中的每个数据块的第二标识符集合存储在所述第二高速缓存文件中;
将所述第一高速缓存文件和所述第二高速缓存文件合并为第三高速缓存文件以去除重复的标识符,所述第三高速缓存文件包括第三标识符集合;
确定与所述第一客户端相关联的第三数据块的标识符;
通过确定所述第三数据块的所述标识符与所述第三标识符集合中的任何标识符均不匹配,确定所述第三数据块不存在于所述目标服务器;以及
将所述第三数据块复制到所述目标服务器。
2.根据权利要求1所述的方法,还包括:
对从所述第一客户端复制到目标服务器上的数据块进行哈希处理,以得到所述数据块的哈希值;以及
基于所述哈希值,确定所述数据块的标识符。
3.根据权利要求1所述的方法,其中将所述第一高速缓存文件和所述第二高速缓存文件合并为第三高速缓存文件包括:
对与所述第一标识符集合中的标识符相对应的哈希值按照大小进行排序;
对与所述第二标识符集合中的标识符相对应的哈希值按照大小进行排序;以及
利用树结构对经排序的哈希值进行合并。
4.根据权利要求3所述的方法,其中所述树结构包括败者树和胜者树中的至少一项。
5.根据权利要求1所述的方法,其中将所述第三数据块复制到所述目标服务器包括:
响应于确定所述第三数据块的所述标识符与所述第三标识符集合中的任何标识符均不匹配,将所述第三数据块的所述标识符发送到所述目标服务器,其中,所述目标服务器使用所述第三数据块的所述标识符确定所述目标服务器上是否存储有所述第三数据块;以及
响应于确定所述目标服务器上未存储所述第三数据块,将所述第三数据块复制到所述目标服务器。
6.根据权利要求1所述的方法,还包括:
响应于确定所述目标服务器上未存储所述第三数据块,将所述第三数据块的所述标识符写入所述第三标识符集合。
7.根据权利要求6所述的方法,其中在将所述第一标识符写入所述第三标识符集合的进程执行期间,所述第三标识符集合对于其他进程是不可访问的。
8.一种用于复制数据块的电子设备,包括:
处理器;
存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令控制所述电子设备执行动作,所述动作包括:
在确定第一数据块集合中的每个数据块不存在于目标数据库并且所述第一数据块集合中的每个数据块的标识符不存在于与第一客户端相关联的第一高速缓存文件中时,将所述第一数据块集合从所述第一客户端复制到目标服务器;
将对应于所述第一数据块集合中的每个数据块的第一标识符集合存储在所述第一高速缓存文件中;
在确定第二数据块集合中的每个数据块不存在于所述目标数据库并且所述第二数据块集合中的每个数据块的标识符不存在于与第二客户端相关联的第二高速缓存文件中时,将所述第二数据块集合从所述第二客户端复制到所述目标服务器;
将对应于所述第二数据块集合中的每个数据块的第二标识符集合存储在所述第二高速缓存文件中;
将所述第一高速缓存文件和所述第二高速缓存文件合并为第三高速缓存文件以去除重复的标识符,所述第三高速缓存文件包括第三标识符集合;
确定与所述第一客户端相关联的第三数据块的标识符;
通过确定所述第三数据块的所述标识符与所述第三标识符集合中的任何标识符均不匹配,确定所述第三数据块不存在于所述目标服务器;以及
将所述第三数据块复制到所述目标服务器。
9.根据权利要求8所述的电子设备,所述动作还包括:
对从所述第一客户端复制到目标服务器上的数据块进行哈希处理,以得到所述数据块的哈希值;以及
基于所述哈希值,确定所述数据块的标识符。
10.根据权利要求8所述的电子设备,其中将所述第一高速缓存文件和所述第二高速缓存文件合并为第三高速缓存文件包括:
对与所述第一标识符集合中的标识符相对应的哈希值按照大小进行排序;
对与所述第二标识符集合中的标识符相对应的哈希值按照大小进行排序;以及
利用树结构对经排序的哈希值进行合并。
11.根据权利要求10所述的电子设备,其中所述树结构包括败者树和胜者树中的至少一项。
12.根据权利要求8所述的电子设备,其中将所述第三数据块复制到所述目标服务器包括:
响应于确定所述第三数据块的所述标识符与所述第三标识符集合中的任何标识符均不匹配,将所述第三数据块的所述标识符发送到所述目标服务器,其中,所述目标服务器使用所述第三数据块的所述标识符确定所述目标服务器上是否存储有所述第三数据块;以及
响应于确定所述目标服务器上未存储所述第三数据块,将所述第三数据块复制到所述目标服务器。
13.根据权利要求8所述的电子设备,所述动作还包括:
响应于确定所述目标服务器上未存储所述第三数据块,将所述第三数据块的所述标识符写入所述第三标识符集合。
14.根据权利要求13所述的电子设备,其中在将所述第一标识符写入所述第三标识符集合的进程执行期间,所述第三标识符集合对于其他进程是不可访问的。
15.一种非易失性计算机可读介质,所述非易失性计算机可读介质包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810365408.7A CN110389859B (zh) | 2018-04-20 | 2018-04-20 | 用于复制数据块的方法、设备和计算机程序产品 |
US16/117,575 US20190325043A1 (en) | 2018-04-20 | 2018-08-30 | Method, device and computer program product for replicating data block |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810365408.7A CN110389859B (zh) | 2018-04-20 | 2018-04-20 | 用于复制数据块的方法、设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110389859A CN110389859A (zh) | 2019-10-29 |
CN110389859B true CN110389859B (zh) | 2023-07-07 |
Family
ID=68236377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810365408.7A Active CN110389859B (zh) | 2018-04-20 | 2018-04-20 | 用于复制数据块的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20190325043A1 (zh) |
CN (1) | CN110389859B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11275571B2 (en) * | 2019-12-13 | 2022-03-15 | Sap Se | Unified installer |
CN113986115B (zh) * | 2020-07-27 | 2024-05-31 | 伊姆西Ip控股有限责任公司 | 用于复制数据的方法、电子设备和计算机程序产品 |
US11615094B2 (en) * | 2020-08-12 | 2023-03-28 | Hcl Technologies Limited | System and method for joining skewed datasets in a distributed computing environment |
US11727009B2 (en) * | 2020-09-29 | 2023-08-15 | Hcl Technologies Limited | System and method for processing skewed datasets |
CN114528148A (zh) * | 2020-10-30 | 2022-05-24 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、电子设备和计算机程序产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102014158A (zh) * | 2010-11-29 | 2011-04-13 | 北京兴宇中科科技开发股份有限公司 | 一种云存储服务客户端高效细粒度数据缓存***与方法 |
CN103873501A (zh) * | 2012-12-12 | 2014-06-18 | 华中科技大学 | 一种云备份***及其数据备份方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6959320B2 (en) * | 2000-11-06 | 2005-10-25 | Endeavors Technology, Inc. | Client-side performance optimization system for streamed applications |
US7171469B2 (en) * | 2002-09-16 | 2007-01-30 | Network Appliance, Inc. | Apparatus and method for storing data in a proxy cache in a network |
US8874520B2 (en) * | 2011-02-11 | 2014-10-28 | Symantec Corporation | Processes and methods for client-side fingerprint caching to improve deduplication system backup performance |
US9575978B2 (en) * | 2012-06-26 | 2017-02-21 | International Business Machines Corporation | Restoring objects in a client-server environment |
US9241046B2 (en) * | 2012-12-13 | 2016-01-19 | Ca, Inc. | Methods and systems for speeding up data recovery |
US20150227543A1 (en) * | 2014-02-11 | 2015-08-13 | Atlantis Computing, Inc. | Method and apparatus for replication of files and file systems using a deduplication key space |
US10025808B2 (en) * | 2014-03-19 | 2018-07-17 | Red Hat, Inc. | Compacting change logs using file content location identifiers |
US10656864B2 (en) * | 2014-03-20 | 2020-05-19 | Pure Storage, Inc. | Data replication within a flash storage array |
US10198445B2 (en) * | 2014-06-30 | 2019-02-05 | Google Llc | Automated archiving of user generated media files |
KR102381343B1 (ko) * | 2015-07-27 | 2022-03-31 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
-
2018
- 2018-04-20 CN CN201810365408.7A patent/CN110389859B/zh active Active
- 2018-08-30 US US16/117,575 patent/US20190325043A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102014158A (zh) * | 2010-11-29 | 2011-04-13 | 北京兴宇中科科技开发股份有限公司 | 一种云存储服务客户端高效细粒度数据缓存***与方法 |
CN103873501A (zh) * | 2012-12-12 | 2014-06-18 | 华中科技大学 | 一种云备份***及其数据备份方法 |
Non-Patent Citations (2)
Title |
---|
The design and implementation of a multi-level content-addressable checkpoint file system;Abhishek Kulkarni等;《2012 19th International Conference on High Performance Computing》;第1-10页 * |
云存储***中重复数据删除机制的研究;涂群;《中国优秀硕士学位论文全文数据库 信息科技辑》;第I137-123页 * |
Also Published As
Publication number | Publication date |
---|---|
US20190325043A1 (en) | 2019-10-24 |
CN110389859A (zh) | 2019-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389859B (zh) | 用于复制数据块的方法、设备和计算机程序产品 | |
US9471285B1 (en) | Identifying software components in a software codebase | |
CN108683668B (zh) | 内容分发网络中的资源校验方法、装置、存储介质及设备 | |
US20160085639A1 (en) | Converting a serial transaction schedule to a parallel transaction schedule | |
US9292520B1 (en) | Advanced virtual synthetic full backup synthesized from previous full-backups | |
US10917484B2 (en) | Identifying and managing redundant digital content transfers | |
US11468175B2 (en) | Caching for high-performance web applications | |
KR102098415B1 (ko) | 캐시 관리 기법 | |
CN108984103B (zh) | 用于去重的方法和设备 | |
US11100094B2 (en) | Taking snapshots of blockchain data | |
CN111143113B (zh) | 复制元数据的方法、电子设备和计算机程序产品 | |
US10983718B2 (en) | Method, device and computer program product for data backup | |
CN111858146B (zh) | 用于恢复数据的方法、设备和计算机程序产品 | |
US20200153889A1 (en) | Method for uploading and downloading file, and server for executing the same | |
CN113961510B (zh) | 一种文件处理方法、装置、设备及存储介质 | |
CN111651424B (zh) | 一种数据处理方法、装置、数据节点及存储介质 | |
US10846301B1 (en) | Container reclamation using probabilistic data structures | |
EP3107010B1 (en) | Data integration pipeline | |
CN109726039B (zh) | 用于管理虚拟机的方法和设备 | |
CN108363727B (zh) | 一种基于zfs文件***的数据存储方法及装置 | |
US9286055B1 (en) | System, method, and computer program for aggregating fragments of data objects from a plurality of devices | |
CN112182112A (zh) | 基于区块链的分布式数据动态存储方法和电子设备 | |
US11163748B1 (en) | Fingerprint backward compatibility in deduplication backup systems | |
CN111104787B (zh) | 用于比较文件的方法、设备和计算机程序产品 | |
CN109857719B (zh) | 分布式文件处理方法、装置、计算机设备以及存储介质 |
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 |