CN113227958B - 用于重复数据删除中优化的设备、系统和方法 - Google Patents

用于重复数据删除中优化的设备、系统和方法 Download PDF

Info

Publication number
CN113227958B
CN113227958B CN201980086632.5A CN201980086632A CN113227958B CN 113227958 B CN113227958 B CN 113227958B CN 201980086632 A CN201980086632 A CN 201980086632A CN 113227958 B CN113227958 B CN 113227958B
Authority
CN
China
Prior art keywords
hash
metadata
hash value
global server
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
Application number
CN201980086632.5A
Other languages
English (en)
Other versions
CN113227958A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113227958A publication Critical patent/CN113227958A/zh
Application granted granted Critical
Publication of CN113227958B publication Critical patent/CN113227958B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了一种高级重复数据删除方法,特别是具有附加重复数据删除层和用于对多个存储服务器进行重复数据删除的全局服务器。所述全局服务器用于维护关于哈希值集合的信息,每个哈希值与存储在所述全局服务器和/或所述存储服务器中的数据的数据片(chunk)相关联。所述全局服务器用于从一个或多个所述存储服务器接收修改所述关于一个或多个哈希值的信息的请求。所述全局服务器还用于对与所述一个或多个请求相关的元数据进行累积和排序,特别地,对于每个请求,所述元数据包括所述请求指示的哈希值和发送所述请求的所述存储服务器的指示。当所述累积元数据达到确定的大小时,所述全局服务器用于基于所述累积元数据修改所述关于所述一个或多个哈希值的信息。

Description

用于重复数据删除中优化的设备、系统和方法
技术领域
本发明涉及一种数据存储重复数据删除方法,尤其涉及一种全局重复数据删除服务器(global deduplication server,GDS)(也可以简称为全局服务器)中优化的内存管理方法。本发明通过优化GDS中的内存管理来解决性能下降问题。
背景技术
重复数据删除(也称为数据优化)是指在不损害原始数据的保真性或完整性的前提下,减少需要存储在磁盘上或通过网络传输的数据的物理字节数,即,减少的字节数是无损的,原始数据可以完全恢复。通过减少存储和/或传输数据的存储资源,重复数据删除因此节省了(用于存储和网络传输的)硬件成本和数据管理(例如,备份)的成本。随着数字化存储数据量的增长,这些成本节约变得显著。
重复数据删除通常使用多种技术来消除持久存储的文件内部和文件之间的冗余。一种技术用于识别一个或多个文件中的相同数据区域,并且物理上只存储唯一一个区域(称为片),同时保持与文件关联的指向该片的指针。另一种技术是通过例如存储压缩的片来混合重复数据删除与压缩。
许多组织使用专用服务器(即,存储服务器)来存储数据。不同服务器存储的数据往往是重复的,造成空间损失。解决这一问题的一种方法是重复数据删除,其包括通过使用哈希来识别重复数据,仅存储一定粒度内的唯一数据。然而,重复数据删除是以特定的单个存储服务器为粒度进行的。
为了防止数据在多个存储服务器上的重复,引入了重复数据删除(嵌套重复数据删除)的概念,包括附加的重复数据删除层(对多个重复数据删除服务器执行重复数据删除)。特别地,提出了一种将存储高度重复数据的GDS,作为解决跨多个存储服务器执行重复数据删除的问题的方案。
GDS存储由符合嵌套重复数据删除的存储服务器(即,存储服务器集群)发送的哈希值,以确定哈希值是否出现在足够多的存储服务器中,从而保证所述GDS对该哈希值代表的数据拥有所有权。哈希值可用于唯一地标识相应的数据片。由于GDS存储了存储服务器集群中存储服务器的所有哈希值(无论是否也存储其数据),因此存储所有这些哈希值所需的存储空间非常大。因此,不可能在GDS的存储器中保存所有哈希值,这进一步影响GDS的性能,特别是在响应存储或删除哈希值的请求时。
解决此类问题的标准方案是将数据缓存在存储器中。由于GDS架构的构建方式(多个存储服务器组成存储服务器集群,与单个GDS通信),如果没有合适的缓存策略和方法,可能会导致多次“缓存未命中(cache-misses)”,每次都会强制磁盘访问。
本发明旨在通过当哈希值存储在GDS的存储器中时优化GDS的内存管理效率来解决这种性能下降问题。
发明内容
鉴于上述问题,本发明的实施例旨在提供一种数据管理方案,其优化全局服务器的响应时间。为此,一个目标是减少所述全局服务器的缓存未命中。本发明的实施例的另一目的是允许更多地从存储器读取哈希值,而更少地从磁盘存储器读取哈希值。另一个目标是减少I/O操作。
该目的通过所附独立权利要求中提供的实施例来实现。本发明实施例的有利实施方式在从属权利要求中进一步限定。
本发明的第一方面提供一种用于对多个存储服务器进行重复数据删除的全局服务器,其中所述全局服务器用于:从一个或多个所述存储服务器接收修改关于来自哈希值集合的一个或多个哈希值的信息的请求,其中,对所述一组哈希值进行维护,并且每个哈希值与存储在所述全局服务器和/或所述存储服务器中的数据的数据片相关联;对与所述一个或多个请求相关的元数据进行累积和排序,其中,对于每个请求,所述元数据包括所述请求指示的哈希值和发送所述请求的所述存储服务器的指示;以及当所述累积元数据达到确定的大小时,基于所述累积元数据修改所述关于所述一个或多个哈希值的信息。
本发明提供一种在嵌套重复数据删除系统中存储高度重复数据的全局服务器。所述嵌套重复数据删除系统可以包括全局服务器和多个存储服务器。特别地,本发明提出一种全局服务器,其存储所请求的哈希值(以及请求这些哈希值的所述存储服务器),并且不立即处理所述请求。这样,全局服务器以异步方式和本地化的方式处理请求。因此减少了所述全局服务器中的缓存未命中,从而优化了所述全局服务器的响应时间。特别地,能够降低所述全局服务器的时延。
术语“全局服务器”是“全局重复数据删除服务器”的缩写,是指在包含多个重复数据删除服务器的存储系统中处理高度重复数据的服务器。在该实施中,GDS可以实现为集中式设备(例如,服务器),或者部署在所述多个存储服务器中的一个存储服务器中,或者以分布式方式实现。
在第一方面的一种实现方式中,关于所述哈希值集合的信息可以在所述全局服务器中或在所述全局服务器可访问的单独存储设备中维护。这提高了所述重复数据删除系统实现的多样性。
在第一方面的一种实现方式中,所述全局服务器包括存储器,所述全局服务器用于在所述存储器中累积所述元数据。
特别地,所述全局服务器可以在所述存储器中对所请求的哈希值进行排序和收集。
在第一方面的一种实现方式中,所述全局服务器还包括磁盘存储器,所述全局服务器用于:响应于所述累积元数据达到所述确定的大小,将所述累积元数据转储至所述磁盘存储器。
所述全局服务器一旦累积了一定数量的哈希值,就可以将这些哈希值转储至所述磁盘存储器中。
在第一方面的一种实现方式中,所述全局服务器用于:响应于所述累积元数据达到所述确定的大小,将所述元数据填充到多个块(block)中的第一块中,其中,每个块包括相同数量的片,并且每个片填充有与一个或多个请求相关的元数据;将所述第一块转储至所述磁盘存储器;以及响应于转储至所述磁盘存储器的块的数量超过确定的阈值,基于所述多个块中的所述累积元数据,修改所述关于所述一个或多个哈希值的信息。
当已将足够多的请求转储至磁盘存储器中时,所述全局服务器可以开始处理这些请求。
在第一方面的一种实现方式中,所述信息包括包括所述哈希值集合的哈希元数据表,所述哈希元数据表存储在所述磁盘存储器中。
因此,存储哈希值和关于各个哈希值的信息的表,即所述哈希元数据表,可以存储在所述全局服务器的本地磁盘中。
在第一方面的一种实现方式中,所述全局服务器用于:将所述哈希元数据表划分为N个部分,所述N为不小于2的正整数,其中,所述哈希元数据表的每个部分与所述哈希值的不同范围相关联;将所述哈希元数据表的第一部分上载到所述存储器,其中,所述哈希元数据表的所述第一部分与第一个哈希值范围相关联;以及基于所述多个块中的所述累积元数据修改所述哈希元数据表的所述第一部分。
需要说明的是,所述哈希元数据表为排序后的表,其中所有哈希值是按顺序存储的。例如,所述哈希值可以按升序或降序存储在表中。由于所述哈希元数据表被划分为N个部分,所以哈希值的范围被划分为N个部分。所述全局服务器将逐个遍历所有部分。所述全局服务器处理与包含在相应部分中的哈希值相关的请求。值得注意的是,各个部分是当前上载到所述存储器中的部分。因此,所述全局服务器能够更多地从存储器中读取,而更少地从磁盘存储器中读取。
在第一方面的一种实现方式中,所述全局服务器用于:将转储至所述磁盘存储器的每个块中的第一片上载到所述存储器;迭代所有已上载的第一片中的所述元数据中包含的所述哈希值;合并属于所述第一个哈希值范围的所述哈希值;以及基于与属于所述第一个哈希值范围的所述合并哈希值相关的所述元数据,修改所述存储器中存储的所述哈希元数据表的所述第一部分。
这样,所述全局服务器能够将不同的累积块合并到所述哈希元数据表中。这允许所述全局服务器以异步和本地化的方式处理(属于特定哈希值范围的)所述相关哈希值的请求。该算法基本上是一个合并排序算法,允许顺序访问磁盘以进行排序。
在第一方面的一种实现方式中,所述哈希元数据表包括关于所述哈希值集合中每个哈希值的信息以及关于为所述哈希值注册的一个或多个存储服务器的信息。
本发明的实施例基于这样一个事实,即,当存储服务器请求所述全局服务器添加哈希值时,所述全局服务器将为该哈希值注册该存储服务器。
在第一方面的一种实现方式中,所述全局服务器用于:
-响应于与属于所述第一个哈希值范围的第一哈希值相关的元数据中包括添加所述第一哈希值的请求:
-响应于所述第一哈希值未包含在所述哈希元数据表的所述第一部分中,将所述第一哈希值添加到所述哈希元数据表的所述第一部分中,创建与所述第一哈希值相关联的第一水印,并且针对所述第一哈希值注册发送所述请求的所述存储服务器,其中,所述第一水印指示具有所述第一哈希值的数据片在所述存储服务器之间是否高度重复;
-响应于所述第一哈希值包含在所述哈希元数据表的所述第一部分中,增加与所述第一哈希值相关联的所述第一水印的值,并且针对所述第一哈希值注册发送所述请求的所述存储服务器;和/或
-响应于与属于所述第一个哈希值范围的第二哈希值相关的元数据中包括删除所述第二哈希值的请求:
-减小与所述第二哈希值相关联的第二水印的值,并且针对所述第二哈希值注销发送所述请求的所述存储服务器,其中,所述第二水印指示具有所述第二哈希值的数据片在所述存储服务器之间是否高度重复;以及
-响应于所述第二水印的所述值等于0,从所述哈希元数据表的所述第一部分中删除所述第二哈希值。
一般来说,所述全局服务器可以在接收到添加哈希值的请求时创建或增加与所述哈希值相关联的水印,并且可以为所述哈希值注册发送所述请求的所述存储服务器。相应地,当从存储服务器接收删除数据的请求时,所述全局服务器可以减小与数据的哈希值相关联的水印的值,并且可以注销所述哈希值的所述存储服务器。值得注意的是,根据本发明的实施例,所述全局服务器可以仅处理当前上载到所述存储器中的所述请求,并且所述相关的哈希值应该属于在同一时间段内也位于所述存储器中的特定范围内。
在第一方面的一种实现方式中,所述全局服务器用于:在将所述元数据中包含的所述属于所述第一个哈希值范围的哈希值合并到相应块的第一片中之后,将所述块的第二片上载到所述存储器;迭代所述已上载的第二片中的所述元数据中包含的所述哈希值;合并属于所述第一个哈希值范围的所述哈希值;以及基于与属于所述第一个哈希值范围的所述合并哈希值相关的所述元数据,修改所述存储器中存储的所述哈希元数据表的所述第一部分。
还应注意的是,每个迭代到最后的片之后都应紧接着上载下一个片。这与其他块中的其他片无关。
在第一方面的一种实现方式中,所述全局服务器用于:如果在一个块的一片中找到不属于所述第一个哈希值范围的哈希值,停止迭代所述片中的所述元数据中包含的所述哈希值。
由于在所有片中填充的元数据都是内部排序的,因此能够有效地确定何时停止对片中的哈希值进行迭代。
在第一方面的一种实现方式中,所述全局服务器用于:在对转储至所述磁盘存储器的每个块的所有已上载的片中的所述元数据中包含的所述属于所述第一个哈希值范围的哈希值进行迭代之后,将所述哈希元数据表的所述修改后的第一部分持久化到所述磁盘存储器;将所述哈希元数据表的第二部分上载到所述存储器,其中,所述哈希元数据表的所述第二部分与第二个哈希值范围相关联;以及基于所述多个块中的所述累积元数据修改所述哈希元数据表的所述第二部分。
特别地,在将所述哈希元数据表的一部分上载到所述存储器后,转储至所述磁盘存储器的每个块的所有已上载的片中的元数据包括的所有请求都应该由所述全局服务器处理。即,在将更新的部分持久化到所述磁盘存储器之前,所述全局服务器需要处理关于添加/删除哈希值的每个请求,并根据每个请求(修改所述哈希元数据表的所述已上载的部分)。
在更新当前位于所述全局服务器的所述存储器中的所述哈希元数据表的相应部分之后,所述哈希元数据表的这一部分将持久化回所述全局服务器的所述磁盘存储器中。即,所述更新后的部分会覆盖相同部分的旧数据。然后,所述全局服务器开始处理所述哈希元数据表的下一部分。
本发明的第二方面提供一种用于对多个存储服务器进行重复数据删除的系统,包括根据第一方面及其实现方式所述的全局服务器,以及多个存储服务器,用于发送修改关于一个或多个哈希值的信息的请求。
在这种拓扑结构中,可能有多个存储服务器连接到所述全局服务器。每个存储服务器可以以类似的方式运行。所述存储服务器支持所述全局服务器减少缓存未命中,从而能够优化全局服务器的响应时间。特别地,能够降低所述全局服务器的时延。
本发明的第三方面提供了一种由全局服务器执行的方法,其中,所述方法包括:从一个或多个所述存储服务器接收修改关于来自哈希值集合的一个或多个哈希值的信息的请求,其中,对所述一组哈希值进行维护,并且每个哈希值与存储在所述全局服务器(100)和/或所述存储服务器(110)中的数据的数据片相关联;对与所述一个或多个请求相关的元数据进行累积和排序,其中,对于每个请求,所述元数据包括所述请求指示的哈希值和发送所述请求的所述存储服务器的指示;以及响应于所述累积元数据到确定的大小,基于所述累积元数据修改所述关于所述一个或多个哈希值的信息。
第三方面的方法及其实现方式提供了与上述对于第一方面的所述全局服务器及其相应实现方式相同的优点和效果。
本发明的第四方面提供一种计算机程序产品,所述计算机程序产品包括计算机可读代码指令,当其在计算机中运行时,将使所述计算机执行根据第一方面及其实现方式所述的方法。
本发明的第五方面提供一种计算机可读存储介质,包括计算机程序代码指令,可以由计算机执行,用于当所述计算机程序代码指令在所述计算机上运行时,执行根据第一方面及其实现方式所述的方法。所述计算机可读存储介质由以下一组中的一个或多个组成:只读存储器(Read-Only Memory,ROM)、可编程ROM(Programmable ROM,PROM)、可擦除PROM(Erasable PROM,EPROM)、闪存、电子EPROM(Electrically EPROM,EEPROM)、以及硬盘驱动器。
本发明的第六方面提供一种用于对多个存储服务器进行重复数据删除的全局服务器,包括处理器和存储器。所述存储器存储使所述处理器执行根据第三方面及其实现方式所述的方法的指令。
应当注意的是,本申请中描述的所有设备、元件、单元和装置都可以在软件或硬件元件或其任何种类的组合中实现。本申请中描述的各种实体执行的所有步骤和所描述的将由各种实体执行的功能旨在表明各个实体适于或用于执行各自的步骤和功能。虽然在以下具体实施例的描述中,由外部实体执行的特定功能或步骤没有在执行特定步骤或功能的该实体的具体元件的描述中反映,但是技术人员应该清楚的是这些方法和功能可以在各自的硬件或软件元件或其任意组合中实现。
附图说明
结合所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实现形式,其中:
图1示出了根据本发明一实施例的全局服务器;
图2示出了根据本发明一实施例的拓扑结构;
图3示出了根据本发明一实施例的全局服务器中的数据存储;
图4示出了根据本发明一实施例的全局服务器中的数据存储;
图5示出了根据本发明一实施例的全局服务器中的数据存储;
图6示出了根据本发明一实施例的全局服务器中的数据存储;以及
图7示出了根据本发明一实施例的的方法的流程图。
具体实施方式
参考附图描述用于通信系统中高效分组传输的方法、设备和程序产品的说明性实施例。尽管该描述提供了可能的实施方式的详细示例,但应当注意,这些细节旨在是示例性的,并且决不限制本申请的范围。
此外,实施例/示例可以参照其他实施例/示例。例如,在一个实施例/示例中提及的任何描述包括但不限于术语、元件、过程、解释和/或技术优点均适用于其他实施例/示例。
图1示出了根据本发明一实施例的全局服务器100。所述全局服务器100可以包括处理电路(未示出),用于执行、进行或发起本文描述的所述全局服务器100的各种操作。所述处理电路可以包括硬件和软件。所述硬件可包括模拟电路或数字电路,或模拟电路和数字电路两者。所述数字电路可以包括诸如专用集成电路(application-specificintegrated circuit,ASIC)、现场可编程阵列(field-programmable gate array,FPGA)、数字信号处理器(digital signal processor,DSP)或多用途处理器等组件。在一个实施例中,所述处理电路包括一个或多个处理器以及连接到所述一个或多个处理器的非瞬时性存储器。所述非瞬时性存储器可携带可执行程序代码,当其由所述一个或多个处理器执行时,使得所述全局服务器100执行、进行或发起本文描述的操作或方法。
所述全局服务器100用于对多个存储服务器110(示出了其中一个)进行重复数据删除。所述全局服务器100可用于维护关于哈希值集合的信息101,每个哈希值与存储在所述全局服务器100和/或所述存储服务器110中的数据的数据片相关联。所述全局服务器100还用于从一个或多个所述存储服务器110接收修改所述关于一个或多个哈希值的信息101的请求111。然后,所述全局服务器100用于对与所述一个或多个请求111相关的元数据进行累积和排序,其中,对于每个请求111,所述元数据包括所述请求指示的哈希值和发送所述请求的所述存储服务器的指示。进一步地,当所述累积元数据102达到确定的大小时,所述全局服务器100用于基于所述累积元数据102,修改所述关于所述一个或多个哈希值的信息101。
对于存储领域的技术人员来说,所述关于一个哈希值集合的信息也可以在所述全局服务器100可访问的单独的设备(例如,存储服务器)中维护。上述对所述全局服务器的描述不能视为对所述全局服务器100的实现的限制。
本发明的实施例适用于嵌套重复数据删除拓扑结构。图2示出了根据本发明一实施例的全局服务器100和存储服务器A、B和C的拓扑结构。值得注意的是,嵌套重复数据删除拓扑结构的实现方式中存储服务器的实际数量在此不做限定。所述全局服务器100提供额外的重复数据删除层。即,多个重复数据删除服务器(即,存储服务器)的重复数据删除。通常,许多应用服务器可以访问各自的存储服务器。用户可以通过所述应用服务器向所述存储服务器写入/读取数据。
数据片的哈希值可以通过对数据片执行哈希函数或哈希算法得到。所述哈希值可用于唯一地标识各自的数据片。本发明并不限制在存储服务器中使用的哈希和分块技术的类型,只要其在所有服务器上都相同即可。当用户向所述存储服务器110写入数据时,所述存储服务器110可以对所述数据进行分块和哈希,得到所述数据片的哈希值。由于多个重复数据删除服务器或存储服务器存储的数据经常是重复的,为了避免空间的损失,所述存储服务器可以请求将部分数据存储到GDS中。
特别地,图2所示的GDS是本发明一实施例所述的全局服务器100,如图1所示。图2所示的存储服务器A、B和C均为本发明一实施例所述的存储服务器110,如图1所示。所述全局服务器100旨在存储所述存储服务器110的高度重复数据。通常,高度重复数据由所述全局服务器100根据一些可配置的阈值确定。所述存储服务器110与所述全局服务器100通信并发送存储数据的请求,所述全局服务器100可以根据配置的阈值接受或拒绝这些请求。所述高度重复数据可以存储在所述全局服务器100中。相应地,所述存储服务器110可以从其本地存储中删除所述高度重复数据,并在所述全局服务器100上回复。在某些场景下,所述存储服务器也可以保留所述高度重复数据的副本。
当存储服务器110发送存储或删除数据的请求时,所述存储服务器110向所述全局服务器100发送与该数据相关联的哈希值。相应地,所述全局服务器将记录与所述请求相关的所述哈希值和发送所述请求的所述存储服务器110。这些信息记录为与所述请求相关的元数据。当所述全局服务器100接收到多个请求时,将记录与所述多个请求相关的多个元数据。根据本发明的实施例,将以特定顺序对与所接收的请求相关的元数据进行收集和排序。例如,所述元数据可以按升序或降序排序,特别是根据所述元数据中包含的哈希值。
本发明提出优化存储在所述GDS中的哈希值的内存管理。在该方案中,所述GDS将延迟对从存储服务器接收到的请求的响应。即,所述GDS只在请求数量达到阈值时,即,以异步方式,处理所述接收到的请求。
值得注意的是,所述全局服务器100可以包括存储器103,如图3所示。可选地,所述全局服务器100还可以用于将所述元数据102累积到所述存储器103中。在从所述存储服务器110接收到所述请求之后,所述全局服务器100将立即确认接收到哈希值,但是不会请求所述存储服务器110发送所述数据。将在所述存储器103中对与所述请求相关联的哈希值以及发送所述请求的所述存储服务器进行排序和收集。如图3所示的实施例,所述与所述一个或多个请求111相关的元数据按升序排序,所述元数据包括由所述请求指示的所述哈希值和发送所述请求的所述存储服务器110的指示。
值得注意的是,所述全局服务器100还可以包括磁盘存储器104,如图3所示。可选地,所述全局服务器100还可以用于当所述累积元数据102达到所述确定的大小时,将所述累积元数据102转储至所述磁盘存储器104。
例如,根据图3所示的实施例,一旦所述全局服务器100累积了X字节的元数据,X是正整数,或例如1GB的元数据块,所述全局服务器100会将这些元数据,即,X字节或哈希值块,转储至所述磁盘存储器104。X的值或块的大小可以根据具体情况确定。
此外,所述全局服务器100可用于当所述累积元数据102达到所述确定的大小时,将所述元数据填充到多个块的第一块中,其中,每个块包括相同数量的片,并且每个片填充有与一个或多个请求相关的元数据。值得注意的是,一个块由若干片组成。将所述累积的元数据102填充到块中,特别地,是以均匀分布在每个块的片中的方式填充。所述全局服务器100还可以用于将所述第一块转储至所述磁盘存储器104。相应地,当转储至所述磁盘存储器104的块的数量超过确定的阈值时,所述全局服务器100可用于基于所述多个块中的是累积元数据102,修改关于所述一个或多个哈希值的所述信息101。即,仅当足够多(例如,50GB)的请求已经转储至所述磁盘存储器104时,所述全局服务器100才将处理这些请求。在一个示例中,假设每个块填充有与请求相关的1GB元数据,当已有50个块转储至所述磁盘存储器104时,所述全局服务器100开始处理这些请求。
可选地,所述在所述全局服务器100中维护的信息101可包括所述哈希值集合的哈希元数据表,并且所述哈希元数据表可存储在所述磁盘存储器104中,如图4所示。值得注意的是,图4描绘了基于图3所示实施例的本发明的一实施例。
相应地,所述全局服务器100还可以用于将所述哈希元数据表划分为N个部分,特别是N个相等部分,其中N为不小于2的正整数。所述哈希元数据表的每个部分与不同的哈希值范围相关联。特别地,所述哈希值在所述哈希元数据表中以特定顺序排列,例如以升序或降序排列。即,如果所述哈希值按升序排列,则所述哈希元数据表中的第N部分中的哈希值将大于所述哈希元数据表中的第N-1部分中的哈希值。所述哈希元数据表各部分的哈希值范围不会相互重叠。
可选的,所述全局服务器100还可以用于将所述哈希元数据表的第一部分上载到所述存储器103中,如图4所示。特别地,所述哈希元数据表的所述第一部分与所述第一个哈希值范围相关联。相应地,所述全局服务器100可用于基于所述多个块中的所述累积元数据102修改所述哈希元数据表的所述第一部分。
进一步地所述,全局服务器100可用于将转储至所述磁盘存储器104中的每个块的第一片上载到所述存储器103。如图4所示的实施例,所述磁盘存储器104中每个块的大小为1GB,且将每个块的第一片上载到所述存储器中。所述全局服务器100还可以用于迭代所有上载的第一片中的所述元数据102中包括的所述哈希值,并合并属于所述第一个哈希值范围的所述哈希值。特别地,所述第一范围对应于所述存储器103中当前所述哈希元数据表的所述部分。然后,所述全局服务器100还可以用于基于与所述属于所述第一个哈希值范围的合并哈希值相关的所述元数据102,修改存储在所述存储器103中的所述哈希元数据表的所述第一部分
特别地,所述哈希元数据表包括关于所述哈希值集合中每个哈希值的信息以及关于为所述哈希值注册的一个或多个存储服务器110的信息。例如,对于每个哈希值,具有所述哈希值的数据片、与所述哈希值相关联的水印以及关于已请求添加所述哈希值的所述存储服务器110的信息可包含在所述哈希元数据表中。
可能地,在本发明的一个实施例中,从所述存储服务器110接收的请求可以包括添加第一哈希值的请求。相应地,与所述第一哈希值相关的元数据包括添加所述第一哈希值的请求。如果所述第一哈希值属于所述第一个哈希值范围,则当所述第一哈希值不包含在所述哈希元数据表的所述第一部分时,所述全局服务器100可用于将所述第一哈希值添加到所述哈希元数据表的所述第一部分,创建与所述第一哈希值相关联的第一水印,并针对所述第一哈希值注册发送所述请求的所述存储服务器110。所述第一水印指示具有所述第一哈希值的数据片是否在所述存储服务器110之间高度重复。例如,如果所述第一水印的值为1,则意味着有一个存储服务器110请求添加所述第一哈希值。需要说明的是,当所述第一哈希值不包含在所述哈希元数据表的所述第一部分时,意味着虽然所述第一哈希值属于所述第一范围,但当前没有存储在所述全局服务器100中。当所述第一哈希值包含在所述哈希元数据表的所述第一部分中时,所述全局服务器100可用于增大与所述第一哈希值相关联的所述第一水印的值,并针对所述第一哈希值注册发送所述请求的所述存储服务器110。
可能地,在本发明的另一实施例中,从试试水存储服务器110接收的请求可以包括删除第二哈希值的请求。相应地,与所述第二哈希值相关的元数据包括添加所述第二哈希值的请求。类似地,如果所述第二哈希值属于所述第一个哈希值范围,则所述全局服务器100可用于减小与所述第二哈希值相关联的第二水印的值,并针对所述第二哈希值注销发送所述请求的所述存储服务器110。类似地,所述第二水印指示具有所述第二哈希值的数据片是否在所述存储服务器110之间高度重复。另外,当所述第二水印的所述值等于0时,所述全局服务器100可以用于从所述哈希元数据表的所述第一部分中删除所述第二哈希值。需要说明的是,当所述第二水印的所述值等于0时,意味着当前还没有存储服务器110请求增加所述第二哈希值,因此可以从所述哈希元数据表中删除。
值得注意的是,在合并属于所述第一个哈希值范围的所述哈希值的同时,所述全局服务器100可以将所述哈希值插入或从当前位于存储器103的所述哈希元数据表的所述第一部分中删除所述哈希值。基于与相应哈希值相关联的水印是否高于/低于某些阈值,所述全局服务器100将请求从一些存储服务器110接收该哈希值的数据或者将决定清空该哈希值的数据,并将通知所有相关存储服务器110重新声明对该数据的所有权。
特别地,在将所述元数据中包括的属于所述第一个哈希值范围的所述哈希值合并到相应块的第一片中之后,所述全局服务器100还用于将所述块的第二片上载到所述存储器103。所述全局服务器100还用于迭代所述已上载的第二片中的元数据中包括的哈希值。相应地,所述全局服务器100用于合并所述属于所述第一个哈希值范围的哈希值。然后,所述全局服务器100还用于基于与属于所述第一个哈希值范围的所述合并哈希值相关的元数据,修改所述存储器103中存储的所述哈希元数据表的所述第一部分。
应注意,由于所述多个块的片是内部排序的,因此可以有效地确定何时停止对片中的哈希值进行迭代。特别地,如果在一个块的一片中找到不属于所述第一个哈希值范围的哈希值,则所述全局服务器100可用于停止迭代所述片中的所述元数据中包含的所述哈希值。
另一方面,还应注意的是,每个迭代到最后的片之后都应紧接着上载下一个片。这与其他块中的其他片无关。例如,来自块A的第一个片可能尚未被迭代,而来自块B的第三个片将被上载。图5和图6示出了这方面的具体实施例。
图5和图6均基于图3和/或图4所示的实施例。图5示出了全局服务器100的磁盘存储器104中的块1至块4。每个块由三个片组成,每个片填充有与从存储服务器110接收的一个或多个请求相关的元数据。这里,由相应请求指示的哈希值用于表示与该请求相关的元数据。在T0时点,将每个块的第一个片C1上载到所述全局服务器100的所述存储器103中。值得注意的是,在上载所述第一个片之前,所述哈希元数据表的所述第一部分已经上载到所述存储器103,如图6所示。在本实施例中,总哈希范围为h0至h11(12个哈希),分为4部分,所述哈希元数据表的所述第一部分与h0至h2的第一范围相关联。基于h0到h2的所述第一范围,将块1和块2的第一片迭代并合并到最后。然后,在T1时点相应地上载块1和2的第二片,如图5所示。相反,一旦所述全局服务器100分别发现哈希值h8和h3,则停止迭代块3和4的第一片。因此,块3的第一个片属于所述哈希元数据表的第三和第四部分,因此不进行迭代,只迭代块4的第一个片的第一哈希值。值得注意的是,由于所述磁盘存储器104中的每个块(和每个片)都进行了排序,因此也不会将块3和4中的其余片上载。相应地,在T1时点,将块1和块2的第二个片上载到所述存储器103并开始迭代。
进一步地,在迭代已转储至所述磁盘存储器104的每个块的所有已上载片中的元数据中包含的属于第一哈希值范围的哈希值之后,所述全局服务器100可用于将所述哈希元数据表的所述修改后的第一部分持久化至所述磁盘存储器104。即,更新后的数据会相应地覆盖相同部分的旧数据。然后,所述全局服务器100还可以用于将所述哈希元数据表的第二部分上载到所述存储器103,其中所述哈希元数据表的所述第二部分与第二个哈希值范围相关联。相应地,所述全局服务器100可用于基于多个块中的累积元数据102修改所述哈希元数据表的所述第二部分。
所述全局服务器100将逐个检查所述哈希元数据表的每个部分。即,在更新所述磁盘存储器104中的所述哈希元数据表的所述第一部分后,所述全局服务器100将继续更新所述哈希元数据表的第二部分的过程。在更新所述磁盘存储器104中的所述哈希元数据表的所述第二部分之后,所述全局服务器100将继续更新所述哈希元数据表的第三部分的过程,以此类推。
应理解,根据本发明的实施例,此类过程可以每隔X分钟/小时/天执行一次,其中,X为可配置或能够动态变化的正数。这样,所述全局服务器100对哈希值进行排序和存储,并进一步对其按顺序异步处理。因此,所述全局服务器100不需要连续访问所述磁盘存储器104来检索和更新哈希值,而是可以仅处理所述存储器103中的哈希值的一部分。即,所述全局服务器100在处理其中一个部分期间只需要访问所述磁盘存储器104一次或两次。
通过使所述全局服务器100延迟其对所述存储服务器110的响应并离线处理哈希值,所述全局服务器100执行相当于合并排序算法的内容,以便更新存储在其中的主哈希表。由此确保处理存储器中的哈希值序列。这进一步避免了缓存未命中。这样,优化了所述全局服务器100中的内存管理。
图7示出了根据本发明实施例的由全局服务器100执行的用于对多个存储服务器110进行重复数据删除的方法700。特别地,所述全局服务器100是图1的全局服务器100。所述方法700包括:步骤701:对关于哈希值集合的信息101进行维护,其中每个哈希值与全局服务器100和/或存储服务器110中的数据的数据片相关联;步骤702:接收来自一个或多个所述存储服务器110的修改关于一个或多个哈希值的信息101的请求111;步骤703:对与所述一个或多个请求111相关的元数据102进行累积和排序,其中,对于每个请求,所述元数据包括所述请求指示的哈希值和发送所述请求的所述存储服务器110的指示;以及步骤704:当所述累积元数据102达到确定的大小时,基于所述累积元数据102修改所述关于所述一个或多个哈希值的信息101。特别地,所述存储服务器110是图1的存储设备110。对于本领域技术人员来说,步骤701在由所述全局服务器100执行的方法700的实现中可以是可选的。
已经结合作为实例的不同实施例以及实施方案描述了本发明。但本领域技术人员通过实践所请发明,研究附图、本公开以及独立权利要求,能够理解并获得其他变体。在权利要求以及描述中,术语“包括”不排除其他元件或步骤,且“一”并不排除复数可能。单个元件或其它单元可满足权利要求书中所叙述的若干实体或项目的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能在有利的实现方式中使用。
另外,根据本发明实施例的任意方法可以在具有编码方式的计算机程序中实现,当通过处理措施运行时,可使所述处理措施执行方法步骤。计算机程序包括在计算机程序产品的计算机可读介质之中。计算机可读介质基本可以包括任意存储器,如ROM(只读存储器)、PROM(可编程只读存储器)、EPROM(可擦除可编程只读存储器)、闪存、EEPROM(电可擦可编程只读存储器)以及硬盘驱动器。
此外,技术人员将意识到用户设备100和接入节点110包括例如功能、装置、单元、元件等形式的必需的通信能力以用于执行本发明的方案。其它这样的装置、单元、元件和功能的例子有:处理器、存储器、缓冲器、控制逻辑、编码器、解码器、速率匹配器、解速率匹配器、映射单元、乘法器、决策单元、选择单元、开关、交织器、解交织器、调制器、解调器、输入、输出、天线、放大器、接收单元、发送单元、DSP、格栅编码调制(trellis-coded modulation,TCM)编码器、TCM解码器、电源模块、电源馈线、通信接口、通信协议等,均适当地布置在一起以执行方案。
尤其,全局服务器100的处理器和存储服务器110可包括例如中央处理单元(CPU)、处理单元、处理电路、处理器、专用集成电路(ASIC)、微处理器或可解释和执行指令的其它处理逻辑的一个或多个实例。术语“处理器”因此可表示包括多个处理电路的处理电路,所述多个处理电路实例为以上列举项中的任何、一些或所有项。所述处理电路可进一步执行数据处理功能,输入、输出以及处理数据,所述功能包括数据缓冲和装置控制功能,例如,呼叫处理控制、用户界面控制等。

Claims (15)

1.一种全局服务器(100),用于对多个存储服务器(110)进行重复数据删除,其特征在于,所述全局服务器(100)用于存储所述存储服务器(110)的高度重复数据,所述全局服务器(100)用于:
从一个或多个所述存储服务器(110)接收存储或删除数据的请求(111),其中,对一组哈希值进行维护,并且每个哈希值与存储在所述全局服务器(100)和/或所述多个存储服务器(110)中的数据的数据片(chunk)相关联;
对与所述一个或多个请求(111)相关的元数据进行累积和排序,其中,对于每个请求(111),所述元数据包括所述请求指示的哈希值和发送所述请求的所述存储服务器的指示;以及
响应于所述累积元数据(102)达到确定的大小,基于所述累积元数据(102)修改关于所述一个或多个哈希值的信息(101),并处理所述请求。
2.根据权利要求1所述的全局服务器(100),其特征在于,
所述全局服务器(100)包括存储器(103),并且
所述全局服务器(100)用于:
在所述存储器(103)中累积所述元数据(102)。
3.根据权利要求2所述的全局服务器(100),其特征在于,
所述全局服务器(100)还包括磁盘存储器(104),并且
所述全局服务器(100)用于:
响应于所述累积元数据(102)达到所述确定的大小,将所述累积元数据(102)转储至所述磁盘存储器(104)。
4.根据权利要求3所述的全局服务器(100),其特征在于,用于:
响应于所述累积元数据(102)达到所述确定的大小,
将所述元数据填充到多个块(block)中的第一块中,其中,每个块包括相同数量的片,并且每个片填充有与一个或多个请求相关的元数据;
将所述第一块转储至所述磁盘存储器(104);以及
响应于转储至所述磁盘存储器(104)的块的数量超过确定的阈值,
基于所述多个块中的所述累积元数据(102),修改所述关于所述一个或多个哈希值的信息(101)。
5.根据权利要求3或4所述的全局服务器(100),其特征在于,
所述信息(101)包括所述哈希值集合的哈希元数据表,所述哈希元数据表存储在所述磁盘存储器(104)中。
6.根据权利要求5所述的全局服务器(100),其特征在于,用于:
将所述哈希元数据表划分为N个部分,所述N为不小于2的正整数,其中,所述哈希元数据表的每个部分与所述哈希值的不同范围相关联;
将所述哈希元数据表的第一部分上载到所述存储器(103),其中,所述哈希元数据表的所述第一部分与第一个哈希值范围相关联;以及
基于所述多个块中的所述累积元数据(102)修改所述哈希元数据表的所述第一部分。
7.根据权利要求6所述的全局服务器(100),其特征在于,用于:
将转储至所述磁盘存储器(104)的每个块中的第一片上载到所述存储器(103);
迭代所有已上载的第一片中的所述元数据(102)中包含的所述哈希值;
合并属于所述第一个哈希值范围的所述哈希值;以及
基于与属于所述第一个哈希值范围的所述合并哈希值相关的所述元数据(102),修改所述存储器(103)中存储的所述哈希元数据表的所述第一部分。
8.根据权利要求6至7中任一项所述的全局服务器(100),其特征在于,
所述哈希元数据表包括关于所述哈希值集合中每个哈希值的信息以及关于为所述哈希值注册的一个或多个存储服务器(110)的信息。
9.根据权利要求8所述的全局服务器(100),其特征在于,用于:
响应于与属于所述第一个哈希值范围的第一哈希值相关的元数据中包括添加所述第一哈希值的请求:
-响应于所述第一哈希值未包含在所述哈希元数据表的所述第一部分中,将所述第一哈希值添加到所述哈希元数据表的所述第一部分中,创建与所述第一哈希值相关联的第一水印,并且针对所述第一哈希值注册发送所述请求的所述存储服务器,其中,所述第一水印指示具有所述第一哈希值的数据片在所述存储服务器(110)之间是否高度重复;
-响应于所述第一哈希值包含在所述哈希元数据表的所述第一部分中,增加与所述第一哈希值相关联的所述第一水印的值,并且针对所述第一哈希值注册发送所述请求的所述存储服务器(110);和/或
-响应于与属于所述第一个哈希值范围的第二哈希值相关的元数据中包括删除所述第二哈希值的请求:
-减小与所述第二哈希值相关联的第二水印的值,并且针对所述第二哈希值注销发送所述请求的所述存储服务器(110),其中,所述第二水印指示具有所述第二哈希值的数据片在所述存储服务器之间是否高度重复;以及
-响应于所述第二水印的所述值等于0,从所述哈希元数据表的所述第一部分中删除所述第二哈希值。
10.根据权利要求7、9中任一项所述的全局服务器(100),其特征在于,还用于:
在将所述元数据中包含的属于所述第一个哈希值范围的哈希值合并到相应块的第一片中之后,
将所述块的第二片上载到所述存储器(103);
迭代已上载的第二片中的所述元数据中包含的所述哈希值;
合并属于所述第一个哈希值范围的所述哈希值;以及
基于与属于所述第一个哈希值范围的所述合并哈希值相关的所述元数据,修改所述存储器(103)中存储的所述哈希元数据表的所述第一部分。
11.根据权利要求7、9中任一项所述的全局服务器(100),其特征在于,用于:
响应于在一个块的一片中找到不属于所述第一个哈希值范围的哈希值,
停止迭代所述片中的所述元数据中包含的所述哈希值。
12.根据权利要求10所述的全局服务器(100),其特征在于,用于:
在对转储至所述磁盘存储器的每个块的所有已上载的片中的所述元数据中包含的所述属于所述第一个哈希值范围的哈希值进行迭代之后,
将所述哈希元数据表的所述修改后的第一部分持久化到所述磁盘存储器(104);
将所述哈希元数据表的第二部分上载到所述存储器(103),其中,所述哈希元数据表的所述第二部分与第二个哈希值范围相关联;以及
基于所述多个块中的所述累积元数据(102)修改所述哈希元数据表的所述第二部分。
13.一种用于对多个存储服务器(110)进行重复数据删除的系统,其特征在于,包括:根据权利要求1至12中任一项所述的全局服务器(100),以及多个存储服务器(110),用于发送修改关于一个或多个哈希值的信息的请求。
14.一种用于对多个存储服务器(110)进行重复数据删除的方法(700),其特征在于,所述方法由全局服务器(100)执行,所述全局服务器(100)用于存储所述存储服务器(110)的高度重复数据,所述方法包括:
从一个或多个所述存储服务器(110)接收(702)存储或删除数据的请求(111),其中,对一组哈希值进行维护,并且每个哈希值与存储在所述全局服务器(100)和/或所述存储服务器(110)中的数据的数据片相关联;
对与所述一个或多个请求(111)相关的元数据(102)进行累积和排序(703),其中,对于每个请求,所述元数据包括所述请求指示的哈希值和发送所述请求的所述存储服务器(110)的指示;以及
响应于所述累积元数据(102)达到确定的大小,基于所述累积元数据(102)修改(704)关于所述一个或多个哈希值的信息(101),并处理所述请求。
15.一种计算机可读存储介质,其特征在于,包括:计算机程序代码指令,由计算机执行,用于当所述计算机程序代码指令在所述计算机上运行时,执行根据权利要求14所述的方法。
CN201980086632.5A 2019-12-03 2019-12-03 用于重复数据删除中优化的设备、系统和方法 Active CN113227958B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2019/083394 WO2021110241A1 (en) 2019-12-03 2019-12-03 Devices, system and methods for optimization in deduplication

Publications (2)

Publication Number Publication Date
CN113227958A CN113227958A (zh) 2021-08-06
CN113227958B true CN113227958B (zh) 2023-07-18

Family

ID=68806741

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980086632.5A Active CN113227958B (zh) 2019-12-03 2019-12-03 用于重复数据删除中优化的设备、系统和方法

Country Status (4)

Country Link
US (1) US20220291852A1 (zh)
EP (1) EP4014106A1 (zh)
CN (1) CN113227958B (zh)
WO (1) WO2021110241A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022135658A1 (en) * 2020-12-21 2022-06-30 Huawei Technologies Co., Ltd. Method and system of storing data to data storage for variable size deduplication
CN114442931A (zh) * 2021-12-23 2022-05-06 天翼云科技有限公司 一种数据重删方法及系统、电子设备、存储介质
US20230409568A1 (en) * 2022-06-16 2023-12-21 International Business Machines Corporation Monitoring metadata synchronization and aggregation
CN117112514B (zh) * 2023-10-23 2024-01-09 山东同利新材料有限公司 基于对氯甲基苯乙烯生产数据的记录存储方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136243A (zh) * 2011-11-29 2013-06-05 中国电信股份有限公司 基于云存储的文件系统去重方法及装置
CN103959256A (zh) * 2011-11-28 2014-07-30 国际商业机器公司 基于指纹的数据重复删除
CN110401681A (zh) * 2018-04-20 2019-11-01 伊姆西Ip控股有限责任公司 用于数据传输、数据接收的方法以及电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8849767B1 (en) * 2005-04-13 2014-09-30 Netapp, Inc. Method and apparatus for identifying and eliminating duplicate data blocks and sharing data blocks in a storage system
JP5303038B2 (ja) * 2009-09-18 2013-10-02 株式会社日立製作所 重複したデータを排除するストレージシステム
US8402250B1 (en) * 2010-02-03 2013-03-19 Applied Micro Circuits Corporation Distributed file system with client-side deduplication capacity
US8898119B2 (en) * 2010-12-15 2014-11-25 Netapp, Inc. Fingerprints datastore and stale fingerprint removal in de-duplication environments
US9201918B2 (en) * 2013-11-19 2015-12-01 Netapp, Inc. Dense tree volume metadata update logging and checkpointing
US20150213049A1 (en) * 2014-01-30 2015-07-30 Netapp, Inc. Asynchronous backend global deduplication
US9933971B2 (en) * 2015-12-30 2018-04-03 Nutanix, Inc. Method and system for implementing high yield de-duplication for computing applications
US10620862B2 (en) * 2017-03-01 2020-04-14 Tintri By Ddn, Inc. Efficient recovery of deduplication data for high capacity systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959256A (zh) * 2011-11-28 2014-07-30 国际商业机器公司 基于指纹的数据重复删除
CN103136243A (zh) * 2011-11-29 2013-06-05 中国电信股份有限公司 基于云存储的文件系统去重方法及装置
CN110401681A (zh) * 2018-04-20 2019-11-01 伊姆西Ip控股有限责任公司 用于数据传输、数据接收的方法以及电子设备

Also Published As

Publication number Publication date
EP4014106A1 (en) 2022-06-22
US20220291852A1 (en) 2022-09-15
CN113227958A (zh) 2021-08-06
WO2021110241A1 (en) 2021-06-10

Similar Documents

Publication Publication Date Title
CN113227958B (zh) 用于重复数据删除中优化的设备、系统和方法
US12067256B2 (en) Storage space optimization in a system with varying data redundancy schemes
CN103098035B (zh) 存储系统
US9430156B1 (en) Method to increase random I/O performance with low memory overheads
US11886704B2 (en) System and method for granular deduplication
JP6110517B2 (ja) データオブジェクト処理方法及び装置
US9405764B1 (en) Method for cleaning a delta storage system
US8972672B1 (en) Method for cleaning a delta storage system
US9928210B1 (en) Constrained backup image defragmentation optimization within deduplication system
US20200117362A1 (en) Erasure coding content driven distribution of data blocks
US10135462B1 (en) Deduplication using sub-chunk fingerprints
US20130275396A1 (en) Systems and Methods for Selecting Data Compression for Storage Data in a Storage System
KR20170054299A (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
US9612760B2 (en) Modular block-allocator for data storage systems
US10678480B1 (en) Dynamic adjustment of a process scheduler in a data storage system based on loading of the data storage system during a preceding sampling time period
US10108644B1 (en) Method for minimizing storage requirements on fast/expensive arrays for data mobility and migration
US10671306B2 (en) Chunk-based data deduplication
WO2017020576A1 (zh) 一种键值存储系统中文件压实的方法和装置
CN111125033B (zh) 一种基于全闪存阵列的空间回收方法及系统
US11175989B1 (en) Pooling blocks for erasure coding write groups
WO2021012162A1 (zh) 存储系统数据压缩的方法、装置、设备及可读存储介质
US8412824B1 (en) Systems and methods for dynamically managing the migration of a single instance of data between storage devices
CN111124259A (zh) 一种基于全闪存阵列的数据压缩方法及系统
US20180307437A1 (en) Backup control method and backup control device
JP2019159785A (ja) バックアップサーバ、バックアップ方法、プログラム、ストレージシステム

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