CN116578746A - 对象去重方法及装置 - Google Patents
对象去重方法及装置 Download PDFInfo
- Publication number
- CN116578746A CN116578746A CN202310573503.7A CN202310573503A CN116578746A CN 116578746 A CN116578746 A CN 116578746A CN 202310573503 A CN202310573503 A CN 202310573503A CN 116578746 A CN116578746 A CN 116578746A
- Authority
- CN
- China
- Prior art keywords
- hash value
- identifier
- repeated
- metadata
- storage system
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013507 mapping Methods 0.000 claims description 64
- 230000004044 response Effects 0.000 claims description 6
- 239000002699 waste material Substances 0.000 abstract description 8
- 238000011084 recovery Methods 0.000 abstract description 5
- 238000012217 deletion Methods 0.000 description 8
- 230000037430 deletion Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003252 repetitive effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例了提供一种对象去重方法,该方法包括:获取第一对象的第一哈希值和第一对象标识;根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象;在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作;其中,所述第二对象包括在存储系统中与所述第一对象重复的对象。本申请实施例的技术方案通过哈希值和对象标识确定是否存在重复对象。在存在重复对象时,进行重复对象的对象以进行对象的清理,从而尽量优化存储系统的存储资源利用率,尽量避免了存储系统中存储资源浪费。同时,由于减少了重复对象的存储,因此也降低了数据丢失时数据恢复的时间和成本。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种对象去重方法、装置、计算机设备、计算机可读存储介质。
背景技术
随着计算机技术的发展,针对各类数据的海量存储、读写成为了当前的热点问题。在数据存储中,对象存储作为一种重要的数据存储方式,由于其可靠性高、可扩展性强、访问速度快等优势,受到越来越广泛的关注和应用。但是,随着数据量的不断增长,对象存储中会出现大量的重复数据,不仅浪费空间,而且增加管理和维护成本。
需要说明的是,上述内容并不必然是现有技术,也不用于限制本申请的专利保护范围。
发明内容
本申请实施例提供一种对象去重方法、装置、计算机设备、计算机可读存储介质,以解决或缓解上面提出的一项或更多项技术问题。
本申请实施例的一个方面提供了一种对象去重方法,所述方法包括:
获取第一对象的第一哈希值和第一对象标识;
根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象;
在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作;其中,所述第二对象包括在存储系统中与所述第一对象重复的对象。
可选地,所述第一对象为待上传对象。
可选地,根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象,包括:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在未检索到所述第二哈希值的情况下,确定所述第一对象不属于重复对象;
其中,在确定所述第一对象不属于重复对象的情况下,所述第一对象物理存储至所述存储系统中。
可选地,根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象,包括:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识相同的情况下,确定所述第一对象属于重复对象;
其中,在确定所述第一对象属于重复对象的情况下,返回表示响应成功的消息。
可选地,根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象,包括:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识不同的情况下,物理存储所述第一对象;
通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复。
可选地,所述方法还包括:
异步建立第一映射关系,所述第一映射关系表示所述第一对象标识和第一元数据的映射关系;其中,所述第一元数据包括所述第一对象在所述存储系统中的物理存储地址;
异步建立第二映射关系,所述第二映射关系表示所述第一哈希值和所述第一对象标识的映射关系;
对应地,通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复,包括:
在所述第一哈希值和所述第二哈希值产生哈希碰撞,且所述第一对象标识和所述第二对象标识不相同的下,获取所述第一对象标识关联的第一对象以及与所述第二对象标识关联的第二对象;其中,所述第二哈希值和所述第二对象标识为映射关系;
在所述第一对象和所述第二对象逐字节相同的情况下,确定所述第一对象和所述第二对象重复。
可选地,在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作,包括:
在确定所述第一对象和所述第二对象重复的情况下,根据所述第一对象的生命周期信息和所述第二对象的生命周期信息,选择所述第一对象或所述第二对象作为可回收对象;
物理删除所述存储系统中的可回收对象;及
对所述第一对象的第一元数据和/或所述第二对象的第二元数据进行信息更新。
可选地,通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复,还包括:
在所述第一对象和所述第二对象没有逐字节相同的情况下,确定所述第一对象和所述第二对象不重复。
可选地,获取所述第一对象标识关联的第一对象以及与所述第二对象标识关联的第二对象,包括:
通过所述第一对象标识,获取所述第一对象的第一元数据;
通过所述第二对象标识,获取所述第二对象的第二元数据;
其中,第一元数据用于在所述存储系统中定位所述第一对象,所述第二元数据用于定位所述第二对象,所述第二元数据包括所述第二对象在所述存储系统中的物理存储地址。
可选地,所述第一对象为已存储对象。
可选地,根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象,包括:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在没有检索到所述第二哈希值的情况下,确定所述第一对象不属于重复对象。
可选地,根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象,包括:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识不同的情况下,获取所述第一对象标识关联的第一对象以及与所述第二对象标识关联的第二对象;
通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复。
可选地,在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作,包括:
在确定所述第一对象和所述第二对象重复的情况下,根据所述第一对象的生命周期信息和所述第二对象的生命周期信息,选择所述第一对象或所述第二对象作为可回收对象;
物理删除所述存储系统中的可回收对象;及
对所述第一对象的第一元数据和/或所述第二对象的第二元数据进行信息更新。
可选地,通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复,还包括:
在所述第一对象和所述第二对象没有逐字节相同的情况下,确定所述第一对象和所述第二对象不重复。
本申请实施例的另一个方面提供了一种对象去重装置,所述装置包括:
获取模块,用于获取第一对象的第一哈希值和第一对象标识;
确定模块,用于根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象;
去重模块,用于在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作;其中,所述第二对象包括在存储系统中与所述第一对象重复的对象。
本申请实施例的另一个方面提供了一种计算机设备,包括:
至少一个处理器;及
与所述至少一个处理器通信连接的存储器;
其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
本申请实施例的另一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的方法。
本申请实施例采用上述技术方案可以包括如下优势:可以通过哈希值和对象标识确定是否存在重复对象。在存在重复对象时,进行重复对象的对象以进行对象的清理,从而尽量优化存储系统的存储资源利用率,尽量避免了存储系统中存储资源浪费。同时,由于减少了重复对象的存储,因此也降低了数据丢失时数据恢复的时间和成本。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示意性示出了根据本申请实施例一的对象去重方法的运行环境图;
图2示意性示出了根据本申请实施例一的对象去重方法的流程图;
图3示意性示出了在示例性应用中的处理架构;
图4示意性示出了在示例性应用中的处理流程;
图5示意性示出了根据本申请实施例二的对象去重装置的框图;及
图6示意性示出了根据本申请实施例三中的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
首先,提供本申请涉及的术语解释:
对象存储:是一种计算机数据存储架构,它将数据作为对象进行管理,每个对象通常包括数据本身、数量不等的元数据和一个全局唯一的标识符(Obje ct ID)。
存储对象:是云存储中最基本的概念,指的是用户在云存储中上传的文件或数据。每个对象都有唯一的标识符(Object ID),可以通过这个标识符访问和操作对象。
哈希碰撞:两个或多个键值被哈希函数计算到了相同的索引位置上,从而形成了冲突的情况。
物理删除:是从存储介质中删除数据。
MD5:全称为Message-Digest Algorithm 5,是一种常用的哈希函数(HashFunction),用于将任意长度的消息压缩为一个128位的消息摘要(Message Digest)。MD5可以用于数据完整性校验、密码加密等领域。
存储桶(Bucket):存储对象的容器,用来存储对象。每个桶都有唯一的名称,可以在桶中创建、删除和管理存储对象。桶可以看成是顶层的目录或容器,包含了多个对象。
ObjectName:对象的键名,用于引用Bucket中的特定对象,一个Bucket内ObjectName是唯一的。
ObjectKey:对象存储系统的对象的唯一标识,等于Bucket/ObjectName。
索引:一种数据结构,它能够加快数据查找的速度。索引数据节点中有着实际文件的存储地址,因为索引是根据特定的规则和算法构建的,在查找的时候遵循索引的规则可以快速查找到对应数据的节点,从而达到快速查找数据的效果。
哈希索引(Hash Index):是基于哈希表实现的,精确匹配索引的所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(Hash Code),哈希码是一个较小的值,并且不同键值的行计算出来的哈希码也不一样。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。
其次,为方便本领域技术人员理解本申请实施例提供的技术方案,下面对相关技术进行说明:
对象存储技术是一种分布式存储技术,用于存储和管理大规模数据对象,它通过提供高度可扩展的、高度可靠的数据存储解决方案,满足了应用程序处理大规模数据的需求。在对象存储系统中重复数据的存在会导致存储空间的浪费,同时也会增加数据恢复的时间和成本。具体来说,本发明人发现:1.对于重复上传的数据,对象存储系统没有明确的去重方法,重复数据会申请新的存储空间,造成资源浪费;2.对于已经写入存储系统的重复数据,没有明确的重复数据消除方法。
为此,本申请实施例提供了一种技术方案来消除对象存储系统中的重复数据。具体见后文。
最后,为了方便理解,下面提供一个示例性运行环境。
如图1所示,环境示意图包括存储系统2、网络4、客户端6,其中:
存储系统2,作为存储平台,可以由多个计算设备构成。该多个计算设备可以包括虚拟化计算实例。虚拟化计算实例可以包括虚拟机,诸如计算机系统的仿真,操作系统,服务器等。计算设备可以基于定义用于仿真的特定软件(例如,操作系统,专用应用程序,服务器)的虚拟映像和/或其他数据来加载虚拟机。随着对不同类型的处理服务的需求改变,可以在一个或多个计算设备上加载和/或终止不同的虚拟机。可以实现管理程序以管理同一个计算设备上的不同虚拟机的使用。存储系统2可以包括不同的存储功能,如存储对象、存储元数据等。
在一些实施例中,存储系统2由多个存储节点组成,形成分布式结构。分布式存储系统可以采用各类组网方式,其中每个存储节点用于提供计算和存储服务。存储节点的数量可以根据实际需求进行配置。存储节点可以是磁盘,或其他非易失性存储介质。以磁盘为例,存储单元可以是单个磁盘,也可以是多个磁盘形成的磁盘阵列。
在一些实施例中,存储系统2可以有多种存储形式,其中,对象存储即是其中一种存储形式。对象存储在于将数据存储为对象,每个对象可以分别绑定一个唯一的标识符。这种存储形式可以由很高的可扩展性和可用性,并支持大型数据集。分布式存储系统可以采用Amazon S3(亚马逊公司提供的对象存储服务)等各类架构管理。
存储系统2可以提供存储、读取、写入、查询、删除等服务。
存储系统2可以被配置为通过网络4与客户端6等通信。
客户端6,可以提供有用户访问页面,使用于可以操控存储系统2或上传对象等。
下面以存储系统2为执行主体,通过多个实施例介绍本申请的技术方案。须知,这些实施例可以由多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。
实施例一
图2示意性示出了根据本申请实施例一的对象去重方法的流程图。
如图2所示,该对象去重方法可以包括步骤S200~S204,其中:
步骤S200,获取第一对象的第一哈希值和第一对象标识。
所述第一哈希值:可以通过哈希函数(Hash Function)将所述第一对象的文件或数据映射到预设长度的输出(第一哈希值)。输入、输出可以是任何二进制数据。
第一对象标识:可以是第一对象的唯一标识(ObjectKey),一个Bucket内的标识是唯一的。
在本实施例中,所述第一对象可以是存储系统2中的已存储对象,也可以是待上传对象。
在本实施例中,所述第一对象可以是文件、图片、音频等不同类型的数据。
以所述第一对象是一个文件为例,可以使用以下方式获取所述第一哈希值和所述第一标识符:访问该文件并获取其文件名作为所述第一标识符。使用MD5算法对该文件进行哈希处理以获得第一哈希值。第一哈希值和所述第一标识符映射关联。在一些实施例中,也可以使用其他哈希算法生成第一哈希值,如SHA-1、SHA-256等。
步骤S202,根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象。
存储系统2存储有海量对象,这些海量对象中可能存在大量重复对象,造成存储资源浪费。
所述第一对象无论是已存储对象还是待上传对象,都应该尽量避免上述重复存储行为。
为此,可以通过所述第一对象的第一哈希值和存储系统2中的其他对象的哈希值进行比较,通过比较结果可以初步判定所述第一对象是否和存储系统2的其他对象重复。还可以通过所述第一对象标识进一步地确定所述第一对象是否属于重复对象。
具体而言,存储系统2中存储有多个对象,每个对象都有一个唯一的对象标识和一个哈希值。如果要判断第一对象否为重复对象,首先需要获得第一对象的第一哈希值,然后将该第一哈希值与存储系统2中存储的多个对象(其他对象)的哈希值逐一进行比较。如果均不相同,则判定第一对象与其他对象均不重复,即第一对象不是重复对象。如果存在某个对象的哈希值与第一对象的第一哈希值相同,则再比较它们的对象标识是否相同。如果两者都相同,则判定第一对象为重复对象。如果存在某个对象的哈希值与第一对象的第一哈希值相同,但这个对象的对象标识和第一对象的第一对象标识不相同,则需要做进一步的判断。
综合比较的结果有以下三种情况:
第一种:没有与所述第一哈希值相同的哈希值(其他对象的),则判定第一对象不属于重复对象;
第二种:有与所述第一哈希值相同的哈希值(其他对象的),且对象标识相同,则判定第一对象属于重复对象;
第三种:有与所述第一哈希值相同的哈希值(其他对象的),但二者对应的对象标识不同,则需要做进一步的判断。
步骤S204,在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作;其中,所述第二对象包括在存储系统中与所述第一对象重复的对象。
若第一对象为待上传到存储系统2中的对象,则拒绝储存所述第一对象。
若第一对象为存储系统2中的已存储对象,则物理删除第一对象或第二对象,留下一个。
本实施例提供的对象去重方法,可以通过哈希值和对象标识确定是否存在重复对象。在存在重复对象时,进行重复对象的对象以进行对象的清理,从而尽量优化存储系统2的存储资源利用率,尽量避免了存储系统2中存储资源浪费。同时,由于减少了重复对象的存储,因此也降低了数据丢失时数据恢复的时间和成本。
如上文所述,第一对象可以是存储系统2中的已存储对象,也可以是待上传对象。不同的对象类型可能对应不同的应对策略。下面对这两种对象类型的操作分别进一步介绍。
在可选的实施例中,所述第一对象为待上传对象。当第一对象为重复对象时,可以拒绝存储第一对象,从而不需要申请新的存储空间,降低带宽和存储资源的浪费。
作为待上传对象,第一对象可能会遇到多种情况:
情况(一):存储系统2中没有与第一对象的第一哈希值相同的哈希值;
情况(二):存储系统2中有与第一哈希值相同的哈希值(第二哈希值);
情况(二)可以包括情况(1)和情况(2):
情况(1):第一哈希值对应的第一对象标识和第二哈希值对应的第二对象标识相同;
情况(2):第一哈希值对应的第一对象标识和第二哈希值对应的第二对象标识不相同。
下面将介绍各种情况。
情况(一)
在可选的实施例中,步骤S202“根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象”可以包括:检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;在未检索到所述第二哈希值的情况下,确定所述第一对象不属于重复对象;其中,在确定所述第一对象不属于重复对象的情况下,所述第一对象物理存储至所述存储系统中。
哈希函数具备抗碰撞(collision resistance)和不可逆(one-way)的特性。
不同的对象即使差异微小,也会产生不同的哈希值。在未检索到所述第二哈希值的情况下,说明存储系统2中没有与所述第一对象重复的对象,因此接受所述第一对象的上传并存储。在本可选的实施例中,可以有效地保障上传的对象是新数据。
情况(二)中的情况(1)
在可选的实施例中,步骤S202“根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象”可以包括:检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识相同的情况下,确定所述第一对象属于重复对象;其中,在确定所述第一对象属于重复对象的情况下,拒绝存储所述第一对象并返回表示响应成功的消息。
以哈希值为MD5为例,MD5值出现哈希碰撞的概率为1/(2^128),对象标识相同说明是同一个上传方,同一个上传方的待上传对象出现MD5哈希碰撞的情况可以忽略。
上述实施例中,第一对象和第二对象的哈希值和对象标识均相同,说明第一对象和第二对象为重复对象。故存储系统2可以拒绝存储第一对象,降低带宽和存储资源的浪费。由于存储系统2中存在与第一对象相同的第二对象,虽然第一对象被拒绝存储,但是该第一对象的上传请求是响应成功的,因此返回表示响应成功的消息。
情况(二)中的情况(2)
在可选的实施例中,步骤S202“根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象”可以包括:检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识不同的情况下,物理存储所述第一对象;通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复。
在一些情况下,哈希碰撞不代表数据完全一致。因此,在第一对象和第二对象的哈希值相同但是对象标识不同的情况下,先接受所述第一对象的上传并存储,确保上传效率。然后,在所述第一对象存储到存储系统2之后,再进一步比较所述第一对象和所述第二对象是否相同,根据比较结果来确定是否进行对象的清理。
为了不影响所述第一对象的上传,所述第一对象和所述第二对象的比较可以异步实施。
在可选的实施例中,在物理存储所述第一对象之后,所述方法还可以包括:
异步建立第一映射关系,所述第一映射关系表示所述第一对象标识和第一元数据的映射关系;其中,所述第一元数据包括所述第一对象在所述存储系统中的物理存储地址;
异步建立第二映射关系,所述第二映射关系表示所述第一哈希值和所述第一对象标识的映射关系;需要说明的是,所述第二映射关系也可以称之为哈希索引;
对应地,通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复,包括:
在所述第一哈希值和所述第二哈希值产生哈希碰撞,且所述第一对象标识和所述第二对象标识不相同的下,获取所述第一对象标识关联的第一对象以及与所述第二对象标识关联的第二对象;其中,所述第二哈希值和所述第二对象标识为映射关系;
在所述第一对象和所述第二对象逐字节相同的情况下,确定所述第一对象和所述第二对象重复。
举例来说,存储系统2中存储有大量对象。每个对象分别关联有元数据。对象的元数据可以包括对象的各种信息,如名称、大小、所属者、创建时间、届满时间、物理存储地址。为了便于管理和提高管理效率,存储有两层映射关系。两层映射关系如下:
(1)对象的对象标识和对象的元数据之间的第一层映射关系;
(2)对象的对象标识和对象的哈希值之间的第二层映射关系(哈希索引)。
上述两层映射关系的关系数据可以保存在元数据服务器中,也可以保存在其他地方。
因此,在物理存储所述第一对象之后,同样要对所述第一对象建立和存储上述两层映射关系。然后,基于上述两层映射关系(第一映射关系和第二映射关系)中的内容判定所述第一对象是否属于重复对象。具体地,若第一对象的第一哈希值和存储系统2中的某个对象的哈希值(第二对象的第二哈希值)相同,但是第一对象的第一对象标识和第二对象的第二对象标识不同,则再进一步比较所述第一对象和所述第二对象是否相同,根据比较结果来确定是否进行对象的清理。若所述第一对象和所述第二对象相同,则物理删除所述第一对象或所述第二对象。需要说明的是,所述第一对象的映射关系的建立、是否属于重复对象的判定和删除均是异步执行的。这样,在确保上传效率的同时,也可以有效去除重复对象。
在可选的实施例中,步骤S204“在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作”包括:
在确定所述第一对象和所述第二对象重复的情况下,根据所述第一对象的生命周期信息和所述第二对象的生命周期信息,选择所述第一对象或所述第二对象作为可回收对象;
物理删除所述存储系统中的可回收对象;及
对所述第一对象的第一元数据和/或所述第二对象的第二元数据进行信息更新。
一个对象从创建到删除的全过程,称之为对象的生命周期。为了节省空间,需要将生命周期结束(过期)的对象删除。当两个对象重复时,则可以删除生命周期结束时间在先的那个对象作为可回收对象。当两个对象重复并且命周期结束时间相同,则选择上传时间晚的那个对象作为可回收对象。另外,将可回收对象的元数据进行更新。例如,当对象A和对象B重复并物理删除对象A的情形下,可以更新对象A的元数据,如将对象A的元数据中的物理存储地址更新为对象B的物理存储地址,从而可以通过对象A的元数据访问到对象B。在本实施例中,基于生命周期信息决定重复对象的删除,进一步优化了重复数据的删除。
在可选的实施例中,通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复,还包括:
在所述第一对象和所述第二对象没有逐字节相同的情况下,确定所述第一对象和所述第二对象不重复。
上述可选的实施例中,第一对象和第二对象没有逐字节相同,说明第一对象和第二对象不是重复对象。故,所述第一对象可以被存储到存储系统2中,以实现对象存储。
在存储系统2中,不同的对象对应不同的物理存储地址。
其中,“获取所述第一对象标识关联的第一对象以及与所述第二对象标识关联的第二对象”可以包括:
通过所述第一对象标识,获取所述第一对象的第一元数据;
通过所述第二对象标识,获取所述第二对象的第二元数据;
其中,第一元数据用于在所述存储系统中定位所述第一对象,所述第二元数据用于定位所述第二对象,所述第二元数据包括所述第二对象在所述存储系统中的物理存储地址。
在哈希值相同但对象标识不同的情况下,通过各自的对象标识查找到各自的物理存储地址,进而通过各自的物理存储地址读取存储系统2中的第一对象、第二对象。这种通过哈希索引先做哈希碰撞,然后基于对象标识查询和读取对象的方式,可以高效地确定重复对象,进而进行重复对象的清理,节省了重复数据导致的存储资源。
在可选的实施例中,所述第一对象为已存储对象。当第一对象为重复对象时,执行去重操作,以缓解存储系统2中重复数据导致的存储资源费,降低数据恢复的时间和成本。
作为已存储对象,第一对象可能会遇到多种情况:
情况(一):存储系统2中没有与第一对象的第一哈希值相同的哈希值;
情况(二):存储系统2中有与第一哈希值相同的哈希值(第二哈希值);
情况(二)可以包括情况(1)和情况(2):
情况(1):第一哈希值对应的第一对象标识和第二哈希值对应的第二对象标识相同;
情况(2):第一哈希值对应的第一对象标识和第二哈希值对应的第二对象标识不相同。
下面将介绍各种情况。
情况(一)
在可选的实施例中,步骤S202“根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象”可以包括:检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;在没有检索到所述第二哈希值的情况下,确定所述第一对象不属于重复对象。不同的对象即使差异微小,也会产生不同的哈希值。在未检索到第二哈希值的情况下,说明存储系统2中没有与第一对象重复的对象。在本实施例中,可以通过哈希碰撞高效地确定第一对象不属于重复对象。
情况(二)中的情况(1)
在可选的实施例中,步骤S202“根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象”可以包括:检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识相同的情况下,确定所述第一对象属于重复对象。
上述实施例中,第一对象和第二对象的哈希值和对象标识均相同,说明第一对象和第二对象为重复对象。故存储系统2可以执行去重操作,降低存储资源的浪费。
情况(二)中的情况(2)
在可选的实施例中,步骤S202“根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象”可以包括:检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识不同的情况下,获取所述第一对象标识关联的第一对象以及与所述第二对象标识关联的第二对象;通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复。在本实施例中,在第一对象和第二对象的哈希值相同但是对象标识不同的情况下,进一步比较所述第一对象和所述第二对象是否相同,根据比较结果来确定是否进行对象的清理。
在可选的实施例中,步骤S204“在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作”包括:
在确定所述第一对象和所述第二对象重复的情况下,根据所述第一对象的生命周期信息和所述第二对象的生命周期信息,选择所述第一对象或所述第二对象作为可回收对象;
物理删除所述存储系统中的可回收对象;及
对所述第一对象的第一元数据和/或所述第二对象的第二元数据进行信息更新。
一个对象从创建到删除的全过程,称之为对象的生命周期。为了节省空间,需要将生命周期结束(过期)的对象删除。当两个对象重复时,则可以删除生命周期结束时间在先的那个对象作为可回收对象。当两个对象重复并且命周期结束时间相同,则选择上传时间晚的那个对象作为可回收对象。另外,将可回收对象的元数据进行更新。例如,当对象A和对象B重复并物理删除对象A的情形下,可以更新对象A的元数据,如将对象A的元数据中的物理存储地址更新为对象B的物理存储地址,从而可以通过对象A的元数据访问到对象B。在本实施例中,基于生命周期信息决定重复对象的删除,进一步优化了重复数据的删除。
在可选的实施例中,通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复,还包括:
在所述第一对象和所述第二对象没有逐字节相同的情况下,确定所述第一对象和所述第二对象不重复。
上述可选的实施例中,第一对象和第二对象没有逐字节相同,说明第一对象和第二对象不是重复对象。故,所述第一对象可以被继续存储在存储系统2中,以实现对象存储。
为了使得本申请更加容易理解,以下结合图3和图4提供一个示例性应用。
在该示例性应用中,对于数据存储,可以设置两层映射关系,一层映射关系是(bucket/objectName,meta),另一层映射关系是(MD5,bucket/objectNa me)。
通过S3网关上传对象object_1元数据meta_1时,如果object_1元数据已存在(根据bucket/objectName进行判断)且MD5值相同,则更新元数据其它信息后直接返回。
若MD5值相同但是对象标识(bucket/objectName)不同的情况下,上传object_1(S400)及执行如下操作:
S402:计算节点读取object_1的MD5值。
S404:计算节点以object_1的MD5值为key,object_1的ObjectKey为va lue异步创建哈希索引(即第二层映射关系)。
S406:计算节点判断是否出现哈希碰撞。
如果未出现哈希碰撞,则异步流程结束。
如果哈希索引已存在,说明存储系统中存在与object_1MD5值一样的obje ct_2,进入S408。
S408:计算节点根据建立的哈希索引读取碰撞对象object_2中的object_2MD5指向的object_2_name。
S410:计算节点根据object_2_name获取object_2元数据meta_2。
S412:计算节点将两个对象的元数据[meta_1,meta_2]以生产者角色发送到消息队列。
S414:离线任务以消费者角色读取消息队列中的上述消息。
S416:离线任务从存储节点中读取两个对象的数据。
S418:离线任务对两个对象的数据进行逐字节比较。
S420:离线任务判断两个对象的数据是否完全相同。
如果否,则异步流程结束;如果是,进入S422。
S422:离线任务根据两个对象的过期时间和创建时间确定(筛选)可回收对象。
筛选逻辑为:如果有过期时间选择过期时间早的对象,如果没有则选择上传时间晚的对象。
S424:离线任务更新可回收对象元数据的物理存储位置信息,指向与其碰撞的对象物理存储位置;
S426:存储节点释放可回收对象的物理存储资源。
实施例二
图5示意性示出了根据本申请实施例二的对象去重装置的框图,该对象去重装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。如图5所示,该对象去重装置500可以包括:获取模块510、确定模块520、去重模块530,其中:
获取模块510,用于获取第一对象的第一哈希值和第一对象标识;
确定模块520,用于根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象;
去重模块530,用于在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作;其中,所述第二对象包括在存储系统中与所述第一对象重复的对象。
在可选的实施例中,所述第一对象为待上传对象。
在可选的实施例中,所述确定模块520还用于:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在未检索到所述第二哈希值的情况下,确定所述第一对象不属于重复对象;
其中,在确定所述第一对象不属于重复对象的情况下,所述第一对象物理存储至所述存储系统中。
在可选的实施例中,所述确定模块520还用于:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识相同的情况下,确定所述第一对象属于重复对象;
其中,在确定所述第一对象属于重复对象的情况下,返回表示响应成功的消息。
在可选的实施例中,所述确定模块520还用于:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识不同的情况下,物理存储所述第一对象;
通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复。
在可选的实施例中,所述装置还包括异步模块,用于:
异步建立第一映射关系,所述第一映射关系表示所述第一对象标识和第一元数据的映射关系;其中,所述第一元数据包括所述第一对象在所述存储系统中的物理存储地址;
异步建立第二映射关系,所述第二映射关系表示所述第一哈希值和所述第一对象标识的映射关系;
对应地,所述确定模块520还用于:
在所述第一哈希值和所述第二哈希值产生哈希碰撞,且所述第一对象标识和所述第二对象标识不相同的下,获取所述第一对象标识关联的第一对象以及与所述第二对象标识关联的第二对象;其中,所述第二哈希值和所述第二对象标识为映射关系;
在所述第一对象和所述第二对象逐字节相同的情况下,确定所述第一对象和所述第二对象重复。
在可选的实施例中,所述去重模块530还用于:
在确定所述第一对象和所述第二对象重复的情况下,根据所述第一对象的生命周期信息和所述第二对象的生命周期信息,选择所述第一对象或所述第二对象作为可回收对象;
物理删除所述存储系统中的可回收对象;及
对所述第一对象的第一元数据和/或所述第二对象的第二元数据进行信息更新。
在可选的实施例中,所述确定模块520还用于:
在所述第一对象和所述第二对象没有逐字节相同的情况下,确定所述第一对象和所述第二对象不重复。
在可选的实施例中,所述确定模块520还用于:
通过所述第一对象标识,获取所述第一对象的第一元数据;
通过所述第二对象标识,获取所述第二对象的第二元数据;
其中,第一元数据用于在所述存储系统中定位所述第一对象,所述第二元数据用于定位所述第二对象,所述第二元数据包括所述第二对象在所述存储系统中的物理存储地址。
在可选的实施例中,所述第一对象为已存储对象。
在可选的实施例中,所述确定模块520还用于:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在没有检索到所述第二哈希值的情况下,确定所述第一对象不属于重复对象。
在可选的实施例中,所述确定模块520还用于:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识不同的情况下,获取所述第一对象标识关联的第一对象以及与所述第二对象标识关联的第二对象;
通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复。
在可选的实施例中,所述去重模块530还用于:
在确定所述第一对象和所述第二对象重复的情况下,根据所述第一对象的生命周期信息和所述第二对象的生命周期信息,选择所述第一对象或所述第二对象作为可回收对象;
物理删除所述存储系统中的可回收对象;及
对所述第一对象的第一元数据和/或所述第二对象的第二元数据进行信息更新。
在可选的实施例中,所述确定模块520还用于:
在所述第一对象和所述第二对象没有逐字节相同的情况下,确定所述第一对象和所述第二对象不重复。
实施例三
图6示意性示出了根据本申请实施例三的适于实现对象去重方法的计算机设备10000的硬件架构示意图。在一些实施例中,计算机设备10000可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或多个服务器所组成的服务器集群)等。如图6所示,所述计算机设备10000包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(如,SD或DX存储器)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如对象去重方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(WidebandCode Divi sion Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetoo th)、Wi-Fi等无线或有线网络。
需要指出的是,图6仅示出了具有部件10010-10030的计算机设备,但是应该理解的是,并不要求实施所有示出的部件,可以替代地实施更多或者更少的部件。
在本实施例中,存储于存储器10010中的对象去重方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(如处理器10020)所执行,以完成本申请实施例。
实施例四
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,其中,计算机程序被处理器执行时实现实施例中的对象去重方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEP ROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中对象去重方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算机设备来实现,它们可以集中在单个的计算机设备上,或者分布在多个计算机设备所组成的网络上,可选地,它们可以用计算机设备可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算机设备来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
需要说明的是,以上仅为本申请的优选实施例,并非因此限制本申请的专利保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (17)
1.一种对象去重方法,其特征在于,所述方法包括:
获取第一对象的第一哈希值和第一对象标识;
根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象;
在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作;其中,所述第二对象包括在存储系统中与所述第一对象重复的对象。
2.根据权利要求1所述的方法,其特征在于,所述第一对象为待上传对象。
3.根据权利要求2所述的方法,其特征在于,根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象,包括:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在未检索到所述第二哈希值的情况下,确定所述第一对象不属于重复对象;
其中,在确定所述第一对象不属于重复对象的情况下,所述第一对象物理存储至所述存储系统中。
4.根据权利要求2所述的方法,其特征在于,根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象,包括:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识相同的情况下,确定所述第一对象属于重复对象;
其中,在确定所述第一对象属于重复对象的情况下,返回表示响应成功的消息。
5.根据权利要求2所述的方法,其特征在于,根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象,包括:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识不同的情况下,物理存储所述第一对象;
通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
异步建立第一映射关系,所述第一映射关系表示所述第一对象标识和第一元数据的映射关系;其中,所述第一元数据包括所述第一对象在所述存储系统中的物理存储地址;
异步建立第二映射关系,所述第二映射关系表示所述第一哈希值和所述第一对象标识的映射关系;
对应地,通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复,包括:
在所述第一哈希值和所述第二哈希值产生哈希碰撞,且所述第一对象标识和所述第二对象标识不相同的下,获取所述第一对象标识关联的第一对象以及与所述第二对象标识关联的第二对象;其中,所述第二哈希值和所述第二对象标识为映射关系;
在所述第一对象和所述第二对象逐字节相同的情况下,确定所述第一对象和所述第二对象重复。
7.根据权利要求6所述的方法,其特征在于,在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作,包括:
在确定所述第一对象和所述第二对象重复的情况下,根据所述第一对象的生命周期信息和所述第二对象的生命周期信息,选择所述第一对象或所述第二对象作为可回收对象;
物理删除所述存储系统中的可回收对象;及
对所述第一对象的第一元数据和/或所述第二对象的第二元数据进行信息更新。
8.根据权利要求6所述的方法,其特征在于,通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复,还包括:
在所述第一对象和所述第二对象没有逐字节相同的情况下,确定所述第一对象和所述第二对象不重复。
9.根据权利要求6、7或8所述的方法,其特征在于,获取所述第一对象标识关联的第一对象以及与所述第二对象标识关联的第二对象,包括:
通过所述第一对象标识,获取所述第一对象的第一元数据;
通过所述第二对象标识,获取所述第二对象的第二元数据;
其中,第一元数据用于在所述存储系统中定位所述第一对象,所述第二元数据用于定位所述第二对象,所述第二元数据包括所述第二对象在所述存储系统中的物理存储地址。
10.根据权利要求1所述的方法,其特征在于,所述第一对象为已存储对象。
11.根据权利要求10所述的方法,其特征在于,根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象,包括:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在没有检索到所述第二哈希值的情况下,确定所述第一对象不属于重复对象。
12.根据权利要求10所述的方法,其特征在于,根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象,包括:
检索与所述第一哈希值相同的第二哈希值,所述第二哈希值映射第二对象标识;
在检索到所述第二哈希值,且所述第一对象标识和所述第二对象标识不同的情况下,获取所述第一对象标识关联的第一对象以及与所述第二对象标识关联的第二对象;
通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复。
13.根据权利要求12所述的方法,其特征在于,在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作,包括:
在确定所述第一对象和所述第二对象重复的情况下,根据所述第一对象的生命周期信息和所述第二对象的生命周期信息,选择所述第一对象或所述第二对象作为可回收对象;
物理删除所述存储系统中的可回收对象;及
对所述第一对象的第一元数据和/或所述第二对象的第二元数据进行信息更新。
14.根据权利要求12所述的方法,其特征在于,通过比较所述第一对象和所述第二对象,确定所述第一对象和所述第二对象是否重复,还包括:
在所述第一对象和所述第二对象没有逐字节相同的情况下,确定所述第一对象和所述第二对象不重复。
15.一种对象去重装置,其特征在于,所述装置包括:
获取模块,用于获取第一对象的第一哈希值和第一对象标识;
确定模块,用于根据所述第一哈希值和所述第一对象标识,确定所述第一对象是否属于重复对象;
去重模块,用于在确定所述第一对象属于重复对象的情况下,对所述第一对象或第二对象执行去重操作;其中,所述第二对象包括在存储系统中与所述第一对象重复的对象。
16.一种计算机设备,其特征在于,包括:
至少一个处理器;及
与所述至少一个处理器通信连接的存储器;其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至14中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310573503.7A CN116578746A (zh) | 2023-05-19 | 2023-05-19 | 对象去重方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310573503.7A CN116578746A (zh) | 2023-05-19 | 2023-05-19 | 对象去重方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116578746A true CN116578746A (zh) | 2023-08-11 |
Family
ID=87537418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310573503.7A Pending CN116578746A (zh) | 2023-05-19 | 2023-05-19 | 对象去重方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116578746A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117635402A (zh) * | 2024-01-25 | 2024-03-01 | 中国人民解放军国防科技大学 | 智慧流调系统、方法、计算机设备和存储介质 |
CN117762336A (zh) * | 2023-12-22 | 2024-03-26 | 柏域信息科技(上海)有限公司 | 针对Ceph对象的定期删除方法、装置及设备 |
CN117762335A (zh) * | 2023-12-22 | 2024-03-26 | 柏域信息科技(上海)有限公司 | 针对Ceph对象的写入方法、装置、设备及存储介质 |
CN117857468A (zh) * | 2024-01-05 | 2024-04-09 | 合肥卓讯云网科技有限公司 | 一种基于dpdk的网络数据包去重方法和装置 |
-
2023
- 2023-05-19 CN CN202310573503.7A patent/CN116578746A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117762336A (zh) * | 2023-12-22 | 2024-03-26 | 柏域信息科技(上海)有限公司 | 针对Ceph对象的定期删除方法、装置及设备 |
CN117762335A (zh) * | 2023-12-22 | 2024-03-26 | 柏域信息科技(上海)有限公司 | 针对Ceph对象的写入方法、装置、设备及存储介质 |
CN117762336B (zh) * | 2023-12-22 | 2024-07-26 | 柏域信息科技(上海)有限公司 | 针对Ceph对象的定期删除方法、装置及设备 |
CN117762335B (zh) * | 2023-12-22 | 2024-09-10 | 柏域信息科技(上海)有限公司 | 针对Ceph对象的写入方法、装置、设备及存储介质 |
CN117857468A (zh) * | 2024-01-05 | 2024-04-09 | 合肥卓讯云网科技有限公司 | 一种基于dpdk的网络数据包去重方法和装置 |
CN117635402A (zh) * | 2024-01-25 | 2024-03-01 | 中国人民解放军国防科技大学 | 智慧流调系统、方法、计算机设备和存储介质 |
CN117635402B (zh) * | 2024-01-25 | 2024-05-17 | 中国人民解放军国防科技大学 | 智慧流调系统、方法、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9792306B1 (en) | Data transfer between dissimilar deduplication systems | |
US10983961B2 (en) | De-duplicating distributed file system using cloud-based object store | |
CN116578746A (zh) | 对象去重方法及装置 | |
US8112463B2 (en) | File management method and storage system | |
US8751763B1 (en) | Low-overhead deduplication within a block-based data storage | |
US10908834B2 (en) | Load balancing for scalable storage system | |
CN103119551B (zh) | 优化的恢复 | |
US20200117543A1 (en) | Method, electronic device and computer readable storage medium for data backup and recovery | |
CN110908589B (zh) | 数据文件的处理方法、装置、系统和存储介质 | |
CN109032803B (zh) | 数据处理方法和装置、客户端 | |
US20140195575A1 (en) | Data file handling in a network environment and independent file server | |
CN111209120A (zh) | 微服务的数据同步方法、装置及计算机可读存储介质 | |
CN103369002A (zh) | 一种资源下载的方法及系统 | |
CN104123102B (zh) | 一种ip硬盘及其数据处理方法 | |
CN115203159B (zh) | 一种数据存储方法、装置、计算机设备和存储介质 | |
US9684668B1 (en) | Systems and methods for performing lookups on distributed deduplicated data systems | |
CN116542668A (zh) | 一种基于区块链的数据处理方法、设备及可读存储介质 | |
CN110555020B (zh) | 一种映射关系建立、数据查询方法、装置及设备 | |
CN112817980B (zh) | 一种数据索引处理方法、装置、设备及存储介质 | |
CN118519964A (zh) | 数据处理方法、装置、计算机程序产品、设备及存储介质 | |
CN111125011B (zh) | 一种文件处理方法、系统及相关设备 | |
CN115129779A (zh) | 数据库的同步方法、装置及可读介质 | |
CN117075823B (zh) | 对象查找方法、系统、电子设备及存储介质 | |
CN116107514A (zh) | 针对对象存储的数据处理方法和装置 | |
CN108052291A (zh) | 一种云服务器的存储方法、系统、装置及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |