[go: up one dir, main page]

CN104408111B - A kind of method and device of deleting duplicated data - Google Patents

A kind of method and device of deleting duplicated data Download PDF

Info

Publication number
CN104408111B
CN104408111B CN201410682621.2A CN201410682621A CN104408111B CN 104408111 B CN104408111 B CN 104408111B CN 201410682621 A CN201410682621 A CN 201410682621A CN 104408111 B CN104408111 B CN 104408111B
Authority
CN
China
Prior art keywords
file
node
deduplication
value
red
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
Application number
CN201410682621.2A
Other languages
Chinese (zh)
Other versions
CN104408111A (en
Inventor
张朝潞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Uniview Technologies Co Ltd
Original Assignee
Zhejiang Uniview Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Uniview Technologies Co Ltd filed Critical Zhejiang Uniview Technologies Co Ltd
Priority to CN201410682621.2A priority Critical patent/CN104408111B/en
Publication of CN104408111A publication Critical patent/CN104408111A/en
Application granted granted Critical
Publication of CN104408111B publication Critical patent/CN104408111B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了基于Openstack Object Storage系统删除重复数据方法及装置,proxy节点包括去重中间件模块,storage节点包括去重服务进程模块,该去重中间件模块构建有去重hash环,该去重hash环的每个节点为一个红黑树的根节点,去重服务进程模块将指纹文件发送至去重中间件模块;去重中间件模块找到红黑树根节点后,判断是否存在重复文件;将一份重复文件保留在storage节点中,删除其他重复文件,在原本存储其他重复文件的位置保存一份指向该被保留的重复文件的重定向文件;如果不存在重复文件,则将每个指纹文件中包含的虚拟节点partition的值、文件内容的MD5值插入该红黑树子节点中。本申请充分利用了Openstack Object Storage系统的性能的线性增长的横向扩展优势,可轻松扩展节点。

This application discloses a method and device for deleting duplicate data based on the Openstack Object Storage system. The proxy node includes a deduplication middleware module, and the storage node includes a deduplication service process module. The deduplication middleware module is constructed with a deduplication hash ring. The deduplication Each node of the hash ring is the root node of a red-black tree, and the deduplication service process module sends the fingerprint file to the deduplication middleware module; after the deduplication middleware module finds the root node of the red-black tree, it determines whether there are duplicate files; Keep a duplicate file in the storage node, delete other duplicate files, and save a redirection file pointing to the reserved duplicate file in the location where other duplicate files were originally stored; if there is no duplicate file, each fingerprint The value of the virtual node partition contained in the file and the MD5 value of the file content are inserted into the red-black tree child node. This application makes full use of the advantages of linear growth and horizontal expansion of the performance of the Openstack Object Storage system, and can easily expand nodes.

Description

一种删除重复数据的方法及装置A method and device for deleting duplicate data

技术领域technical field

本申请涉及Openstack Object Storage云存储技术,尤其涉及基于OpenstackObject Storage系统删除重复数据的方法及装置。The present application relates to Openstack Object Storage cloud storage technology, in particular to a method and device for deleting duplicate data based on the Openstack Object Storage system.

背景技术Background technique

Openstack Object Storage(swift)是Openstack开源云计算项目的对象存储子方案,提供了强大的扩展性、冗余和持久性。其架构如下:图1Openstack Object Storage框架图。Openstack Object Storage (swift) is an object storage sub-solution of the Openstack open source cloud computing project, which provides powerful scalability, redundancy and persistence. Its architecture is as follows: Figure 1 Openstack Object Storage framework.

如图1,Openstack Object Storage主要有两种节点组成:proxy(代理)节点和storage(存储)节点。proxy节点负责接收客户端的请求,并与storage节点通信。它根据客户端请求的对象,进行定位并转发请求到storage节点。storage节点主要负责数据存储,提供备份,容错,一致性,数据自动迁移达到数据均衡等数据安全保证。集群中所有节点都是可以横向扩展的,这包括两个方面,一是通过storage扩展数据存储容量;二是线性提升性能(如QPS、吞吐量等)。Swift数据的元数据完全均匀随机分布,结合其所有节点可扩展,在架构和设计保证了无业务单点。As shown in Figure 1, Openstack Object Storage mainly consists of two types of nodes: proxy (proxy) nodes and storage (storage) nodes. The proxy node is responsible for receiving the client's request and communicating with the storage node. It locates and forwards the request to the storage node according to the object requested by the client. The storage node is mainly responsible for data storage, providing data security guarantees such as backup, fault tolerance, consistency, and automatic data migration to achieve data balance. All nodes in the cluster can be expanded horizontally, which includes two aspects, one is to expand data storage capacity through storage; the other is to linearly improve performance (such as QPS, throughput, etc.). The metadata of Swift data is completely evenly and randomly distributed, combined with the scalability of all its nodes, there is no single point of business in the architecture and design.

基于Openstack Object Storage能轻易提供云存储服务,提供数据存取服务。但对于云存储来说,必定要存储大量数据,如何在确保服务正常的情况下,节约存储成本这是每一个云存储服务提供商都在考虑的问题,重复数据删除正是解决该问题的其中一种方式。对于大量数据,必然会存在许多名称不同但数据内容是相同情况。这些数据或存储在不同的目录上,或属于不同的用户账户下等情况。而对于这种数据,云存储应该只保留一份,其他仅指向该保留的一份,这大大降低存储所需要的存储总量,提高了存储空间利用率,节约了存储成本。Based on Openstack Object Storage, it can easily provide cloud storage services and provide data access services. But for cloud storage, it is necessary to store a large amount of data. How to save storage costs while ensuring normal service is a problem that every cloud storage service provider is considering. Data deduplication is one of the solutions to this problem. way. For a large amount of data, there must be many situations where the names are different but the data content is the same. These data are either stored in different directories, or belong to different user accounts, etc. For this kind of data, cloud storage should only keep one copy, and the others only point to the reserved one, which greatly reduces the total amount of storage required for storage, improves the utilization rate of storage space, and saves storage costs.

对于Openstack Object Storage的重复数据删除,目前已有相关的方案,可以参考《A Deduplication Campus-based Cloud Storage System Based on Swift》论文中的详细描述。For the data deduplication of Openstack Object Storage, there are currently related solutions, and you can refer to the detailed description in the paper "A Deduplication Campus-based Cloud Storage System Based on Swift".

在该论文中,主要在原有的Openstack Object Storage系统架构中增加了两个部件实现重复数据删除,一是去重客户端、二是去重中间件。由于该现有技术增加了去重客户端,并且所有文件访问都需要通过访问去重客户端,失去了Openstack Object Storage的横向扩展带来的好处:性能的线性增长。并且,增加去重客户端还形成了集群的单点。另外,该方案几乎没有利用到Openstack Object Storage已有的机制,没有结合其特性,只是在外围增加功能,导致去重系统结构复杂。In this paper, two components are mainly added to the original Openstack Object Storage system architecture to achieve data deduplication, one is the deduplication client and the other is the deduplication middleware. Since the existing technology adds a deduplication client, and all file access needs to access the deduplication client, the benefit of the horizontal expansion of Openstack Object Storage is lost: the linear increase in performance. Moreover, adding deduplication clients also forms a single point of the cluster. In addition, this solution hardly utilizes the existing mechanisms of Openstack Object Storage, does not combine its features, and only adds functions in the periphery, resulting in a complex structure of the deduplication system.

发明内容Contents of the invention

本申请提供基于Openstack Object Storage系统删除重复数据的方法及装置,解决现有技术中删除重复数据的问题。The present application provides a method and device for deleting duplicate data based on the Openstack Object Storage system, so as to solve the problem of deleting duplicate data in the prior art.

根据本申请实施例的第一方面,提供一种基于Openstack Object Storage系统删除重复数据方法,所述Openstack Object Storage系统包括proxy节点和storage节点;所述proxy节点包括去重中间件模块,所述storage节点包括去重服务进程模块,其中该去重中间件模块构建有去重hash环,该去重hash环的每个节点为一个红黑树的根节点,所述方法包括步骤:According to the first aspect of the embodiment of the present application, a method for deleting duplicate data based on the Openstack Object Storage system is provided, the Openstack Object Storage system includes a proxy node and a storage node; the proxy node includes a deduplication middleware module, and the storage The node includes a deduplication service process module, wherein the deduplication middleware module is constructed with a deduplication hash ring, and each node of the deduplication hash ring is a root node of a red-black tree, and the method includes steps:

所述去重服务进程模块扫描每个文件系统分区下所保存的文件,生成每个文件对应的指纹,并将这些指纹通过指纹文件发送至所述去重中间件模块;所述指纹文件包括一个虚拟节点partition的值以及每个文件内容的MD5值;The deduplication service process module scans the files stored under each file system partition, generates fingerprints corresponding to each file, and sends these fingerprints to the deduplication middleware module through the fingerprint file; the fingerprint file includes a The value of the virtual node partition and the MD5 value of each file content;

所述去重中间件模块根据各MD5值对n取模的结果查找各指纹所对应的红黑树根节点,其中n为去重hash环包括的节点数;Described deduplication middleware module searches the corresponding red-black tree root node of each fingerprint according to each MD5 value to the result of n modulus, and wherein n is the node number that deduplication hash ring comprises;

在找到红黑树根节点后,分别判断每个指纹中包含的md5值是否已存在于对应红黑树子节点中,针对任一指纹的md5值存在于红黑树子节点中的情况,进一步判断该红黑树子节点所存的虚拟节点partition的值与该指纹所在的指纹文件中包括的虚拟节点partition值是否相同,如果不同,则确认存在重复文件;将一份重复文件保留在storage节点中,删除其他重复文件,并且在原本存储其他重复文件的位置保存一份指向该被保留的重复文件的重定向文件;After finding the root node of the red-black tree, judge whether the md5 value contained in each fingerprint already exists in the corresponding red-black tree sub-node, and for the case that the md5 value of any fingerprint exists in the red-black tree sub-node, further Determine whether the virtual node partition value stored in the red-black tree child node is the same as the virtual node partition value included in the fingerprint file where the fingerprint is located. If not, confirm that there is a duplicate file; keep a duplicate file in the storage node , delete other duplicate files, and save a redirection file pointing to the retained duplicate file in the location where other duplicate files were originally stored;

如果不存在重复文件,则以各MD5值为key将每个指纹文件中包含的虚拟节点partition的值、文件内容的MD5值插入该红黑树相应子节点中。If there is no duplicate file, insert the virtual node partition value contained in each fingerprint file and the MD5 value of the file content into the corresponding child node of the red-black tree with each MD5 value as the key.

本申请实施例的第二方面,提供另一种基于Openstack Object Storage系统删除重复数据方法,所述Openstack Object Storage系统包括proxy节点和storage节点;所述proxy节点包括去重中间件模块,所述storage节点包括去重服务进程模块,其中该去重中间件模块构建有去重hash环,该去重hash环的每个节点为一个红黑树的根节点,所述红黑树的子节点保存有虚拟节点partition的值、文件内容的MD5值;所述方法包括步骤:The second aspect of the embodiment of the present application provides another method for deleting duplicate data based on the Openstack Object Storage system, the Openstack Object Storage system includes a proxy node and a storage node; the proxy node includes a deduplication middleware module, and the storage The node includes a deduplication service process module, wherein the deduplication middleware module has a deduplication hash ring, and each node of the deduplication hash ring is a root node of a red-black tree, and the child nodes of the red-black tree store The value of virtual node partition, the MD5 value of file content; Described method comprises steps:

接收客户端的文件存储请求;Receive the file storage request from the client;

获取待存储的文件的MD5值,并根据所述MD5值对n取模的结果查找红黑树根节点,其中n为去重hash环包括的节点数;Obtain the MD5 value of the file to be stored, and search for the root node of the red-black tree according to the MD5 value to the result of n modulus, where n is the number of nodes included in the deduplication hash ring;

在找到红黑树的根节点后,判断所述MD5值是否存在于该红黑树中的子节点中,如果存在于所述子节点中,则确认存在重复文件,将存储待存储文件的位置保存一份指向所述重复文件的重定向文件;如果不存在于所述子节点中,则确认不存在重复文件,在存储待存储文件的位置存储该待存储文件,并以待存储文件的MD5值为key将该待存储文件的虚拟节点partition的值、MD5值插入该红黑树相应子节点中。After finding the root node of the red-black tree, judge whether the MD5 value exists in the child node in the red-black tree, if it exists in the child node, then confirm that there is a duplicate file, and store the position of the file to be stored Save a redirect file pointing to the duplicate file; if it does not exist in the child node, then confirm that there is no duplicate file, store the file to be stored at the location where the file to be stored is stored, and use the MD5 of the file to be stored The value is key and inserts the virtual node partition value and MD5 value of the file to be stored into the corresponding child node of the red-black tree.

本申请实施例的第三方面,提供一种基于Openstack Object Storage系统删除重复数据的装置,所述Openstack Object Storage系统包括proxy节点和storage节点;该装置包括:The third aspect of the embodiment of the present application provides a device for deleting duplicate data based on the Openstack Object Storage system, the Openstack Object Storage system includes a proxy node and a storage node; the device includes:

位于storage节点的去重服务进程模块,用于扫描所述storage节点中每个文件系统分区下所保存的文件,生成每个文件对应的指纹,并将这些指纹通过指纹文件发送至所述去重中间件模块;以及当存在重复文件时,通知storage节点将一份重复文件保留在storage节点中,并删除其他重复文件,在原本存储其他重复文件的位置保存一份指向该被保留的重复文件的重定向文件;所述指纹文件包括一个虚拟节点partition的值以及每个文件内容的MD5值;The deduplication service process module located at the storage node is used to scan the files stored under each file system partition in the storage node, generate the corresponding fingerprint of each file, and send these fingerprints to the deduplication through the fingerprint file middleware module; and when there is a duplicate file, notify the storage node to keep a duplicate file in the storage node, delete other duplicate files, and save a copy pointing to the reserved duplicate file in the original storage position of other duplicate files Redirection file; the fingerprint file includes the value of a virtual node partition and the MD5 value of each file content;

位于proxy节点的去重中间件模块,用于构建去重hash环,该去重hash环的每个节点为一个红黑树的根节点,根据各MD5值对n取模的结果查找各指纹所对应的红黑树根节点,其中n为去重hash环包括的节点数;在找到红黑树根节点后,分别判断每个指纹中包含的md5值是否已存在于对应红黑树子节点中,针对任一指纹的md5值存在于红黑树子节点中的情况,进一步判断该红黑树子节点所存的虚拟节点partition的值与该指纹所在的指纹文件中包括的虚拟节点partition值是否相同,如果不同,则确认存在重复文件并告知所述去重服务进程模块;如果不存在重复文件,则以各MD5值为key将每个指纹文件中包含的虚拟节点partition的值、文件内容的MD5值插入该红黑树相应子节点中。The deduplication middleware module located at the proxy node is used to construct the deduplication hash ring. Each node of the deduplication hash ring is the root node of a red-black tree. According to the result of taking the modulus of n by each MD5 value, search for each fingerprint Corresponding red-black tree root node, where n is the number of nodes included in the deduplication hash ring; after finding the red-black tree root node, judge whether the md5 value contained in each fingerprint already exists in the corresponding red-black tree child node , for the case that the md5 value of any fingerprint exists in the red-black tree sub-node, further judge whether the value of the virtual node partition stored in the red-black tree sub-node is the same as the virtual node partition value included in the fingerprint file where the fingerprint is located , if different, then confirm that there is a duplicate file and inform the deduplication service process module; if there is no duplicate file, then use each MD5 value as a key to convert the value of the virtual node partition contained in each fingerprint file, the MD5 of the file content The value is inserted into the corresponding child node of the red-black tree.

本申请实施例的第四方面,提供一种基于Openstack Object Storage系统删除重复数据的装置,所述Openstack Object Storage系统包括proxy节点和storage节点;该装置包括,The fourth aspect of the embodiment of the present application provides a device for deleting duplicate data based on the Openstack Object Storage system, the Openstack Object Storage system includes a proxy node and a storage node; the device includes,

所述去重中间件模块,用于构建去重hash环,该去重hash环的每个节点为一个红黑树的根节点,所述红黑树的子节点保存有虚拟节点partition的值、文件内容的MD5值;当接收到客户端的文件存储请求时,获取待存储的文件的MD5值,并根据所述MD5值对n取模的结果查找红黑树根节点,其中n为去重hash环包括的节点数;在找到红黑树的根节点后,判断所述MD5值是否存在于该红黑树中的子节点中,如果存在于所述子节点中,则确认存在重复文件,通知所述去重服务进程;如果不存在于所述子节点中,则以待存储文件的MD5值为key将该待存储文件的虚拟节点partition的值、MD5值插入该红黑树相应子节点中;The deduplication middleware module is used to build a deduplication hash ring, each node of the deduplication hash ring is a root node of a red-black tree, and the child nodes of the red-black tree preserve the value of the virtual node partition, The MD5 value of the file content; when the file storage request from the client is received, the MD5 value of the file to be stored is obtained, and the root node of the red-black tree is searched according to the result of modulo n by the MD5 value, where n is deduplication hash The number of nodes that the ring includes; after finding the root node of the red-black tree, judge whether the MD5 value exists in the child node in the red-black tree, if it exists in the child node, then confirm that there is a duplicate file, and notify The deduplication service process; if it does not exist in the child node, insert the value of the virtual node partition and the MD5 value of the file to be stored into the corresponding child node of the red-black tree with the MD5 value of the file to be stored as the key ;

所述去重服务进程模块,用于在存在重复文件时,通知storage节点将存储待存储文件的位置保存一份指向所述重复文件的重定向文件;在不存在重复文件时,通知storage在存储待存储文件的位置存储该待存储文件。The deduplication service process module is used to notify the storage node to save a redirection file pointing to the duplicate file at the location where the file to be stored is stored when there is a duplicate file; when there is no duplicate file, notify the storage to store The location of the file to be stored stores the file to be stored.

本申请在没有引入新的节点的情况,结合Openstack Object Storage自身提供的机制,在系统原有节点内部增加新的功能,即可实现对系统执行重复数据删除的目的,从而解决现有技术中需额外增加部件导致的系统结构复杂问题。同时,由于本申请的系统结构中各proxy节点的功能等同,各storage节点的节点功能也等同,因此充分利用了OpenstackObject Storage系统的性能的线性增长的横向扩展优势,可轻松扩展节点,而集群中也不存在单点。In this application, without introducing new nodes, combined with the mechanism provided by Openstack Object Storage itself, adding new functions inside the original nodes of the system can achieve the purpose of deduplicating data in the system, thereby solving the need in the prior art. The problem of complex system structure caused by additional components. At the same time, since the function of each proxy node in the system structure of this application is the same, and the node function of each storage node is also the same, so the horizontal expansion advantage of the linear growth of the performance of the OpenstackObject Storage system is fully utilized, and the nodes can be easily expanded, while in the cluster There is no single point either.

现有技术中由于增加的去重客户端使用了sqlite存储数据,sqlite采用粗粒度的锁。当一个连接要写数据库时,所有其他的连接被锁住,直到写连接结束它的事务,当并发量高的时候,系统性能大大降低,并且随着数据量增大,sqlite的大量数据检索也成为瓶颈。而本发明由于通过在内存中基于hash环与红黑树,结合Openstack Object Storage的存储特点,构建去重hash环来实现动态数据维护,不需要使用sqlite存储静态数据,因此,在避免现有技术中sqlite存储静态数据所带来的问题的同时也能够在大量数据的情况下,减少重复数据的搜索时间,提高系统性能。In the prior art, since the added deduplication client uses sqlite to store data, sqlite adopts a coarse-grained lock. When a connection wants to write to the database, all other connections are locked until the write connection ends its transaction. When the concurrency is high, the system performance is greatly reduced, and as the amount of data increases, the retrieval of a large amount of data by sqlite is also difficult. become a bottleneck. And the present invention realizes dynamic data maintenance by constructing a deduplication hash ring based on the hash ring and red-black tree in memory, in combination with the storage characteristics of Openstack Object Storage, without using sqlite to store static data, therefore, avoiding prior art In addition to the problems caused by storing static data in sqlite, it can also reduce the search time for duplicate data and improve system performance in the case of a large amount of data.

附图说明Description of drawings

图1为现有技术中Openstack Object Storage系统架构图;Fig. 1 is the Openstack Object Storage system architecture diagram in the prior art;

图2为本申请实施例中Openstack Object Storage系统硬件结构图Fig. 2 is the hardware structural diagram of Openstack Object Storage system in the embodiment of the present application

图3为本申请实施例中Openstack Object Storage系统架构原理图;Fig. 3 is a schematic diagram of the Openstack Object Storage system architecture in the embodiment of the present application;

图4为本申请实施例中去重哈希环的示意图;FIG. 4 is a schematic diagram of a deduplication hash ring in an embodiment of the present application;

图5为本申请实施例中构建去重哈希环的流程图;Fig. 5 is the flowchart of constructing deduplication hash ring in the embodiment of the present application;

图6为本申请实施例中构建哈希环时系统的信号走向示意图;Fig. 6 is a schematic diagram of the signal direction of the system when constructing the hash ring in the embodiment of the present application;

图7为本申请实施例中客户端存储文件的流程图;Fig. 7 is the flow chart of client storage file in the embodiment of the present application;

图8是本申请实施例中客户端删除文件的流程图;Fig. 8 is a flow chart of deleting a file by the client in the embodiment of the present application;

图9是本申请实施例中客户端读取文件的流程图。FIG. 9 is a flow chart of a client reading a file in the embodiment of the present application.

具体实施方式detailed description

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。Reference will now be made in detail to the exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, the same numerals in different drawings refer to the same or similar elements unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with aspects of the present application as recited in the appended claims.

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。The terminology used in this application is for the purpose of describing particular embodiments only, and is not intended to limit the application. As used in this application and the appended claims, the singular forms "a", "the", and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise.

本申请提供了一套基于Openstack Object Storage系统实现其重复数据删除功能的解决方案,以解决在云存储环境下,大量文件相同的问题,减少系统存储总量,提供存储利用率,并且尽量减少对集群读写性能的影响。本申请的下述内容中首先阐述了Openstack Object Storage系统的系统架构,接着对该系统中对识别去重数据起着关键作用的去重哈希环的构建过程进行详细描述,随后对利用该去重哈希环进行数据去重的过程进行详述。数据去重的类型包括数据的同步去重和异步去重,本申请描述了分别针对这两种去重方式的解决方案。This application provides a set of solutions based on the Openstack Object Storage system to realize its deduplication function, so as to solve the problem of a large number of identical files in the cloud storage environment, reduce the total amount of system storage, improve storage utilization, and minimize the need for The impact of cluster read and write performance. In the following content of this application, the system architecture of the Openstack Object Storage system is first described, and then the construction process of the deduplication hash ring that plays a key role in identifying deduplication data in the system is described in detail, and then the use of the deduplication hash ring is described in detail. The process of data deduplication by the rehash ring is described in detail. Types of data deduplication include synchronous deduplication and asynchronous deduplication, and this application describes solutions for these two deduplication methods.

为了方便对本申请所描述的技术方案的理解,首先对Openstack Object Storage系统的几个基本概念进行定义:Openstack Object Storage系统存储的数据有三种,分别为account、container和object。In order to facilitate the understanding of the technical solution described in this application, several basic concepts of the Openstack Object Storage system are first defined: there are three types of data stored in the Openstack Object Storage system, namely account, container, and object.

account:表示账户,一个account下有多个container。account: Indicates an account, and there are multiple containers under an account.

container:表示容器,一个container有多个object。container: Indicates the container, and a container has multiple objects.

object:表示对象,对象由文件数据,元数据等组成。object: Indicates an object, which consists of file data, metadata, etc.

partition:Openstack Object Storage中一致性hash算法的虚拟节点,一个实际节点(storage)对应了若干个虚拟节点,虚拟节点在哈希空间中以哈希值排列。对于一个object所对应的文件,可以通过哈希算法映射到对应的虚拟节点,虚拟节点再通过映射关系找到对应的实际节点。本申请中虚拟节点的值即为虚拟节点的序号,通过序号找到该虚拟节点后,再通过虚拟节点与实际节点的映射关系可以找到实际的stoage节点。partition: The virtual node of the consistent hash algorithm in Openstack Object Storage. One actual node (storage) corresponds to several virtual nodes, and the virtual nodes are arranged by hash value in the hash space. For a file corresponding to an object, it can be mapped to the corresponding virtual node through the hash algorithm, and the virtual node can find the corresponding actual node through the mapping relationship. The value of the virtual node in this application is the serial number of the virtual node. After the virtual node is found through the serial number, the actual stoage node can be found through the mapping relationship between the virtual node and the actual node.

本申请中Openstack Object Storage系统架构的技术方案描述:Description of the technical solution of the Openstack Object Storage system architecture in this application:

在本申请在Openstack Object Storage系统中增加了两个组件,即图2中所示的去重中间件模块和去重服务进程模块,其中去重中间件模块安装于proxy节点,去重服务进程模块在storage节点中运行。In this application, two components are added in the Openstack Object Storage system, namely the deduplication middleware module and the deduplication service process module shown in Figure 2, wherein the deduplication middleware module is installed on the proxy node, and the deduplication service process module Run on the storage node.

本申请的Openstack Object Storage系统借助多台服务器实现。去重中间件可以借助Proxy服务器实现,去重服务进程可以借助storage服务器实现。去重中间件模块以及去重服务进程模块可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请中去重服务进程和去重中间件的一种硬件结构图,除了图2所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中各服务器还可以包括其他硬件,对此图2不再详细示出。The Openstack Object Storage system of the present application is realized by means of multiple servers. The deduplication middleware can be implemented by means of a proxy server, and the deduplication service process can be implemented by means of a storage server. The deduplication middleware module and the deduplication service process module can be implemented by software, or by hardware or a combination of software and hardware. Taking software implementation as an example, as a device in a logical sense, it is formed by reading the corresponding computer program instructions in the non-volatile memory into the memory for operation by the processor of the device where it is located. From the hardware level, as shown in Figure 2, it is a hardware structure diagram of the deduplication service process and deduplication middleware in this application, except for the processor, network interface, memory and non-volatile memory shown in Figure 2 In addition to the memory, each server in the embodiment may further include other hardware, which is not shown in detail in FIG. 2 .

图3为实施例中Openstack Object Storage系统的逻辑架构图。去重中间件模块构建和维护去重哈希环(hash环)和若干棵红黑树。其中该去重哈希环中的每一个节点分别作为每一棵红黑树的根节点。每一棵红黑树的子节点用来保存存储对象object的关键信息,通过该关键信息可以找到整个系统中存储的每一个object。这里存储对象object的关键信息至少包括object所位于的虚拟节点的序号(即partition值)、文件内容的md5值以及指纹文件名。图4为去重哈希环和红黑树的示意图。Fig. 3 is a logical architecture diagram of the Openstack Object Storage system in the embodiment. The deduplication middleware module builds and maintains deduplication hash rings (hash rings) and several red-black trees. Each node in the deduplication hash ring serves as the root node of each red-black tree. The child nodes of each red-black tree are used to store the key information of the stored object, through which each object stored in the entire system can be found. The key information of the stored object object here includes at least the sequence number of the virtual node where the object is located (that is, the partition value), the md5 value of the file content, and the fingerprint file name. FIG. 4 is a schematic diagram of a deduplication hash ring and a red-black tree.

构建好的去重哈希环是一个数组,该数组元素个数可以根据具体需求来自由选择,但作为一个实施例,通常采用虚拟节点的数目作为数组元素的个数。本申请用position表示数组下标,即数组元素的序号,根据position值可以定位到数组元素,即去重哈希环的节点,也即红黑树的根节点,从而访问该红黑树。关于position的值如何计算请参下文中的说明。The constructed deduplication hash ring is an array, and the number of elements in the array can be freely selected according to specific requirements, but as an embodiment, the number of virtual nodes is usually used as the number of array elements. In this application, position is used to indicate the array subscript, that is, the serial number of the array element. According to the position value, the array element, that is, the node of the deduplication hash ring, that is, the root node of the red-black tree can be located, so as to access the red-black tree. For how to calculate the value of position, please refer to the description below.

以下结合附图5和图6来说明如何构建出图4中所描述的去重哈希环以及各红黑树。在本实施例中可以在系统初始化时构建去重hash环和各红黑树,当然也可以根据需求选择其他时刻构建。The following describes how to construct the deduplication hash ring and the red-black trees described in FIG. 4 with reference to FIG. 5 and FIG. 6 . In this embodiment, the deduplication hash ring and each red-black tree can be constructed when the system is initialized, and of course, it can also be constructed at other times according to requirements.

在本实施例中,去重服务配置信息可写在object-server.conf之中,添加object-deduper字段,根据这些配置信息,可以构建出去重哈希环的数组结构。图6为构建红黑树各节点的流程图。In this embodiment, the deduplication service configuration information can be written in object-server.conf, and the object-deduper field can be added. According to these configuration information, an array structure for deduplication hash ring can be constructed. Fig. 6 is a flow chart of constructing each node of the red-black tree.

去重服务进程模块扫描每个文件系统分区(即device)下所保存的各文件,生成包含每个文件的指纹(指纹具有能够唯一标识一个文件的特性)的指纹文件(步骤701)。The deduplication service process module scans each file stored under each file system partition (ie device), and generates a fingerprint file (step 701) that includes the fingerprint of each file (the fingerprint has the characteristic of being able to uniquely identify a file).

结合图3可以了解到,这个指纹文件包括了该device下所有的object所对应的文件指纹。该指纹文件中的每个指纹分别包括文件内容的MD5值、文件所属的accout、container、object。MD5值是根据公开的MD5算法对原信息进行数学变换后得到的一个128位(bit)的特征码。指纹文件中包含的信息有文件的指纹、partition的值、storage的IP地址、device路径。通过这些信息可以找到具体的object所对应的文件:根据partition的值可以找到相应的stoarge节点,根据storage的IP地址、device路径找到对应的device,再根据指纹中的MD5值可以定位到具体的文件。Combining with Figure 3, it can be known that this fingerprint file includes the file fingerprints corresponding to all objects under the device. Each fingerprint in the fingerprint file includes the MD5 value of the file content, accout, container, and object to which the file belongs. The MD5 value is a 128-bit feature code obtained by mathematically transforming the original information according to the public MD5 algorithm. The information contained in the fingerprint file includes the fingerprint of the file, the value of the partition, the IP address of the storage, and the path of the device. Through these information, you can find the file corresponding to the specific object: you can find the corresponding stoarge node according to the partition value, find the corresponding device according to the storage IP address and device path, and then locate the specific file according to the MD5 value in the fingerprint .

去重服务进程模块将各个device的指纹文件汇集并发送至去重中间件模块(步骤702)。在本实施例中,如图5所示指纹文件通过HTTP发送到去重中间件模块。The deduplication service process module collects the fingerprint files of each device and sends them to the deduplication middleware module (step 702). In this embodiment, as shown in FIG. 5 , the fingerprint file is sent to the deduplication middleware module through HTTP.

去重中间件模块对指纹文件解析,获取指纹文件中各文件的指纹信息(步骤703)。根据该指纹文件中的每一个指纹中的md5值构建各红黑树。构建红黑树的具体方式为:首先,分别将各文件内容的MD5值对构成去重哈希环的数组元素的个数取模得到position值,根据各position值分别定位到红黑树根节点的位置r(步骤704);The deduplication middleware module analyzes the fingerprint file, and obtains the fingerprint information of each file in the fingerprint file (step 703). Each red-black tree is constructed according to the md5 value in each fingerprint in the fingerprint file. The specific method of constructing the red-black tree is as follows: firstly, the MD5 value of each file content is moduloed by the number of array elements constituting the deduplication hash ring to obtain the position value, and the root node of the red-black tree is located according to each position value The position r of (step 704);

然后进一步将各MD5值作为Key,将各object的关键信息分别添加到相应红黑树根节点对应的子节点中(步骤705)。请参图4,该图中有n+1个节点,即数组元素的个数为n+1;如果某个object对应的MD5值为m,则该object对应的红黑树的根节点位置r为:r=m%(n+1)。不难看出,任一object对应的红黑树的根节点位置在0~n这个范围内。Then, each MD5 value is further used as a Key, and the key information of each object is respectively added to the child node corresponding to the root node of the corresponding red-black tree (step 705). Please refer to Figure 4, there are n+1 nodes in this figure, that is, the number of array elements is n+1; if the MD5 value corresponding to an object is m, then the root node position of the red-black tree corresponding to the object is r It is: r=m%(n+1). It is not difficult to see that the root node position of the red-black tree corresponding to any object is in the range of 0~n.

object的指纹信息中partition值和MD5值可以用来判断是否存在重复数据。而指纹文件的文件名可以找到所对应的指纹文件,根据指纹文件中所存储的指纹的account信息可以判断重复文件数据所存储的账户。而作为一个实施例,对于步骤705中红黑树子节点中关键信息的保存可以采用如下方式:storage的IP地址及文件在该storage中的路径已经保存于指纹文件的文件名中,指纹文件用IP_device来命名,这个文件名中的IP与已挂载的文件系统分区所在的storage的IP相同,文件名中的device与已挂载的文件系统分区的路径相同。指纹文件可保存于proxy中的特定存储位置,因此在一个优选方式中,红黑树节点中只需要保存该指纹文件的文件名、partition值及文件内容MD5即可。The partition value and MD5 value in the object's fingerprint information can be used to determine whether there is duplicate data. The file name of the fingerprint file can find the corresponding fingerprint file, and the account stored in the duplicate file data can be judged according to the account information of the fingerprint stored in the fingerprint file. And as an embodiment, for the preservation of key information in the red-black tree child node in step 705, can adopt following mode: the IP address of storage and the path of file in this storage have been preserved in the file name of fingerprint file, and fingerprint file uses IP_device, the IP in this file name is the same as the IP of the storage where the mounted file system partition is located, and the device in the file name is the same as the path of the mounted file system partition. The fingerprint file can be saved in a specific storage location in the proxy, so in a preferred mode, only the file name, partition value and MD5 of the file content need to be saved in the red-black tree node.

如图5所示,在本申请的一个优选实施例中,利用Openstack Object Storage系统横向可扩展性的特点,可以将去重hash环分布于多个proxy上,每个所述proxy节点维护其中一段去重hash环,从而形成分布式去重hash环。具体做法如下:根据配置文件的position值的范围选项,可以将整个去重hash环,拆分成几个部分,每个proxy节点只负责存储部分去重hash环,各个proxy节点之间可以通过HTTP进行查询操作。图5是拆成两部分的分布式去重hash环:具有n个节点的hash环被分成两个去重hash环存储于不同的proxy之上,其中一个存储position范围为0至(n/2-1)的数组;另一个存储position范围为n/2至n的数组。As shown in Figure 5, in a preferred embodiment of the present application, using the characteristics of the horizontal scalability of the Openstack Object Storage system, the deduplication hash ring can be distributed on multiple proxies, and each of the proxy nodes maintains one of the Deduplication hash ring, thus forming a distributed deduplication hash ring. The specific method is as follows: According to the range option of the position value in the configuration file, the entire deduplication hash ring can be split into several parts, and each proxy node is only responsible for storing part of the deduplication hash ring, and each proxy node can pass HTTP Perform query operations. Figure 5 is a distributed deduplication hash ring divided into two parts: a hash ring with n nodes is divided into two deduplication hash rings and stored on different proxies, one of which stores a position ranging from 0 to (n/2 -1) an array; another array that stores positions ranging from n/2 to n.

在一个优选实施例中,去重中间件模块以WSGI插件的形式存在,可以通过配置文件实现开启和关闭该插件功能的目的,由于WSGI本身的属性决定了该插件可以预处理接收到的所有HTTP请求,也就是说数据的写入请求会在存储前首先到达去除中间件进行预处理,从而为防止数据重复写入提供了可能。在一个实施例中,可以通过配置文件(以下通过proxy-server.conf来命名该配置文件)向去重中间件模块添加以下的配置内容:In a preferred embodiment, the deduplication middleware module exists in the form of a WSGI plug-in, and the function of the plug-in can be turned on and off through a configuration file. Due to the attributes of WSGI itself, the plug-in can preprocess all received HTTP Request, that is to say, the data write request will first reach the removal middleware for preprocessing before storage, thus providing the possibility to prevent repeated data writing. In one embodiment, the following configuration content can be added to the deduplication middleware module through a configuration file (the configuration file is named by proxy-server.conf below):

1)数组元素的个数,作为一个实施例可以默认与partition的数目相同,这样配置上更方便;1) The number of array elements, as an embodiment, can be the same as the number of partitions by default, which is more convenient for configuration;

2)position范围,是0~数组元素的总个数-1之间。2) The position range is between 0 and the total number of array elements -1.

除了这些信息还可以根据需要配置其他信息,例如,当采用上文所描述的分布式哈希环的分布结构时,配置内容还可以包括其他配置有去重哈希环的proxy的IP地址,以及该proxy上所配置的的position范围。In addition to this information, other information can be configured as needed. For example, when the distributed structure of the distributed hash ring described above is adopted, the configuration content can also include the IP addresses of other proxies configured with deduplication hash rings, and The position range configured on the proxy.

在一个实施例中,在分布式的哈希环架构下,在读取指纹文件一条数据,根据MD5对去重哈希环节点数取模得到position值后,还需要判断position是否属于本proxy节点,如果不属于该proxy节点,则通过配置文件获知该指纹文件所在的proxy节点,通过IP地址信息将该指纹文件传递给对应的proxy节点。In one embodiment, under the distributed hash ring architecture, after reading a piece of data in the fingerprint file, and obtaining the position value by moduloing the node number of the deduplication hash ring according to MD5, it is also necessary to determine whether the position belongs to the proxy node. If it does not belong to the proxy node, the proxy node where the fingerprint file is located is obtained through the configuration file, and the fingerprint file is passed to the corresponding proxy node through the IP address information.

该实施例以分布式的架构,各个proxy构建和维护重建hash环的过程可并行处理。通过以下对每个proxy构建去重hash环的时间负责度和空间复杂度的分析可以看出,分布式的架构大大减少了单台服务器的压力,又减少了服务器出现故障时去重hash环重建的时间。In this embodiment, a distributed architecture is used, and the process of constructing, maintaining and reconstructing the hash ring by each proxy can be processed in parallel. Through the following analysis of the time responsibility and space complexity of each proxy to construct the deduplication hash ring, it can be seen that the distributed architecture greatly reduces the pressure on a single server, and reduces the deduplication hash ring reconstruction when the server fails. time.

去重hash环的时间复杂度:Time complexity of deduplication hash ring:

时间复杂度=O(1)+O(logN),N的平均值:N=系统中存储对象的总量/position数量Time complexity = O(1)+O(logN), the average value of N: N=the total number of stored objects in the system/number of positions

去重hash环空间复杂度:Deduplication hash ring space complexity:

假设每个红黑树根节点所存储的文件大小约为65byte,其中MD5为16byte,ip不超过15byte,已挂载的文件系统分区的路径大约为9byte,partition为4个byte。红黑树结构占用25byte,三个指针parent、left、right占用24byte,颜色占用1byte。Assume that the file size stored in each red-black tree root node is about 65 bytes, of which MD5 is 16 bytes, ip is no more than 15 bytes, the path of the mounted file system partition is about 9 bytes, and the partition is 4 bytes. The red-black tree structure occupies 25 bytes, the three pointers parent, left, and right occupy 24 bytes, and the color occupies 1 byte.

以65byte计算1亿个文件所需要的内存:65*100000000≈6.4GCalculate the memory required for 100 million files in 65bytes: 65*100000000≈6.4G

下文详细描述利用去重哈希环和红黑树删除重复数据的方法。The method of deduplicating data by using deduplication hash ring and red-black tree is described in detail below.

首先阐述同步去除重复数据(同步去重)的过程,同步去重是指在文件上传时,如果系统已存在该文件,则不写入文件,直接返回文件上传完毕,实现秒级上传功能。同步去重由客户端发送相关文件上传请求时触发。First, the process of synchronous deduplication (synchronous deduplication) is explained. Synchronous deduplication means that when a file is uploaded, if the file already exists in the system, the file will not be written, and the file upload will be returned directly, realizing the second-level upload function. Synchronous deduplication is triggered when the client sends a related file upload request.

如图7所示,当去重中间件模块接收到某个客户端要求上传文件的请求后,开始根据文件内容的MD5值查找红黑树根节点位置,在一个优选例子中,MD5值被承载于文件存储请求的消息中,作为一个实施例,可以是HTTP消息头中的etag。As shown in Figure 7, when the deduplication middleware module receives a request from a client to upload a file, it starts to search for the root node position of the red-black tree according to the MD5 value of the file content. In a preferred example, the MD5 value is carried In the message of the file storage request, as an embodiment, it may be the etag in the header of the HTTP message.

根据所述文件内容的MD5值查找红黑树根节点位置(步骤801),并通过红黑树根节点以及以MD5值作为key查找所述红黑树中是否有MD5值相同的子节点(步骤802),如果有,则确认存在重复文件,将存储待存储文件的位置保存一份指向所述重复文件的重定向文件。如果没有,则确认不存在重复文件,在存储待存储文件的位置存储该待存储文件,并以待存储文件的MD5值为key将该待存储文件的虚拟节点partition的值、MD5值插入该红黑树相应子节点中。(在存储待存储文件的位置存储该待存储文件可以是将待上传文件写入storage中的相应account,对于将上传文件写入sotrage中的相应account在现有技术中已经有教导,在此不再详细描述)。Find the red-black tree root node position (step 801) according to the MD5 value of described file content, and by red-black tree root node and use MD5 value as key to find whether there is the identical child node of MD5 value in the described red-black tree (step 801) 802), if yes, confirm that there is a duplicate file, and store a redirection file pointing to the duplicate file at the location where the file to be stored is stored. If not, confirm that there is no duplicate file, store the file to be stored in the location where the file to be stored is stored, and use the MD5 value of the file to be stored as the key to insert the value of the virtual node partition and the MD5 value of the file to be stored into the red In the corresponding child node of the black tree. (storing the file to be stored in the position of storing the file to be stored can be writing the file to be uploaded into the corresponding account in the storage, and the corresponding account in the sotrage for writing the uploaded file into the corresponding account has been taught in the prior art, and will not be described here described in more detail).

需要说明的是,本申请利用在Openstack Object Storage系统为用户提供的开放的接口来实现重定向文件的相关操作,该开放的接口允许添加自己的文件读写类接口文件DiskFile,可以通过增加该接口文件来生成和维护重定向文件。增加重复数据删除功能,仅需执行读的时候,发现如果是重定向文件,则读取重定向文件内容,根据重定向文件内容的partition、account、container、object,获取到真实文件内容并返回。It should be noted that this application uses the open interface provided by the Openstack Object Storage system for users to realize the related operations of redirecting files. This open interface allows adding your own file read and write interface file DiskFile, which can be added by adding this interface. file to generate and maintain redirection files. The deduplication function is added. When it is only necessary to read, if it is found that it is a redirected file, read the content of the redirected file. According to the partition, account, container, and object of the content of the redirected file, the actual file content is obtained and returned.

图中步骤8031至步骤8034描述了一个应用实例中对步骤803至步骤804生成重定向文件,并将所述重定向文件写入storage的过程,具体包括:Steps 8031 to 8034 in the figure describe the process of generating a redirection file for steps 803 to 804 in an application example, and writing the redirection file to storage, specifically including:

dedupe_account是Openstack Object Storage系统初始化由去重服务进程模块生成的一个account(当然如果根据需要在其他时刻生成该账户也可以),用于存放文件内容。去重中间件模块根据待上传文件内容的md5值找到该重复数据所在的红黑树的子节点,利用该子节点所存储的指纹文件的文件名找到相应的指纹文件,随后根据该MD5值对应的指纹,根据指纹中存储的account名称可以判断前述待上传的文件内容是否被存在dedupe_account的账户中(步骤8031);如果前述待上传文件已经被存在dedupe_account的账户中,则生成所述重定向文件后将重定向文件写入所述storage中该MD5值所对应的account,并在dedupe_account中记录当前所述重定向文件的个数(步骤8034);即图中的计数器refer加1。dedupe_account is an account generated by the deduplication service process module when the Openstack Object Storage system is initialized (of course, the account can also be generated at other times as needed), which is used to store file content. The deduplication middleware module finds the child node of the red-black tree where the duplicate data is located according to the md5 value of the content of the file to be uploaded, uses the file name of the fingerprint file stored in the child node to find the corresponding fingerprint file, and then corresponds to the fingerprint, according to the account name stored in the fingerprint, it can be judged whether the aforementioned file content to be uploaded is stored in the account of dedupe_account (step 8031); if the aforementioned file to be uploaded has been stored in the account of dedupe_account, then generate the redirection file Afterwards, the redirection file is written into the account corresponding to the MD5 value in the storage, and the number of the current redirection files is recorded in dedupe_account (step 8034); that is, the counter refer in the figure adds 1.

如果待存储的文件内容不在dedupe_account中,则将MD5值所对应的文件内容写入所述dedupe_account(步骤8032),生成所述重定向文件后将重定向文件写入所述storage中该MD5值所对应的account,并在dedupe_account中记录当前所述重定向文件的个数(步骤8033);即图中的计数器refer加1,表示引用加1。更新后的dedupe_account中文件的指纹可以由去重服务进程实时发送给去重中间件,也可以按照去重服务进程收集指纹文件的周期发送给去重中间件。If the file content to be stored is not in the dedupe_account, then the file content corresponding to the MD5 value is written into the dedupe_account (step 8032), and the redirection file is written into the storage by the MD5 value after generating the redirection file corresponding account, and record the current number of redirected files in dedupe_account (step 8033); that is, the counter refer in the figure is increased by 1, indicating that the reference is increased by 1. The fingerprint of the file in the updated dedupe_account can be sent to the deduplication middleware by the deduplication service process in real time, or can be sent to the deduplication middleware according to the period when the deduplication service process collects fingerprint files.

如图8所示,当收到客户端的删除文件(DELETE)的请求时,判断所删除的文件是否为重定向文件(步骤1001),如果不是,则执行正常的删除操作(步骤1007);如果是,则读取重定向文件(步骤1002),删除所述重定向文件(步骤1005),并更新当前所述重定向文件的个数(步骤1003)(即图中表示depute_account的引用次数的计数器refer减1)。如果更新后的当前所述重定向文件的个数为零(步骤1004),则将所述dedupe_account中的文件内容删除,并将dedupe_account所对应的红黑树子节点删除(步骤1006)。As shown in Figure 8, when receiving the client's delete file (DELETE) request, judge whether the deleted file is redirected file (step 1001), if not, then carry out normal delete operation (step 1007); If Yes, then read the redirection file (step 1002), delete the redirection file (step 1005), and update the current number of the redirection file (step 1003) (the counter representing the number of references of depute_account in the figure refer minus 1). If the updated current number of redirected files is zero (step 1004), delete the file content in the dedupe_account, and delete the red-black tree subnode corresponding to the dedupe_account (step 1006).

可以看出,在文件存储时,可以通过只保留一份真实文件内容在dedupe_account上,其他账户存储文件内容时只需存储一份重定向文件,从而可以实现同步去重的目的。It can be seen that when the file is stored, only one real file content can be kept on the dedupe_account, and other accounts only need to store a redirected file when storing the file content, so that the purpose of synchronous deduplication can be achieved.

图9是从Openstack Object Storage系统读取文件的流程图。当收到文件读取(GET操作)请求时,判断所读取的文件是否为重定向文件(步骤901),如果是,则读取重定向文件,并获取重定向文件的内容(account、container、object信息)(步骤902),根据这些信息查找相应的ring文件中,从dedupe_account获得文件内容(步骤903),并返回文件内容给proxy服务器(步骤904)。ring是Swift最重要的组件,用于记录存储对象与物理位置间的映射关系。在涉及查询account、Object等信息时,就需要查询Ring文件的信息。如何根据ring文件进行查找可依据现有技术的方式实现。Fig. 9 is a flow chart of reading files from the Openstack Object Storage system. When receiving the file reading (GET operation) request, judge whether the read file is a redirection file (step 901), if yes, then read the redirection file, and obtain the content (account, container) of the redirection file , object information) (step 902), search the corresponding ring file according to these information, obtain the file content from dedupe_account (step 903), and return the file content to the proxy server (step 904). Ring is the most important component of Swift, which is used to record the mapping relationship between storage objects and physical locations. When it comes to querying information such as account and Object, it is necessary to query the information of the Ring file. How to search according to the ring file can be implemented according to the prior art.

以下是异步去除重复数据(异步去重)的过程:The following is the process of asynchronous deduplication (asynchronous deduplication):

异步去重发生在构建去重hash环和红黑树的时候。当添加删除device,服务重启等事件时也都可以启动异步去重。Asynchronous deduplication occurs when deduplication hash rings and red-black trees are constructed. Asynchronous deduplication can also be started when adding or deleting devices, service restarts and other events.

在异步去重时,去重中间件模块通过去红黑树各子节点所保存的关键信息判定是否存在重复数据,其判定方法是:如果MD5值相同,并且partition值不同则说明两个对象所存储的是重复数据;如果MD5值相同,并且partition值相同,可能存在重复数据,可能是同一用户特意存储了两份相同的的文件,其中一份为副本,此时,不用做特别的处理;如果MD5值不同,则确定不存在重复数据。以下结合图7来阐述本申请如何利用构建好的去重hash环来去除重复数据的方法。During asynchronous deduplication, the deduplication middleware module determines whether there is duplicate data through the key information stored in each child node of the red-black tree. The determination method is: if the MD5 values are the same and the partition values are different, it means that the two objects Duplicate data is stored; if the MD5 value is the same and the partition value is the same, there may be duplicate data. It may be that the same user has deliberately stored two identical files, one of which is a copy. At this time, no special processing is required; If the MD5 values are different, it is determined that there is no duplicate data. The method of how to use the constructed deduplication hash ring to remove duplicate data in this application will be described below in conjunction with FIG. 7 .

当去重服务进程模块收集完指纹文件时,通过HTTP将数据传送到去重中间件模块。针对指纹文件中的每一个指纹,去重中间件模块根据该指纹包含的MD5值查找红黑树的子节点,如果找到对应的子节点,则根据该指纹文件中记录的partition值判断其是否和上述子节点中记录的partition值相同,如果不同,则确认当前存在重复数据。根据指纹文件中的文件内容的md5值找到相应的指纹,根据指纹中所存储的account名称可以判断存储重复数据的账户是否为dedupe_account,如果重复数据没有存放在dedupe_account,则将MD5值相同的节点的account中所存储的重复数据移入所述dedupe_account,并在该account中存储指向该重复数据的的重定向文件,并记录当前所述重定向文件的个数。在一个实施例中,可以在将文件内容写入dedupe_account后随即将该更新后的文件内容所对应的指纹信息通过指纹文件发给去重中间件模块更新红黑树各子节点所存储的信息。When the deduplication service process module collects the fingerprint file, the data is transmitted to the deduplication middleware module through HTTP. For each fingerprint in the fingerprint file, the deduplication middleware module searches for the child nodes of the red-black tree according to the MD5 value contained in the fingerprint. If the corresponding child node is found, it judges whether it is consistent with the partition value recorded in the fingerprint file. The partition values recorded in the above child nodes are the same. If they are different, it is confirmed that there is currently duplicate data. Find the corresponding fingerprint according to the md5 value of the file content in the fingerprint file. According to the account name stored in the fingerprint, it can be judged whether the account storing the duplicate data is dedupe_account. If the duplicate data is not stored in dedupe_account, then the node with the same MD5 value The duplicate data stored in the account is moved into the dedupe_account, and the redirection file pointing to the duplicate data is stored in the account, and the number of the current redirection files is recorded. In one embodiment, after the file content is written into the dedupe_account, the fingerprint information corresponding to the updated file content can be sent to the deduplication middleware module through the fingerprint file to update the information stored in each child node of the red-black tree.

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。Other embodiments of the present application will be readily apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any modification, use or adaptation of the application, these modifications, uses or adaptations follow the general principles of the application and include common knowledge or conventional technical means in the technical field not disclosed in the application . The specification and examples are to be considered exemplary only, with a true scope and spirit of the application indicated by the following claims.

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。It should be understood that the present application is not limited to the precise constructions which have been described above and shown in the accompanying drawings, and various modifications and changes may be made without departing from the scope thereof. The scope of the application is limited only by the appended claims.

Claims (10)

1.一种基于Openstack Object Storage系统删除重复数据方法,所述OpenstackObject Storage系统包括proxy节点和storage节点;其特征在于,所述proxy节点包括去重中间件模块,所述storage节点包括去重服务进程模块,其中该去重中间件模块构建有去重hash环,该去重hash环的每个节点为一个红黑树的根节点,所述方法包括步骤:1. a method for deleting duplicate data based on the Openstack Object Storage system, the OpenstackObject Storage system includes a proxy node and a storage node; it is characterized in that the proxy node includes a deduplication middleware module, and the storage node includes a deduplication service process module, wherein the deduplication middleware module is constructed with a deduplication hash ring, and each node of the deduplication hash ring is a root node of a red-black tree, and the method comprises steps: 所述去重服务进程模块扫描每个文件系统分区下所保存的文件,生成每个文件对应的指纹,并将这些指纹通过指纹文件发送至所述去重中间件模块;所述指纹文件包括一个虚拟节点partition的值以及每个文件内容的MD5值;The deduplication service process module scans the files stored under each file system partition, generates fingerprints corresponding to each file, and sends these fingerprints to the deduplication middleware module through the fingerprint file; the fingerprint file includes a The value of the virtual node partition and the MD5 value of each file content; 所述去重中间件模块根据各MD5值对n取模的结果查找各指纹所对应的红黑树根节点,其中n为去重hash环包括的节点数;Described deduplication middleware module searches the corresponding red-black tree root node of each fingerprint according to each MD5 value to the result of n modulus, and wherein n is the node number that deduplication hash ring comprises; 在找到红黑树根节点后,分别判断每个指纹中包含的md5值是否已存在于对应红黑树子节点中,针对任一指纹的md5值存在于红黑树子节点中的情况,进一步判断该红黑树子节点所存的虚拟节点partition的值与该指纹所在的指纹文件中包括的虚拟节点partition值是否相同,如果不同,则确认存在重复文件;将一份重复文件保留在storage节点中,删除其他重复文件,并且在原本存储其他重复文件的位置保存一份指向该被保留的重复文件的重定向文件;After finding the root node of the red-black tree, judge whether the md5 value contained in each fingerprint already exists in the corresponding red-black tree sub-node, and for the case that the md5 value of any fingerprint exists in the red-black tree sub-node, further Determine whether the virtual node partition value stored in the red-black tree child node is the same as the virtual node partition value included in the fingerprint file where the fingerprint is located. If not, confirm that there is a duplicate file; keep a duplicate file in the storage node , delete other duplicate files, and save a redirection file pointing to the retained duplicate file in the location where other duplicate files were originally stored; 如果不存在重复文件,则以各MD5值为key将每个指纹文件中包含的虚拟节点partition的值、文件内容的MD5值插入该红黑树相应子节点中。If there is no duplicate file, insert the virtual node partition value contained in each fingerprint file and the MD5 value of the file content into the corresponding child node of the red-black tree with each MD5 value as the key. 2.如权利要求1所述的方法,其特征在于,将一份重复文件保留在storage节点中具体为:将一份重复文件保存在depute_account中;所述dedupe_account为用于存放重复数据而构建的账户。2. The method according to claim 1, characterized in that, keeping a duplicate file in the storage node is specifically: saving a duplicate file in depute_account; said dedupe_account is constructed for storing duplicate data account. 3.一种基于Openstack Object Storage系统删除重复数据方法,所述OpenstackObject Storage系统包括proxy节点和storage节点;其特征在于,所述proxy节点包括去重中间件模块,所述storage节点包括去重服务进程模块,其中该去重中间件模块构建有去重hash环,该去重hash环的每个节点为一个红黑树的根节点,所述红黑树的子节点保存有虚拟节点partition的值、文件内容的MD5值;所述方法包括步骤:3. A method for deleting duplicate data based on the Openstack Object Storage system, the OpenstackObject Storage system includes a proxy node and a storage node; it is characterized in that the proxy node includes a deduplication middleware module, and the storage node includes a deduplication service process module, wherein the deduplication middleware module is constructed with a deduplication hash ring, each node of the deduplication hash ring is the root node of a red-black tree, and the child nodes of the red-black tree preserve the value of the virtual node partition, The MD5 value of file content; Described method comprises steps: 接收客户端的文件存储请求;Receive the file storage request from the client; 获取待存储的文件的MD5值,并根据所述MD5值对n取模的结果查找红黑树根节点,其中n为去重hash环包括的节点数;Obtain the MD5 value of the file to be stored, and search for the root node of the red-black tree according to the MD5 value to the result of n modulus, where n is the number of nodes included in the deduplication hash ring; 在找到红黑树的根节点后,判断所述MD5值是否存在于该红黑树中的子节点中,如果存在于所述子节点中,则确认存在重复文件,将存储待存储文件的位置保存一份指向所述重复文件的重定向文件;如果不存在于所述子节点中,则确认不存在重复文件,在存储待存储文件的位置存储该待存储文件,并以待存储文件的MD5值为key将该待存储文件的虚拟节点partition的值、MD5值插入该红黑树相应子节点中。After finding the root node of the red-black tree, judge whether the MD5 value exists in the child node in the red-black tree, if it exists in the child node, then confirm that there is a duplicate file, and store the position of the file to be stored Save a redirect file pointing to the duplicate file; if it does not exist in the child node, then confirm that there is no duplicate file, store the file to be stored at the location where the file to be stored is stored, and use the MD5 of the file to be stored The value is key and inserts the virtual node partition value and MD5 value of the file to be stored into the corresponding child node of the red-black tree. 4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当收到删除文件的请求时,如果所删除的文件是重定向文件,则删除所述重定向文件;如果不存在重定向文件,则将所述storage节点中的文件内容删除,并将该文件的指纹对应的红黑树子节点删除。4. The method according to claim 3, further comprising: when receiving a request to delete a file, if the deleted file is a redirection file, then deleting the redirection file; if not If there is a redirection file, delete the file content in the storage node, and delete the red-black tree sub-node corresponding to the fingerprint of the file. 5.一种基于Openstack Object Storage系统删除重复数据的装置,所述OpenstackObject Storage系统包括proxy节点和storage节点;其特征在于,该装置包括:5. a device based on the Openstack Object Storage system to delete duplicate data, the OpenstackObject Storage system includes a proxy node and a storage node; it is characterized in that the device includes: 位于storage节点的去重服务进程模块,用于扫描所述storage节点中每个文件系统分区下所保存的文件,生成每个文件对应的指纹,并将这些指纹通过指纹文件发送至所述去重中间件模块;以及当存在重复文件时,通知storage节点将一份重复文件保留在storage节点中,并删除其他重复文件,在原本存储其他重复文件的位置保存一份指向该被保留的重复文件的重定向文件;所述指纹文件包括一个虚拟节点partition的值以及每个文件内容的MD5值;The deduplication service process module located at the storage node is used to scan the files stored under each file system partition in the storage node, generate the corresponding fingerprint of each file, and send these fingerprints to the deduplication through the fingerprint file middleware module; and when there is a duplicate file, notify the storage node to keep a duplicate file in the storage node, delete other duplicate files, and save a copy pointing to the reserved duplicate file in the original storage position of other duplicate files Redirection file; the fingerprint file includes the value of a virtual node partition and the MD5 value of each file content; 位于proxy节点的去重中间件模块,用于构建去重hash环,该去重hash环的每个节点为一个红黑树的根节点,根据各MD5值对n取模的结果查找各指纹所对应的红黑树根节点,其中n为去重hash环包括的节点数;在找到红黑树根节点后,分别判断每个指纹中包含的md5值是否已存在于对应红黑树子节点中,针对任一指纹的md5值存在于红黑树子节点中的情况,进一步判断该红黑树子节点所存的虚拟节点partition的值与该指纹所在的指纹文件中包括的虚拟节点partition值是否相同,如果不同,则确认存在重复文件并告知所述去重服务进程模块;如果不存在重复文件,则以各MD5值为key将每个指纹文件中包含的虚拟节点partition的值、文件内容的MD5值插入该红黑树相应子节点中。The deduplication middleware module located at the proxy node is used to construct the deduplication hash ring. Each node of the deduplication hash ring is the root node of a red-black tree. According to the result of taking the modulus of n by each MD5 value, search for each fingerprint Corresponding red-black tree root node, where n is the number of nodes included in the deduplication hash ring; after finding the red-black tree root node, judge whether the md5 value contained in each fingerprint already exists in the corresponding red-black tree child node , for the case that the md5 value of any fingerprint exists in the red-black tree sub-node, further judge whether the value of the virtual node partition stored in the red-black tree sub-node is the same as the virtual node partition value included in the fingerprint file where the fingerprint is located , if different, then confirm that there is a duplicate file and inform the deduplication service process module; if there is no duplicate file, then use each MD5 value as a key to convert the value of the virtual node partition contained in each fingerprint file, the MD5 of the file content The value is inserted into the corresponding child node of the red-black tree. 6.如权利要求5所述的装置,其特征在于,所述去重服务进程模块通知所述storage节点将一份重复文件保留在storage节点中具体为:将一份重复文件保存在depute_account中;所述dedupe_account为用于存放重复数据而构建的账户。6. The device according to claim 5, wherein the deduplication service process module notifies the storage node to keep a duplicate file in the storage node, specifically: saving a duplicate file in depute_account; The dedupe_account is an account constructed for storing duplicate data. 7.一种基于Openstack Object Storage系统删除重复数据的装置,所述OpenstackObject Storage系统包括proxy节点和storage节点;其特征在于,该装置包括,7. A device for deleting duplicate data based on the Openstack Object Storage system, the OpenstackObject Storage system includes a proxy node and a storage node; it is characterized in that the device includes, 去重中间件模块,用于构建去重hash环,该去重hash环的每个节点为一个红黑树的根节点,所述红黑树的子节点保存有虚拟节点partition的值、文件内容的MD5值;当接收到客户端的文件存储请求时,获取待存储的文件的MD5值,并根据所述MD5值对n取模的结果查找红黑树根节点,其中n为去重hash环包括的节点数;在找到红黑树的根节点后,判断所述MD5值是否存在于该红黑树中的子节点中,如果存在于所述子节点中,则确认存在重复文件,通知所述去重服务进程;如果不存在于所述子节点中,则以待存储文件的MD5值为key将该待存储文件的虚拟节点partition的值、MD5值插入该红黑树相应子节点中;Deduplication middleware module, used to construct deduplication hash ring, each node of this deduplication hash ring is the root node of a red-black tree, and the child node of described red-black tree preserves the value of virtual node partition, file content MD5 value; when receiving the file storage request from the client, obtain the MD5 value of the file to be stored, and search for the root node of the red-black tree according to the result of modulo n by the MD5 value, where n is the deduplication hash ring including After finding the root node of the red-black tree, judge whether the MD5 value exists in the child node in the red-black tree, if it exists in the child node, then confirm that there is a duplicate file, and notify the Deduplication service process; if it does not exist in the child node, insert the value of the virtual node partition and the MD5 value of the file to be stored into the corresponding child node of the red-black tree with the MD5 value of the file to be stored; 去重服务进程模块,用于在存在重复文件时,通知storage节点将存储待存储文件的位置保存一份指向所述重复文件的重定向文件;在不存在重复文件时,通知storage在存储待存储文件的位置存储该待存储文件。The deduplication service process module is used to notify the storage node to save a redirection file pointing to the duplicate file at the location where the file to be stored is stored when there is a duplicate file; when there is no duplicate file, notify the storage to store the file to be stored The location of the file stores the file to be stored. 8.根据权利要求7所述的装置,其特征在于,当收到删除文件的请求时,所述去重服务进程模块还用于如果所删除的文件是重定向文件,则通知storage节点删除所述重定向文件;如果不存在重定向文件,则通知storage节点将文件内容删除,并通知所述去重中间件模块将该文件的指纹对应的红黑树子节点删除。8. The device according to claim 7, wherein when receiving a request to delete a file, the deduplication service process module is also used to notify the storage node to delete the deleted file if the deleted file is a redirected file. If there is no redirection file, notify the storage node to delete the file content, and notify the deduplication middleware module to delete the red-black tree sub-node corresponding to the fingerprint of the file. 9.根据权利要求7所述的装置,其特征在于,所述去重hash环按照预定规则拆分成多个环分别存储于多个所述proxy节点。9. The device according to claim 7, wherein the deduplication hash ring is split into multiple rings according to predetermined rules and stored in multiple proxy nodes respectively. 10.根据权利要求7所述的装置,其特征在于,所述去重中间件模块以WSGI形式安装于所述proxy节点。10. The device according to claim 7, wherein the deduplication middleware module is installed on the proxy node in the form of WSGI.
CN201410682621.2A 2014-11-24 2014-11-24 A kind of method and device of deleting duplicated data Active CN104408111B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410682621.2A CN104408111B (en) 2014-11-24 2014-11-24 A kind of method and device of deleting duplicated data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410682621.2A CN104408111B (en) 2014-11-24 2014-11-24 A kind of method and device of deleting duplicated data

Publications (2)

Publication Number Publication Date
CN104408111A CN104408111A (en) 2015-03-11
CN104408111B true CN104408111B (en) 2017-12-15

Family

ID=52645742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410682621.2A Active CN104408111B (en) 2014-11-24 2014-11-24 A kind of method and device of deleting duplicated data

Country Status (1)

Country Link
CN (1) CN104408111B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108200172A (en) * 2018-01-03 2018-06-22 西安电子科技大学 A kind of cloud storage system and method supported secure data duplicate removal and deleted

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104637066B (en) * 2015-03-12 2017-06-16 湖南大学 The quick framework extraction method of bianry image based on sequential refinement
CN105955675B (en) * 2016-06-22 2018-11-09 南京邮电大学 A kind of data deduplication system and method for removing center cloud environment
CN106844431A (en) * 2016-12-12 2017-06-13 北京猎豹移动科技有限公司 File memory method, device and its electronic equipment
CN107169075A (en) * 2017-05-10 2017-09-15 深圳大普微电子科技有限公司 Data access method, storage device and the storage system of feature based analysis
CN107632789A (en) * 2017-09-29 2018-01-26 郑州云海信息技术有限公司 Method, system and Data duplication detection method are deleted based on distributed storage again
CN108563649B (en) * 2017-12-12 2021-12-07 南京富士通南大软件技术有限公司 Offline duplicate removal method based on GlusterFS distributed file system
CN108446376B (en) * 2018-03-16 2022-04-08 众安信息技术服务有限公司 Data storage method and device
CN109240985A (en) * 2018-08-13 2019-01-18 上海擎感智能科技有限公司 More storage dish duplicate file processing methods, system, storage medium and vehicle device
CN111475269A (en) * 2020-04-02 2020-07-31 北京代码乾坤科技有限公司 Physical settlement sanction method and device
CN111522791B (en) * 2020-04-30 2023-05-30 电子科技大学 Distributed file repeated data deleting system and method
CN111597146B (en) * 2020-05-20 2023-04-07 浙江大华技术股份有限公司 Video file processing method and device, storage medium and electronic device
CN112131223B (en) * 2020-09-24 2024-02-02 曙光网络科技有限公司 Traffic classification statistical method, device, computer equipment and storage medium
CN112232054A (en) * 2020-10-19 2021-01-15 北京值得买科技股份有限公司 Method for detecting massive texts in real time and repeated articles
CN112347060B (en) * 2020-10-19 2023-09-26 北京天融信网络安全技术有限公司 Data storage method, device and equipment of desktop cloud system and readable storage medium
CN112437145A (en) * 2020-11-18 2021-03-02 北京浪潮数据技术有限公司 Server cluster management method and device and related components
CN117725028B (en) * 2023-06-26 2025-02-07 荣耀终端有限公司 A file processing method, terminal device and computer readable storage medium
CN116991811A (en) * 2023-08-02 2023-11-03 重庆大学 Distributed collaborative deduplication method and system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706825A (en) * 2009-12-10 2010-05-12 华中科技大学 Replicated data deleting method based on file content types
CN102629258A (en) * 2012-02-29 2012-08-08 浪潮(北京)电子信息产业有限公司 Repeating data deleting method and device
JP2012198832A (en) * 2011-03-23 2012-10-18 Nec Corp Duplicate file detection device
CN102902762A (en) * 2012-09-25 2013-01-30 华为技术有限公司 Method, device and system for deleting repeating data

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8205065B2 (en) * 2009-03-30 2012-06-19 Exar Corporation System and method for data deduplication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706825A (en) * 2009-12-10 2010-05-12 华中科技大学 Replicated data deleting method based on file content types
JP2012198832A (en) * 2011-03-23 2012-10-18 Nec Corp Duplicate file detection device
CN102629258A (en) * 2012-02-29 2012-08-08 浪潮(北京)电子信息产业有限公司 Repeating data deleting method and device
CN102902762A (en) * 2012-09-25 2013-01-30 华为技术有限公司 Method, device and system for deleting repeating data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108200172A (en) * 2018-01-03 2018-06-22 西安电子科技大学 A kind of cloud storage system and method supported secure data duplicate removal and deleted
CN108200172B (en) * 2018-01-03 2020-12-08 西安电子科技大学 A cloud storage system and method supporting secure data deduplication and deletion

Also Published As

Publication number Publication date
CN104408111A (en) 2015-03-11

Similar Documents

Publication Publication Date Title
CN104408111B (en) A kind of method and device of deleting duplicated data
US11169972B2 (en) Handling data extent size asymmetry during logical replication in a storage system
US10956601B2 (en) Fully managed account level blob data encryption in a distributed storage environment
US10764045B2 (en) Encrypting object index in a distributed storage environment
US9792306B1 (en) Data transfer between dissimilar deduplication systems
US10459649B2 (en) Host side deduplication
US20220284046A1 (en) Application Programming Interface-based Writing of Data to a Directory of a File Structure Layer of a Data Storage System
US8943023B2 (en) Receiver-side data deduplication in data systems
US9298723B1 (en) Deduplication architecture
US9116909B2 (en) Reduced bandwidth data uploading in data systems
CN103020315B (en) A kind of mass small documents storage means based on master-salve distributed file system
US20190007208A1 (en) Encrypting existing live unencrypted data using age-based garbage collection
US20160196320A1 (en) Replication to the cloud
CN104020961B (en) Distributed data storage method, apparatus and system
US9396205B1 (en) Detection and handling of namespace changes in a data replication system
US20180060348A1 (en) Method for Replication of Objects in a Cloud Object Store
AU2015249206B2 (en) Receiver-side data deduplication in data systems
US11210006B2 (en) Distributed scalable storage
CN103501319A (en) Low-delay distributed storage system for small files
CN103902577A (en) Method and system for searching and locating resources
Zhou et al. An Efficient Data Fingerprint Query Algorithm Based on Two-Leveled Bloom Filter.
CN116561358A (en) Unified 3D scene data file storage and retrieval method based on hbase
US11782885B2 (en) Accessing S3 objects in a multi-protocol filesystem

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant