CN112286457A - 对象重删方法、装置、电子设备及机器可读存储介质 - Google Patents

对象重删方法、装置、电子设备及机器可读存储介质 Download PDF

Info

Publication number
CN112286457A
CN112286457A CN202011176236.2A CN202011176236A CN112286457A CN 112286457 A CN112286457 A CN 112286457A CN 202011176236 A CN202011176236 A CN 202011176236A CN 112286457 A CN112286457 A CN 112286457A
Authority
CN
China
Prior art keywords
data
metadata
target
deduplication
fingerprint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011176236.2A
Other languages
English (en)
Other versions
CN112286457B (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.)
Macrosan Technologies Co Ltd
Original Assignee
Macrosan 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 Macrosan Technologies Co Ltd filed Critical Macrosan Technologies Co Ltd
Priority to CN202011176236.2A priority Critical patent/CN112286457B/zh
Publication of CN112286457A publication Critical patent/CN112286457A/zh
Application granted granted Critical
Publication of CN112286457B publication Critical patent/CN112286457B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/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/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]

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

本申请提供一种对象重删方法、装置、电子设备及机器可读存储介质。在本申请中,基于与目标数据对应的目标对象的特征元数据的指纹先做一次重复数据检测,由此可以快速检测出对象存储***中是否存在与目标数据重复的数据,减少了对象存储***的数据计算量,极大地提高了重删效率。

Description

对象重删方法、装置、电子设备及机器可读存储介质
技术领域
本申请涉及存储技术领域,尤其涉及对象重删方法、装置、电子设备及机器可读存储介质。
背景技术
随着互联网应用的迅猛发展,PB级甚至EB级的海量数据存储变得尤为重要。对象存储***作为一种新型的分布式存储***,对象是对象存储***中的基本实体,通过提供基于对象的访问接口,可存储任意类型的数据,比如:图片、视频、音频、文本等。对象存储***有效解决了传统存储共享能力有限、扩展性差等问题。
重删技术,全称重复数据删除技术,是一种在存储***中自动搜索重复数据,将相同数据只保留唯一的一个副本,以达到消除冗余数据、降低存储容量需求的存储技术。
发明内容
本申请提供一种对象重删方法,所述方法应用于对象存储***;其中,所述对象存储***启用了对象重删机制,所述方法包括:
响应于来自对象客户端的将目标数据以对象方式保存至对象存储***中的对象写入请求,获取与所述目标数据对应的目标对象的第一对象元数据;
基于所述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹;
在预设的对象元数据特征指纹库中,查找确定是否存在与得到的所述目标对象特征指纹匹配的对象元数据特征指纹;
如果是,则基于匹配的对象元数据特征指纹获取对应的第二对象元数据,并基于所述第一对象元数据及所述第二对象元数据执行对象重删处理。
可选的,所述第一对象元数据至少包括与所述目标数据相关的第一数据特征元数据;其中,所述第一数据特征元数据包括所述目标数据的数据类型、数据长度及数据校验值;
所述基于所述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹,包括:
获取所述目标对象的第一对象元数据中所述第一数据特征元数据中的所述目标数据的数据类型、数据长度及数据校验值;
将获取的所述目标数据的数据类型、数据长度及数据校验值,按预设的顺序执行拼接得到拼接数据,并将得到拼接数据输入至预设的哈希算法计算得到对应的哈希值,将得到的哈希值确定为与所述第一对象元数据对应的目标对象特征指纹。
可选的,在预设的对象元数据特征指纹库中不存在与得到的所述目标对象特征指纹匹配的对象元数据特征指纹时,还包括:
将得到的所述目标对象特征指纹,添加至所述预设的对象元数据特征指纹库中,并对所述目标对象执行基于普通模式的对象重删处理。
可选的,所述第二对象元数据至少包括与匹配的对象元数据特征指纹对应的重删数据的第二数据特征元数据;其中,所述第二数据特征元数据包括所述重删数据的数据类型、数据长度及数据校验值;
所述基于所述第一对象元数据及所述第二对象元数据执行对象重删处理,包括:
将所述第一对象元数据包括的所述目标数据的数据类型、数据长度及数据校验值,与所述第二对象元数据包括的所述重删数据的数据类型、数据长度及数据校验值分别进行检查是否相同;
如果都相同,则确定与所述目标对象对应的目标数据在所述对象存储***中存在重复的重删数据。
本申请还提供一种对象重删装置,所述装置应用于对象存储***;其中,所述对象存储***启用了对象重删机制,所述装置包括:
获取模块,响应于来自对象客户端的将目标数据以对象方式保存至对象存储***中的对象写入请求,获取与所述目标数据对应的目标对象的第一对象元数据;
计算模块,基于所述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹;
确定模块,在预设的对象元数据特征指纹库中,查找确定是否存在与得到的所述目标对象特征指纹匹配的对象元数据特征指纹;
重删模块,如果是,则基于匹配的对象元数据特征指纹获取对应的第二对象元数据,并基于所述第一对象元数据及所述第二对象元数据执行对象重删处理。
可选的,所述第一对象元数据至少包括与所述目标数据相关的第一数据特征元数据;其中,所述第一数据特征元数据包括所述目标数据的数据类型、数据长度及数据校验值;
在基于所述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹的过程中,所述计算模块进一步:
获取所述目标对象的第一对象元数据中所述第一数据特征元数据中的所述目标数据的数据类型、数据长度及数据校验值;
将获取的所述目标数据的数据类型、数据长度及数据校验值,按预设的顺序执行拼接得到拼接数据,并将得到拼接数据输入至预设的哈希算法计算得到对应的哈希值,将得到的哈希值确定为与所述第一对象元数据对应的目标对象特征指纹。
可选的,在预设的对象元数据特征指纹库中不存在与得到的所述目标对象特征指纹匹配的对象元数据特征指纹时,所述重删模块进一步:
将得到的所述目标对象特征指纹,添加至所述预设的对象元数据特征指纹库中,并对所述目标对象执行基于普通模式的对象重删处理。
可选的,所述第二对象元数据至少包括与匹配的对象元数据特征指纹对应的重删数据的第二数据特征元数据;其中,所述第二数据特征元数据包括所述重删数据的数据类型、数据长度及数据校验值;
在基于所述第一对象元数据及所述第二对象元数据执行对象重删处理的过程中,所述重删模块进一步:
将所述第一对象元数据包括的所述目标数据的数据类型、数据长度及数据校验值,与所述第二对象元数据包括的所述重删数据的数据类型、数据长度及数据校验值分别进行检查是否相同;
如果都相同,则确定与所述目标对象对应的目标数据在所述对象存储***中存在重复的重删数据。
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
通过以上实施例,基于与目标数据对应的目标对象的特征元数据的指纹先做一次重复数据检测,由此可以快速检测出对象存储***中是否存在与目标数据重复的数据,减少了对象存储***的数据计算量,极大地提高了重删效率。
附图说明
图1是一示例性实施例提供的一种启用对象重删机制的对象存储***的架构示意图;
图2是一示例性实施例提供的一种对象重删方法的流程图;
图3是一示例性实施例提供的一种电子设备的硬件结构图;
图4是一示例性实施例提供的一种对象重删装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的对象重删的相关技术,进行简要说明。
请参见图1,图1是本申请一实施例提供的一种启用对象重删机制的对象存储***的组网示意图。
如图1所示的组网包括对象存储***和对象客户端。对象存储***可以为对接的对象客户端提供对象访问服务;对象存储***可以包括若干对象存储节点及存储介质等。
对于对象客户端而言,对象存储***采用扁平的数据组织结构进行对象存储,也即,对象客户端可以仅通过对象存储***提供的桶和对象(数据组织结构仅为两层)来进行对象上传、对象下载、对象删除等对象访问服务;
在对象存储***中,对象是对象存储***中存储的基本实体,一个对象是一个文件的数据及其相关属性信息的集合体。对象具有包括对象名称(或也可被称为对象的键)、对象数据和对象元数据;
其中,对象名称是桶(桶是对象存储***中用于保存对象的容器)中保存对象的唯一标识。对象元数据是一组名称值对,包括对象的***元数据和用户自定义元数据。
图1中的对象存储***已启用对象重删机制,也即,对象存储***支持基于对象的重删技术。当对象客户端将数据以对象方式提交至对象存储***中保存时,针对不同对象对应的对象数据相同的情况,基于对象重删机制在对象存储***中仅保留一份该对象数据。
在实现时,普通模式的对象重删机制的具体过程,主要包括以下:
写入新对象时,首先计算该新对象的对象数据D的指纹A,然后判断对象存储***中是否存在与指纹A匹配的指纹;如果不存在匹配指纹,则对象存储***中不存在与对象数据D内容相同的重复数据,将该新对象的对象元数据、对象数据D、指纹A写入至对象存储***。
如果存在匹配指纹,则对象存储***进一步判断采用无损重删机制还是有损重删机制。如果采用有损重删机制,则确定对象存储***中存在与对象数据D内容相同的重复数据,将该新对象的元数据指向匹配指纹对应的对象数据。如果采用无损重删机制,除了指纹匹配外,还需要逐字节比对数据(比对该新对象的对象数据D和匹配指纹对应的数据是否一致),在该数据比对结果为相同时确定对象存储***中存在与对象数据D内容相同的重复数据,如果该数据比对结果为不同时,则将该新对象的对象元数据、对象数据D、指纹A写入至对象存储***。
基于以上场景可见,在以上示出的现有的对象重删技术方案中,每个对象均需要计算其对象数据的数据指纹,尤其在无损重删机制中,即使对象的数据指纹相同,还需要逐字节比较数据,在对象客户端上传数据为大对象及超大对象场景下,对象存储***的数据计算量也较大,重删效率较低。
基于此,在以上示出的组网架构的基础上,本申请旨在提出一种,基于通过计算对象的对象元数据的特征指纹来减少对象重删计算量从而提高对象重删性能的技术方案。
在实现时,对象存储***启用了对象重删机制,对象存储***响应于来自对象客户端的将目标数据以对象方式保存至对象存储***中的对象写入请求,获取与目标数据对应的目标对象的第一对象元数据。
进一步地,对象存储***基于目标对象的第一对象元数据,计算得到对应的目标对象特征指纹,在预设的对象元数据特征指纹库中,查找确定是否存在与得到的目标对象特征指纹匹配的对象元数据特征指纹。
进一步地,如果是,则对象存储***基于匹配的对象元数据特征指纹获取对应的第二对象元数据,并基于第一对象元数据及第二对象元数据执行对象重删处理。
在以上方案中,基于与目标数据对应的目标对象的特征元数据的指纹先做一次重复数据检测,由此可以快速检测出对象存储***中是否存在与目标数据重复的数据,减少了对象存储***的数据计算量,极大地提高了重删效率。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图2,图2是本申请一实施例提供的一种对象重删方法的流程图,上述方法应用于对象存储***,其中,上述对象存储***启用了对象重删机制,上述方法执行以下步骤:
步骤202、响应于来自对象客户端的将目标数据以对象方式保存至对象存储***中的对象写入请求,获取与上述目标数据对应的目标对象的第一对象元数据。
步骤204、基于上述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹。
步骤206、在预设的对象元数据特征指纹库中,查找确定是否存在与得到的上述目标对象特征指纹匹配的对象元数据特征指纹。
步骤208、如果是,则基于匹配的对象元数据特征指纹获取对应的第二对象元数据,并基于上述第一对象元数据及上述第二对象元数据执行对象重删处理。
在本说明书中,上述对象,是指已保存于或者计划保存于上述对象存储***中的桶(Bucket)中的任何数据格式的对象。
例如,在实际应用中,上述对象可以包括已保存于或者计划保存于上述对象存储***中的桶(Bucket)中的图片、网页、视频、压缩包、程序、表项等数据格式的对象。
在本说明书中,上述对象存储***为包括若干对象存储节点及其管理的存储介质;其中,上述对象存储***已启用了对象重删机制。
例如,上述对象存储***的具体构成,以及上述对象存储***与对象客户端的组网架构,现有的对象重删机制的具体过程,请参见如图1所示及前文对应的描述,这里不再赘述。
需要说明的是,本说明书重点描述针对现有的对象重删机制的改进,具体请参见下文描述。
在本说明书中,上述对象客户端,包括与上述对象存储***对接的、可以对上述对象存储***进行对象重删的任何类型客户端。
例如,在实际应用中,上述对象客户端具体可以包括Web客户端、SDK客户端、APP客户端等。
在本说明书中,对象访问包括对象写入、对象读取;其中,对象写入,是指对象客户端向对象存储***发起请求将对象客户端本地保存的数据写入至对象存储***中。在实现时,对象客户端基于用户输入的、指定的对象的对象名,将数据以对象的方式保存在对象存储***中的桶(Bucket)中;
对象读取,是指对象客户端从对象存储***中读取指定对象的对象数据。在实现时,对象客户端基于用户输入的、指定的计划读取对象的对象名,从对象存储***中的桶(Bucket)中读取已保存的对象名指示的对象数据并下载至对象客户端本地保存。
需要说明的是,通常情况下,对象写入也被称为“对象上传”,对象读取也被称为“对象下载”。
在本说明书中,上述对象客户端可以向上述对象存储***发起对象写入,将上述对象客户端本地的各种格式的数据上传至上述对象存储***,并以对象方式保存在桶中。
例如,在实际应用中,对象客户端可以向对象存储***发起对象写入,将对象客户端本地的数据D上传至对象存储***中作为对象A保存在桶中。
在本说明书中,上述第一对象元数据至少包括与上述目标数据相关的第一数据特征元数据;其中,上述第一数据特征元数据包括上述目标数据的数据类型、数据长度及数据校验值。
例如,以对象为目标对象A为例,目标对象A的第一对象元数据至少包括与目标数据D相关的第一数据特征元数据;其中,该第一数据特征元数据包括目标数据D的数据类型ContentType、数据长度ContentLength及数据校验值ETag。比如:在将对象客户端本地的一张图片a.jpg上传至对象存储***保存为对象A时,则对象A的对象元数据中的第一数据特征元数据具体包括以下键值对的内容:
"ContentType":"image/jpeg",
"ContentLength":195460,
"ETag":"\"087a2490be707d5f97e43aa29fad95f4\""。
其中,ContentType表征对象A的对象数据(a.jpg)的数据类型,ContentLength表征对象A的对象数据(a.jpg)的数据长度,ETag表征对象A的对象数据(a.jpg)的数据校验值,该数据校验值比如可以为a.jpg输入至预设哈希算法(比如:MD5算法)计算得到的哈希值,该数据校验值用于对象存储***对对象A的对象数据进行数据校验,避免网络传输等环节下数据出错。
当然,在实际应用中,上述第一对象元数据除了包括与上述目标数据相关的第一数据特征元数据外,还可以包括其它元数据。比如:对象A的对象元数据还可以包括以下键值对的内容:
"ContentType":"image/jpeg",
"LastModified":"Mon,20Jul 2020 03:35:43GMT",
"ContentLength":195460,
"VersionId":"null",
"ETag":"\"087a2490be707d5f97e43aa29fad95f4\"",
"Metadata":{cb-modifiedtime":"Mon,20Jul 2020 03:35:43GMT}
LastModified、VersionId、Metadata等,为对象A的对象元数据中其它元数据,该其它元数据具体可以包括用户在将数据D上传并保存对象A时设置的用户元数据,或由对象存储***为对象A自动创建生成的***元数据。
在本说明书中,上述对象存储***接收并响应于来自上述对象客户端的将目标数据以对象方式保存至上述对象存储***中的对象写入请求,获取与上述目标数据对应的目标对象的第一对象元数据。
例如,对象存储***接收并响应于来自对象客户端的将目标数据D以对象方式保存至上述对象存储***中的对象写入请求,从该对象写入请求获取与目标数据D对应的目标对象A的第一对象元数据。该第一对象元数据具体可以参见前文示例描述,这里不再赘述。
在本说明书中,上述对象存储***基于获取的上述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹;
例如,以上述目标对象为目标对象A为例,对象存储***基于获取的目标对象A的第一对象元数据,计算得到与该第一对象元数据对应的目标对象特征指纹。
在示出的一种实施方式中,在基于上述目标对象的第一对象元数据计算得到对应的目标对象特征指纹的过程中,上述对象存储***获取上述目标对象的第一对象元数据中上述第一数据特征元数据中的上述目标数据的数据类型、数据长度及数据校验值。
例如,以目标对象A的第一对象元数据包括以下键值对内容为例,
"ContentType":"image/jpeg",
"ContentLength":195460,
"ETag":"\"087a2490be707d5f97e43aa29fad95f4\""。
对象存储***获取目标对象A的第一对象元数据中第一数据特征元数据中的ContentType的值:image/jpeg,ContentLength的值:195460,ETag的值:087a2490be707d5f97e43aa29fad95f4。
在本说明书中,进一步地,上述对象存储***将获取的上述目标数据的数据类型、数据长度及数据校验值,按预设的顺序执行拼接得到拼接数据,并将得到拼接数据输入至预设的哈希算法计算得到对应的哈希值,将得到的哈希值确定为与上述第一对象元数据对应的目标对象特征指纹。
接着以上示例继续举例,对象存储***将获取的目标对象A的第一对象元数据中第一数据特征元数据中的ContentType的值、ContentLength的值及ETag的值,按预设的顺序(比如:ContentType+ContentLength+ETag)执行拼接得到拼接数据,并将得到拼接数据输入至预设的哈希算法(比如:MD5算法、SHA1算法)计算得到对应的哈希值,将得到的哈希值确定为与该第一对象元数据对应的目标对象特征指纹H1。
在本说明书中,在计算得到与上述目标对象的第一对象元数据对应的目标对象特征指纹后,上述对象存储***在预设的对象元数据特征指纹库中,查找确定是否存在与得到的上述目标对象特征指纹匹配的对象元数据特征指纹。
接着以上示例继续举例,对象存储***在预设的对象元数据特征指纹库中,查找确定是否存在与得到的目标对象特征指纹H1匹配的对象元数据特征指纹H2。
在示出的一种实施方式中,在预设的上述对象元数据特征指纹库中不存在与得到的上述目标对象特征指纹匹配的对象元数据特征指纹时,上述对象存储***将得到的上述目标对象特征指纹,添加至上述预设的对象元数据特征指纹库中,并对上述目标对象执行基于普通模式的对象重删处理。
例如,在预设的对象元数据特征指纹库中不存在与得到的目标对象特征指纹H1匹配的对象元数据特征指纹时,对象存储***将得到的目标对象特征指纹H1,添加至预设的对象元数据特征指纹库中,并对目标对象A执行基于普通模式的对象重删处理。该通模式的对象重删处理具体请参见前文的描述,这里不再赘述。
在本说明书中,在预设的上述对象元数据特征指纹库中存在与得到的上述目标对象特征指纹匹配的对象元数据特征指纹时,上述对象存储***则基于匹配的对象元数据特征指纹获取对应的第二对象元数据。
例如,在预设的对象元数据特征指纹库中存在与得到的目标对象特征指纹H1匹配的对象元数据特征指纹H2时,对象存储***则基于匹配的对象元数据特征指纹H2从上述对象元数据特征指纹库中获取对应的第二对象元数据。
在本说明书中,上述第二对象元数据至少包括与匹配的对象元数据特征指纹对应的重删数据的第二数据特征元数据;其中,上述第二数据特征元数据包括上述重删数据的数据类型、数据长度及数据校验值。
例如,H2对应的第二对象元数据至少包括与H1匹配的对象元数据特征指纹H2对应的重删数据的第二数据特征元数据;其中,该第二数据特征元数据包括重删数据的数据类型、数据长度及数据校验值。
需要说明的是,上述重删数据,是指已保存上述对象存储***中的对象的对象数据。在已保存上述对象存储***中的多个对象分别对应的对象数据都相同时,多个对象分别对应的对象数据在上述对象存储***中实际仅保留一个副本。例如,在目标对象A(目标对象的对象数据为a.jpg)在保存至对象存储***前,在对象存储***中实际已保存有对象B、对象C(对象B和对象C的对象数据也为a.jpg),则重删数据为a.jpg;其中,该重删数据(a.jpg)对应的第二对象元数据包括与H1匹配的对象元数据特征指纹H2对应的重删数据的数据类型(ContentType)可以为image/jpeg、数据长度(ContentLength)可以为195460,数据校验值(ETag)可以为087a2490be707d5f97e43aa29fad95f4。
在本说明书中,在基于匹配的对象元数据特征指纹获取对应的第二对象元数据后,上述对象存储***基于上述第一对象元数据及上述第二对象元数据执行对象重删处理。
在示出的一种实施方式中,在基于上述第一对象元数据及上述第二对象元数据执行对象重删处理的过程中,上述对象存储***将上述第一对象元数据包括的上述目标数据的数据类型、数据长度及数据校验值,与上述第二对象元数据包括的上述重删数据的数据类型、数据长度及数据校验值分别进行检查是否相同;如果都相同,则确定与上述目标对象对应的目标数据在上述对象存储***中存在重复的重删数据。
例如,以第一对象元数据包括以下:
ContentType=image/jpeg
ContentLength=195460
ETag=087a2490be707d5f97e43aa29fad95f4
以及,第二对象元数据包括以下为例:
ContentType=image/jpeg
ContentLength=195460
ETag=087a2490be707d5f97e43aa29fad95f4
对象存储***将该第一对象元数据包括的目标数据的数据类型、数据长度及数据校验值,与该第二对象元数据包括的重删数据的数据类型、数据长度及数据校验值分别进行检查是否相同;在该示例中,第一对象元数据的ContentType、ContentLength、ETag,分别与第二对象元数据的ContentType、ContentLength、ETag都相同,则确定与目标对象A对应的目标数据D在对象存储***中存在重复的重删数据(a.jpg)。
又例如,以第一对象元数据包括以下:
ContentType=image/jpeg
ContentLength=195460
ETag=087a2490be707d5f97e43aa29fad95f4
以及,第二对象元数据包括以下为例:
ContentType=image/png
ContentLength=195461
ETag=087a2490be707d5f97e43aa29fad95f5
在一些极端的情况下,在预设的上述对象元数据特征指纹库中存在与上述目标对象特征指纹匹配的对象元数据特征指纹时,但实际两者的数据内容仍然可能不同(也即,存在哈希碰撞)。对象存储***将该第一对象元数据包括的目标数据的数据类型、数据长度及数据校验值,与该第二对象元数据包括的重删数据的数据类型、数据长度及数据校验值分别进行检查是否相同;在该示例中,第一对象元数据的ContentType、ContentLength、ETag,分别与第二对象元数据的ContentType、ContentLength、ETag都不同,则确定与目标对象A对应的目标数据D在对象存储***中不存在重复的重删数据,则对象存储***可以再进一步执行前文描述的基于普通模式的对象重删处理,这里不再赘述。
需要说明的是,基于与目标数据对应的目标对象的特征元数据(仅占几个或几十个字节的特征字段值)的指纹先做一次重复数据检测,相比现有的针对目标数据(实际可能为GB级以上的数据)直接计算得到对应的数据指纹,计算数据量上急剧降低,极大地提高了重删效率。
在以上技术方案中,启用了对象重删机制的对象存储***响应于来自对象客户端的将目标数据以对象方式保存至对象存储***中的对象写入请求,获取与目标数据对应的目标对象的第一对象元数据;基于目标对象的第一对象元数据,计算得到对应的目标对象特征指纹;在预设的对象元数据特征指纹库中,查找确定是否存在与得到的目标对象特征指纹匹配的对象元数据特征指纹;如果是,则基于匹配的对象元数据特征指纹获取对应的第二对象元数据,并基于第一对象元数据及第二对象元数据执行对象重删处理。基于与目标数据对应的目标对象的特征元数据的指纹先做一次重复数据检测,由此可以快速检测出对象存储***中是否存在与目标数据重复的数据,减少了对象存储***的数据计算量,极大地提高了重删效率。
与上述方法实施例相对应,本说明书还提供了一种对象重删装置的实施例。本说明书的对象重删装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书的对象重删装置所在电子设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图4是本说明书一实施例示出的一种对象重删装置的框图。
请参考图4,所述对象重删装置40可以应用在前述图3所示的电子设备中,所述装置应用于对象存储***;其中,所述对象存储***启用了对象重删机制,所述装置包括:
获取模块401,响应于来自对象客户端的将目标数据以对象方式保存至对象存储***中的对象写入请求,获取与所述目标数据对应的目标对象的第一对象元数据;
计算模块402,基于所述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹;
确定模块403,在预设的对象元数据特征指纹库中,查找确定是否存在与得到的所述目标对象特征指纹匹配的对象元数据特征指纹;
重删模块404,如果是,则基于匹配的对象元数据特征指纹获取对应的第二对象元数据,并基于所述第一对象元数据及所述第二对象元数据执行对象重删处理。
在本实施例中,所述第一对象元数据至少包括与所述目标数据相关的第一数据特征元数据;其中,所述第一数据特征元数据包括所述目标数据的数据类型、数据长度及数据校验值;
在基于所述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹的过程中,所述计算模块402进一步:
获取所述目标对象的第一对象元数据中所述第一数据特征元数据中的所述目标数据的数据类型、数据长度及数据校验值;
将获取的所述目标数据的数据类型、数据长度及数据校验值,按预设的顺序执行拼接得到拼接数据,并将得到拼接数据输入至预设的哈希算法计算得到对应的哈希值,将得到的哈希值确定为与所述第一对象元数据对应的目标对象特征指纹。
在本实施例中,在预设的对象元数据特征指纹库中不存在与得到的所述目标对象特征指纹匹配的对象元数据特征指纹时,所述重删模块404进一步:
将得到的所述目标对象特征指纹,添加至所述预设的对象元数据特征指纹库中,并对所述目标对象执行基于普通模式的对象重删处理。
在本实施例中,所述第二对象元数据至少包括与匹配的对象元数据特征指纹对应的重删数据的第二数据特征元数据;其中,所述第二数据特征元数据包括所述重删数据的数据类型、数据长度及数据校验值;
在基于所述第一对象元数据及所述第二对象元数据执行对象重删处理的过程中,所述重删模块404进一步:
将所述第一对象元数据包括的所述目标数据的数据类型、数据长度及数据校验值,与所述第二对象元数据包括的所述重删数据的数据类型、数据长度及数据校验值分别进行检查是否相同;
如果都相同,则确定与所述目标对象对应的目标数据在所述对象存储***中存在重复的重删数据。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (10)

1.一种对象重删方法,其特征在于,所述方法应用于对象存储***;其中,所述对象存储***启用了对象重删机制,所述方法包括:
响应于来自对象客户端的将目标数据以对象方式保存至对象存储***中的对象写入请求,获取与所述目标数据对应的目标对象的第一对象元数据;
基于所述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹;
在预设的对象元数据特征指纹库中,查找确定是否存在与得到的所述目标对象特征指纹匹配的对象元数据特征指纹;
如果是,则基于匹配的对象元数据特征指纹获取对应的第二对象元数据,并基于所述第一对象元数据及所述第二对象元数据执行对象重删处理。
2.根据权利要求1所述的方法,其特征在于,所述第一对象元数据至少包括与所述目标数据相关的第一数据特征元数据;其中,所述第一数据特征元数据包括所述目标数据的数据类型、数据长度及数据校验值;
所述基于所述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹,包括:
获取所述目标对象的第一对象元数据中所述第一数据特征元数据中的所述目标数据的数据类型、数据长度及数据校验值;
将获取的所述目标数据的数据类型、数据长度及数据校验值,按预设的顺序执行拼接得到拼接数据,并将得到拼接数据输入至预设的哈希算法计算得到对应的哈希值,将得到的哈希值确定为与所述第一对象元数据对应的目标对象特征指纹。
3.根据权利要求1所述的方法,其特征在于,在预设的对象元数据特征指纹库中不存在与得到的所述目标对象特征指纹匹配的对象元数据特征指纹时,还包括:
将得到的所述目标对象特征指纹,添加至所述预设的对象元数据特征指纹库中,并对所述目标对象执行基于普通模式的对象重删处理。
4.根据权利要求2所述的方法,其特征在于,所述第二对象元数据至少包括与匹配的对象元数据特征指纹对应的重删数据的第二数据特征元数据;其中,所述第二数据特征元数据包括所述重删数据的数据类型、数据长度及数据校验值;
所述基于所述第一对象元数据及所述第二对象元数据执行对象重删处理,包括:
将所述第一对象元数据包括的所述目标数据的数据类型、数据长度及数据校验值,与所述第二对象元数据包括的所述重删数据的数据类型、数据长度及数据校验值分别进行检查是否相同;
如果都相同,则确定与所述目标对象对应的目标数据在所述对象存储***中存在重复的重删数据。
5.一种对象重删装置,其特征在于,所述装置应用于对象存储***;其中,所述对象存储***启用了对象重删机制,所述装置包括:
获取模块,响应于来自对象客户端的将目标数据以对象方式保存至对象存储***中的对象写入请求,获取与所述目标数据对应的目标对象的第一对象元数据;
计算模块,基于所述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹;
确定模块,在预设的对象元数据特征指纹库中,查找确定是否存在与得到的所述目标对象特征指纹匹配的对象元数据特征指纹;
重删模块,如果是,则基于匹配的对象元数据特征指纹获取对应的第二对象元数据,并基于所述第一对象元数据及所述第二对象元数据执行对象重删处理。
6.根据权利要求5所述的装置,其特征在于,所述第一对象元数据至少包括与所述目标数据相关的第一数据特征元数据;其中,所述第一数据特征元数据包括所述目标数据的数据类型、数据长度及数据校验值;
在基于所述目标对象的第一对象元数据,计算得到对应的目标对象特征指纹的过程中,所述计算模块进一步:
获取所述目标对象的第一对象元数据中所述第一数据特征元数据中的所述目标数据的数据类型、数据长度及数据校验值;
将获取的所述目标数据的数据类型、数据长度及数据校验值,按预设的顺序执行拼接得到拼接数据,并将得到拼接数据输入至预设的哈希算法计算得到对应的哈希值,将得到的哈希值确定为与所述第一对象元数据对应的目标对象特征指纹。
7.根据权利要求5所述的装置,其特征在于,在预设的对象元数据特征指纹库中不存在与得到的所述目标对象特征指纹匹配的对象元数据特征指纹时,所述重删模块进一步:
将得到的所述目标对象特征指纹,添加至所述预设的对象元数据特征指纹库中,并对所述目标对象执行基于普通模式的对象重删处理。
8.根据权利要求6所述的装置,其特征在于,所述第二对象元数据至少包括与匹配的对象元数据特征指纹对应的重删数据的第二数据特征元数据;其中,所述第二数据特征元数据包括所述重删数据的数据类型、数据长度及数据校验值;
在基于所述第一对象元数据及所述第二对象元数据执行对象重删处理的过程中,所述重删模块进一步:
将所述第一对象元数据包括的所述目标数据的数据类型、数据长度及数据校验值,与所述第二对象元数据包括的所述重删数据的数据类型、数据长度及数据校验值分别进行检查是否相同;
如果都相同,则确定与所述目标对象对应的目标数据在所述对象存储***中存在重复的重删数据。
9.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行如权利要求1至4任一项所述的方法。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至4任一项所述的方法。
CN202011176236.2A 2020-10-28 2020-10-28 对象重删方法、装置、电子设备及机器可读存储介质 Active CN112286457B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011176236.2A CN112286457B (zh) 2020-10-28 2020-10-28 对象重删方法、装置、电子设备及机器可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011176236.2A CN112286457B (zh) 2020-10-28 2020-10-28 对象重删方法、装置、电子设备及机器可读存储介质

Publications (2)

Publication Number Publication Date
CN112286457A true CN112286457A (zh) 2021-01-29
CN112286457B CN112286457B (zh) 2022-08-26

Family

ID=74373180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011176236.2A Active CN112286457B (zh) 2020-10-28 2020-10-28 对象重删方法、装置、电子设备及机器可读存储介质

Country Status (1)

Country Link
CN (1) CN112286457B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115827619A (zh) * 2023-01-06 2023-03-21 山东捷瑞数字科技股份有限公司 一种基于三维引擎的重复数据检测方法、装置及设备
CN117369731A (zh) * 2023-12-07 2024-01-09 苏州元脑智能科技有限公司 一种数据的缩减处理方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495894A (zh) * 2011-12-12 2012-06-13 成都市华为赛门铁克科技有限公司 重复数据查找方法、装置及***
CN102810108A (zh) * 2011-06-02 2012-12-05 英业达股份有限公司 重复数据的处理方法
CN104484480A (zh) * 2014-12-31 2015-04-01 华为技术有限公司 基于重复数据删除的远程复制方法及装置
CN107506150A (zh) * 2017-08-30 2017-12-22 郑州云海信息技术有限公司 分布式存储装置、重删、写、删除、读取方法以及***
CN110928497A (zh) * 2019-11-15 2020-03-27 浪潮电子信息产业股份有限公司 一种元数据处理方法、装置、设备及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810108A (zh) * 2011-06-02 2012-12-05 英业达股份有限公司 重复数据的处理方法
CN102495894A (zh) * 2011-12-12 2012-06-13 成都市华为赛门铁克科技有限公司 重复数据查找方法、装置及***
CN104484480A (zh) * 2014-12-31 2015-04-01 华为技术有限公司 基于重复数据删除的远程复制方法及装置
CN107506150A (zh) * 2017-08-30 2017-12-22 郑州云海信息技术有限公司 分布式存储装置、重删、写、删除、读取方法以及***
CN110928497A (zh) * 2019-11-15 2020-03-27 浪潮电子信息产业股份有限公司 一种元数据处理方法、装置、设备及可读存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115827619A (zh) * 2023-01-06 2023-03-21 山东捷瑞数字科技股份有限公司 一种基于三维引擎的重复数据检测方法、装置及设备
CN117369731A (zh) * 2023-12-07 2024-01-09 苏州元脑智能科技有限公司 一种数据的缩减处理方法、装置、设备及介质
CN117369731B (zh) * 2023-12-07 2024-02-27 苏州元脑智能科技有限公司 一种数据的缩减处理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN112286457B (zh) 2022-08-26

Similar Documents

Publication Publication Date Title
CN107911461B (zh) 云存储***中的对象处理方法、存储服务器及云存储***
US20130067237A1 (en) Providing random access to archives with block maps
KR20160003682A (ko) 플레이스홀더에 의한 하이드레이션 및 디하이드레이션 기법
CN112286457B (zh) 对象重删方法、装置、电子设备及机器可读存储介质
US20200301944A1 (en) Method and apparatus for storing off-chain data
CN110389859B (zh) 用于复制数据块的方法、设备和计算机程序产品
US10917484B2 (en) Identifying and managing redundant digital content transfers
CN110287201A (zh) 数据访问方法、装置、设备及存储介质
US20230359628A1 (en) Blockchain-based data processing method and apparatus, device, and storage medium
CN108829753A (zh) 一种信息处理方法及装置
EP3343395B1 (en) Data storage method and apparatus for mobile terminal
CN112241396A (zh) 基于Spark的对Delta进行小文件合并的方法及***
CN112286448B (zh) 对象访问方法、装置、电子设备及机器可读存储介质
CN113704182B (zh) 一种数据检查方法及计算设备
CN115905608A (zh) 图像特征获取方法、装置、计算机设备、存储介质
CN109857719B (zh) 分布式文件处理方法、装置、计算机设备以及存储介质
CN115630026A (zh) 一种文件读写方法、***、计算机设备和存储介质
JP2008250864A (ja) データ保存方法、データ保存システム及び情報処理装置
CN114647658A (zh) 一种数据检索方法、装置、设备及机器可读存储介质
CA2722511A1 (en) Efficient change tracking of transcoded copies
US11961334B2 (en) Biometric data storage using feature vectors and associated global unique identifier
CN116821102B (zh) 数据迁移方法、装置、计算机设备和存储介质
CN113364875B (zh) 区块链节点存取数据的方法、设备和计算机可读存储介质
US20170140027A1 (en) Method and system for classifying queries
US20220318294A1 (en) Probabilistic indices for accessing authoring streams

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