使用基于相似性的数据缩减在数据存储设备中存储数据页的方法技术

技术编号:38861255 阅读:14 留言:0更新日期:2023-09-17 10:03
提供了一种将接收到的数据页(202)存储在数据存储设备(102)中的方法。所述方法包括(i)当所述接收到的数据页被接收时,获得包括一组样本的样本集,其中,所述一组样本包括所述接收到的数据页的两个或两个以上样本,(ii)为所述两个或两个以上样本中的每个样本计算新的哈希值,(iii)标识与键值存储(300)中的一个或多个预计算哈希值关联的一个或多个页标识符(302AA至302NN、404AA至404NN),(iv)按标识的页标识符被标识的次数对其进行排序,(v)确定所述接收到的数据页与对应于一个或多个排序标识符的一个或多个页之间的相似度,其中,所述相似度由多个匹配数据子字符串测量,所述子字符串是块或页中的字节序列,(vi)根据所述相似度处理所述接收到的数据页。似度处理所述接收到的数据页。似度处理所述接收到的数据页。

【技术实现步骤摘要】
【国外来华专利技术】使用基于相似性的数据缩减在数据存储设备中存储数据页的方法


[0001]本专利技术大体上涉及一种将接收到的数据页存储在数据存储设备中的方法,更具体地,本专利技术涉及一种控制单元,用于使数据存储设备存储接收到的数据页。此外,本专利技术还涉及一种数据存储设备,包括用于存储接收到的数据页的控制单元。

技术介绍

[0002]现代计算机使用有限的存储器来保存代码和数据。计算机存储器在访问速度和(非)易失性方面表现各异。目前,易失性存储器比非易失性存储器快,因此适合编码和存储数据,以加快计算速度。例如,随机存取存储器(random access memory,RAM)通常用作易失性存储器。一些使用情形,例如物联网(Internet of Things,IoT),可能需要将可变应用程序数据放置在非易失性存储器中。为了提高执行速度,部分代码和数据也可以放入中央处理单元(Central Processing Unit,CPU)代码缓存(code cache,C

cache)和数据缓存(data cache,D

cache)中,这些缓存速度更快但比RAM慢。CPU缓存可以分成若干级别,具有不同的大小和访问速度。此外,少量数据也可以放置和保存在CPU寄存器中,这些寄存器离CPU执行单元最近,访问速度最快。
[0003]在目前的计算机设计中,存储器访问速度由技术成本——使用技术与相关成本之间的权衡——来决定:寄存器存储器最快、最昂贵,而非易失性存储器层最慢、最便宜。寄存器由编译器静态分配,CPU可以以微码级别动态重新分配寄存器。CPU内存控制器动态管理用于执行程序的缓存分配。
[0004]当RAM的容量不足以执行程序时,内存管理器会尝试释放内存。使用现有的内存管理系统,非可变RAM页将从RAM中删除,并在需要时稍后读取。不可变RAM页包括RAM中的程序页或RAM中与内核代码相关的页。具有更改内容的可变RAM页,具有最少的最近访问或最少的使用频率,可以直接从RAM交换到交换设备。已修改的RAM页被标记为脏页。ZRAM使用作为脏页子集的匿名页运行。通过ZRAM的设计,匿名页不包括由文件系统为文件等分配的页。匿名页可以被压缩并放置在ZRAM中,而不是从ZRAM交换到交换设备。如果匿名页不可压缩,则它们可以按原样放置到ZRAM中,或按原样写入交换设备。如果是重复的匿名页,即填充有模式的页,则不会被压缩。重复页由少量元数据表示,这些元数据是对现有页的引用。填充有模式的页(例如在整个页上重复8个字节)由少量模式字节表示。
[0005]另一种现有的内存管理系统实现了压缩缓存的适应性策略,以检测压缩缓存何时必须改变其内存使用,以提供更多好处并降低成本。这种现有的内存管理系统的基础在于严格压缩缓存,不分配多余的内存。只有当压缩缓存已被占满、受到压缩,为了释放压缩页以存储新的页时,才会为压缩缓存分配新的内存量。
[0006]又一种现有的内存管理系统通过实现大数据块和可变长分块的相似性签名来实现相似性检测算法。
[0007]再一种现有的内存管理系统支持子页共享和不经常访问页的内存压缩。再又一种
现有的内存管理系统采用参数化技术/算法,根据每个页的64字节部分标识类似的数据页。具体地,这种现有的内存管理系统在页上随机选择的位置对(k
×
s)64字节块的内容进行哈希算法,然后将这些哈希分组为k组,每组有s个哈希。该算法将每个组用作哈希表的索引。换句话说,较大的s值捕获局部相似性,而较大的k值包括全局相似性。与两个块中至少一个匹配的页将被选择为相似的页。在此技术中,候选项的数量指定哈希表为每个哈希签名跟踪多少个不同的页。对于一个候选项,现有的内存管理系统仅存储使用每个哈希签名找到的第一个页;对于较大数量的候选项,该内存管理系统将在哈希表中为每个哈希签名保留多个页。
[0008]现有的内存管理系统交换修补和压缩后的数据页。但是,交换出的页不可供参考。由于涉及磁盘输入或输出,交换操作的成本很高。
[0009]还有一种现有的内存管理系统维护每个页的签名的二维阵列作为热图。所述热图有S行和V列,其中,V是缓存子块可能的签名值的总数。每个4千字节(KB)缓存块被划分为8个512字节的子块,从而产生8个子签名来表示缓存块的内容。与许多现有的内容可寻址存储系统不同,每个子签名是1个字节,分别表示子块中偏移0、16、32和64处的4个字节的总和。这样,与整个子块的哈希值计算相比,计算开销大幅降低。所述热图的列包括子页的签名值。每次读取或写入一个块时,都会检索其8个1字节的子签名,并将热图中对应条目的8个热度值增加1。内容的频谱是标识参考块的关键。这种现有的内存管理系统使用内容的频谱来标识参考页。与类似页的标识相比,现有的内存管理系统无法标识相同的页。此外,找到类似页的可能性也较低。
[0010]现有的数据相似性检测技术/算法包括指纹识别、字符串匹配、词袋分析、基于引文的抄袭检测、文体测量等,这些技术/算法应用于整个文件(如文档),读取整个源文件以计算对应的相似性特征值。因此,这些技术/算法需要大量的CPU周期和内存空间,并引发大量的磁盘访问。另一种现有的数据相似性检测技术同时从调制文件的头部和尾部采样数据块,以避免由修改引起的位置偏移。
[0011]然而,上述现有技术不使用脏匿名页中的相似性检测(检测完整副本时除外)和增量压缩来实现更好的压缩比。此外,上述现有技术单独采用页重复数据删除(例如ZRAM页重复数据删除)、压缩和模式检测等技术。此外,ZRAM和存储交换技术不使用空运行统计数据来检测ZRAM中的页的相似性、重复数据删除、增量压缩,以及减少交换非易失性存储设备的写入——可能是为了提高交换非易失性存储设备的寿命。
[0012]因此,需要解决现有技术中的上述技术缺陷,用于对存储系统中的数据页进行有效的相似性检测。

技术实现思路

[0013]本专利技术的目的是提供一种将接收到的数据页存储在数据存储设备中的方法,一种使数据存储设备将所述接收到的数据页存储在所述数据存储设备中的控制单元,以及包括用于将接收到的数据页存储在数据存储设备系统中的控制单元的数据存储设备,同时避免了现有技术的一个或多个缺点。
[0014]通过独立权利要求的特征来实现上述目的。根据从属权利要求、说明书以及附图,其它实现方式是显而易见的。
[0015]本专利技术提供了一种将接收到的数据页存储在数据存储设备中的方法、一种使数据存储设备将所述接收到的数据页存储在所述数据存储设备中的控制单元以及包括用于将所述接收到的数据页存储在所述数据存储设备系统中的控制单元的数据存储设备。
[0016]根据第一方面,提供了一种将接收到的数据页存储在数据存储设备中的方法。所述数据存储设备包括预存储数据块或页。所述数据存储设备包括键值存储,所述键值存储具有预存储数据块或数据页的多个标识符。所述标识符将从存储在所述数据存储设备中的所述预存储数据块或数据页的样本计算的多个预计算哈希值与一个或多个块或页关联,所述一个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种将接收到的数据页(202)存储在包括预存储数据块或数据页的数据存储设备(102)中的方法,其特征在于,所述数据存储设备(102)包括键值存储(300),其中,所述键值存储(300)具有预存储数据块或数据页的多个标识符(302AA至302NN、404AA至404NN),所述标识符(302AA至302NN、404AA至404NN)将从存储在所述数据存储设备(102)中的所述预存储数据块或数据页的样本计算的多个预计算哈希值与一个或多个块或页关联,所述一个或多个块或页是样本提取以及所述预计算哈希值中相应哈希值的获取来源;所述数据存储设备(102)还包括元数据,其中,所述元数据包括表示所述数据存储设备(102)中的每个预存储数据块或数据页的物理地址的数据,当所述数据存储设备(102)接收数据页(202)时,所述方法包括以下步骤:获取均匀间隔的样本集,其中,所述均匀间隔的样本集包括所述接收到的数据页(202)的两个或两个以上样本;为所述两个或两个以上样本中的每个样本计算新的哈希值;标识与所述键值存储(300)中的一个或多个预计算哈希值关联的一个或多个标识符(302AA至302NN、404AA至404NN);按标识的标识符被标识的次数对其进行排序;确定所述接收到的数据页(202)与对应于一个或多个排序标识符的一个或多个页之间的相似度,其中,所述相似度由多个匹配数据子字符串测量,所述子字符串是块或页中的字节序列;根据所述相似度处理所述接收到的数据页(202)。2.根据权利要求1所述的方法,其特征在于,所述键值存储(300)是哈希表。3.根据权利要求1所述的方法,其特征在于,所述处理所述接收到的数据页(202)的步骤包括:如果所述接收到的数据页(202)与所述一个或多个预存储数据页之间的相似度高于第一阈值,则选择相似度高于所述第一阈值的一个或多个预存储数据页,并对所选择的一个或多个预存储数据页执行以下步骤:比较所述接收到的数据页(202)和所述所选择的一个或多个预存储数据页的内容;如果所述接收到的数据页(202)和所述所选择的预存储数据页相同,则存储所述接收到的数据页(202)的元数据中的新条目,所述新条目将所述接收到的数据页(202)与所述所选择的预存储数据页关联;如果所述接收到的数据页(202)和所述所选择的预存储数据页相似但不相同,则使用所述所选择的预存储数据页作为词典对所述接收到的数据页(202)进行增量压缩,将压缩结果写入存储介质上,并将写入的数据页或块的地址存储在所述元数据中,作为块/页标识符,以及将一个或多个条目添加到所述键值存储(300)中,所述一个或多个条目将所述接收到的数据页(202)与块/页标识符和计算所述哈希值的偏移关联;如果所述相似度低于上述第一阈值,则单独压缩所述接收到的数据页(202),将所述压缩后的接收到的数据页写入所述数据存储设备(102)中,将所述写入页的地址存储在所述元数据中,并将与计算哈希值的样本偏移组合的新的页标识符添加到所述键值存储(300)中。
4.根据权利要求3所述的方法,其特征在于,所述接收到的数据块或数...

【专利技术属性】
技术研发人员:阿列克谢
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1