生成键-值索引快照制造技术

技术编号:31679698 阅读:25 留言:0更新日期:2022-01-01 10:25
本公开涉及生成键

【技术实现步骤摘要】
生成键

值索引快照

技术介绍

[0001]计算设备可以包括诸如处理器、存储器、缓存系统和存储设备等部件。存储设备可以包括使用磁性介质来存储和取回数据块的硬盘驱动器。出于存档和恢复的目的,一些系统可能存储或“备份”重要数据的副本。例如,在存储设备出现故障的情况下,备份副本可用于恢复存储在故障系统上的数据。在一些示例中,可以周期性地执行备份以在不同的时间点捕获数据的副本。
附图说明
[0002]关于以下附图描述了一些实施方式。
[0003]图1是根据一些实施方式的示例系统的示意图。
[0004]图2是根据一些实施方式的示例键

值索引的图示。
[0005]图3A至图3B是根据一些实施方式的键

值索引的示例节点的图示。
[0006]图4A至图4E是根据一些实施方式的示例树结构的图示。
[0007]图5A至图5B是根据一些实施方式的示例过程的图示。
[0008]图6是根据一些实施方式的示例过程的图示。
[0009]图7是根据一些实施方式的示例过程的图示。
[0010]图8是根据一些实施方式的存储指令的示例机器可读介质的图。
[0011]图9是根据一些实施方式的示例计算设备的示意图。
[0012]在所有附图中,相同的附图标记指代相似但不一定相同的元件。附图不一定成比例,并且可以放大一些部件的尺寸以更清楚地图示所示出的示例。此外,附图提供了与描述一致的示例和/或实施方式;然而,描述不限于附图中提供的示例和/或实施方式。
具体实施方式
[0013]在本公开内容中,除非上下文另外明确指示,否则使用术语“一个(a)”、“一种(an)”或“所述(the)”旨在同样包括复数形式。同样地,当在本公开内容中使用时,术语“包括(includes)”、“包括(including)”、“包含(comprises)”、“包含(comprising)”、“具有(have)”或“具有(having)”指明存在所述元件,但不排除存在或添加其他元件。
[0014]在一些示例中,存储系统使用索引来指示键与值之间的关系或映射(本文中也称为“键

值对”)。键

值索引的一种示例使用是基于传入数据单元的“指纹”执行数据去重的存储系统,其中每个指纹标识特定的数据单元。将传入数据单元的指纹与指纹索引进行比较,指纹索引可以是键

值索引,其中指纹是键并且对应的数据位置是值。指纹与存储在指纹索引中的指纹之间的匹配指示传入数据单元可能是已经存储在存储系统中的数据单元的副本。如果传入数据单元是已经存储的数据单元的副本,则可以递增存储在存储系统中的参考计数以指示已接收到的数据单元的实例的数量,而不是存储重复的传入数据单元。在一些示例中,键

值索引可以是包括以分层方式布置的节点的树的形式。
[0015]“指纹”是指通过对数据单元的内容应用函数而得到的值(其中“内容”可以包括数
据单元的内容的全部或子集)。可以应用的函数的示例包括基于传入数据单元产生散列值的散列函数。散列函数的示例包括密码散列函数,诸如安全散列算法2(SHA

2)散列函数,例如SHA

224、SHA

256、SHA

384等。在其他示例中,可以采用其他类型的散列函数或其他类型的指纹函数。
[0016]“存储系统”可以包括存储设备或存储设备阵列。存储系统还可以包括管理对(多个)存储设备的访问的(多个)存储控制器。“数据单元”可以指可以在存储系统中单独标识的任何数据部分。在一些情况下,数据单元可以指组块、组块的集合、或任何其他数据部分。在一些示例中,存储系统可以将数据单元存储在持久性存储装置中。可以使用一种或多种(多个)持久性(例如,非易失性)存储设备(诸如,(多个)基于磁盘的存储设备(例如,(多个)硬盘驱动器(HDD))、(多个)固态设备(SSD)(诸如,(多个)闪速存储设备)等或者其组合)来实施持久性存储装置。
[0017]“控制器”可以指硬件处理电路,其可以包括微处理器、多核微处理器的核、微控制器、可编程集成电路、可编程门阵列、数字信号处理器或其他硬件处理电路中的任一项或某种组合。可替代地,“控制器”可以指硬件处理电路与可在硬件处理电路上执行的机器可读指令(软件和/或固件)的组合。
[0018]在一些示例中,“快照”可以表示数据结构(例如,键

值索引)在特定时间点的状态。例如,特定快照可以用于重新创建或分析在特定时间点存在的键

值索引。然而,一些快照可能涉及存储索引(例如,节点)的每个元素的多个副本以及存储附加的数据结构以跟踪并标识哪些副本对应于每个快照。因此,可能需要大量的处理和磁盘带宽来加载存储的数据、确定给定快照中包括哪些元素、并使用所包括的元素来生成特定快照。
[0019]根据本公开内容的一些实施方式,可以将键

值索引存储为其中每个内部节点(本文中称为“间接”节点)可以包括缓冲器(也称为“节点缓冲器”)来存储键

值对的树结构。当缓冲器的水平达到阈值时,键

值对可以被转移到子节点(例如,其他间接节点或叶节点)。在一些实施方式中,每个键

值对可以与指示键

值对的“代”的代标识符相关联,该代标识符可以对应于特定的时间点或时间段。例如,代标识符可以是特定快照的编号(例如,第一个快照为“1”,第二个快照为“2”,依此类推)。进一步地,间接节点可以包括指向子节点和/或其缓冲器的部分(称为缓冲器组块)的指针。每个指针可以与被指向的元素的代标识符相关联。
[0020]在本文描述的一些实施方式中,提供或读取快照可以包括执行索引的节点的遍历,遍历从对应于特定代的根节点开始。遍历可以涉及使用指针和键

值对中的代标识符来确定索引在特定代时的树结构。这个树结构可以包括或“借用”来自较早的代的子树(例如,在特定代中未修改的子树)。使用这个树结构可以减少对各代数据的扫描和加载,并且因此可以提供相对快速的生成快照的能力。进一步地,跨不同代的树结构共享节点可以减少维护快照所需的资源量(例如,CPU带宽、存储器、存储装置等)。以这种方式,一些实施方式可以提高索引的性能。进一步地,子树的这种共享可以优化其他操作,诸如校验计算(例如,仅针对已改变部分的增量计算)、使用增量改变的复制、快照删除等。
[0021]1.包括利用节点缓冲器的键

值索引的存储系统
[0022]图1示出了根据一些实施方式的包括存储控制器110和持久性存储装置140的存储系统100的示例。如图所示,存储控制器110可以包括更新引擎120、合并引擎150、快照引擎
170、存储器130和查询引擎160。在一些示例中,存储器130可以包括更新缓冲器13本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算机实施的方法,包括:将键

值对存储在持久性存储装置中的索引中,其中,所述索引的间接节点包括指针,其中,每个指针标识索引部分并且包括所标识的索引部分的代标识符,其中,所述索引包括与多个代相关联的多个快照;接收要读取所述索引的特定快照的数据的请求,其中,所述特定快照与所述多个代中的特定代相关联;响应于所述请求,从与所述特定代相关联的特定根节点开始执行遍历;以及基于所述遍历,提供所请求的数据。2.如权利要求1所述的计算机实施的方法,其中,使用所述间接节点的所述指针中包括的所述代标识符来执行所述遍历。3.如权利要求1所述的计算机实施的方法,其中,所述特定快照包括:与所述特定代相关联的第一组键

值对;以及与不同的代相关联的第二组键

值对,其中,所述不同的代比所述特定代更早,其中,所述第二组键

值对由所述特定快照和不同的快照共享。4.如权利要求1所述的计算机实施的方法,其中,第一间接节点包括指向子节点的第一指针,并且其中,所述第一指针包括所述子节点的第一代标识符。5.如权利要求4所述的计算机实施的方法,其中,所述第一间接节点包括指向存储在所述第一间接节点中的缓冲器组块的第二指针,并且其中,所述第二指针包括所述缓冲器组块的第二代标识符。6.如权利要求5所述的计算机实施的方法,其中,所述第一代标识符和所述第二代标识符与不同的代相关联。7.如权利要求5所述的计算机实施的方法,其中:所述第一间接节点与所述第二代标识符相关联;所述第一间接节点被包括在第一树结构中,所述第一树结构具有与所述第二代标识符相关联的第一根节点;并且所述第一间接节点还被包括在第二树结构中,所述第二树结构具有与第三代标识符相关联的第二根节点,其中,所述第二代标识符和所述第三代标识符与不同的代相关联。8.如权利要求1所述的计算机实施的方法,其中,所述索引中的每个键

值对与相应的代标识符相关联。9.一种存储有指令的非暂态机器可读介质,所述指令在执行时使处理器执行:将键

值对存储在持久性存储装置中的索引中,其中,所述索引的间接节点包括指针,其中,每个指针标识索引部分并且包括所标识的索引部分的代标识符,其中,所述索引包括与多个代相关联的多个快照;接收要读取所述索引的特定快照的数据的请求,其中,所述特定快照与所述多个代中的特定代相关联;响应于所述请求,从与所述特定代相关联的特定根节点开始执行遍历;以及基于所述遍历,提供所请求的数据。10.如权利要求9所述的非暂态机器可读介质,其中,使用所述间接节点的所述指针中包括的所述代标识符来执行所述遍历。
11.如权利要求9所述的非暂态机器可读介质,其中,所述特定快照包括:与所述特定代相关联的第一组键

值对;以及与...

【专利技术属性】
技术研发人员:K
申请(专利权)人:慧与发展有限责任合伙企业
类型:发明
国别省市:

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

1