CN115576956B - 一种数据处理方法、***、设备以及存储介质 - Google Patents
一种数据处理方法、***、设备以及存储介质 Download PDFInfo
- Publication number
- CN115576956B CN115576956B CN202211562654.4A CN202211562654A CN115576956B CN 115576956 B CN115576956 B CN 115576956B CN 202211562654 A CN202211562654 A CN 202211562654A CN 115576956 B CN115576956 B CN 115576956B
- Authority
- CN
- China
- Prior art keywords
- key value
- key
- value pair
- value
- pba
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 9
- 230000004044 response Effects 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 23
- 238000003780 insertion Methods 0.000 claims description 19
- 230000037431 insertion Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000008520 organization Effects 0.000 abstract description 20
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 130
- 238000012005 ligant binding assay Methods 0.000 description 68
- 238000013507 mapping Methods 0.000 description 26
- 238000007726 management method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000008713 feedback mechanism Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/2282—Tablespace storage structures; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法,涉及存储领域,包括以下步骤:响应于接收到写请求,计算指纹值;根据所述指纹值在记录HP键值对的B+树中查询对应的HP键值对;响应于未查询到所述对应的HP键值对,将所述写请求中的数据写入数据盘中并分配PBA;以分配的所述PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。本发明还公开了一种***、计算机设备以及可读存储介质。本发明提出的方案通过将PBA与LBA联合作为key值,从而不再需要预查询PBA对应的LBA数量,优化节点KV组织方式,支持溢出容忍,从根本上解决相同P值发生溢出的情况。
Description
技术领域
本发明涉及存储领域,具体涉及一种数据处理方法、***、设备以及存储介质。
背景技术
元数据(Mete data)是指描述数据的数据(data about data),可以理解为比一般意义的数据范畴更加广泛的数据,不仅仅是表示数据的类型、名称、值等信息,也进一步提供了数据的上下文信息,比如数据所属域、数据来源等等。在数据存储***中,元数据是信息存储的基础,是数据的最小单元。近年来,随着信息技术的发展,产生了海量的数据,但是如何有效地管理和组织这些海量数据已经成为一个突出的问题。对于存储的大量数据,查询分析其中的数据内容和数据含义,才能更加有效的利用数据。在存储***中元数据的高效组织和管理是解决这一问题的有效手段,能支持***对数据的管理和维护。简言之,只有有效的管理元数据,数据才变得更有价值。因此,如何有效的管理元数据和使用元数据,是一个非常值得探讨的问题。
在全闪存储***中数据在线重删特性是最重要也是必备的特性,因为全闪存储***后端使用SSD硬盘作为存储介质,鉴于SSD盘的价值,所以全闪存储***都要求数据在线重删以达到减小后端盘的实际存储空间。要实现全闪在线重删,元数据管理至关重要,元数据管理主要管理L-P映射、P-L映射、H-P映射关系。相对于传统不支持在线重删特性来说,元数据管理多了P-L映射、H-P映射关系两种元数据,涉及到大量且高并发、短时延的数据访问对元数据管理来说压力更大。在某些特别场景,如局部重删数据较高的写场景,重删数据主要集中在几个或少部分数据中,这种情况时同一个PBA对应的P-L映射关系就非常多,管理起来就变得很难,必须要限制单个P对应的L的映射个数,因此通常用***B+树前预查询的方式,但是这种方法必须对同一个PBA排队串行化处理查询,如果发现超出阈值,剩余排队的请求需要重头开始处理,进入最长IO处理路径,即需要把当前IO重新落盘,生成新的PBA后再次***元数据,处理时延大大增加,降低了全闪存储***的性能和***重删率。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种数据处理方法,包括以下步骤:
响应于接收到写请求,计算指纹值;
根据所述指纹值在记录HP键值对的B+树中查询对应的HP键值对;
响应于未查询到所述对应的HP键值对,将所述写请求中的数据写入数据盘中并分配PBA;
以分配的所述PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,在所述记录PL键值对的B+树中,非叶子节点的key值为PBA+LBA、value值为下级节点地址,叶子节点的key值为PBA+LBA、value值为空。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、所述PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以所述指纹值为key值、所述PBA为value值建立HP键值对并***到所述记录HP键值对的B+树中。
在一些实施例中,还包括:
响应于查询到所述对应的HP键值对,根据所述对应的HP键值对确定PBA。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、根据所述对应的HP键值对确定的PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA为key值、所述指纹值为value值建立PH键值对,并记录到PH快查表中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,还包括:
判断所述记录PL键值对的B+树中包括同一个PBA的PL键值对的数量是否大于阈值;
响应于大于阈值,生成异步删除HP键值对的任务。
在一些实施例中,生成异步删除HP键值对的任务,进一步包括:
根据所述同一个PBA在所述PH快查表中查询对应的指纹值;
根据所述指纹值在所述记录HP键值对的B+树中查询相应的HP键值对;
将所述相应的HP键值对删除。
在一些实施例中,还包括:
将所述PH快查表中对应的PH键值对删除。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种数据处理***,包括:
计算模块,配置为响应于接收到写请求,计算指纹值;
查询模块,配置为根据所述指纹值在记录HP键值对的B+树中查询对应的HP键值对;
写入模块,配置为响应于未查询到所述对应的HP键值对,将所述写请求中的数据写入数据盘中并分配PBA;
***模块,配置为以分配的所述PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,在所述记录PL键值对的B+树中,非叶子节点的key值为PBA+LBA、value值为下级节点地址,叶子节点的key值为PBA+LBA、value值为空。
在一些实施例中,***模块还配置为:
以所述写请求中携带的LBA为key值、所述PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,***模块还配置为:
以所述指纹值为key值、所述PBA为value值建立HP键值对并***到所述记录HP键值对的B+树中。
在一些实施例中,查询模块还配置为:
响应于查询到所述对应的HP键值对,根据所述对应的HP键值对确定PBA。
在一些实施例中,***模块还配置为:
以所述写请求中携带的LBA为key值、根据所述对应的HP键值对确定的PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,记录模块,配置为:
以根据所述对应的HP键值对确定的PBA为key值、所述指纹值为value值建立PH键值对,并记录到PH快查表中。
在一些实施例中,***模块还配置为:
以根据所述对应的HP键值对确定的PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,***模块还配置为:
判断所述记录PL键值对的B+树中包括同一个PBA的PL键值对的数量是否大于阈值;
响应于大于阈值,生成异步删除HP键值对的任务。
在一些实施例中,***模块还配置为:
根据所述同一个PBA在所述PH快查表中查询对应的指纹值;
根据所述指纹值在所述记录HP键值对的B+树中查询相应的HP键值对;
将所述相应的HP键值对删除。
在一些实施例中,还包括删除模块,配置为:
将所述PH快查表中对应的PH键值对删除。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行以下步骤:
响应于接收到写请求,计算指纹值;
根据所述指纹值在记录HP键值对的B+树中查询对应的HP键值对;
响应于未查询到所述对应的HP键值对,将所述写请求中的数据写入数据盘中并分配PBA;
以分配的所述PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,在所述记录PL键值对的B+树中,非叶子节点的key值为PBA+LBA、value值为下级节点地址,叶子节点的key值为PBA+LBA、value值为空。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、所述PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以所述指纹值为key值、所述PBA为value值建立HP键值对并***到所述记录HP键值对的B+树中。
在一些实施例中,还包括:
响应于查询到所述对应的HP键值对,根据所述对应的HP键值对确定PBA。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、根据所述对应的HP键值对确定的PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA为key值、所述指纹值为value值建立PH键值对,并记录到PH快查表中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,还包括:
判断所述记录PL键值对的B+树中包括同一个PBA的PL键值对的数量是否大于阈值;
响应于大于阈值,生成异步删除HP键值对的任务。
在一些实施例中,生成异步删除HP键值对的任务,进一步包括:
根据所述同一个PBA在所述PH快查表中查询对应的指纹值;
根据所述指纹值在所述记录HP键值对的B+树中查询相应的HP键值对;
将所述相应的HP键值对删除。
在一些实施例中,还包括:
将所述PH快查表中对应的PH键值对删除。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行以下步骤:
响应于接收到写请求,计算指纹值;
根据所述指纹值在记录HP键值对的B+树中查询对应的HP键值对;
响应于未查询到所述对应的HP键值对,将所述写请求中的数据写入数据盘中并分配PBA;
以分配的所述PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,在所述记录PL键值对的B+树中,非叶子节点的key值为PBA+LBA、value值为下级节点地址,叶子节点的key值为PBA+LBA、value值为空。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、所述PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以所述指纹值为key值、所述PBA为value值建立HP键值对并***到所述记录HP键值对的B+树中。
在一些实施例中,还包括:
响应于查询到所述对应的HP键值对,根据所述对应的HP键值对确定PBA。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、根据所述对应的HP键值对确定的PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA为key值、所述指纹值为value值建立PH键值对,并记录到PH快查表中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,还包括:
判断所述记录PL键值对的B+树中包括同一个PBA的PL键值对的数量是否大于阈值;
响应于大于阈值,生成异步删除HP键值对的任务。
在一些实施例中,生成异步删除HP键值对的任务,进一步包括:
根据所述同一个PBA在所述PH快查表中查询对应的指纹值;
根据所述指纹值在所述记录HP键值对的B+树中查询相应的HP键值对;
将所述相应的HP键值对删除。
在一些实施例中,还包括:
将所述PH快查表中对应的PH键值对删除。
本发明具有以下有益技术效果之一:本发明不再需要预查询PBA对应的LBA数量,优化了节点KV组织方式,支持溢出容忍,其核心是将PBA与LBA联合作为key值,从根本上解决相同P值发生溢出的情况,同时增加溢出反馈机制,当发现个别P超过一定限制,则派发一个异步删除HP的任务,相同内容的数据再次落盘时,则生成一个新的PBA。从而避免单个PBA对应的LBA过多,出现个别PBA树高度过高,影响均衡性。以达到整个存储***性能和重删率的双赢。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的实施例提供的数据处理方法的流程示意图;
图2为本发明的实施例提供的全闪存访问元数据的流程图;
图3为本发明的实施例提供的改造后的B+树结构示意图;
图4为本发明的实施例提供的数据处理方法的流程框图;
图5为本发明的实施例提供的数据处理***的结构示意图;
图6为本发明的实施例提供的计算机设备的结构示意图;
图7为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在本发明的实施例中,LBA,LogicalBlockAddress,逻辑块地址;
PBA,PhysicalBlockAddress,物理块地址;
METADATA,元数据;
LP,LBA->PBA,Key value pair,LP映射键值对;
PL,PBA->LBA,Key value pair,PL映射键值对;
HP,HASH KEY->PBA,Key value pair,HP映射键值对。
根据本发明的一个方面,本发明的实施例提出一种数据处理方法,如图1所示,其可以包括步骤:
S1,响应于接收到写请求,计算指纹值;
S2,根据所述指纹值在记录HP键值对的B+树中查询对应的HP键值对;
S3,响应于未查询到所述对应的HP键值对,将所述写请求中的数据写入数据盘中并分配PBA;
S4,以分配的所述PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
本发明提出的方案通过将PBA与LBA联合作为key值,从而不再需要预查询PBA对应的LBA数量,优化节点KV组织方式,支持溢出容忍,从根本上解决相同P值发生溢出的情况。
在一些实施例中,全闪元数据管理有LP、PL、HP三种映射关系,分别对应LP树、PL树、HP树。LP树是L-P的映射组织,主要作用是卷的逻辑地址LBA到物理池的物理地址PBA的映射,给用户主机读写和非重删数据的垃圾回收使用;PL树是P-L的映射组织,主要作用是池的物理地址到卷的逻辑地址的映射,供垃圾回收查询物理地址PBA是否还在使用;HP树是H-P的映射组织,供重删模块使用,H表示数据的指纹值,主要作用是数据指纹到池的物理地址的映射,开启重删功能时,新写的数据首先计算指纹值,然后查询HP映射,如果查询到P表示物理池中有相同数据了,不需在分配物理地址了。
如图2所示,数据查询请求要查询数据时,先查询元数据,找到L->P映射关系,首先访问元数据缓存,如果在缓存中查找到对应的元数据,则直接做元数据校验后返回给查询request,否则去SSD盘上访问元数据,然后返给查询请求,最后查询请求去访问PBA对应的数据;可见元数据的访问效率对于数据读写是非常重要的,元数据的组织结构方法对于元数据的访问效率至关重要。
在一些实施例中,在所述记录PL键值对的B+树中,非叶子节点的key值为PBA+LBA、value值为下级节点地址,叶子节点的key值为PBA+LBA、value值为空。
具体的,如图3所示,为了减少流程,需要设计新的数据组织结构,优化节点KV组织方式,支持溢出容忍。
优化PL树的数据组织方式,避免K值溢出的发生,PL树的KV构成,由原先的K【PBA】、V【LBA】的方式改为K【PBA&LBA】、V【null】,核心是将PBA与LBA联合作为K值,则PL树仍是由PBA找到一个或多个LBA,但由于PBA相同的情况下,LBA并不相同,对应到K值也有相同的K值,变成了不同的K值,从而从根本上解决相同K值发生溢出的情况。在此情况下,中间节点中数据组织方式也由K【PBA】、V【Pointer】变更为K【PBA&LBA】,V【Pointer】。
改造后的B+树非叶子节点:K(P-L)、V(下级节点地址);叶子节点大小和长度没有发生变化:K(P-L)、V(空,0字节)。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、所述PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以所述指纹值为key值、所述PBA为value值建立HP键值对并***到所述记录HP键值对的B+树中。
在一些实施例中,还包括:
响应于查询到所述对应的HP键值对,根据所述对应的HP键值对确定PBA。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、根据所述对应的HP键值对确定的PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA为key值、所述指纹值为value值建立PH键值对,并记录到PH快查表中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,还包括:
判断所述记录PL键值对的B+树中包括同一个PBA的PL键值对的数量是否大于阈值;
响应于大于阈值,生成异步删除HP键值对的任务。
在一些实施例中,生成异步删除HP键值对的任务,进一步包括:
根据所述同一个PBA在所述PH快查表中查询对应的指纹值;
根据所述指纹值在所述记录HP键值对的B+树中查询相应的HP键值对;
将所述相应的HP键值对删除。
在一些实施例中,还包括:
将所述PH快查表中对应的PH键值对删除。
具体的,当发现个别PBA超过一定限制,则派发一个异步删除HP的任务,相同内容的数据再次落盘时,则生成一个新的PBA。从而避免单个PBA对应的LBA过多,出现个别PBA树高度过高,影响均衡性。
如图4所示,在该过程中需要在内存中增加一个PH快查表,通过该快查表实现PBA到指纹值H的映射,以通过该表找到超过阈值数量的PBA对应的指纹值H,从而在HP中删除对应的映射。
实施流程可以如下:
1、当主机写请求到达重删模块时,会计算重删指纹值H,然后用指纹值H去元数据模块查询HP;
2、根据H是否查询到PBA,如果是转3,否则转4;
3、如果查询到PBA,说明该数据可以重删,则直接向元数据模块***LP、PL映射;
4、如果H查询不到PBA,说明该数据未重删,则首先把该数据刷写到盘上,分配PBA后,在向元数据模块***LP、PL、HP映射关系;
5、映射关系***元数据缓存的过程中会***或更新PH快查表;
6、元数据映射关系在组织成B+树刷盘时会判断同一个PBA对应的LBA个数是否超出阈值;
7、如果超出阈值就会派生出一个HP的删除任务,来删除H对应的PBA映射关系;
8、映射关系删除后,并从PH快查表中删除该PH记录,这样该重删的新数据就会分配新的PBA;
通过上述流程可知,本发明不再需要预查询P对应的L数量,需要设计新的数据组织结构,优化节点KV组织方式,支持溢出容忍,核心是将PBA与LBA联合作为K值,从根本上解决相同P值发生溢出的情况,同时增加溢出反馈机制,当发现个别P超过一定限制,则派发一个异步删除HP的任务,相同内容的数据再次落盘时,则生成一个新的P。从而避免单个P对应的L过多,出现个别P树高度过高,影响均衡性。以达到整个存储***性能和重删率的双赢。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种数据处理***400,如图5所示,包括:
计算模块401,配置为响应于接收到写请求,计算指纹值;
查询模块402,配置为根据所述指纹值在记录HP键值对的B+树中查询对应的HP键值对;
写入模块403,配置为响应于未查询到所述对应的HP键值对,将所述写请求中的数据写入数据盘中并分配PBA;
***模块404,配置为以分配的所述PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,在所述记录PL键值对的B+树中,非叶子节点的key值为PBA+LBA、value值为下级节点地址,叶子节点的key值为PBA+LBA、value值为空。
在一些实施例中,***模块404还配置为:
以所述写请求中携带的LBA为key值、所述PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,***模块404还配置为:
以所述指纹值为key值、所述PBA为value值建立HP键值对并***到所述记录HP键值对的B+树中。
在一些实施例中,查询模块402还配置为:
响应于查询到所述对应的HP键值对,根据所述对应的HP键值对确定PBA。
在一些实施例中,***模块404还配置为:
以所述写请求中携带的LBA为key值、根据所述对应的HP键值对确定的PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,记录模块,配置为:
以根据所述对应的HP键值对确定的PBA为key值、所述指纹值为value值建立PH键值对,并记录到PH快查表中。
在一些实施例中,***模块404还配置为:
以根据所述对应的HP键值对确定的PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,***模块404还配置为:
判断所述记录PL键值对的B+树中包括同一个PBA的PL键值对的数量是否大于阈值;
响应于大于阈值,生成异步删除HP键值对的任务。
在一些实施例中,***模块404还配置为:
根据所述同一个PBA在所述PH快查表中查询对应的指纹值;
根据所述指纹值在所述记录HP键值对的B+树中查询相应的HP键值对;
将所述相应的HP键值对删除。
在一些实施例中,还包括删除模块,配置为:
将所述PH快查表中对应的PH键值对删除。
本发明提出的方案不再需要预查询P对应的L数量,需要设计新的数据组织结构,优化节点KV组织方式,支持溢出容忍,核心是将PBA与LBA联合作为K值,从根本上解决相同P值发生溢出的情况,同时增加溢出反馈机制,当发现个别P超过一定限制,则派发一个异步删除HP的任务,相同内容的数据再次落盘时,则生成一个新的P。从而避免单个P对应的L过多,出现个别P树高度过高,影响均衡性。以达到整个存储***性能和重删率的双赢。
基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机设备501,包括:
至少一个处理器520;以及
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行以下步骤:
S1,响应于接收到写请求,计算指纹值;
S2,根据所述指纹值在记录HP键值对的B+树中查询对应的HP键值对;
S3,响应于未查询到所述对应的HP键值对,将所述写请求中的数据写入数据盘中并分配PBA;
S4,以分配的所述PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,在所述记录PL键值对的B+树中,非叶子节点的key值为PBA+LBA、value值为下级节点地址,叶子节点的key值为PBA+LBA、value值为空。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、所述PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以所述指纹值为key值、所述PBA为value值建立HP键值对并***到所述记录HP键值对的B+树中。
在一些实施例中,还包括:
响应于查询到所述对应的HP键值对,根据所述对应的HP键值对确定PBA。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、根据所述对应的HP键值对确定的PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA为key值、所述指纹值为value值建立PH键值对,并记录到PH快查表中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,还包括:
判断所述记录PL键值对的B+树中包括同一个PBA的PL键值对的数量是否大于阈值;
响应于大于阈值,生成异步删除HP键值对的任务。
在一些实施例中,生成异步删除HP键值对的任务,进一步包括:
根据所述同一个PBA在所述PH快查表中查询对应的指纹值;
根据所述指纹值在所述记录HP键值对的B+树中查询相应的HP键值对;
将所述相应的HP键值对删除。
在一些实施例中,还包括:
将所述PH快查表中对应的PH键值对删除。
本发明提出的方案不再需要预查询P对应的L数量,需要设计新的数据组织结构,优化节点KV组织方式,支持溢出容忍,核心是将PBA与LBA联合作为K值,从根本上解决相同P值发生溢出的情况,同时增加溢出反馈机制,当发现个别P超过一定限制,则派发一个异步删除HP的任务,相同内容的数据再次落盘时,则生成一个新的P。从而避免单个P对应的L过多,出现个别P树高度过高,影响均衡性。以达到整个存储***性能和重删率的双赢。
基于同一发明构思,根据本发明的另一个方面,如图7所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序610,计算机程序610被处理器执行时执行以下步骤:
S1,响应于接收到写请求,计算指纹值;
S2,根据所述指纹值在记录HP键值对的B+树中查询对应的HP键值对;
S3,响应于未查询到所述对应的HP键值对,将所述写请求中的数据写入数据盘中并分配PBA;
S4,以分配的所述PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,在所述记录PL键值对的B+树中,非叶子节点的key值为PBA+LBA、value值为下级节点地址,叶子节点的key值为PBA+LBA、value值为空。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、所述PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以所述指纹值为key值、所述PBA为value值建立HP键值对并***到所述记录HP键值对的B+树中。
在一些实施例中,还包括:
响应于查询到所述对应的HP键值对,根据所述对应的HP键值对确定PBA。
在一些实施例中,还包括:
以所述写请求中携带的LBA为key值、根据所述对应的HP键值对确定的PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA为key值、所述指纹值为value值建立PH键值对,并记录到PH快查表中。
在一些实施例中,还包括:
以根据所述对应的HP键值对确定的PBA+所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
在一些实施例中,还包括:
判断所述记录PL键值对的B+树中包括同一个PBA的PL键值对的数量是否大于阈值;
响应于大于阈值,生成异步删除HP键值对的任务。
在一些实施例中,生成异步删除HP键值对的任务,进一步包括:
根据所述同一个PBA在所述PH快查表中查询对应的指纹值;
根据所述指纹值在所述记录HP键值对的B+树中查询相应的HP键值对;
将所述相应的HP键值对删除。
在一些实施例中,还包括:
将所述PH快查表中对应的PH键值对删除。
本发明提出的方案不再需要预查询P对应的L数量,需要设计新的数据组织结构,优化节点KV组织方式,支持溢出容忍,核心是将PBA与LBA联合作为K值,从根本上解决相同P值发生溢出的情况,同时增加溢出反馈机制,当发现个别P超过一定限制,则派发一个异步删除HP的任务,相同内容的数据再次落盘时,则生成一个新的P。从而避免单个P对应的L过多,出现个别P树高度过高,影响均衡性。以达到整个存储***性能和重删率的双赢。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个***的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (24)
1.一种数据处理方法,其特征在于,包括以下步骤:
响应于接收到写请求,计算指纹值;
根据所述指纹值在记录HP键值对的B+树中查询对应的HP键值对,其中,所述HP键值对的key值为指纹值,value值为PBA;
响应于未查询到所述对应的HP键值对,将所述写请求中的数据写入数据盘中并分配PBA;
以分配的所述PBA和所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
2.如权利要求1所述的方法,其特征在于,在所述记录PL键值对的B+树中,非叶子节点的key值为PBA和LBA、value值为下级节点地址,叶子节点的key值为PBA和LBA、value值为空。
3.如权利要求1所述的方法,其特征在于,还包括:
以所述写请求中携带的LBA为key值、所述PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
4.如权利要求1所述的方法,其特征在于,还包括:
以所述指纹值为key值、所述PBA为value值建立HP键值对并***到所述记录HP键值对的B+树中。
5.如权利要求1所述的方法,其特征在于,还包括:
响应于查询到所述对应的HP键值对,根据所述对应的HP键值对确定PBA。
6.如权利要求5所述的方法,其特征在于,还包括:
以所述写请求中携带的LBA为key值、根据所述对应的HP键值对确定的PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
7.如权利要求5所述的方法,其特征在于,还包括:
以根据所述对应的HP键值对确定的PBA为key值、所述指纹值为value值建立PH键值对,并记录到PH快查表中。
8.如权利要求7所述的方法,其特征在于,还包括:
以根据所述对应的HP键值对确定的PBA和所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
9.如权利要求8所述的方法,其特征在于,还包括:
判断所述记录PL键值对的B+树中包括同一个PBA的PL键值对的数量是否大于阈值;
响应于大于阈值,生成异步删除HP键值对的任务。
10.如权利要求9所述的方法,其特征在于,生成异步删除HP键值对的任务,进一步包括:
根据所述同一个PBA在所述PH快查表中查询对应的指纹值;
根据所述指纹值在所述记录HP键值对的B+树中查询相应的HP键值对;
将所述相应的HP键值对删除。
11.如权利要求10所述的方法,其特征在于,还包括:
将所述PH快查表中对应的PH键值对删除。
12.一种数据处理***,其特征在于,包括:
计算模块,配置为响应于接收到写请求,计算指纹值;
查询模块,配置为根据所述指纹值在记录HP键值对的B+树中查询对应的HP键值对,其中,所述HP键值对的key值为指纹值,value值为PBA;
写入模块,配置为响应于未查询到所述对应的HP键值对,将所述写请求中的数据写入数据盘中并分配PBA;
***模块,配置为以分配的所述PBA和所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
13.如权利要求12所述的***,其特征在于,在所述记录PL键值对的B+树中,非叶子节点的key值为PBA和LBA、value值为下级节点地址,叶子节点的key值为PBA和LBA、value值为空。
14.如权利要求12所述的***,其特征在于,所述***模块还配置为:
以所述写请求中携带的LBA为key值、所述PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
15.如权利要求12所述的***,其特征在于,***模块还配置为:
以所述指纹值为key值、所述PBA为value值建立HP键值对并***到所述记录HP键值对的B+树中。
16.如权利要求12所述的***,其特征在于,查询模块还配置为:
响应于查询到所述对应的HP键值对,根据所述对应的HP键值对确定PBA。
17.如权利要求16所述的***,其特征在于,***模块还配置为:
以所述写请求中携带的LBA为key值、根据所述对应的HP键值对确定的PBA为value值建立LP键值对并***到记录LP键值对的B+树中。
18.如权利要求16所述的***,其特征在于,还包括记录模块,配置为:
以根据所述对应的HP键值对确定的PBA为key值、所述指纹值为value值建立PH键值对,并记录到PH快查表中。
19.如权利要求18所述的***,其特征在于,***模块还配置为:
以根据所述对应的HP键值对确定的PBA和所述写请求中携带的LBA为key值、value值为空建立PL键值对并***到记录PL键值对的B+树中。
20.如权利要求19所述的***,其特征在于,***模块还配置为:
判断所述记录PL键值对的B+树中包括同一个PBA的PL键值对的数量是否大于阈值;
响应于大于阈值,生成异步删除HP键值对的任务。
21.如权利要求20所述的***,其特征在于,***模块还配置为:
根据所述同一个PBA在所述PH快查表中查询对应的指纹值;
根据所述指纹值在所述记录HP键值对的B+树中查询相应的HP键值对;
将所述相应的HP键值对删除。
22.如权利要求21所述的***,其特征在于,还包括删除模块,配置为:
将所述PH快查表中对应的PH键值对删除。
23.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-11任意一项所述的方法的步骤。
24.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-11任意一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211562654.4A CN115576956B (zh) | 2022-12-07 | 2022-12-07 | 一种数据处理方法、***、设备以及存储介质 |
PCT/CN2023/104398 WO2024119797A1 (zh) | 2022-12-07 | 2023-06-30 | 一种数据处理方法、***、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211562654.4A CN115576956B (zh) | 2022-12-07 | 2022-12-07 | 一种数据处理方法、***、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115576956A CN115576956A (zh) | 2023-01-06 |
CN115576956B true CN115576956B (zh) | 2023-03-10 |
Family
ID=84590632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211562654.4A Active CN115576956B (zh) | 2022-12-07 | 2022-12-07 | 一种数据处理方法、***、设备以及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115576956B (zh) |
WO (1) | WO2024119797A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115576956B (zh) * | 2022-12-07 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、***、设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019953A (zh) * | 2012-12-28 | 2013-04-03 | 华为技术有限公司 | 一种元数据的构建***及其方法 |
CN105183399A (zh) * | 2015-09-30 | 2015-12-23 | 北京奇艺世纪科技有限公司 | 一种基于弹性块存储的数据写、读方法及装置 |
CN110795031A (zh) * | 2019-10-17 | 2020-02-14 | 北京浪潮数据技术有限公司 | 一种基于全闪存储的数据重删方法、装置和*** |
CN111125447A (zh) * | 2019-12-22 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种元数据访问方法、装置、设备及可读存储介质 |
CN113867626A (zh) * | 2021-08-29 | 2021-12-31 | 苏州浪潮智能科技有限公司 | 一种存储***性能优化方法、***、设备和存储介质 |
CN113885789A (zh) * | 2021-08-20 | 2022-01-04 | 苏州浪潮智能科技有限公司 | 元数据修复后校验数据一致性的方法、***、设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10083062B2 (en) * | 2015-07-31 | 2018-09-25 | Cisco Technology, Inc. | Data suppression for faster migration |
CN108008918A (zh) * | 2017-11-30 | 2018-05-08 | 联想(北京)有限公司 | 数据处理方法、存储节点及分布式存储*** |
CN113867627B (zh) * | 2021-08-29 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 一种存储***性能优化方法及*** |
CN113535708A (zh) * | 2021-09-17 | 2021-10-22 | 苏州浪潮智能科技有限公司 | 一种数据重删方法、***、存储介质及设备 |
CN115576956B (zh) * | 2022-12-07 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、***、设备以及存储介质 |
-
2022
- 2022-12-07 CN CN202211562654.4A patent/CN115576956B/zh active Active
-
2023
- 2023-06-30 WO PCT/CN2023/104398 patent/WO2024119797A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019953A (zh) * | 2012-12-28 | 2013-04-03 | 华为技术有限公司 | 一种元数据的构建***及其方法 |
CN105183399A (zh) * | 2015-09-30 | 2015-12-23 | 北京奇艺世纪科技有限公司 | 一种基于弹性块存储的数据写、读方法及装置 |
CN110795031A (zh) * | 2019-10-17 | 2020-02-14 | 北京浪潮数据技术有限公司 | 一种基于全闪存储的数据重删方法、装置和*** |
CN111125447A (zh) * | 2019-12-22 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种元数据访问方法、装置、设备及可读存储介质 |
CN113885789A (zh) * | 2021-08-20 | 2022-01-04 | 苏州浪潮智能科技有限公司 | 元数据修复后校验数据一致性的方法、***、设备及介质 |
CN113867626A (zh) * | 2021-08-29 | 2021-12-31 | 苏州浪潮智能科技有限公司 | 一种存储***性能优化方法、***、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024119797A1 (zh) | 2024-06-13 |
CN115576956A (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9043334B2 (en) | Method and system for accessing files on a storage system | |
WO2017201977A1 (zh) | 一种数据写、读方法、装置及分布式对象存储集群 | |
CN103294710B (zh) | 一种数据存取方法和装置 | |
CN102629247B (zh) | 一种数据处理方法、装置和*** | |
CN107766374B (zh) | 一种海量小文件存储读取的优化方法和*** | |
KR20200122994A (ko) | 키 값 첨부 | |
CN113535670B (zh) | 一种虚拟化资源镜像存储***及其实现方法 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN104054071A (zh) | 访问存储设备的方法和存储设备 | |
CN115576956B (zh) | 一种数据处理方法、***、设备以及存储介质 | |
CN113867627B (zh) | 一种存储***性能优化方法及*** | |
WO2013075306A1 (zh) | 数据访问方法和装置 | |
CN113535708A (zh) | 一种数据重删方法、***、存储介质及设备 | |
CN112416880A (zh) | 一种基于实时归并的海量小文件存储性能优化方法及装置 | |
CN102346783B (zh) | 数据检索方法及装置 | |
CN103942301A (zh) | 一种面向多数据类型访问应用的分布式文件*** | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN113821477A (zh) | 一种元数据缓存方法、***、设备以及介质 | |
KR101936364B1 (ko) | 플래시 메모리를 이용한 메모리 관리 시스템 및 메모리 관리 방법 | |
CN115437579B (zh) | 一种元数据管理方法、装置、计算机设备及可读存储介质 | |
US20200019539A1 (en) | Efficient and light-weight indexing for massive blob/objects | |
CN116610670A (zh) | 一种基于区块链的状态数据存储方法及设备 | |
CN110781101A (zh) | 一种一对多映射关系的存储方法、装置、电子设备及介质 | |
CN115481086A (zh) | 一种海量小文件读写方法、***、电子设备及存储介质 | |
CN104537023A (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 |