CN118069074A - 一种数据处理方法及装置、存储介质、计算机程序产品 - Google Patents
一种数据处理方法及装置、存储介质、计算机程序产品 Download PDFInfo
- Publication number
- CN118069074A CN118069074A CN202410480995.XA CN202410480995A CN118069074A CN 118069074 A CN118069074 A CN 118069074A CN 202410480995 A CN202410480995 A CN 202410480995A CN 118069074 A CN118069074 A CN 118069074A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- read
- partition
- write
- 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
Links
- 238000004590 computer program Methods 0.000 title claims abstract description 17
- 238000003672 processing method Methods 0.000 title abstract description 16
- 238000005192 partition Methods 0.000 claims abstract description 115
- 238000000034 method Methods 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000004064 recycling Methods 0.000 description 3
- 238000013403 standard screening design Methods 0.000 description 3
- 238000012512 characterization method Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据处理方法及装置、存储介质、计算机程序产品,包括:在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从第一读写存储分区的分区属性中获取有效数据的业务属性;若有效数据的业务属性为非频繁读写业务,则将有效数据重新写入新的第二读写存储分区中的第一地址;将有效数据的键和第一地址的组合,生成有效数据对应的新索引数据;并将新索引数据合并到索引树的最后一层索引文件中。
Description
技术领域
本申请涉及数据存储领域,尤其涉及一种数据处理方法及装置、存储介质、计算机程序产品。
背景技术
在分布式全闪存储系统中,使用日志结果存储方式进行修改写,即当需要更新某个数据块时,会申请一个未被使用过的块,将修改写的数据写入新的数据块,并更新相应的索引数据。经过长时间的读写操作后,大量被更新过的数据会被标记为垃圾数据块,需要通过垃圾回收机制,将有效的数据写入新的数据块,回收包含垃圾数据块的大块存储空间。
目前,当要回收的存储的分区(Partition log,Plog)中的有效数据的索引数据已经沉入到索引树的最后一层的时候,需要从索引树中查找是否有更新的索引数据,若有更新的索引数据,则表征该数据不再被回收,若无更新的索引数据,则表征该数据需要被回收。上述方案需要在垃圾回收的过程中频繁查询索引数据,尤其在Plog中的有效数据较多的情况下,会造成垃圾回收效率低,影响上层业务实现的流畅性。
发明内容
本申请实施例提供一种数据处理方法及装置、存储介质、计算机程序产品,能够提高垃圾回收效率,保证上层业务实现的流畅性。
本申请的技术方案是这样实现的:
第一方面,本申请实施例提出一种数据处理方法,该方法包括:
在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性;
若所述有效数据的业务属性为非频繁读写业务,则将所述有效数据重新写入新的第二读写存储分区中的第一地址;将所述有效数据的键和所述第一地址的组合,生成所述有效数据对应的新索引数据;并将所述新索引数据合并到所述索引树的最后一层索引文件中。
第二方面,本申请实施例提出一种数据处理装置,该数据处理装置包括:
获取单元,用于在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性;
写入单元,用于若所述有效数据的业务属性为非频繁读写业务,则将所述有效数据重新写入新的第二读写存储分区中的第一地址;
生成单元,用于将所述有效数据的键和所述第一地址的组合,生成所述有效数据对应的新索引数据;
合并单元,用于将所述新索引数据合并到所述索引树的最后一层索引文件中。
第三方面,本申请实施例提出一种数据处理装置,所述数据处理装置包括:处理器、存储器及通信总线;所述处理器执行存储器存储的运行程序时实现上述数据处理方法。
第四方面,本申请实施例提出一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法。
第五方面,本申请实施例提出一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述数据处理方法。
本申请实施例提供了一种数据处理方法及装置、存储介质、计算机程序产品,该方法包括:在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从第一读写存储分区的分区属性中获取有效数据的业务属性;若有效数据的业务属性为非频繁读写业务,则将有效数据重新写入新的第二读写存储分区中的第一地址;将有效数据的键和第一地址的组合,生成有效数据对应的新索引数据;并将新索引数据合并到索引树的最后一层索引文件中。采用上述实现方案,考虑到针对不同的业务,其对应的数据读写频次也不尽相同,因此在存储有效数据的第一读写存储分区的分区属性中携带了对应有效数据的业务属性,当要进行垃圾回收时,当检测到业务属性为非频繁读写业务时,表征有效数据被修改和读取的可能性很小,此时,无需从索引树中查找是否存在更新的索引数据,直接进行后续的回收过程,减少了查询索引数据的时间,进而加快了垃圾回收的效率,保证了上层业务实现的流畅性。
附图说明
图1为一种垃圾回收方法的示意框图一;
图2为一种垃圾回收方法的示意框图二;
图3为本申请实施例提供的一种数据处理方法的流程图;
图4为本申请实施例提供的一种示例性的业务属性添加至Plog属性中的示意图;
图5为本申请实施例提供的一种示例性的元素插入布隆过滤器的示意图;
图6为本申请实施例提供的一种示例性的垃圾回收方法的示意框图;
图7为本申请实施例提供的一种数据处理装置的结构示意图一;
图8为本申请实施例提供的一种数据处理装置的结构示意图二。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在分布式全闪存储系统中,用固态硬盘(Solid-State Drive,SSD)或者其他闪存介质代替了传统的硬盘(Hard Disk Driver,HDD),SDD具有更高的每秒的读写操作次数(Input/output Operations Per Second,IOPS)以及更低的延时。SSD在写入前需要先擦除现有数据,如果对某个块频繁擦除导致该块被“写穿”,也就是再也无法“锁”住电子,成了坏块。为了保证最大的写入量,一般的SSD设备都会做磨损均衡,均衡每个块写入的次数,所以分布式全闪存储系统中使用日志结构存储方式,将修改写转换成顺序写,当需要更新某个数据块时,会申请一个未使用的块,将修改写的数据写到新的数据块,并更新相应的索引数据。
日志结构存储中,经过长时间的读写操作后,大量的被更新过的数据会被标记为垃圾数据块,需要通过垃圾回收机制,将有效数据写入新的数据块,回收包含垃圾数据块的大块存储空间。如何高效的回收日志结构存储中垃圾数据块,对于分布式全闪存储系统至关重要。
传统的日志结构存储系统中,回收垃圾数据时,根据索引及垃圾标记等信息,将有效数据重新写入到新的存储空间并生成新的索引数据,索引数据重新从日志结构存储系统入口处写入子系统,由于将有效数据新索引写入的流程和业务的读写流程是同时进行的,写入有效数据索引流程需要和读写业务流程互斥,否则可能将会导致业务的数据不一致。写入有效数据索引时和业务新生成的索引数据互斥,会降低读写带宽。
如图1所示,Plog1中的addr1和addr2中的数据为有效数据,其余为垃圾数据,现在需要针对Plog1进行垃圾回收,则需要将addr1中的有效数据写入Plog2中的addr3中,将addr2中的有效数据写入Plog2中的addr4中,同时,将新索引数据<k1,addr3>(k1为addr1中的有效数据对应的键)和新索引数据<k2,addr4>(k2为addr2中的有效数据对应的键)重新写入索引层的上层,在写入上层时,需要保证和业务写入数据的索引数据互斥,保证用户数据的正确性。
需要说明的是,图1中的<k1,addr1>为执行垃圾回收前的addr1中的有效数据对应的索引数据,<k2,addr2>为执行垃圾回收前的addr2中的有效数据对应的索引数据。
另一种垃圾回收机制中,为了避免垃圾回收和业务写入数据时的索引数据互斥,需要保证当前要回收的Plog中的有效数据的索引数据都已经沉入到最后一层时,执行回收Plog的有效数据的操作。在该方法中,需要查询当前的索引数据,如果存在不在最后一层索引层的索引数据,则整个Plog都不能回收,该Plog中其他已经在最后一层的索引的查询,也都是无效操作,这些已经执行的查询既影响了用户的业务,Plog也不能进行回收。
当查询到的Plog索引数据都在最后一层时,如果没有当前索引更新的索引数据,则代表当前数据是有效的,是需要回收的,如果有比索引数据更新的索引数据,则代表当前的数据未来是要被压缩合并掉的,是可以提前丢弃的,不用再回收数据。这种垃圾回收机制虽然减少了回收数据时,与用户读写业务的互斥,但是在回收数据的过程中,一直需要查询索引数据,尤其是在Plog有效数据比较多的场景下,需要大量的查询索引数据,同样会对用户的业务产生较大的影响。
如图2所示,在Plog1中,addr1的有效数据对应的索引数据<k1,addr1>和addr2的有效数据对应的索引数据<k2,addr2>均处于索引树的最后一层,此时,将addr1的有效数据重新写入Plog2中的addr3中,将addr2的有效数据重新写入Plog2中的addr4中,但是对应的新索引数据<k1,addr3>和<k2,addr4>不再从索引树入口处重新写入,而是合并到索引树的最后一层。
需要说明的是,图2中的<k1,addr1>为执行垃圾回收前的addr1中的有效数据对应的索引数据,<k2,addr2>为执行垃圾回收前的addr2中的有效数据对应的索引数据。
然而上述方案需要在垃圾回收的过程中频繁查询索引数据,尤其在Plog中的有效数据较多的情况下,会造成垃圾回收效率低,影响上层业务实现的流畅性。
为解决上述问题,本申请实施例提供一种数据处理方法,如图3所示,该方法可以包括:
S101、在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从第一读写存储分区的分区属性中获取有效数据的业务属性。
本申请提供的一种数据处理方法通过结合上层业务的属性实现分布式全闪存储的垃圾回收,能够提高日志结构存储的垃圾回收效率,减少对业务的影响。
针对第一读写存储分区的有效数据进行垃圾回收的前提有两个,一个是第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值,另一个就是第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层,此时,从第一读写存储分区的分区属性中获取有效数据的业务属性。
在本申请实施例中,业务属性分频繁读写业务和非频繁读写业务。针对于频繁读写业务而言,对应数据被修改的可能性较大;而针对与非频繁读写业务而言,对应数据被修改的可能性较小。
在本申请实施例中,读写流程根据业务的业务属性,将该业务属性从业务层传入到分布式全闪存储层,在分配读写存储分区时,将对应的业务属性,记录到读写分区的属性中。具体的,获取有效数据所属业务的业务属性;为有效数据分配第一读写存储分区;将有效数据写入第一读写存储分区的第二地址,并将业务属性写入第一读写存储分区的分区属性中。
示例性的,频繁读写业务的业务属性包括Hot和Warm,而非频繁读写业务的业务属性为Cold,将业务属性添加在ploginfo(plog信息)中,具体的,参见图4,针对于Hot plog,存储形式为<plog1,<ploginfo+hot>>,针对于Warm plog,存储形式为<plog2,<ploginfo+warm>>,针对于Cold plog,存储形式为<plog3,<ploginfo+cold>>。
在本申请实施例中,在从第一读写存储分区的分区属性中获取到有效数据的业务属性后,就要根据业务属性判断是否要进行更新的有效数据的查询了。其中,若业务属性为频繁读写业务,则需要进行有效数据是否更新的确认;若业务属性为非频繁读写业务,则不需要进行有效数据是否更新的确认。
进一步地,若有效数据的业务属性为频繁读写业务,则通过索引树查询是否写入更新的有效数据;若写入更新的有效数据,则丢弃有效数据和索引数据;若未写入更新的有效数据,则将有效数据重新写入新的第二读写存储分区中的第一地址;将有效数据的键和第一地址的组合,生成有效数据对应的新索引数据;将新索引数据合并到索引树的最后一层索引文件中。
针对检测第一读写存储分区中有效数据对应的索引数据所处的第一索引文件是否位于索引树的最后一层,本申请实施例不依赖于查询索引层,而是依赖于索引层的布隆索引器进行检测的,在本申请实施例中,索引树上的每一索引文件对应设置一个布隆过滤器;具体的:依次遍历索引树的前N-1层索引文件的布隆过滤器,查找有效数据的索引数据;索引树包括N层索引文件,N为正整数;若未查找到索引数据,表征第一索引文件位于索引树的最后一层;若查找到索引数据,表征第一索引文件位于索引树中的第M层,M为小于或者等于N的正整数。
需要说明的是,每一个索引文件均对应一个布隆过滤器,在利用布隆过滤器查找有效数据的索引数据时的方法具体包括:利用布隆过滤器的k个哈希函数分别对索引数据进行哈希,得到k个位置。之后,在布隆过滤器的位数组查询对应的k个位置的值。若均为1,则表征索引数据有可能存在于该布隆过滤器中;若任意位置上的值为0,则表征索引数据一定不存在于该布隆过滤器中。
需要说明的是,布隆过滤器属于哈希查询,对业务执行的影响极小。
基于上述实施例,需要将索引数据插入对应的索引文件的布隆过滤器中,具体的,利用第一索引文件对应的第一布隆过滤器的一组哈希函数和散列方法,将索引数据插入第一布隆过滤器中。
需要说明的是,布隆过滤器底层使用一个位数组;初始所有的位均为0,表示集合为空。当往集合里插入一个元素时,利用布隆过滤器中的k个独立的哈希函数分别对该元素进行散列,得到k个散列值,之后,根据k个散列值分别将数组中对应位置置1。此时,完成了将该元素插入布隆过滤器中。在本申请实施例中,该元素可以为索引数据。
参见图5,插入元素x,利用k个哈希函数对x进行散列,得到Hash1(x),Hash2(x),…,Hashk(x),之后,分别查找Hash1(x),Hash2(x),…,Hashk(x)在位数组的对应位置,并将对应位置上的值置为1。
在本申请实施例中,在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且依次遍历索引树的前N-1层的布隆过滤器未查找索引数据的情况下,从第一读写存储分区的分区属性中获取有效数据的业务属性。
S102、若有效数据的业务属性为非频繁读写业务,则将有效数据重新写入新的第二读写存储分区中的第一地址;将有效数据的键和第一地址的组合,生成有效数据对应的新索引数据;将新索引数据合并到索引树的最后一层索引文件中。
示例性的,Plog1存储数据属于业务层的Hot类数据,Plog2存储数据属于业务层的Cold类数据,通过布隆过滤器已经确定Plog1和Plog2存储数据的有效数据的索引数据已经沉入到最后一层。
此时,Plog1的addr1中的有效数据和Plog2的addr2中的有效数据需要进行回收,根据Plog1属性里记录的是Hot属性的Plog,则需要查询索引层来确认是否有更新的索引数据写入,如果有更新的索引数据写入的话,则把addr1的数据及索引数据丢弃,如果没有更新的索引数据写入的话,参见图6,则需要将addr1的数据重新写入到Plog3的addr3,并且生成新的索引数据<k1,addr3>(k1为addr1中的有效数据对应的键),并合并到索引层的最后一层。根据Plog2属性里记录的是Cold数据的Plog,则不再查询索引数据,直接将addr2的数据重新写入到Plog4的addr4,并且生成新的索引数据<k2,addr4>(k2为addr2中的有效数据对应的键),并合并到索引层的最后一层。
需要说明的是,图6中的<k1,addr1>为执行垃圾回收前的addr1中的有效数据对应的索引数据,<k2,addr2>为执行垃圾回收前的addr2中的有效数据对应的索引数据。
可以理解的是,考虑到针对不同的业务,其对应的数据读写频次也不尽相同,因此在存储有效数据的第一读写存储分区的分区属性中携带了对应有效数据的业务属性,当要进行垃圾回收时,当检测到业务属性为非频繁读写业务时,表征有效数据被修改和读取的可能性很小,此时,无需从索引树中查找是否存在更新的索引数据,直接进行后续的回收过程,消除了查询索引数据的时间,进而加快了垃圾回收的效率,保证了上层业务实现的流畅性。
基于上述实施例,本申请实施例提供一种数据处理装置1。如图7所示,该数据处理装置1包括:
获取单元10,用于在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性;
写入单元11,用于若所述有效数据的业务属性为非频繁读写业务,则将所述有效数据重新写入新的第二读写存储分区中的第一地址;
生成单元12,用于将所述有效数据的键和所述第一地址的组合,生成所述有效数据对应的新索引数据;
合并单元13,用于将所述新索引数据合并到所述索引树的最后一层索引文件中。
可选的,所述数据处理装置还包括:查询单元和丢弃单元;
所述查询单元,用于若所述有效数据的业务属性为频繁读写业务,则通过所述索引树查询是否写入更新的有效数据;
所述丢弃单元,用于若写入更新的有效数据,则丢弃所述有效数据和所述索引数据;
所述写入单元11,还用于若未写入更新的有效数据,则将所述有效数据重新写入新的第二读写存储分区中的第一地址;
所述生成单元12,还用于将所述有效数据的键和所述第一地址的组合,生成所述有效数据对应的新索引数据;
所述合并单元13,还用于将所述新索引数据合并到所述索引树的最后一层索引文件中。
可选的,所述数据处理装置还包括:分配单元;
所述获取单元10,还用于获取有效数据所属业务的业务属性;
所述分配单元,用于为所述有效数据分配所述第一读写存储分区;
所述写入单元11,还用于将所述有效数据写入所述第一读写存储分区的第二地址,并将所述业务属性写入所述第一读写存储分区的分区属性中。
可选的,所述查询单元,还用于依次遍历所述索引树的前N-1层索引文件的布隆过滤器,查找所述有效数据的索引数据;所述索引树包括N层索引文件,N为正整数;若未查找到所述索引数据,表征所述第一索引文件位于所述索引树的最后一层;若查找到所述索引数据,表征所述第一索引文件位于所述索引树中的第M层,M为小于或者等于N的正整数;
所述获取单元10,还用于在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且依次遍历所述索引树的前N-1层的布隆过滤器未查找所述索引数据的情况下,从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性。
可选的,所述数据处理装置还包括:插入单元;
所述插入单元,用于利用所述第一索引文件对应的第一布隆过滤器的一组哈希函数和散列方法,将所述索引数据插入所述第一布隆过滤器中。
本申请实施例提供的一种数据处理装置,在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从第一读写存储分区的分区属性中获取有效数据的业务属性;若有效数据的业务属性为非频繁读写业务,则将有效数据重新写入新的第二读写存储分区中的第一地址;将有效数据的键和第一地址的组合,生成有效数据对应的新索引数据;并将新索引数据合并到索引树的最后一层索引文件中。由此可见,本实施例提出的数据处理装置,考虑到针对不同的业务,其对应的数据读写频次也不尽相同,因此在存储有效数据的第一读写存储分区的分区属性中携带了对应有效数据的业务属性,当要进行垃圾回收时,当检测到业务属性为非频繁读写业务时,表征有效数据被修改和读取的可能性很小,此时,无需从索引树中查找是否存在更新的索引数据,直接进行后续的回收过程,消除了查询索引数据的时间,进而加快了垃圾回收的效率,保证了上层业务实现的流畅性。
图8为本申请实施例提供的一种数据处理装置1的组成结构示意图二,在实际应用中,基于上述实施例的同一公开构思下,如图8所示,本实施例的数据处理装置1包括:处理器14、存储器15及通信总线16。
在具体的实施例的过程中,上述处理器14可以为特定用途集成电路(ASIC,Application Specific Integrated Circuit)、数字信号处理器(DSP,Digital SignalProcessor)、数字信号处理图像处理装置(DSPD,Digital Signal Processing Device)、可编程逻辑图像处理装置(PLD,Programmable logic Device)、现场可编程门阵列(FPGA,Field Programmable Gate Array)、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本实施例不作具体限定。
在本申请实施例中,上述通信总线16用于实现处理器14和存储器15之间的连接通信;上述处理器14执行存储器15中存储的运行程序时实现如下的数据处理方法:
在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性;若所述有效数据的业务属性为非频繁读写业务,则将所述有效数据重新写入新的第二读写存储分区中的第一地址;将所述有效数据的键和所述第一地址的组合,生成所述有效数据对应的新索引数据;并将所述新索引数据合并到所述索引树的最后一层索引文件中。
进一步地,上述处理器14,还用于若所述有效数据的业务属性为频繁读写业务,则通过所述索引树查询是否写入更新的有效数据;若写入更新的有效数据,则丢弃所述有效数据和所述索引数据;若未写入更新的有效数据,则将所述有效数据重新写入新的第二读写存储分区中的第一地址;将所述有效数据的键和所述第一地址的组合,生成所述有效数据对应的新索引数据;将所述新索引数据合并到所述索引树的最后一层索引文件中。
进一步地,上述处理器14,还用于获取所述有效数据所属业务的业务属性;为所述有效数据分配所述第一读写存储分区;将所述有效数据写入所述第一读写存储分区的第二地址,并将所述业务属性写入所述第一读写存储分区的分区属性中。
进一步地,上述处理器14,还用于依次遍历所述索引树的前N-1层索引文件的布隆过滤器,查找所述有效数据的索引数据;所述索引树包括N层索引文件,N为正整数;若未查找到所述索引数据,表征所述第一索引文件位于所述索引树的最后一层;若查找到所述索引数据,表征所述第一索引文件位于所述索引树中的第M层,M为小于或者等于N的正整数;在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且依次遍历所述索引树的前N-1层的布隆过滤器未查找所述索引数据的情况下,从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性。
进一步地,上述处理器14,还用于利用所述第一索引文件对应的第一布隆过滤器的一组哈希函数和散列方法,将所述索引数据插入所述第一布隆过滤器中。
本申请实施例提供一种存储介质,其上存储有计算机程序,上述计算机可读存储介质存储有一个或者多个程序,上述一个或者多个程序可被一个或者多个处理器执行,应用于数据处理装置中,该计算机程序实现如上述的数据处理方法。
基于上述实施例,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序可被一个或者多个处理器执行,该计算机程序实现如上述的数据处理方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如磁碟、光盘)中,包括若干指令用以使得一台图像显示设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开各个实施例所述的方法。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
Claims (11)
1.一种数据处理方法,其特征在于,所述方法包括:
在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性;
若所述有效数据的业务属性为非频繁读写业务,则将所述有效数据重新写入新的第二读写存储分区中的第一地址;将所述有效数据的键和所述第一地址的组合,生成所述有效数据对应的新索引数据;并将所述新索引数据合并到所述索引树的最后一层索引文件中。
2.根据权利要求1所述的方法,其特征在于,所述从所述第一读写存储分区中获取所述有效数据的业务属性之后,所述方法还包括:
若所述有效数据的业务属性为频繁读写业务,则通过所述索引树查询是否写入更新的有效数据;
若写入更新的有效数据,则丢弃所述有效数据和所述索引数据;
若未写入更新的有效数据,则将所述有效数据重新写入新的第二读写存储分区中的第一地址;将所述有效数据的键和所述第一地址的组合,生成所述有效数据对应的新索引数据;将所述新索引数据合并到所述索引树的最后一层索引文件中。
3.根据权利要求1所述的方法,其特征在于,所述在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性之前,所述方法还包括:
获取所述有效数据所属业务的业务属性;为所述有效数据分配所述第一读写存储分区;
将所述有效数据写入所述第一读写存储分区的第二地址,并将所述业务属性写入所述第一读写存储分区的分区属性中。
4.根据权利要求1所述的方法,其特征在于,所述索引树上的每一索引文件对应设置一个布隆过滤器;所述从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性之前,所述方法还包括:
依次遍历所述索引树的前N-1层索引文件的布隆过滤器,查找所述有效数据的索引数据;所述索引树包括N层索引文件,N为正整数;
若未查找到所述索引数据,表征所述第一索引文件位于所述索引树的最后一层;
若查找到所述索引数据,表征所述第一索引文件位于所述索引树中的第M层,M为小于或者等于N的正整数;
所述在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性,包括:
在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且依次遍历所述索引树的前N-1层的布隆过滤器未查找所述索引数据的情况下,从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性。
5.根据权利要求4所述的方法,其特征在于,所述依次遍历所述索引树的前N-1层索引文件的布隆过滤器,查找所述有效数据的索引数据之前,所述方法还包括:
利用所述第一索引文件对应的第一布隆过滤器的一组哈希函数和散列方法,将所述索引数据插入所述第一布隆过滤器中。
6.一种数据处理装置,其特征在于,所述数据处理装置包括:
获取单元,用于在检测到第一读写存储分区中的垃圾数据的数据量大于预设数据量阈值、且第一读写存储分区中有效数据对应的索引数据所处的第一索引文件位于索引树的最后一层的情况下,从所述第一读写存储分区的分区属性中获取所述有效数据的业务属性;
写入单元,用于若所述有效数据的业务属性为非频繁读写业务,则将所述有效数据重新写入新的第二读写存储分区中的第一地址;
生成单元,用于将所述有效数据的键和所述第一地址的组合,生成所述有效数据对应的新索引数据;
合并单元,用于将所述新索引数据合并到所述索引树的最后一层索引文件中。
7.根据权利要求6所述的数据处理装置,其特征在于,所述数据处理装置还包括:查询单元和丢弃单元;
所述查询单元,用于若所述有效数据的业务属性为频繁读写业务,则通过所述索引树查询是否写入更新的有效数据;
所述丢弃单元,用于若写入更新的有效数据,则丢弃所述有效数据和所述索引数据;
所述写入单元,还用于若未写入更新的有效数据,则将所述有效数据重新写入新的第二读写存储分区中的第一地址;
所述生成单元,还用于将所述有效数据的键和所述第一地址的组合,生成所述有效数据对应的新索引数据;
所述合并单元,还用于将所述新索引数据合并到所述索引树的最后一层索引文件中。
8.根据权利要求6所述的数据处理装置,其特征在于,所述数据处理装置还包括:分配单元;
所述获取单元,还用于获取有效数据所属业务的业务属性;
所述分配单元,用于为所述有效数据分配所述第一读写存储分区;
所述写入单元,还用于将所述有效数据写入所述第一读写存储分区的第二地址,并将所述业务属性写入所述第一读写存储分区的分区属性中。
9.一种数据处理装置,其特征在于,所述数据处理装置包括:处理器、存储器及通信总线;所述处理器执行存储器存储的运行程序时实现如权利要求1-5任一项所述的方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5任一项所述的方法。
11.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410480995.XA CN118069074B (zh) | 2024-04-22 | 2024-04-22 | 一种数据处理方法及装置、存储介质、计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410480995.XA CN118069074B (zh) | 2024-04-22 | 2024-04-22 | 一种数据处理方法及装置、存储介质、计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118069074A true CN118069074A (zh) | 2024-05-24 |
CN118069074B CN118069074B (zh) | 2024-06-21 |
Family
ID=91106017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410480995.XA Active CN118069074B (zh) | 2024-04-22 | 2024-04-22 | 一种数据处理方法及装置、存储介质、计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118069074B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319602A (zh) * | 2017-01-17 | 2018-07-24 | 广州市动景计算机科技有限公司 | 数据库管理方法及数据库系统 |
CN110389942A (zh) * | 2019-06-21 | 2019-10-29 | 华中科技大学 | 一种无垃圾回收的键值分离存储方法和系统 |
WO2020041928A1 (zh) * | 2018-08-27 | 2020-03-05 | 深圳市锐明技术股份有限公司 | 数据存储方法、系统及终端设备 |
WO2021073242A1 (zh) * | 2019-10-18 | 2021-04-22 | 蚂蚁区块链科技(上海)有限公司 | 索引创建和数据查询方法、装置及设备 |
CN112817968A (zh) * | 2021-01-14 | 2021-05-18 | 肖玉连 | 一种基于区块链的数据存入和搜索方法及系统 |
CN113778338A (zh) * | 2021-09-13 | 2021-12-10 | 北京东方金信科技股份有限公司 | 分布式存储数据读取效率优化方法、系统、设备和介质 |
CN115145954A (zh) * | 2022-09-01 | 2022-10-04 | 北京奥星贝斯科技有限公司 | 一种数据查询方法、数据存储方法及装置 |
-
2024
- 2024-04-22 CN CN202410480995.XA patent/CN118069074B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319602A (zh) * | 2017-01-17 | 2018-07-24 | 广州市动景计算机科技有限公司 | 数据库管理方法及数据库系统 |
WO2020041928A1 (zh) * | 2018-08-27 | 2020-03-05 | 深圳市锐明技术股份有限公司 | 数据存储方法、系统及终端设备 |
CN110389942A (zh) * | 2019-06-21 | 2019-10-29 | 华中科技大学 | 一种无垃圾回收的键值分离存储方法和系统 |
WO2021073242A1 (zh) * | 2019-10-18 | 2021-04-22 | 蚂蚁区块链科技(上海)有限公司 | 索引创建和数据查询方法、装置及设备 |
CN112817968A (zh) * | 2021-01-14 | 2021-05-18 | 肖玉连 | 一种基于区块链的数据存入和搜索方法及系统 |
CN113778338A (zh) * | 2021-09-13 | 2021-12-10 | 北京东方金信科技股份有限公司 | 分布式存储数据读取效率优化方法、系统、设备和介质 |
CN115145954A (zh) * | 2022-09-01 | 2022-10-04 | 北京奥星贝斯科技有限公司 | 一种数据查询方法、数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN118069074B (zh) | 2024-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10620862B2 (en) | Efficient recovery of deduplication data for high capacity systems | |
US9146877B2 (en) | Storage system capable of managing a plurality of snapshot families and method of snapshot family based read | |
US11853549B2 (en) | Index storage in shingled magnetic recording (SMR) storage system with non-shingled region | |
US10725669B2 (en) | Incremental snapshot based technique on paged translation systems | |
US9311015B2 (en) | Storage system capable of managing a plurality of snapshot families and method of operating thereof | |
JP4766240B2 (ja) | ファイル管理方法、装置、およびプログラム | |
US10725903B2 (en) | Unified paging scheme for dense and sparse translation tables on flash storage systems | |
US7577808B1 (en) | Efficient backup data retrieval | |
US20100146213A1 (en) | Data Cache Processing Method, System And Data Cache Apparatus | |
TW201205286A (en) | Controller, data storage device, and program product | |
US10235287B2 (en) | Efficient management of paged translation maps in memory and flash | |
KR20080037283A (ko) | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 | |
US20220121564A1 (en) | Translation lookup and garbage collection optimizations on storage system with paged translation table | |
CN108399047B (zh) | 一种闪存文件系统及其数据管理方法 | |
KR20130108298A (ko) | 폐기가능 파일들의 카드-기반 관리 | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
EP3788505B1 (en) | Storing data items and identifying stored data items | |
US9286213B2 (en) | Method and apparatus for managing file system | |
CN111831691B (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN115328403A (zh) | 一种数据重删方法、装置、设备及存储介质 | |
CN115878027A (zh) | 一种存储对象的处理方法、装置、终端及存储介质 | |
CN109408416B (zh) | 一种地址映射表项页管理方法及装置 | |
CN118069074B (zh) | 一种数据处理方法及装置、存储介质、计算机程序产品 | |
CN112740197A (zh) | 用于基于特里数据结构的数据库的高效存储器内多版本并发控制 | |
CN107329903B (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 |