CN112148217A - 全闪存储系统的重删元数据的缓存方法、装置及介质 - Google Patents
全闪存储系统的重删元数据的缓存方法、装置及介质 Download PDFInfo
- Publication number
- CN112148217A CN112148217A CN202010954972.XA CN202010954972A CN112148217A CN 112148217 A CN112148217 A CN 112148217A CN 202010954972 A CN202010954972 A CN 202010954972A CN 112148217 A CN112148217 A CN 112148217A
- Authority
- CN
- China
- Prior art keywords
- layer
- tree
- metadata
- fingerprint value
- stored
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013500 data storage Methods 0.000 claims abstract description 39
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 238000010276 construction Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000005055 memory storage Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种全闪存储系统的重删元数据的缓存方法、装置及计算机可读存储介质。其中,方法包括预先构建包括第一层和第二层的数据存储模型,第一层与第二层具有对应关系,且该模型用于将重删元数据存储至内存。当检测到存在待存储重删元数据,计算待存储重删元数据的指纹值,并基于指纹值‑物理块地址的映射关系确定待存储重删元数据指纹值对应的物理块地址;将待存储重删元数据的指纹值的前n个字节存储至第一层,将指纹值的剩余字节和物理块地址存储至第二层,从而在提高全闪存储系统的存储性能基础上,实现了简单、高效地存储重删元数据。
Description
技术领域
本申请涉及全闪存储技术领域,特别是涉及一种全闪存储系统的重删元数据的缓存方法、装置及计算机可读存储介质。
背景技术
随着SSD(Solid State Drive,固态存储器)硬盘的普及,全闪存储系统成为一种趋势。可以理解的是,单位容量的固态硬盘价格要远高于普通硬盘,合理利用固态硬盘的空间容量是很有必要的,全闪存储系统中数据缩减是一项重要的功能。
重删或称为重复数据删除可保证存储系统中完全相同的数据只存储一份,是数据缩减的一种实现方式。重删的基本原理为:对固定大小的数据块如8K,利用指纹计算算法计算得到该数据块中数据的指纹值,指纹值为64bits数,作为该数据块的唯一标识。当有新数据写入数据块时,先计算该数据块的指纹值,然后查询重删元数据的指纹值和物理块地址的映射关系,若该指纹值已有对应的物理块地址,则认为该数据块已在盘上有完全相同的数据,不再需要重新写入,只需要增加新的物理块地址和逻辑块地址映射关系的元数据,并将新逻辑块地址指向查询到的物理块地址即可。若重删元数据丢失,会导致无法查询到指纹值和物理块地址的映射关系,相应的,系统便会认为尚未写入完全相同的数据块,影响系统的重删率,而不会造成数据不一致等问题,因此重删元数据具有可丢失的特点。
相关技术为了提高数据存储安全性,避免重删元数据丢失,在存储重删元数据时,需要将其进行落盘操作,不仅操作流程复杂,而且存储效率低。
鉴于此,如何在提高全闪存储系统的存储性能基础上,简单、高效地存储重删元数据,是所属领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种全闪存储系统的重删元数据的缓存方法、装置及计算机可读存储介质,在提高全闪存储系统的存储性能基础上,实现了简单、高效地存储重删元数据。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种全闪存储系统的重删元数据的缓存方法,包括:
预先构建用于将重删元数据存储至内存的数据存储模型,所述数据存储模型包括第一层和第二层,且所述第一层与所述第二层具有对应关系;
计算待存储重删元数据的指纹值,并基于指纹值-物理块地址的映射关系确定所述待存储重删元数据指纹值对应的物理块地址;
将所述待存储重删元数据的指纹值的前n个字节存储至所述第一层,将所述指纹值的剩余字节和所述物理块地址存储至所述第二层。
可选的,所述第一层为双层基数树结构,所述第二层为B+树结构。
可选的,所述将所述待存储重删元数据的指纹值的前n个字节存储至所述第一层,将所述指纹值的剩余字节和所述物理块地址存储至所述第二层包括:
分别将所述指纹值的第一个字节索引所述双层基数树结构的第一层、所述指纹值的第二个字节索引所述双层基数树结构的第二层;
将所述指纹值的剩余6个字节存储至所述B+树结构的key关键字中,将所述物理块地址存储至所述B+树结构的value值中。
可选的,所述将所述待存储重删元数据的指纹值的前n个字节存储至所述第一层,将所述指纹值的剩余字节和所述物理块地址存储至所述第二层之后,还包括:
预先将所述B+树的每一棵树与LRU链表进行链接;
当接收到IO请求,确定所述IO请求访问数据存储的目标树,基于所述LRU链表中各树的被访问因子调整所述目标树在所述LRU链表中的位置;所述被访问因子包括访问时间和访问次数。
可选的,所述基于所述LRU链表中各树的被访问次数调整所述目标树在所述LRU链表中的位置之后,还包括:
当检测到分配的存储资源的剩余空间容量值低于预设空间阈值时;若所述LRU链表中各树按照被访问因子从高到低排序,将所述LRU链表中最后一棵树整体置换为存储新待存储重删元数据对应树;若所述LRU链表中各树按照被访问因子从低到高排序,将所述LRU链表中第一棵树整体置换为存储新待存储重删元数据对应树。
本发明实施例另一方面提供了一种全闪存储系统的重删元数据的缓存装置,包括:
存储模型预构建模块,用于构建用于将重删元数据存储至内存的数据存储模型,所述数据存储模型包括第一层和第二层,且所述第一层与所述第二层具有对应关系;
存储元素确定模块,用于计算待存储重删元数据的指纹值,并基于指纹值-物理块地址的映射关系确定所述待存储重删元数据指纹值对应的物理块地址;
数据存储模块,用于将所述待存储重删元数据的指纹值的前n个字节存储至所述第一层,将所述指纹值的剩余字节和所述物理块地址存储至所述第二层。
可选的,所述存储模型预构建模块为构建双层基数树结构作为所述第一层、B+树结构作为所述第二层的数据存储模型的模块。
可选的,还包括:
链接关系预构建模块,用于预先将所述B+树的每一棵树与LRU链表进行链接;
树位置调整模块,用于当接收到IO请求,确定所述IO请求访问数据存储的目标树,基于所述LRU链表中各树的被访问因子调整所述目标树在所述LRU链表中的位置;所述被访问因子包括访问时间和访问次数。
本发明实施例还提供了一种全闪存储系统的重删元数据的缓存装置,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述全闪存储系统的重删元数据的缓存方法的步骤。
本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有全闪存储系统的重删元数据的缓存程序,所述全闪存储系统的重删元数据的缓存程序被处理器执行时实现如前任一项所述全闪存储系统的重删元数据的缓存方法的步骤。
本申请提供的技术方案的优点在于,构建双层结构的数据存储模型,数据存储模型将所有重删元数据全部放到内存中无需落盘,操作简单,节省落盘时间,提高存储效率,且内存中存储的重删元数据不易丢失,可以有效提升存储性能;将待存储的重删元数据的指纹值的前n个字节存储在模型第一层,其余字节和物理块地址均存储在第二层,可以减小第二层中指纹值的大小,节省存储空间,提高内存利用率,有利于提升全闪存储系统的存储性能。
此外,本发明实施例还针对全闪存储系统的重删元数据的缓存方法提供了相应的实现装置及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置及计算机可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种全闪存储系统的重删元数据的缓存方法的流程示意图;
图2为本发明实施例提供的另一种全闪存储系统的重删元数据的缓存方法的流程示意图;
图3为本发明实施例提供的全闪存储系统的重删元数据的缓存装置的一种具体实施方式结构图;
图4为本发明实施例提供的全闪存储系统的重删元数据的缓存装置的另一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图1,图1为本发明实施例提供的一种全闪存储系统的重删元数据的缓存方法的流程示意图,本发明实施例可包括以下内容:
S101:预先构建用于将重删元数据存储至内存的数据存储模型,数据存储模型包括第一层和第二层,且第一层与第二层具有对应关系。
本步骤的数据存储模型用于将重删元数据存储至内存中,数据存储模型为双层结构,也即两层数据结构共同存储一个重删元数据,所以第一层和第二层需要有对应关系,以便通过其中一层确定其余数据在另外一层的存储信息。
S102:计算待存储重删元数据的指纹值,并基于指纹值-物理块地址的映射关系确定待存储重删元数据指纹值对应的物理块地址。
可以理解的是,对于重删元数据来说,系统只保留一份数据,该数据具有一个唯一的标识信息,本申请的指纹值即可作为重删元数据的唯一标识。存储系统的重复数据删除过程为:首先将数据文件分割成一组数据块,为每个数据块计算指纹值,然后以指纹值为关键字进行Hash查找,若能找到相匹配的则表示该数据块为重复数据块,仅存储该数据块的索引号。若不能找到相匹配的则表示该数据块为新的唯一块,对数据块进行存储并创建相关元数据信息。对于元数据来说,若重删元数据已存在系统中,当检测到写入与重删元数据相同的新数据,系统不会申请用于写入数据的物理块,只是将该新数据的逻辑块地址指向已有重删元数据的物理块地址。若重删元数据不存在系统中,当检测到重删元数据写入,系统申请用于写入该数据的物理块,计算该重删元数据的指纹值并将物理块地址与指纹值建立映射关系,通过指纹值便可确定存储其的物理块地址。可采用任何一种指纹值计算算法计算待存储重删元数据的指纹值,指纹值是一个64位的数,物理块地址也是一个64位的数据,系统存储重删元数据只需存储指纹值和物理块地址即可,也即系统中一个重删数据占16字节。
S103:将待存储重删元数据的指纹值的前n个字节存储至第一层,将指纹值的剩余字节和物理块地址存储至第二层。
可以理解的是,待存储重删元数据的指纹值为64位数,也即共8个字节。本步骤的n≤8且为整数,所属领域技术人员可根据实际需求确定将指纹值的哪几个字节存储至第一层,本申请对此不作任何限定。
在本发明实施例提供的技术方案中,构建双层结构的数据存储模型,数据存储模型将所有重删元数据全部放到内存中无需落盘,操作简单,节省落盘时间,提高存储效率,且内存中存储的重删元数据不易丢失,可以有效提升存储性能;将待存储的重删元数据的指纹值的前n个字节存储在模型第一层,其余字节和物理块地址均存储在第二层,可以减小第二层中指纹值的大小,节省存储空间,提高内存利用率,有利于提升全闪存储系统的存储性能。
在上述实施例中,对于如何数据存储模型的结构并不做限定,本实施例中给出数据存储模型的一种结构,可包括如下步骤:
数据存储模型可为双层树结构,第一层可为双层基数树结构,第二层可为B+树结构,基数树的第二层对应B+树,第二层B+树结构中共有216=65536棵B+树,通过二者对应关系,在基数树存储数据之后,可在65536棵B+树中找到存储其余数据的那棵树。
基数树为以二进制位串为关键字的前缀树,是一种多叉树形结构。每个中间节点包含指向多个子节点的指针数组,叶子节点包含指向实际的对象的指针,由于对象不具备树节点结构,因此将其父节点看做叶节点。基数树也被设计成多道树,以提高磁盘交互性能。前缀树为一种有序树,用于保存关联数组,其中的键通常是字符串,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。B+树为一种n叉排序树的树数据结构,每个节点通常有多个孩子,一棵B+树包含根节点、内部节点和叶子节点。根节点可能是一个叶子节点,也可能是一个包含两个或两个以上孩子节点的节点。B+树上有两个头指针,一个指向根结点,一个指向关键字最小的叶子结点。有n棵子树的结点中含有n个关键字,每个关键字不保存数据,只用来索引,所有数据都保存在叶子节点。所有的叶子结点中包含了全部关键字的信息,及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
本实施例分别将指纹值的第一个字节索引双层基数树结构的第一层、指纹值的第二个字节索引双层基数树结构的第二层;将指纹值的剩余6个字节存储至B+树结构的key关键字中,将物理块地址存储至B+树结构的value值中。这样可以以前两个字节作为公共部分,在B+树中每个key只存储后6个字节,可节省存储空间,提高存储系统利用率。因为每个IO都会计算指纹,并查询重删元数据,所以重删元数据存储结构需要支持高效的查询。本实施例的数据存储模型的下层结构使用B+树,每层可以二分查找,有效提高数据查询效率。
本申请还提供了另一种全闪存储系统的重删元数据的缓存,请参阅图2,可包括:
S201:预先构建双层基数树结构作为第一层、B+树结构作为第二层的数据存储模型,并将B+树的每一棵树与LRU链表进行链接。
其中,数据存储模型用于将重删元数据存储至内存,且第一层与第二层具有对应关系。预先构建LRU链表,LRU链表即为基于LRU(Least Recently Used,最近最少使用)方法构建,LRU为选择最近最久未使用的页面予以淘汰的页面置换算法。
S202:计算待存储重删元数据的指纹值,并基于指纹值-物理块地址的映射关系确定待存储重删元数据指纹值对应的物理块地址。
S203:将待存储重删元数据的指纹值的第一个字节存储至双层基数树结构的第一层,第二个字节存储至双层基数树结构的第二层,将指纹值的剩余6个字节和物理块地址存储至B+树中。
S204:当接收到IO请求,确定IO请求访问数据存储的目标树,基于LRU链表中各树的被访问因子调整目标树在LRU链表中的位置;被访问因子包括访问时间和访问次数。
在本申请中,每棵树在LUR链表中的位置可有被访问因子决定,也即由访问时间和访问次数共同决定,若LRU链表按照倒序排列各树位置,某一棵树被访问的次数越频繁,其在链表中的位置越靠前,某棵树被访问的时间与当前时刻越相近,其在链表中的位置越靠前。在被访问次数相同的前提下,被访问时间越靠近当前时间,其在链表中的位置越靠前。在一种实施方式中,所属领域技术人员可根据实际应用场景确定访问时间和访问次数的权重,访问时间和访问次数有对应的打分表,例如访问50次以上为5分,访问10次以下为1分,访问50次-40次之间4分,访问40次-30次为3分,访问30-20次为2分,最近被访问时间距离当前时刻的时间差大于50min以上为1分,时间差小于10min以下为5分,时间差在50-40min之间2分,时间差在40min-30min为3分,时间差在30-20min为4分,然后每棵树根据访问时间和访问次数会有一个总分数,根据总分数对各树进行排序。每次下发IO请求一次,更新链表中各树的位置。
S205:判断分配的存储资源的剩余空间容量值是否低于预设空间阈值,若是,则执行S206;若否,则继续监测是否有新IO请求下发并执行S204。
可以理解的是,因为存储系统内存有限,只能存储有限的重删元数据。因此当分配的资源耗尽或不足时,也即分配的存储资源的剩余空间容量值低于预设空间阈值,需要决定如何进行缓存置换。预设空间阈值可根据实际情况进行选择,例如10M,这均不影响本申请的实现。本申请可使用LRU置换策略进行缓存置换。因为B+树有65536棵,而指纹值是一个数据块计算出来的,可以认为指纹值完全随机,每次置换一棵树是最简单有效的方式。S201预先使用LRU链表把B+树链接起来,每次有新的访问时,调整该树在LRU链表中的位置,当资源不足时,通过整树置换的方式,一次释放一棵树的资源,实现资源回收。
S206:若LRU链表中各树按照被访问因子从高到低排序,将LRU链表中最后一棵树整体置换为存储新待存储重删元数据对应树;若LRU链表中各树按照被访问因子从低到高排序,将LRU链表中第一棵树整体置换为存储新待存储重删元数据对应树。
本实施例与上述实施例相同的步骤或相同方法可参阅上述实施例记载的内容,该实施例便不再赘述。
本实施例采用基数树加B+树的存储结构,上层使用两层的基数树,可以减小B+树中指纹值的大小,提高内存利用率,下层使用B+树,可以做高效的查询。另外使用LRU做整树淘汰,进行资源置换,保证系统能够持续运行。在保证一定的重删率的前提下,将重删元数据全部放到内存中不需要落盘,提高存储系统性能。
需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1-图2只是一种示意方式,并不代表只能是这样的执行顺序。
本发明实施例还针对全闪存储系统的重删元数据的缓存方法提供了相应的装置,进一步使得所述方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的全闪存储系统的重删元数据的缓存装置进行介绍,下文描述的全闪存储系统的重删元数据的缓存装置与上文描述的全闪存储系统的重删元数据的缓存方法可相互对应参照。
基于功能模块的角度,参见图3,图3为本发明实施例提供的全闪存储系统的重删元数据的缓存装置在一种具体实施方式下的结构图,该装置可包括:
存储模型预构建模块301,用于构建用于将重删元数据存储至内存的数据存储模型,数据存储模型包括第一层和第二层,且第一层与第二层具有对应关系。
存储元素确定模块302,用于计算待存储重删元数据的指纹值,并基于指纹值-物理块地址的映射关系确定待存储重删元数据指纹值对应的物理块地址。
数据存储模块303,用于将待存储重删元数据的指纹值的前n个字节存储至第一层,将指纹值的剩余字节和物理块地址存储至第二层。
可选的,在本实施例的一些实施方式中,所述存储模型预构建模块可为构建双层基数树结构作为所述第一层、B+树结构作为所述第二层的数据存储模型的模块。
在本实施例的另外一些实施方式中,所述数据存储模块303可具体用于:
分别将指纹值的第一个字节索引双层基数树结构的第一层、指纹值的第二个字节索引双层基数树结构的第二层;将指纹值的剩余6个字节存储至B+树结构的key关键字中,将物理块地址存储至B+树结构的value值中。
可选的,在本实施例的另一些实施方式中,所述装置例如还可以包括:
链接关系预构建模块,用于预先将B+树的每一棵树与LRU链表进行链接;
树位置调整模块,用于当接收到IO请求,确定IO请求访问数据存储的目标树,基于LRU链表中各树的被访问因子调整目标树在LRU链表中的位置;被访问因子包括访问时间和访问次数。
在本发明实施例的另外一些实施方式,所述装置例如还可包括:
监测子模块,用于当检测到分配的存储资源的剩余空间容量值低于预设空间阈值时;
置换子模块,用于若LRU链表中各树按照被访问因子从高到低排序,将LRU链表中最后一棵树整体置换为存储新待存储重删元数据对应树;若LRU链表中各树按照被访问因子从低到高排序,将LRU链表中第一棵树整体置换为存储新待存储重删元数据对应树。
本发明实施例所述全闪存储系统的重删元数据的缓存装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在提高全闪存储系统的存储性能基础上,实现了简单、高效地存储重删元数据。
上文中提到的全闪存储系统的重删元数据的缓存装置是从功能模块的角度描述,进一步的,本申请还提供一种全闪存储系统的重删元数据的缓存装置,是从硬件角度描述。图4为本申请实施例提供的另一种全闪存储系统的重删元数据的缓存装置的结构图。如图4所示,该装置包括存储器40,用于存储计算机程序;
处理器41,用于执行计算机程序时实现如上述任一实施例提到的全闪存储系统的重删元数据的缓存方法的步骤。
其中,处理器41可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器41可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器41也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器41可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器41还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器40可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器40还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器40至少用于存储以下计算机程序401,其中,该计算机程序被处理器41加载并执行之后,能够实现前述任一实施例公开的全闪存储系统的重删元数据的缓存方法的相关步骤。另外,存储器40所存储的资源还可以包括操作系统402和数据403等,存储方式可以是短暂存储或者永久存储。其中,操作系统402可以包括Windows、Unix、Linux等。数据403可以包括但不限于测试结果对应的数据等。
在一些实施例中,全闪存储系统的重删元数据的缓存装置还可包括有显示屏42、输入输出接口43、通信接口44、电源45以及通信总线46。
本领域技术人员可以理解,图4中示出的结构并不构成对全闪存储系统的重删元数据的缓存装置的限定,可以包括比图示更多或更少的组件,例如还可包括传感器47。
本发明实施例所述全闪存储系统的重删元数据的缓存装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在提高全闪存储系统的存储性能基础上,实现了简单、高效地存储重删元数据。
可以理解的是,如果上述实施例中的全闪存储系统的重删元数据的缓存方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,存储有全闪存储系统的重删元数据的缓存程序,所述全闪存储系统的重删元数据的缓存程序被处理器执行时如上任意一实施例所述全闪存储系统的重删元数据的缓存方法的步骤。
本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在提高全闪存储系统的存储性能基础上,实现了简单、高效地存储重删元数据。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本申请所提供的一种全闪存储系统的重删元数据的缓存方法、装置及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种全闪存储系统的重删元数据的缓存方法,其特征在于,包括:
预先构建用于将重删元数据存储至内存的数据存储模型,所述数据存储模型包括第一层和第二层,且所述第一层与所述第二层具有对应关系;
计算待存储重删元数据的指纹值,并基于指纹值-物理块地址的映射关系确定所述待存储重删元数据指纹值对应的物理块地址;
将所述待存储重删元数据的指纹值的前n个字节存储至所述第一层,将所述指纹值的剩余字节和所述物理块地址存储至所述第二层。
2.根据权利要求1所述的全闪存储系统的重删元数据的缓存方法,其特征在于,所述第一层为双层基数树结构,所述第二层为B+树结构。
3.根据权利要求2所述的全闪存储系统的重删元数据的缓存方法,其特征在于,所述将所述待存储重删元数据的指纹值的前n个字节存储至所述第一层,将所述指纹值的剩余字节和所述物理块地址存储至所述第二层包括:
分别将所述指纹值的第一个字节索引所述双层基数树结构的第一层、所述指纹值的第二个字节索引所述双层基数树结构的第二层;
将所述指纹值的剩余6个字节存储至所述B+树结构的key关键字中,将所述物理块地址存储至所述B+树结构的value值中。
4.根据权利要求2所述的全闪存储系统的重删元数据的缓存方法,其特征在于,所述将所述待存储重删元数据的指纹值的前n个字节存储至所述第一层,将所述指纹值的剩余字节和所述物理块地址存储至所述第二层之后,还包括:
预先将所述B+树的每一棵树与LRU链表进行链接;
当接收到IO请求,确定所述IO请求访问数据存储的目标树,基于所述LRU链表中各树的被访问因子调整所述目标树在所述LRU链表中的位置;所述被访问因子包括访问时间和访问次数。
5.根据权利要求4所述的全闪存储系统的重删元数据的缓存方法,其特征在于,所述基于所述LRU链表中各树的被访问次数调整所述目标树在所述LRU链表中的位置之后,还包括:
当检测到分配的存储资源的剩余空间容量值低于预设空间阈值时,若所述LRU链表中各树按照被访问因子从高到低排序,将所述LRU链表中最后一棵树整体置换为存储新待存储重删元数据对应树;若所述LRU链表中各树按照被访问因子从低到高排序,将所述LRU链表中第一棵树整体置换为存储新待存储重删元数据对应树。
6.一种全闪存储系统的重删元数据的缓存装置,其特征在于,包括:
存储模型预构建模块,用于构建用于将重删元数据存储至内存的数据存储模型,所述数据存储模型包括第一层和第二层,且所述第一层与所述第二层具有对应关系;
存储元素确定模块,用于计算待存储重删元数据的指纹值,并基于指纹值-物理块地址的映射关系确定所述待存储重删元数据指纹值对应的物理块地址;
数据存储模块,用于将所述待存储重删元数据的指纹值的前n个字节存储至所述第一层,将所述指纹值的剩余字节和所述物理块地址存储至所述第二层。
7.根据权利要求6所述的全闪存储系统的重删元数据的缓存装置,其特征在于,所述存储模型预构建模块为构建双层基数树结构作为所述第一层、B+树结构作为所述第二层的数据存储模型的模块。
8.根据权利要求7所述的全闪存储系统的重删元数据的缓存装置,其特征在于,还包括:
链接关系预构建模块,用于预先将所述B+树的每一棵树与LRU链表进行链接;
树位置调整模块,用于当接收到IO请求,确定所述IO请求访问数据存储的目标树,基于所述LRU链表中各树的被访问因子调整所述目标树在所述LRU链表中的位置;所述被访问因子包括访问时间和访问次数。
9.一种全闪存储系统的重删元数据的缓存装置,其特征在于,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至5任一项所述全闪存储系统的重删元数据的缓存方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有全闪存储系统的重删元数据的缓存程序,所述全闪存储系统的重删元数据的缓存程序被处理器执行时实现如权利要求1至5任一项所述全闪存储系统的重删元数据的缓存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010954972.XA CN112148217B (zh) | 2020-09-11 | 2020-09-11 | 全闪存储系统的重删元数据的缓存方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010954972.XA CN112148217B (zh) | 2020-09-11 | 2020-09-11 | 全闪存储系统的重删元数据的缓存方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148217A true CN112148217A (zh) | 2020-12-29 |
CN112148217B CN112148217B (zh) | 2023-12-22 |
Family
ID=73890337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010954972.XA Active CN112148217B (zh) | 2020-09-11 | 2020-09-11 | 全闪存储系统的重删元数据的缓存方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148217B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799590A (zh) * | 2021-01-21 | 2021-05-14 | 中国人民解放军国防科技大学 | 一种针对在线主存储重删的差异化缓存方法 |
CN114115734A (zh) * | 2021-11-18 | 2022-03-01 | 新华三大数据技术有限公司 | 一种数据重删方法、装置、设备及存储介质 |
CN114416676A (zh) * | 2021-12-20 | 2022-04-29 | 北京星网锐捷网络技术有限公司 | 数据处理方法、装置、设备和存储介质 |
CN114442931A (zh) * | 2021-12-23 | 2022-05-06 | 天翼云科技有限公司 | 一种数据重删方法及系统、电子设备、存储介质 |
WO2024032015A1 (zh) * | 2022-08-11 | 2024-02-15 | 华为技术有限公司 | 数据缩减方法、装置及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120323859A1 (en) * | 2011-06-14 | 2012-12-20 | Netapp, Inc. | Hierarchical identification and mapping of duplicate data in a storage system |
CN103345472A (zh) * | 2013-06-04 | 2013-10-09 | 北京航空航天大学 | 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法 |
CN103514250A (zh) * | 2013-06-20 | 2014-01-15 | 易乐天 | 一种全局重复数据删除的方法和系统及存储装置 |
CN104303162A (zh) * | 2012-01-12 | 2015-01-21 | 才智知识产权控股公司(2) | 用于管理缓存接纳的系统和方法 |
US9336143B1 (en) * | 2013-09-26 | 2016-05-10 | Emc Corporation | Indexing a deduplicated cache system by integrating fingerprints of underlying deduplicated storage system |
US20170212680A1 (en) * | 2016-01-22 | 2017-07-27 | Suraj Prabhakar WAGHULDE | Adaptive prefix tree based order partitioned data storage system |
US9740422B1 (en) * | 2013-03-14 | 2017-08-22 | EMC IP Holding Company LLC | Version-based deduplication of incremental forever type backup |
CN108647151A (zh) * | 2018-04-26 | 2018-10-12 | 郑州云海信息技术有限公司 | 一种全闪系统元数据落盘方法、装置、设备及存储介质 |
CN110532201A (zh) * | 2019-08-23 | 2019-12-03 | 北京浪潮数据技术有限公司 | 一种元数据处理方法及装置 |
CN110618790A (zh) * | 2019-09-06 | 2019-12-27 | 上海电力大学 | 基于重复数据删除的雾存储数据去冗余方法 |
-
2020
- 2020-09-11 CN CN202010954972.XA patent/CN112148217B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120323859A1 (en) * | 2011-06-14 | 2012-12-20 | Netapp, Inc. | Hierarchical identification and mapping of duplicate data in a storage system |
CN104303162A (zh) * | 2012-01-12 | 2015-01-21 | 才智知识产权控股公司(2) | 用于管理缓存接纳的系统和方法 |
US9740422B1 (en) * | 2013-03-14 | 2017-08-22 | EMC IP Holding Company LLC | Version-based deduplication of incremental forever type backup |
CN103345472A (zh) * | 2013-06-04 | 2013-10-09 | 北京航空航天大学 | 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法 |
CN103514250A (zh) * | 2013-06-20 | 2014-01-15 | 易乐天 | 一种全局重复数据删除的方法和系统及存储装置 |
US9336143B1 (en) * | 2013-09-26 | 2016-05-10 | Emc Corporation | Indexing a deduplicated cache system by integrating fingerprints of underlying deduplicated storage system |
US20170212680A1 (en) * | 2016-01-22 | 2017-07-27 | Suraj Prabhakar WAGHULDE | Adaptive prefix tree based order partitioned data storage system |
CN108647151A (zh) * | 2018-04-26 | 2018-10-12 | 郑州云海信息技术有限公司 | 一种全闪系统元数据落盘方法、装置、设备及存储介质 |
CN110532201A (zh) * | 2019-08-23 | 2019-12-03 | 北京浪潮数据技术有限公司 | 一种元数据处理方法及装置 |
CN110618790A (zh) * | 2019-09-06 | 2019-12-27 | 上海电力大学 | 基于重复数据删除的雾存储数据去冗余方法 |
Non-Patent Citations (3)
Title |
---|
PANFENG ZHANG 等: "Resemblance and mergence based indexing for high performance data deduplication", JOURNAL OF SYSTEMS AND SOFTWARE * |
杨天明;吴海涛;: "一种批处理块级数据去重方法", 计算机应用与软件, no. 05 * |
王青松;葛慧;: "指纹极值的双层重复数据删除算法", 辽宁大学学报(自然科学版), no. 03 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799590A (zh) * | 2021-01-21 | 2021-05-14 | 中国人民解放军国防科技大学 | 一种针对在线主存储重删的差异化缓存方法 |
CN112799590B (zh) * | 2021-01-21 | 2022-07-19 | 中国人民解放军国防科技大学 | 一种针对在线主存储重删的差异化缓存方法 |
CN114115734A (zh) * | 2021-11-18 | 2022-03-01 | 新华三大数据技术有限公司 | 一种数据重删方法、装置、设备及存储介质 |
CN114416676A (zh) * | 2021-12-20 | 2022-04-29 | 北京星网锐捷网络技术有限公司 | 数据处理方法、装置、设备和存储介质 |
CN114442931A (zh) * | 2021-12-23 | 2022-05-06 | 天翼云科技有限公司 | 一种数据重删方法及系统、电子设备、存储介质 |
WO2024032015A1 (zh) * | 2022-08-11 | 2024-02-15 | 华为技术有限公司 | 数据缩减方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112148217B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112148217A (zh) | 全闪存储系统的重删元数据的缓存方法、装置及介质 | |
CN110083601B (zh) | 面向键值存储系统的索引树构建方法及系统 | |
TWI499909B (zh) | 階層式不可改變的內容可定址的記憶體處理器 | |
US11899641B2 (en) | Trie-based indices for databases | |
CN113196260B (zh) | 能够选择性使用键部分的键值存储树 | |
JP6553649B2 (ja) | クラスタリング記憶方法および装置 | |
JP5996088B2 (ja) | 暗号ハッシュ・データベース | |
EP2885728B1 (en) | Hardware implementation of the aggregation/group by operation: hash-table method | |
US10114908B2 (en) | Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data | |
EP3864519A1 (en) | Key-value store tree data block spill with compaction | |
US10783115B2 (en) | Dividing a dataset into sub-datasets having a subset of values of an attribute of the dataset | |
US20220027349A1 (en) | Efficient indexed data structures for persistent memory | |
CN113535670B (zh) | 一种虚拟化资源镜像存储系统及其实现方法 | |
CN106599247A (zh) | LSM‑tree结构中数据文件的合并方法及装置 | |
KR20230026946A (ko) | 해싱을 사용하는 키 밸류 스토리지 장치 및 그것의 동작 방법 | |
CN116774937A (zh) | 数据存储方法、装置、处理设备、存储介质 | |
JP6006740B2 (ja) | インデックス管理装置 | |
US10997144B2 (en) | Reducing write amplification in buffer trees | |
CN111881064A (zh) | 一种全闪存储系统中访问请求的处理方法、装置及设备 | |
CN113805787A (zh) | 数据写入方法、装置、设备及存储介质 | |
US20190114324A1 (en) | Method to reduce index write-amplification | |
Ivanova | A survey of mathematical and informational foundations of the BigArM access method | |
CN117349477A (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 |