CN116910051B - 数据处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116910051B CN116910051B CN202311179441.8A CN202311179441A CN116910051B CN 116910051 B CN116910051 B CN 116910051B CN 202311179441 A CN202311179441 A CN 202311179441A CN 116910051 B CN116910051 B CN 116910051B
- Authority
- CN
- China
- Prior art keywords
- target
- data block
- index information
- data
- message digest
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 281
- 238000003672 processing method Methods 0.000 title abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims description 93
- 230000008569 process Effects 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 19
- 238000005192 partition Methods 0.000 claims description 17
- 238000005516 engineering process Methods 0.000 abstract description 17
- 238000013473 artificial intelligence Methods 0.000 abstract description 4
- 238000013500 data storage Methods 0.000 abstract description 3
- 238000012217 deletion Methods 0.000 description 20
- 230000037430 deletion Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000000638 solvent extraction Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000005096 rolling process Methods 0.000 description 3
- 230000033228 biological regulation Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置及电子设备,涉及数据存储技术领域,可应用于对象存储,还可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。数据处理方法包括:获取目标对象数据;将目标对象数据划分为多个目标数据块,并确定每个目标数据块的目标消息摘要;针对每一目标数据块,若在第一索引信息中未查询到目标消息摘要,则将目标数据块存储至存储系统中,并将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中;将对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中。可以不依赖于计数实现数据的去重存储。
Description
技术领域
本申请涉及数据存储领域,具体而言,本申请涉及一种数据处理方法、装置、电子设备及计算机可读存储介质。
背景技术
随着数据的爆炸性增长,数据容灾备份正面临前所未有的挑战。为了抑制数据过快增长,提高资源利用率,数据去重技术最近成为一个备受关注的研究课题。数据去重是指消除冗余的文件、数据块、或字节以保证只有单一的数据实例存储在磁盘上的过程,它也被称为一种容量优化保护技术,用来降低数据保护的容量需求。
传统的去重方案,一般都是使用引用计数的方式,比如说某个数据块有10个对象引用,那么这个数据块的引用计数就是10,当有引用这个块的对象删除的时候,引用计数减1,当引用计数为0的时候,数据块才最终删除。但是这种方案需要在一个分布式的系统中,需要引用计数,这是一个很复杂的工作,一方面引用计数的增减需要事务的支持,另外一方面,如果引用计数增减错误的话,可能导致存储的垃圾存储的泄漏或者丢数据,另外引用计数的增减也不是幂等的,无法重试,对分布式的实现要求更高。
发明内容
本申请实施例的目的旨在提供一种数据处理方法、装置、电子设备及计算机可读存储介质,本申请实施例提供的技术方案如下:
一方面,本申请实施例提供了一种数据处理的方法,该方法包括:
获取待上传至存储系统的目标对象的目标对象数据;
将目标对象数据划分为多个目标数据块,并确定每个目标数据块的目标消息摘要;
针对每一目标数据块,在存储系统的第一索引信息中查询目标数据块的目标消息摘要;第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系;
针对每一目标数据块,若在第一索引信息中未查询到目标数据块的目标消息摘要,则将目标数据块存储至存储系统中,并将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中;
将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中。
在一些可能的实施方式中,还包括:
针对每一目标数据块,将目标数据块的目标消息摘要与目标对象数据的对象数据标识之间的关联关系添加至存储系统的第三索引信息中。
在一些可能的实施方式中,将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中,包括:
将目标消息摘要添加至第一索引信息的分区键中,并将目标数据块的存储路径关联添加至第一索引信息的键值中。
在一些可能的实施方式中,将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中,包括:
将目标对象数据的对象数据标识添加至第二索引信息的分区键中,并将目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要添加至第二索引信息的键值中。
在一些可能的实施方式中,将目标数据块的目标消息摘要与目标对象数据的对象数据标识之间的关联关系添加至存储系统的第三索引信息中,包括:
将目标数据块的目标消息摘要添加至第三索引信息的分区键中,并将目标对象数据的对象数据标识关联添加至第三索引信息的排序键中。
在一些可能的实施方式中,将目标对象数据划分为多个目标数据块,包括:
基于预设窗口遍历目标对象数据,并确定窗口的在遍历过程中的哈希值;
若检测到窗口的哈希值满足预设条件,则基于窗口的当前位置确定划分边界,基于划分边界划分目标对象数据,得到多个目标数据块。
在一些可能的实施方式中,还包括:
若检测到窗口的当前位置与上一个划分边界之间形成的数据块的数据量达到预设阈值,则基于窗口的当前位置确定划分边界,基于划分边界划分目标对象数据,得到多个目标数据块。
另一方面,本申请实施例提供了一种数据处理的方法,该方法包括:
接收针对目标对象数据的目标数据块的待处理请求;其中,待处理请求中携带有目标数据块的目标数据块标识;待处理请求包括待删除请求或待获取请求;
基于待处理请求在存储系统的第二索引信息中查询与目标数据块标识对应的目标消息摘要;第二索引信息用于表征已存储的对象数据的对象数据标识、每一对象数据所包含的每一数据块的数据块标识以及每一数据块的消息摘要之间的关联关系;
在存储系统的第一索引信息中查询目标消息摘要对应的目标存储路径;第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系;
基于目标存储路径处理目标数据块。
在一些可能的实施方式中,待处理请求包括待删除请求;方法还包括:
基于待处理请求在存储系统的第二索引信息中删除与目标数据块标识对应的目标消息摘要。
在一些可能的实施方式中,在存储系统的第一索引信息中查询目标消息摘要对应的目标存储路径之前,还包括:
在第三索引信息中查询并删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系;第三索引信息用于表征已存储的每一数据块的消息摘要与数据块所属的对象数据之间的关联关系;
基于目标存储路径处理目标数据块,包括:
若确定已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中不存在与目标消息摘要对应的关联关系,则基于目标存储路径删除目标数据块。
在一些可能的实施方式中,还包括:
若确定已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中仍存在与目标消息摘要对应的关联关系,则不删除目标数据块。
在一些可能的实施方式中,还包括:
将目标消息摘要与目标数据块所属的目标对象数据之间的关联关系添加至索引记录中;
在第一索引信息中删除目标消息摘要与目标存储路径之间的关联关系。
在一些可能的实施方式中,待处理请求包括待获取请求;方法还包括:
若在第一索引信息中未查询目标消息摘要,则在索引记录中查询目标消息摘要;索引记录包括已删除的消息摘要与存储路径之间的关联关系;
基于索引记录中与目标消息摘要对应的目标存储路径获取目标数据块。
另一方面,本申请实施例还提供了一种数据处理装置,包括:
第一获取模块,用于获取待上传至存储系统的目标对象的目标对象数据;
划分模块,用于将目标对象数据划分为多个目标数据块,并确定每个目标数据块的目标消息摘要;
第一查询模块,用于针对每一目标数据块,在存储系统的第一索引信息中查询目标数据块的目标消息摘要;第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系;
存储模块,用于针对每一目标数据块,若在第一索引信息中未查询到目标数据块的目标消息摘要,则将目标数据块存储至存储系统中,并将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中;
第一添加模块,用于将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中。
在一些可能的实施方式中,还包括第二添加模块,用于:
针对每一目标数据块,将目标数据块的目标消息摘要与目标对象数据的对象数据标识之间的关联关系添加至存储系统的第三索引信息中。
在一些可能的实施方式中,存储模块在将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中时,具体用于:
将目标消息摘要添加至第一索引信息的分区键中,并将目标数据块的存储路径关联添加至第一索引信息的键值中。
在一些可能的实施方式中,第一添加模块在将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中时,具体用于:
将目标对象数据的对象数据标识添加至第二索引信息的分区键中,并将目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要添加至第二索引信息的键值中。
在一些可能的实施方式中,第二添加模块在将目标数据块的目标消息摘要与目标对象数据的对象数据标识之间的关联关系添加至存储系统的第三索引信息中时,具体用于:
将目标数据块的目标消息摘要添加至第三索引信息的分区键中,并将目标对象数据的对象数据标识关联添加至第三索引信息的排序键中。
在一些可能的实施方式中,划分模块在将目标对象数据划分为多个目标数据块时,具体用于:
基于预设窗口遍历目标对象数据,并确定窗口的在遍历过程中的哈希值;
若检测到窗口的哈希值满足预设条件,则基于窗口的当前位置确定划分边界,基于划分边界划分目标对象数据,得到多个目标数据块。
在一些可能的实施方式中,划分模块还用于:
若检测到窗口的当前位置与上一个划分边界之间形成的数据块的数据量达到预设阈值,则基于窗口的当前位置确定划分边界,基于划分边界划分目标对象数据,得到多个目标数据块。
另一方面,本申请实施例还提供了一种数据处理装置,包括:
接收模块,用于接收针对目标对象数据的目标数据块的待处理请求;其中,待处理请求中携带有目标数据块的目标数据块标识;待处理请求包括待删除请求或待获取请求;
第二查询模块,用于基于待处理请求在存储系统的第二索引信息中查询与目标数据块标识对应的目标消息摘要;第二索引信息用于表征已存储的对象数据的对象数据标识、每一对象数据所包含的每一数据块的数据块标识以及每一数据块的消息摘要之间的关联关系;
第三查询模块,用于在存储系统的第一索引信息中查询目标消息摘要对应的目标存储路径;第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系;
处理模块,用于基于目标存储路径处理目标数据块。
在一些可能的实施方式中,待处理请求包括待删除请求;装置还包括第一删除模块,用于:
基于待处理请求在存储系统的第二索引信息中删除与目标数据块标识对应的目标消息摘要。
在一些可能的实施方式中,还包括第二删除模块,用于:
在第三索引信息中查询并删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系;第三索引信息用于表征已存储的每一数据块的消息摘要与数据块所属的对象数据之间的关联关系;
处理模块在基于目标存储路径处理目标数据块时,具体用于:
若确定已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中不存在与目标消息摘要对应的关联关系,则基于目标存储路径删除目标数据块。
在一些可能的实施方式中,还包括确定模块,用于:
若确定已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中仍存在与目标消息摘要对应的关联关系,则不删除目标数据块。
在一些可能的实施方式中,还包括第三删除模块,用于:
将目标消息摘要与目标数据块所属的目标对象数据之间的关联关系添加至索引记录中;
在第一索引信息中删除目标消息摘要与目标存储路径之间的关联关系。
在一些可能的实施方式中,待处理请求包括待获取请求;还包括插入模块,用于:
若在第一索引信息中未查询目标消息摘要,则在索引记录中查询目标消息摘要;索引记录包括已删除的消息摘要与存储路径之间的关联关系;
基于索引记录中与目标消息摘要对应的目标存储路径获取目标数据块。
另一方面,本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,存储器中存储有计算机程序,处理器执行该计算机程序以实现本申请任一可选实施例中提供的方法。
另一方面,本申请实施例还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,该计算机程序被处理器执行时实现本申请任一可选实施例中提供的方法。
另一方面,本申请实施例还提供了一种计算机程序产品,该计算机产品包括计算机程序,该计算机程序被处理器执行时实现本申请任一可选实施例中提供的方法。
本申请实施例提供的技术方案带来的有益效果如下:
上述实施例中,通过在存储系统中设置第一索引信息,建立已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系,在上传目标数据对象的目标数据块时,先在第一索引信息中查询目标数据块的目标消息摘要,若在第一索引信息中未查询到目标数据块的目标消息摘要,则存储系统中没有与目标数据块的目标消息摘要相同的数据块存在,则需要将目标数据块上传到存储系统中;若在第一索引信息中查询到目标数据块的目标消息摘要,则不需要将目标数据块上传到存储系统中,可以对目标数据块进行去重存储;然后将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中,记录存储系统中已存储的对象数据的对象数据标识、每一对象的多个数据块的数据块标识以及每一数据块的消息摘要之间的关联关系,以便于对已存储的对象数据进行删除或下载等处理。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请一个示例中提供的数据处理方法的应用环境示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请一个示例中提供的对对象数据进行分块的方案的示意图;
图4为本申请一个示例提供的第一索引信息的示意图;
图5为本申请一个示例提供的第二索引信息的示意图;
图6为本申请一个示例提供的第三索引信息的示意图;
图7为本申请一个示例提供的第一索引信息的示意图;
图8为本申请一个示例提供的第二索引信息的示意图;
图9为本申请一个示例提供的第三索引信息的示意图;
图10为本申请实施例提供的一种数据处理方法的流程示意图;
图11为本申请实施例提供的一种数据处理装置的结构示意图;
图12为本申请实施例提供的一种数据处理装置的结构示意图;
图13为本申请实施例所适用的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或 “耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。在描述多个(两个或两个以上)项目时,如果没有明确限定多个项目之间的关系,这多个项目之间可以是指多个项目中的一个、多个或者全部,例如,对于“参数A包括A1、A2、A3”的描述,可以实现为参数A包括A1或A2或A3,还可以实现为参数A包括参数A1、A2、A3这三项中的至少两项。
可选的,本申请实施例所涉及的数据处理可以基于云技术(Cloud technology)中的云储存(cloud storage)来实现。
云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云存储是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible MarkupLanguage,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言(Structured QueryLanguage)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
下面通过对几个可选的实施例的描述,对本申请提供的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供的数据处理方法的应用环境示意图。其中,应用环境可以包括服务器101和存储系统102。服务器101发送目标对象的目标对象数据至存储系统102;存储系统102将所述目标对象数据划分为多个目标数据块,并确定每个目标数据块的目标消息摘要;针对每一目标数据块,在所述存储系统102的第一索引信息中查询所述目标数据块的目标消息摘要;所述第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系;针对每一目标数据块,若在所述存储系统102的第一索引信息中未查询到所述目标数据块的目标消息摘要,则将所述目标数据块存储至所述存储系统中,并将所述目标消息摘要与所述目标数据块的存储路径之间的关联关系添加至所述第一索引信息中;将所述目标对象数据的对象数据标识、所述目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至存储系统102的第二索引信息中。
本技术领域技术人员可以理解,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、音视频、辅助驾驶等。具体也可基于实际应用场景需求确定,在此不作限定。
本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
需要说明的是,在本申请的可选实施例中,所涉及到的对象数据等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。也就是说,本申请实施例中如果涉及到与对象数据等相关的数据,这些数据需要经由对象授权同意、且符合国家和地区的相关法律法规和标准的情况下获取的。
图2示出了本申请实施例提供的一种数据处理方法的流程示意图,以执行主体为存储系统为例,本申请提供的数据处理方法,可以包括如下步骤:
步骤S201,获取待上传至存储系统的目标对象的目标对象数据。
其中,存储系统可以包括对象存储(Cloud Object Storage,COS),COS无目录层次结构、无数据格式限制,可容纳海量数据且支持HTTP(超文本传输协议,HypertextTransfer Protocol)/HTTPS(超文本传输安全协议,Hypertext Transfer ProtocolSecure)协议访问的分布式存储服务。
具体的,存储系统接收到数据上传请求,上传请求中携带有针对目标对象数据的对象数据标识,基于对象数据标识获取目标对象的目标对象数据。
步骤S202,将目标对象数据划分为多个目标数据块,并确定每个目标数据块的目标消息摘要。
其中,可以采用CDC(Content-Defined Chunking,基于内容可变长度分块)将目标对象数据划分为多个目标数据块。
其中,可以通过安全散列算法(Secure Hash Algorithm,SHA)确定目标数据块的目标消息摘要,例如,通过SHA256确定目标数据块的目标消息摘要。
具体的,对于任意长度(按bit计算)的消息,SHA256都会产生一个32个字节长度数据,即目标消息摘要。
在具体实施过程中,可以一边划分目标对象数据,一边将已经划分得到的目标数据块进行上传,可以提高上传效率。
在一些可能的实施方式中,步骤S202将所述目标对象数据划分为多个目标数据块,可以包括:
基于预设窗口遍历所述目标对象数据,并确定所述窗口的在遍历过程中的哈希值;
若检测到所述窗口的哈希值满足预设条件,则基于所述窗口的当前位置确定划分边界,基于所述划分边界划分所述目标对象数据,得到多个目标数据块。
具体的,用一个固定大小的预设窗口,顺序遍历整个目标对象数据,在遍历的过程中,计算每个窗口的哈希值(hash),当hash值满足一定的条件时(比如说hash值的后10位都是0,这样的hash值称为指纹),即把这个窗口做为边界划分目标数据块。
在目标对象数据的头部或者中间插入内容时,并不会影响后面内容指纹的计算,后面的内容还是会在指纹处切分目标数据块,因此这种方法能更好的应对这种对目标对象数据修改的场景。
如图3所示,在一个示例中,对目标对象数据按照平均4MB的大小来进行动态分块,假设窗口大小是32字节,遍历整个文件,在遍历的过程中,计算每个窗口的crc64(循环冗余校验),可以认为crc64是完全均匀的,因此要达到4MB的平均块大小的话,可以定义指纹为crc64的后面22位都为0,在这样的指纹处切分分块。
另外由于在遍历文件的过程中要一直计算窗口的hash值,因此为了效率,这里使用的是rolling hash(滚动哈希),比如说窗口沿着文件滑动了一个字节,只需要在原来hash值的基础上,追加一个字节,再去掉前面一个字节,因此rolling hash会非常的高效。
在一些可能的实施方式中,还包括:若检测到所述窗口的当前位置与上一个划分边界之间形成的数据块的数据量达到预设阈值,则基于所述窗口的当前位置确定划分边界,基于所述划分边界划分所述目标对象数据,得到多个目标数据块。
具体的,若检测到窗口的当前位置与上一个划分边界之间形成的数据块的数据量达到,则无论窗口的哈希值是否满足预设条件,都直接进行划分,这样可以保证划分的多个数据库的数据量大小控制在预设阈值以内。
以预设阈值为6MB为例,若检测到窗口滑动到一个位置时,数据块的数据量已经达到6MB,则直接进行划分。
步骤S203,针对每一目标数据块,在存储系统的第一索引信息中查询目标数据块的目标消息摘要。
其中,第一索引信息也可以称为分块索引。
其中,第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系。
具体的,具有相同消息摘要的数据块可以认为是相同的数据块,也就是说,在第一索引信息中,若多个数据块具有相同的消息摘要,只需要存储一个数据块的数据即可。
如图4所示,在一个示例中,第一索引信息可以包括图4所示的形式,即每一个消息摘要对应一个存储路径,可能多个数据块具有相同的消息摘要,则对应同一个存储路径。
其中,bid(Binary Large Object Identity document,二进制大对象标识)表示的是数据块,在存储系统中的唯一标识,可以看作存储路径。
在具体实施过程中,已知已存储的任一数据块的消息摘要,即可通过第一索引信息查询对应的存储路径。
步骤S204,针对每一目标数据块,若在第一索引信息中未查询到目标数据块的目标消息摘要,则将目标数据块存储至存储系统中,并将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中。
具体的,若在第一索引信息中未查询到目标数据块的目标消息摘要,则存储系统中没有与目标数据块的目标消息摘要相同的数据块存在,则需要将目标数据块上传到存储系统中,并且需要将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中。
若在第一索引信息中查询到目标数据块的目标消息摘要,则存储系统中已经有与目标数据块的目标消息摘要相同的数据块存在,相同的消息摘要可以对应多个不同的数据块,即相同的多个数据块只需要存储一个即可,则不需要将目标数据块上传到存储系统中,且不需要将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中。
步骤S205,将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中。
其中,第二索引信息也可以称为正向索引信息。
其中,第二索引信息中包括已存储的对象数据的对象数据标识、每一对象的多个数据块的数据块标识以及每一数据块的消息摘要之间的关联关系。
具体的,不同的对象数据对应不同的对象数据标识,对于不同的对象数据,无论是否在第一索引信息中查询到目标对象数据的各个目标数据块的目标消息摘要,都需要将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中。
在具体实施过程中,每一目标数据块的数据块标识可以是以每一数据块的消息摘要之间的排列顺序来表示,也可以直接用数据块标识直接表示。
如图5所示,在一个示例中,第二索引信息可以包括图5所示的形式,如对象数据“filekey1”,包括三个不同的数据块,三个数据块的消息摘要分别为sha256_1、sha256_2和sha256_1,此时三个数据块对应的三个消息摘要的排列顺序,即可以代表三个数据块的数据块标识,即排列顺序可以知道每一个消息摘要对应的是哪一个数据块。
可以理解的是,不同的对象数据的数据块,可能具有相同的消息摘要;同一个对象数据的不同数据块,也可能具有相同的消息摘要。
图5中对象数据“filekey1”,第一个数据块和第三个数据块的消息摘要即相同。
在具体实施过程中,第二索引信息中还可以包括每一数据块的偏移量的大小。
在具体实施过程中,已知已存储的任一数据块的数据块标识,即可查询到该数据块的消息摘要,以及该数据块所属的对象数据的对象数据标识,还可以查询到该数据块的偏移量的大小。
上述实施例中,通过在存储系统中设置第一索引信息,建立已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系,在上传目标数据对象的目标数据块时,先在第一索引信息中查询目标数据块的目标消息摘要,若在第一索引信息中未查询到目标数据块的目标消息摘要,则存储系统中没有与目标数据块的目标消息摘要相同的数据块存在,则需要将目标数据块上传到存储系统中;若在第一索引信息中查询到目标数据块的目标消息摘要,则不需要将目标数据块上传到存储系统中,可以不依赖于计数实现对目标数据块进行去重存储。
此外,然后将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中,记录存储系统中已存储的对象数据的对象数据标识、每一对象的多个数据块的数据块标识以及每一数据块的消息摘要之间的关联关系,以便于对已存储的对象数据进行删除或下载等处理。
在一些可能的实施方式中,还包括:
针对每一目标数据块,将目标数据块的目标消息摘要与目标对象数据的对象数据标识之间的关联关系添加至存储系统的第三索引信息中。
其中,第三索引信息也可以称为反向索引信息。
其中,第三索引信息包括已存储的数据块的消息摘要与数据块所属的对象数据的对象数据标识之间的关联关系。
上述过程中,无论第一索引信息中是否查询到目标数据块的目标消息摘要,即无论存储系统中是否存在与目标数据块的目标消息摘要相同的数据块存在,都将目标数据块的目标消息摘要与目标对象数据的对象数据标识之间的关联关系添加至存储系统的第三索引信息中,则说明已存储的每一对象数据的每一数据块都有对应的第三索引信息。
也就是说,即便同一个对象数据中两个不同的数据块标识对应的消息摘要相同,即两个不同的数据块的消息摘要与对应的对象数据的对象数据标识之间的关联关系完全相同,也会存储两个消息摘要与对应的对象数据的对象数据标识之间的关联关系。
在具体实施过程中,已知任一消息摘要,可以确定具有该消息摘要的数据块分别属于哪一对象数据,此外,通过第三索引信息,可以检索出具有相同的一个消息摘要的数据块的数量。
如图6所示,在一个示例中,第三索引信息可以包括图6所示的形式,每一个消息摘要对应一个数据块所属的对象数据的对象数据标识。同一个对象数据filekey2的两个数据块的消息摘要均为sha256_2,则会在第三索引信息中均进行记载。
上述实施例中,通过第三索引信息记录已存储的数据块的消息摘要与数据块所属的对象数据的对象数据标识之间的关联关系,已知任一消息摘要,可以确定具有该消息摘要的数据块分别属于哪一对象数据,还可以检索出具有相同的一个消息摘要的数据块的数量,以便于需要对数据块进行删除时,可以基于第三索引信息判断是否需要基于删除路径删除所存储的数据块。
在一些可能的实施方式中,第一索引信息、第二索引信息和第三索引信息中的键(key)均可以分为分区键(keyhash)和排序键(keyrange),第一索引信息、第二索引信息和第三索引信息均可以还包括键值(value)。
具体的,一个key的区间是有序的,新的上传,区间会很集中,导致性能成为瓶颈,将key分为keyhash和keyrange,keyhash可以用于分区,keyrange用于排序,可以避免key的区间集中,有效提升性能。
在一些可能的实施方式中,步骤S204将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中,可以包括:
将目标消息摘要添加至第一索引信息的分区键中,并将目标数据块的存储路径关联添加至第一索引信息的键值中。
也就是说,在第一索引信息中,消息摘要是对应于keyhash,存储路径对应于value,可以避免key的区间集中,有效提升性能;此外,在基于消息摘要查询存储路径的过程中,一个消息摘要对应一个存储路径,不需要进行排序,因此keyrange可以为空。
如图7所示,在一个示例中,第一索引信息可以包括图7所示的形式,即每一个消息摘要对应一个存储路径,消息摘要对应于keyhash,存储路径对应于value,keyrange为空。
在一些可能的实施方式中,步骤S205将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中,可以包括:
将目标对象数据的对象数据标识添加至第二索引信息的分区键中,并将目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要添加至第二索引信息的键值中。
也就是说,在第二索引信息中,对象数据标识对应于keyhash,对象数据所包含的每一数据块的数据块标识以及每一数据块的消息摘要对应于value,可以避免key的区间集中,有效提升性能;此外,在基于消息摘要查询存储路径的过程中,一个对象数据所包含的每一数据块的数据块标识以及每一数据块的消息摘要是唯一的,不需要进行排序,因此keyrange可以为空。
如图8所示,在一个示例中,第二索引信息可以包括图8所示的形式,即针对每一个对象数据,对象数据标识对应于keyhash,对象数据所包含的每一数据块的数据块标识以及每一数据块的消息摘要对应于value。
在一些可能的实施方式中,将目标数据块的目标消息摘要与目标对象数据的对象数据标识之间的关联关系添加至存储系统的第三索引信息中,可以包括:
将目标数据块的目标消息摘要添加至第三索引信息的分区键中,并将目标对象数据的对象数据标识关联添加至第三索引信息的排序键中。
也就是说,在第三索引信息中,每一数据块的消息摘要对应于keyhash,可以避免key的区间集中,有效提升性能;在基于消息摘要查询的对象数据的对象数据标识时,是需要判断具有相同的消息摘要有多少个不同的数据块,即需要进行排序,因此数据块所属的对象数据的对象数据标识对应于keyrange。
如图9所示,在一个示例中,第三索引信息可以包括图9所示的形式,即针对每一个数据块,数据块的消息摘要对应于keyhash,数据块所属的对象数据的对象数据标识对应于keyrange,value可以为空。
以下将结合示例对对象数据的存储过程进行说明。
在一个示例中,本申请的数据处理方法可以包括:
获取待上传至存储系统的目标对象的目标对象数据;
将目标对象数据划分为多个目标数据块,并确定每个目标数据块的目标消息摘要;
针对每一目标数据块,在存储系统的第一索引信息中查询目标数据块的目标消息摘要;
若在第一索引信息中未查询到目标数据块的目标消息摘要,则将目标数据块存储至存储系统中,将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中;
若在第一索引信息中查询到目标数据块的目标消息摘要,则不存储目标数据块,也不更新第一索引信息;
无论是否在第一索引信息中查询到目标数据块的目标消息摘要,针对每一目标数据块,将目标数据块的目标消息摘要与目标对象数据的对象数据标识之间的关联关系添加至存储系统的第三索引信息中;
将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中。
上述的数据处理方法,通过在存储系统中设置第一索引信息,建立已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系,在上传目标数据对象的目标数据块时,先在第一索引信息中查询目标数据块的目标消息摘要,若在第一索引信息中未查询到目标数据块的目标消息摘要,则存储系统中没有与目标数据块的目标消息摘要相同的数据块存在,则需要将目标数据块上传到存储系统中;若在第一索引信息中查询到目标数据块的目标消息摘要,则不需要将目标数据块上传到存储系统中,可以不依赖于计数实现对目标数据块进行去重存储。
此外,将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中,记录存储系统中已存储的对象数据的对象数据标识、每一对象的多个数据块的数据块标识以及每一数据块的消息摘要之间的关联关系,以便于对已存储的对象数据进行删除或下载等处理。
进一步的,通过第三索引信息记录已存储的数据块的消息摘要与数据块所属的对象数据的对象数据标识之间的关联关系,已知任一消息摘要,可以确定具有该消息摘要的数据块分别属于哪一对象数据,还可以检索出具有相同的一个消息摘要的数据块的数量,以便于需要对数据块进行删除时,可以基于第三索引信息判断是否需要基于删除路径删除所存储的数据块。
图10示出了本申请实施例提供的一种数据处理方法的流程示意图,以执行主体为存储系统为例,本申请提供的数据处理方法,可以包括如下步骤:
步骤S1001,接收针对目标对象数据的目标数据块的待处理请求。
其中,待处理请求中携带有目标数据块的目标数据块标识;待处理请求包括待删除请求或待获取请求。
步骤S1002,基于待处理请求在存储系统的第二索引信息中查询与目标数据块标识对应的目标消息摘要。
其中,第二索引信息也可以称为正向索引信息。
其中,第二索引信息用于表征已存储的对象数据的对象数据标识、每一对象数据所包含的每一数据块的数据块标识以及每一数据块的消息摘要之间的关联关系。
在具体实施过程中,每一目标数据块的数据块标识可以是以每一数据块的消息摘要之间的排列顺序来表示,也可以直接用数据块标识直接表示。
其中,第二索引信息中还可以包括每一数据块的偏移量的大小。
在具体实施过程中,已知已存储的任一数据块的数据块标识,即可查询到该数据块的消息摘要,以及该数据块所属的对象数据的对象数据标识,还可以查询到该数据块的偏移量的大小。
步骤S1003,在存储系统的第一索引信息中查询目标消息摘要对应的目标存储路径。
其中,第一索引信息也可以称为分块索引信息。
其中,第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系。
具体的,具有相同消息摘要的数据块可以认为是相同的数据块,也就是说,在第一索引信息中,若多个数据块具有相同的消息摘要,只需要保留一个数据块的数据即可。
步骤S1004,基于目标存储路径处理目标数据块。
具体的,若待处理请求包括待删除请求,则需要先判断是否需要删除目标数据块,若需要删除目标数据块,则通过存储路径删除目标数据块,具体针对目标数据块的删除过程将在下文进行进一步详细阐述。
若待处理请求包括待获取请求,待获取可以为下载或查询,则可以通过目标存储路径获取目标数据块。
上述实施例中,通过在存储系统中设置第二索引信息,建立已存储的对象数据的对象数据标识、每一对象的多个数据块的数据块标识以及每一数据块的消息摘要之间的关联关系;通过第一索引信息建立已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系,在上传数据块时可以不依赖于计数实现对目标数据块进行去重存储;在需要处理目标数据对象的目标数据块时,先在第二索引信息中查询目标数据块的目标消息摘要,然后在存储系统的第一索引信息中查询目标消息摘要对应的目标存储路径,通过目标存储路径对目标数据块进行处理。
以下将结合实施例对目标数据块的删除过程进行详细说明。
在一些可能的实施方式中,待处理请求包括待删除请求;方法还包括:
基于待处理请求在存储系统的第二索引信息中删除与目标数据块标识对应的目标消息摘要。
具体的,若需要删除目标数据对象的目标数据块,则首先从第二索引信息中,目标数据对象标识对应的多个数据块的数据块标识以及每一数据块的消息摘要中,删除目标数据块的数据块标识和目标消息摘要。
在一些可能的实施方式中,步骤S1003在存储系统的第一索引信息中查询目标消息摘要对应的目标存储路径之前,还包括:
在第三索引信息中查询并删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系。
其中,第三索引信息也可以称为反向索引信息。
其中,第三索引信息用于表征已存储的每一数据块的消息摘要与数据块所属的对象数据之间的关联关系。
具体的,每一数据块的消息摘要与数据块所属的对象数据均存储于第三索引信息中,即便同一个对象数据中两个不同的数据块标识对应的消息摘要相同,即两个不同的数据块的消息摘要与对应的对象数据的对象数据标识之间的关联关系完全相同,也会存储两个消息摘要与对应的对象数据的对象数据标识之间的关联关系。
步骤S1004基于目标存储路径处理目标数据块,可以包括:
若确定已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中不存在与目标消息摘要对应的关联关系,则基于目标存储路径删除目标数据块。
具体的,若确定已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中不存在与目标消息摘要对应的关联关系,则代表具有目标消息摘要的数据块,只有目标数据块一个,没有其他数据块的消息摘要与目标数据块的消息摘要相同,也就是存储系统中没有与目标数据块相同的数据块,此时需要删除目标数据块。
在一些可能的实施方式中,还包括:
若确定已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中仍存在与目标消息摘要对应的关联关系,则不删除目标数据块。
具体的,若确定已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中仍存在与目标消息摘要对应的关联关系,则代表存储系统中至少还有一个其他数据块的消息摘要与目标数据块的消息摘要相同,也就是存储系统中至少有一个与目标数据块相同的数据块,此时不能删除目标数据块。
在一些可能的实施方式中,还包括:
将目标消息摘要与目标数据块所属的目标对象数据之间的关联关系添加至索引记录中;
在第一索引信息中删除目标消息摘要与目标存储路径之间的关联关系。
其中,索引记录可以包括分块索引信息的已删除记录,可以称为分块索引fossil(化石)表。
在具体实施过程中,若确定已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中不存在与目标消息摘要对应的关联关系,则可以将目标消息摘要与目标数据块所属的目标对象数据之间的关联关系插入到索引记录中,再删除第一索引信息中目标消息摘要与目标存储路径之间的关联关系,以便于后续如果还要用到目标消息摘要,还可以通过索引记录进行查询。
具体的,在对第一索引信息、第二索引信息、第三索引信息进行处理时,可以通过CAS(Compare And Swap,比较和交换)机制,CAS机制是一个原子操作,实现此机制的原子类记录着当前值的在内存中存储的偏移地址,将内存中的真实值V与旧的预期值A做比较,如果不一致则说明内存中的值被其他线程修改过了,返回失败,否则将新值B存入内存。
例如,需要上传两个消息摘要均为sha256_2的数据块到存储系统各种,t1时刻判断都判断sha256_2不在第一索引信息中,则这两个数据块都需要上传到存储系统中,会返回两个存储路径bid_a和bid_b,当在第一索引信息中增加sha256_2和bid_b之间的关联关系时,判断第一索引信息中已经存在sha256_2和bid_a之间的对应关系,则可以通过CAS机制删除在第一索引信息中sha256_2和bid_b之间的关联关系,然后再次判断sha256_2是否在第一索引信息中,此时则不需要再上传第二个数据块,也不需要再增加sha256_2和bid_b之间的关联关系。
以下将结合实施例阐述针对回收站中索引记录的清理过程。
在一些可能的实施方式中,针对索引记录中的数据处理过程,可以包括:
针对索引记录里的任一目标消息摘要,判断第一索引信息中是否存在目标消息摘要对应的关联关系;
若存在,则删除索引记录该目标消息摘要对应的关联关系;
若不存在,判断第三索引信息中是否存在目标消息摘要对应的关联关系;
若不存在,则删除索引记录该目标消息摘要对应的关联关系;
若存在,则不删除索引记录该目标消息摘要对应的关联关系。
以下将结合示例对对象数据的删除过程进行说明。
在一个示例中,本申请的数据处理方法可以包括:
当接收到针对目标数据块的删除请求时,在第二索引信息中查询与目标数据块标识对应的目标消息摘要;
在第二索引信息中删除与目标数据块标识对应的目标消息摘要;
在第三索引信息中查询并删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系;
判断已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中是否仍存在与目标消息摘要对应的关联关系;
若是,则不删除目标数据块,在第一索引信息中删除目标消息摘要与目标存储路径之间的关联关系;
若否,则删除目标数据块,将目标消息摘要与目标数据块所属的目标对象数据之间的关联关系添加至索引记录中,在第一索引信息中删除目标消息摘要与目标存储路径之间的关联关系。
上述实施例中,通过第三索引信息记录已存储的每一数据块的消息摘要与数据块所属的对象数据之间的关联关系,在接收到针对目标数据块的删除请求时,可以通过第三索引信息判断存储系统中是否还存在其他数据块的消息摘要与目标数据块的消息摘要相同,也就是判断存储系统中是否有与目标数据块相同的数据块,从而进一步判断是否需要通过目标存储路径删除目标数据块,可以维持存储系统中相同的消息摘要的数据块只存储一份,实现数据块的去重存储和删除。
上述实施例阐述了针对数据块的删除过程,以下将结合实施例进一步阐述针对数据块的获取过程。
在一些可能的实施方式中,待处理请求包括待获取请求。方法还包括:
(1)若在第一索引信息中未查询目标消息摘要,则在索引记录中查询目标消息摘要;
(2)基于索引记录中与目标消息摘要对应的目标存储路径获取目标数据块。
其中,索引记录包括已删除的消息摘要与存储路径之间的关联关系。
具体的,若在第一索引信息中未查询目标消息摘要,则该目标消息摘要对应的目标存储路径已删除,则从索引记录中查询对应的目标存储路径。
上述的数据处理方法,通过在存储系统中设置第二索引信息,建立已存储的对象数据的对象数据标识、每一对象的多个数据块的数据块标识以及每一数据块的消息摘要之间的关联关系;通过第一索引信息建立已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系,在上传数据块时可以不依赖于计数实现对目标数据块进行去重存储;在需要处理目标数据对象的目标数据块时,先在第二索引信息中查询目标数据块的目标消息摘要,然后在存储系统的第一索引信息中查询目标消息摘要对应的目标存储路径,通过目标存储路径对目标数据块进行处理。
进一步的,通过第三索引信息记录已存储的每一数据块的消息摘要与数据块所属的对象数据之间的关联关系,在接收到针对目标数据块的删除请求时,可以通过第三索引信息判断存储系统中是否还存在其他数据块的消息摘要与目标数据块的消息摘要相同,也就是判断存储系统中是否有与目标数据块相同的数据块,从而进一步判断是否需要通过目标存储路径删除目标数据块,可以维持存储系统中相同的消息摘要的数据块只存储一份,实现数据块的去重存储和删除。
如图11所示,在一些可能的实施方式中,提供了一种数据处理装置,包括:
第一获取模块1101,用于获取待上传至存储系统的目标对象的目标对象数据;
划分模块1102,用于将目标对象数据划分为多个目标数据块,并确定每个目标数据块的目标消息摘要;
第一查询模块1103,用于针对每一目标数据块,在存储系统的第一索引信息中查询目标数据块的目标消息摘要;第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系;
存储模块1104,用于针对每一目标数据块,若在第一索引信息中未查询到目标数据块的目标消息摘要,则将目标数据块存储至存储系统中,并将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中;
第一添加模块1105,用于将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中。
在一些可能的实施方式中,还包括第二添加模块,用于:
针对每一目标数据块,将目标数据块的目标消息摘要与目标对象数据的对象数据标识之间的关联关系添加至存储系统的第三索引信息中。
在一些可能的实施方式中,存储模块1104在将目标消息摘要与目标数据块的存储路径之间的关联关系添加至第一索引信息中时,具体用于:
将目标消息摘要添加至第一索引信息的分区键中,并将目标数据块的存储路径关联添加至第一索引信息的键值中。
在一些可能的实施方式中,第一添加模块1105在将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中时,具体用于:
将目标对象数据的对象数据标识添加至第二索引信息的分区键中,并将目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要添加至第二索引信息的键值中。
在一些可能的实施方式中,第二添加模块在将目标数据块的目标消息摘要与目标对象数据的对象数据标识之间的关联关系添加至存储系统的第三索引信息中时,具体用于:
将目标数据块的目标消息摘要添加至第三索引信息的分区键中,并将目标对象数据的对象数据标识关联添加至第三索引信息的排序键中。
在一些可能的实施方式中,划分模块1102在将目标对象数据划分为多个目标数据块时,具体用于:
基于预设窗口遍历目标对象数据,并确定窗口的在遍历过程中的哈希值;
若检测到窗口的哈希值满足预设条件,则基于窗口的当前位置确定划分边界,基于划分边界划分目标对象数据,得到多个目标数据块。
在一些可能的实施方式中,划分模块1102还用于:
若检测到窗口的当前位置与上一个划分边界之间形成的数据块的数据量达到预设阈值,则基于窗口的当前位置确定划分边界,基于划分边界划分目标对象数据,得到多个目标数据块。
上述的数据处理装置,通过在存储系统中设置第一索引信息,建立已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系,在上传目标数据对象的目标数据块时,先在第一索引信息中查询目标数据块的目标消息摘要,若在第一索引信息中未查询到目标数据块的目标消息摘要,则存储系统中没有与目标数据块的目标消息摘要相同的数据块存在,则需要将目标数据块上传到存储系统中;若在第一索引信息中查询到目标数据块的目标消息摘要,则不需要将目标数据块上传到存储系统中,可以不依赖于计数实现对目标数据块进行去重存储。
此外,将目标对象数据的对象数据标识、目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中,记录存储系统中已存储的对象数据的对象数据标识、每一对象的多个数据块的数据块标识以及每一数据块的消息摘要之间的关联关系,以便于对已存储的对象数据进行删除或下载等处理。
进一步的,通过第三索引信息记录已存储的数据块的消息摘要与数据块所属的对象数据的对象数据标识之间的关联关系,已知任一消息摘要,可以确定具有该消息摘要的数据块分别属于哪一对象数据,还可以检索出具有相同的一个消息摘要的数据块的数量,以便于需要对数据块进行删除时,可以基于第三索引信息判断是否需要基于删除路径删除所存储的数据块。
如图12所示,在一些可能的实施方式中,提供了一种数据处理装置,包括:
接收模块1201,用于接收针对目标对象数据的目标数据块的待处理请求;其中,待处理请求中携带有目标数据块的目标数据块标识;待处理请求包括待删除请求或待获取请求;
第二查询模块1202,用于基于待处理请求在存储系统的第二索引信息中查询与目标数据块标识对应的目标消息摘要;第二索引信息用于表征已存储的对象数据的对象数据标识、每一对象数据所包含的每一数据块的数据块标识以及每一数据块的消息摘要之间的关联关系;
第三查询模块1203,用于在存储系统的第一索引信息中查询目标消息摘要对应的目标存储路径;第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系;
处理模块1204,用于基于目标存储路径处理目标数据块。
在一些可能的实施方式中,待处理请求包括待删除请求;装置还包括第一删除模块,用于:
基于待处理请求在存储系统的第二索引信息中删除与目标数据块标识对应的目标消息摘要。
在一些可能的实施方式中,还包括第二删除模块,用于:
在第三索引信息中查询并删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系;第三索引信息用于表征已存储的每一数据块的消息摘要与数据块所属的对象数据之间的关联关系;
处理模块1204在基于目标存储路径处理目标数据块时,具体用于:
若确定已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中不存在与目标消息摘要对应的关联关系,则基于目标存储路径删除目标数据块。
在一些可能的实施方式中,还包括确定模块,用于:
若确定已删除目标消息摘要与目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中仍存在与目标消息摘要对应的关联关系,则不删除目标数据块。
在一些可能的实施方式中,还包括第三删除模块,用于:
将目标消息摘要与目标数据块所属的目标对象数据之间的关联关系添加至索引记录中;
在第一索引信息中删除目标消息摘要与目标存储路径之间的关联关系。
在一些可能的实施方式中,待处理请求包括待获取请求;还包括插入模块,用于:
若在第一索引信息中未查询目标消息摘要,则在索引记录中查询目标消息摘要;索引记录包括已删除的消息摘要与存储路径之间的关联关系;
基于索引记录中与目标消息摘要对应的目标存储路径获取目标数据块。
上述的数据处理装置,通过在存储系统中设置第二索引信息,建立已存储的对象数据的对象数据标识、每一对象的多个数据块的数据块标识以及每一数据块的消息摘要之间的关联关系;通过第一索引信息建立已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系,在上传数据块时可以不依赖于计数实现对目标数据块进行去重存储;在需要处理目标数据对象的目标数据块时,先在第二索引信息中查询目标数据块的目标消息摘要,然后在存储系统的第一索引信息中查询目标消息摘要对应的目标存储路径,通过目标存储路径对目标数据块进行处理。
进一步的,通过第三索引信息记录已存储的每一数据块的消息摘要与数据块所属的对象数据之间的关联关系,在接收到针对目标数据块的删除请求时,可以通过第三索引信息判断存储系统中是否还存在其他数据块的消息摘要与目标数据块的消息摘要相同,也就是判断存储系统中是否有与目标数据块相同的数据块,从而进一步判断是否需要通过目标存储路径删除目标数据块,可以维持存储系统中相同的消息摘要的数据块只存储一份,实现数据块的去重存储和删除。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行存储器中存储的计算机程序时可实现本申请任一可选实施例中的方法。
图13示出了本发明实施例所适用的一种电子设备的结构示意图,如图13所示,该电子设备可以为服务器或者终端,该电子设备可以用于实施本发明任一实施例中提供的方法。
如图13中所示,该电子设备1300主要可以包括至少一个处理器1301(图13中示出了一个)、存储器1302、通信模块1303和输入/输出接口1304等组件,可选的,各组件之间可以通过总线1305实现连接通信。需要说明的是,图13中示出的该电子设备1300的结构只是示意性的,并不构成对本申请实施例提供的方法所适用的电子设备的限定。
其中,存储器1302可以用于存储操作系统和应用程序等,应用程序可以包括在被处理器1301调用时实现本发明实施例所示方法的计算机程序,还可以包括用于实现其他功能或服务的程序。存储器1302可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和计算机程序的其他类型的动态存储设备,也可以是EEPROM(ElectricallyErasable Programmable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(CompactDisc Read Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
处理器1301通过总线1305与存储器1302连接,通过调用存储器1302中所存储的应用程序实现相应的功能。其中,处理器1301可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application Specific Integrated Circuit,专用集成电路),FPGA(FieldProgrammable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合,其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器1301也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
电子设备1300可以通过通信模块1303(可以包括但不限于网络接口等组件)连接到网络,以通过网络与其它设备(如用户终端或服务器等)的通信,实现数据的交互,如向其他设备发送数据或从其他设备接收数据。其中,通信模块1303可以包括有线网络接口和/或无线网络接口等,即通信模块可以包括有线通信模块或无线通信模块中的至少一项。
在一些实施例中,电子设备1300可以通过输入/输出接口1304可以连接所需要的输入/输出设备,如键盘、显示设备等,电子设备130自身可以具有显示设备,还可以通过接口1304外接其他显示设备。可选的,通过该接口1304还可以连接存储装置,如硬盘等,以可以将电子设备1300中的数据存储到存储装置中,或者读取存储装置中的数据,还可以将存储装置中的数据存储到存储器1302中。可以理解的,输入/输出接口1304可以是有线接口,也可以是无线接口。根据实际应用场景的不同,与输入/输出接口1304连接的设备,可以是电子设备1300的组成部分,也可以是在需要时与电子设备1300连接的外接设备。
用于连接各组件的总线1305可以包括一通路,在上述组件之间传送信息。总线1305可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。根据功能的不同,总线1305可以分为地址总线、数据总线、控制总线等。
可选的,对于本发明实施例所提供的方案而言,存储器1302可以用于存储执行本发明方案的计算机程序,并由处理器1301来运行,处理器1301运行该计算机程序时实现本发明实施例提供的方法或装置的动作。
基于与本申请实施例提供的方法相同的原理,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的相应内容。
本申请实施例还提供了一种计算机程序产品,该产品包括计算机程序,该计算机程序被处理器执行时可实现前述方法实施例的相应内容。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (16)
1.一种数据处理方法,其特征在于,所述方法包括:
获取待上传至存储系统的目标对象的目标对象数据;
将所述目标对象数据划分为多个目标数据块,并确定每个目标数据块的目标消息摘要;
针对每一目标数据块,在所述存储系统的第一索引信息中查询所述目标数据块的目标消息摘要;所述第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系;
针对每一目标数据块,若在所述第一索引信息中未查询到所述目标数据块的目标消息摘要,则将所述目标数据块存储至所述存储系统中,并将所述目标消息摘要与所述目标数据块的存储路径之间的关联关系添加至所述第一索引信息中;
将所述目标对象数据的对象数据标识、所述目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中;
针对每一目标数据块,无论在所述第一索引信息中是否查询到所述目标数据块的目标消息摘要,将所述目标数据块的目标消息摘要与所述目标对象数据的对象数据标识之间的关联关系添加至所述存储系统的第三索引信息中。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标消息摘要与所述目标数据块的存储路径之间的关联关系添加至所述第一索引信息中,包括:
将所述目标消息摘要添加至所述第一索引信息的分区键中,并将所述目标数据块的存储路径关联添加至所述第一索引信息的键值中。
3.根据权利要求1所述的方法,其特征在于,所述将所述目标对象数据的对象数据标识、所述目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中,包括:
将所述目标对象数据的对象数据标识添加至所述第二索引信息的分区键中,并将所述目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要添加至所述第二索引信息的键值中。
4.根据权利要求2所述的方法,其特征在于,所述将所述目标数据块的目标消息摘要与所述目标对象数据的对象数据标识之间的关联关系添加至所述存储系统的第三索引信息中,包括:
将所述目标数据块的目标消息摘要添加至所述第三索引信息的分区键中,并将所述目标对象数据的对象数据标识关联添加至所述第三索引信息的排序键中。
5.根据权利要求1所述的方法,其特征在于,所述将所述目标对象数据划分为多个目标数据块,包括:
基于预设窗口遍历所述目标对象数据,并确定所述窗口的在遍历过程中的哈希值;
若检测到所述窗口的哈希值满足预设条件,则基于所述窗口的当前位置确定划分边界,基于所述划分边界划分所述目标对象数据,得到多个目标数据块。
6.根据权利要求5所述的方法,其特征在于,还包括:
若检测到所述窗口的当前位置与上一个划分边界之间形成的数据块的数据量达到预设阈值,则基于所述窗口的当前位置确定划分边界,基于所述划分边界划分所述目标对象数据,得到多个目标数据块。
7.一种数据处理方法,其特征在于,所述方法包括:
接收针对目标对象数据的目标数据块的待处理请求;其中,所述待处理请求中携带有目标数据块的目标数据块标识;所述待处理请求包括待删除请求或待获取请求;
基于所述待处理请求在存储系统的第二索引信息中查询与所述目标数据块标识对应的目标消息摘要;所述第二索引信息用于表征已存储的对象数据的对象数据标识、每一对象数据所包含的每一数据块的数据块标识以及每一数据块的消息摘要之间的关联关系;
若所述待处理请求包括待删除请求,在第三索引信息中查询并删除所述目标消息摘要与所述目标数据块所属的目标对象数据之间的关联关系;所述第三索引信息用于表征已存储的每一数据块的消息摘要与数据块所属的对象数据之间的关联关系;
在所述存储系统的第一索引信息中查询所述目标消息摘要对应的目标存储路径;所述第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系;
基于所述目标存储路径处理所述目标数据块。
8.根据权利要求7所述的方法,其特征在于,所述待处理请求包括待删除请求;所述方法还包括:
基于所述待处理请求在存储系统的第二索引信息中删除与所述目标数据块标识对应的目标消息摘要。
9.根据权利要求8所述的方法,其特征在于,
所述基于所述目标存储路径处理所述目标数据块,包括:
若确定已删除所述目标消息摘要与所述目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中不存在与所述目标消息摘要对应的关联关系,则基于所述目标存储路径删除所述目标数据块。
10.根据权利要求9所述的方法,其特征在于,还包括:
若确定已删除所述目标消息摘要与所述目标数据块所属的目标对象数据之间的关联关系后,第三索引信息中仍存在与所述目标消息摘要对应的关联关系,则不删除所述目标数据块。
11.根据权利要求10所述的方法,其特征在于,还包括:
将所述目标消息摘要与所述目标数据块所属的目标对象数据之间的关联关系添加至索引记录中;
在所述第一索引信息中删除所述目标消息摘要与所述目标存储路径之间的关联关系。
12.根据权利要求7所述的方法,其特征在于,所述待处理请求包括待获取请求;所述方法还包括:
若在所述第一索引信息中未查询所述目标消息摘要,则在索引记录中查询所述目标消息摘要;所述索引记录包括已删除的消息摘要与存储路径之间的关联关系;
基于所述索引记录中与所述目标消息摘要对应的目标存储路径获取所述目标数据块。
13.一种数据处理装置,其特征在于,包括:
第一获取模块,用于获取待上传至存储系统的目标对象的目标对象数据;
划分模块,用于将所述目标对象数据划分为多个目标数据块,并确定每个目标数据块的目标消息摘要;
第一查询模块,用于针对每一目标数据块,在所述存储系统的第一索引信息中查询所述目标数据块的目标消息摘要;所述第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系;
存储模块,用于针对每一目标数据块,若在所述第一索引信息中未查询到所述目标数据块的目标消息摘要,则将所述目标数据块存储至所述存储系统中,并将所述目标消息摘要与所述目标数据块的存储路径之间的关联关系添加至所述第一索引信息中;
第一添加模块,用于将所述目标对象数据的对象数据标识、所述目标对象数据所包含的每一目标数据块的数据块标识以及每一目标数据块的目标消息摘要之间的关联关系添加至第二索引信息中;
第二添加模块,用于针对每一目标数据块,无论在所述第一索引信息中是否查询到所述目标数据块的目标消息摘要,将所述目标数据块的目标消息摘要与所述目标对象数据的对象数据标识之间的关联关系添加至所述存储系统的第三索引信息中。
14.一种数据处理装置,其特征在于,包括:
接收模块,用于接收针对目标对象数据的目标数据块的待处理请求;其中,所述待处理请求中携带有目标数据块的目标数据块标识;所述待处理请求包括待删除请求或待获取请求;
第二查询模块,用于基于所述待处理请求在存储系统的第二索引信息中查询与所述目标数据块标识对应的目标消息摘要;所述第二索引信息用于表征已存储的对象数据的对象数据标识、每一对象数据所包含的每一数据块的数据块标识以及每一数据块的消息摘要之间的关联关系;
第二删除模块,用于在所述待处理请求包括待删除请求时,在第三索引信息中查询并删除所述目标消息摘要与所述目标数据块所属的目标对象数据之间的关联关系;所述第三索引信息用于表征已存储的每一数据块的消息摘要与数据块所属的对象数据之间的关联关系;
第三查询模块,用于在所述存储系统的第一索引信息中查询所述目标消息摘要对应的目标存储路径;所述第一索引信息包括多个已存储的数据块的消息摘要与每一消息摘要对应的一个数据块的存储路径之间的关联关系;
处理模块,用于基于所述目标存储路径处理所述目标数据块。
15.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-12任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-12任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311179441.8A CN116910051B (zh) | 2023-09-13 | 2023-09-13 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311179441.8A CN116910051B (zh) | 2023-09-13 | 2023-09-13 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116910051A CN116910051A (zh) | 2023-10-20 |
CN116910051B true CN116910051B (zh) | 2024-01-02 |
Family
ID=88355079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311179441.8A Active CN116910051B (zh) | 2023-09-13 | 2023-09-13 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116910051B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140067277A (ko) * | 2012-11-26 | 2014-06-05 | 에스코어 주식회사 | 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색, 입력, 삭제 및 가비지 컬렉션하는 방법 |
CN105808169A (zh) * | 2016-03-14 | 2016-07-27 | 联想(北京)有限公司 | 用于数据去重的方法、装置和系统 |
CN106980680A (zh) * | 2017-03-30 | 2017-07-25 | 联想(北京)有限公司 | 数据存储方法及存储设备 |
US9886446B1 (en) * | 2011-03-15 | 2018-02-06 | Veritas Technologies Llc | Inverted index for text searching within deduplication backup system |
CN108008918A (zh) * | 2017-11-30 | 2018-05-08 | 联想(北京)有限公司 | 数据处理方法、存储节点及分布式存储系统 |
CN108446076A (zh) * | 2018-01-30 | 2018-08-24 | 上海天旦网络科技发展有限公司 | 基于网络摘要数据的索引创建方法和系统 |
CN113721836A (zh) * | 2021-06-15 | 2021-11-30 | 荣耀终端有限公司 | 一种数据去重方法及装置 |
CN116186190A (zh) * | 2021-11-29 | 2023-05-30 | 国际商业机器公司 | 分析与非结构化文档相关联的去重复数据块 |
-
2023
- 2023-09-13 CN CN202311179441.8A patent/CN116910051B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9886446B1 (en) * | 2011-03-15 | 2018-02-06 | Veritas Technologies Llc | Inverted index for text searching within deduplication backup system |
KR20140067277A (ko) * | 2012-11-26 | 2014-06-05 | 에스코어 주식회사 | 키-밸류 구조를 가지는 데이터베이스에서 데이터를 검색, 입력, 삭제 및 가비지 컬렉션하는 방법 |
CN105808169A (zh) * | 2016-03-14 | 2016-07-27 | 联想(北京)有限公司 | 用于数据去重的方法、装置和系统 |
CN106980680A (zh) * | 2017-03-30 | 2017-07-25 | 联想(北京)有限公司 | 数据存储方法及存储设备 |
CN108008918A (zh) * | 2017-11-30 | 2018-05-08 | 联想(北京)有限公司 | 数据处理方法、存储节点及分布式存储系统 |
CN108446076A (zh) * | 2018-01-30 | 2018-08-24 | 上海天旦网络科技发展有限公司 | 基于网络摘要数据的索引创建方法和系统 |
CN113721836A (zh) * | 2021-06-15 | 2021-11-30 | 荣耀终端有限公司 | 一种数据去重方法及装置 |
CN116186190A (zh) * | 2021-11-29 | 2023-05-30 | 国际商业机器公司 | 分析与非结构化文档相关联的去重复数据块 |
Also Published As
Publication number | Publication date |
---|---|
CN116910051A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7447839B2 (en) | System for a distributed column chunk data store | |
US6704730B2 (en) | Hash file system and method for use in a commonality factoring system | |
AU2001238269B2 (en) | Hash file system and method for use in a commonality factoring system | |
US8843454B2 (en) | Elimination of duplicate objects in storage clusters | |
US8983967B2 (en) | Data storage system having mutable objects incorporating time | |
US7856437B2 (en) | Storing nodes representing respective chunks of files in a data store | |
US7725437B2 (en) | Providing an index for a data store | |
US9317213B1 (en) | Efficient storage of variably-sized data objects in a data store | |
CN113986873B (zh) | 一种海量物联网数据模型化的处理、存储与共享方法 | |
US7457935B2 (en) | Method for a distributed column chunk data store | |
KR20170054299A (ko) | 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법 | |
CN109522283B (zh) | 一种重复数据删除方法及系统 | |
CN104077423A (zh) | 一种基于一致性散列的结构化数据存储、查询和迁移方法 | |
EP3788505B1 (en) | Storing data items and identifying stored data items | |
CN106570113B (zh) | 一种海量矢量切片数据云存储方法及系统 | |
CN104978330A (zh) | 一种数据存储的方法及装置 | |
CN108415671B (zh) | 一种面向绿色云计算的重复数据删除方法及系统 | |
CN106649676A (zh) | 一种基于hdfs存储文件的去重方法及装置 | |
US10719554B1 (en) | Selective maintenance of a spatial index | |
CN111917834A (zh) | 一种数据同步方法、装置、存储介质及计算机设备 | |
US20180276267A1 (en) | Methods and system for efficiently performing eventual and transactional edits on distributed metadata in an object storage system | |
CN116578746A (zh) | 对象去重方法及装置 | |
CN116910051B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN113806803B (zh) | 一种数据存储方法、系统、终端设备及存储介质 | |
CN114416676A (zh) | 数据处理方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |