用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法及其设备技术

技术编号:15203002 阅读:261 留言:0更新日期:2017-04-22 20:44
一种在非易失性存储器上存留数据的存储管理计算设备、方法和非瞬态计算机可读介质包括在至少一个存储服务器中的非易失性存储器上保持包括多个节点的数据存储结构。当更新中的接收的键与数据存储结构中的多个节点中的一个节点中的现有键匹配时,进行确定。当确定指示匹配时,提供更新以用于插入在从用于数据存储结构的多个节点中的一个节点中的与接收的键匹配的现有键延伸的向量中的槽中。

Method and apparatus for storing data on a nonvolatile memory for fast update and instantaneous recovery

In a nonvolatile memory on the remaining storage management data computing device, method and computer readable medium nontransient includes at least one storage server in the nonvolatile memory to maintain data storage structure including a plurality of nodes. When the received key in the update matches an existing key in one of the nodes in the data storage structure. An update is provided for insertion into a slot in a vector extending from an existing key that matches the received key in a node of a plurality of nodes for the data storage structure when determining the indication match.

【技术实现步骤摘要】
【国外来华专利技术】
本技术总体上涉及用于持久存储的方法和设备,并且更具体地涉及用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法及其设备。
技术介绍
在不久的将来,具有比动态随机存取存储器(DRAM)更低的每千兆比特(GB)的成本并且具有可与DRAM相比的性能的、也被称为存储类存储器(SCM)的非易失性存储器(NVM)将以双列直插存储器模块(DIMM)的形数在处理器旁边的存储器总线上可用。由于可以经由来自处理器的加载和存储指令来访问NVM,因此经由存储指令的对NVM的任何写入将使得数据在执行之后立即持久。作为结果,由处理器操纵的数据结构可以按照原生形式被存留,从而消除对如在磁盘存留的情况下进行的数据转换的需要。相比之下,例如,利用磁盘存留,在发出写入之前数据必须被转换(例如,序列化)为磁盘格式。NVM上的存留数据结构具有若干优点,包括以类似DRAM的速度(即,以纳秒为单位,与在固态驱动器(SSD)上用几十微秒来存留数据或者在硬盘驱动(HDD)上用几毫秒来存留数据形成对照)来提供持久性。作为结果,NVM上的数据存留可以比在SSD上快一百倍且比在HDD上快一千倍地被实现。此外,NVM上的存留数据结构提供了无日志的耐久性,因为与当前存留架构中所需的两次写入(即,一次用来在耐久介质上记录写入以及一次用来更新存储器中易失性状态)形成对照,仅需要一次写入以使得数据耐久。作为结果,NVM上的存留数据结构提供了一个具有单层存储的无日志的耐久性方案,其节省了延时和空间开销。另外,NVM上的存留数据结构提供即时恢复,因为数据在对NVM的写入之后立即是耐久的。当发生故障时,恢复涉及重新初始化数据结构并使任何部分更新回复原状。由于当数据在NVM被留存时不需要日志重放,因此在亚秒内使能恢复。因此,如上所述,NVM上的存留数据结构存在许多优点,然而这样做并不是微不足道的,并且呈现其自己独特的挑战。具体而言,为了在NVM上存留数据结构,需要解决几个问题,包括如何维持应用写入次序。在NVM上维持应用写入次序并不简单,因为处理器可以按照与应用次序不同的次序将高速缓存中的修改后数据驱逐到NVM。作为结果,当修改后数据被驱逐时,系统崩溃将使NVM上的数据处于不一致的状态,从而潜在地破坏数据。这一问题通过使用显式通知处理器驱逐高速缓存的高速缓存行刷新(CLFLUSH)指令和在指向NVM中的数据结构的指针被更新之前放置存储器屏障的存储栅栏(SFENCE)指令而被解决。NVM上的存留数据结构的另一问题是为了一致性而使部分更新回复原状。高速缓存是易失性的,并在修改后的数据到达NVM之前保存它们。当需要在事务中进行大的更新时,电源故障可能把部分更新留给NVM。这些部分更新在任何更多更新被应用之前需要被回复原状。通过知道变化的历史来解决这一问题,从而在出现故障时恢复涉及检查变化和使部分更新回复原状。用于解决这一部分更新问题的技术包括记录到耐用介质以及然后当发生故障时基于日志进行重放,或者使用保持变化的历史的数据结构,像多版本数据结构。使用多版本数据结构具有无记录的固有优点。为了在NVM上维持持久索引结构,可以使用易失性B+树数据存储结构。遗憾的是,在NVM上这种类型的持久索引结构存在问题。利用这种类型的数据结构,由于所需要的现有的B+树数据存储结构中的正在进行的排序,因此对于>64字节的数据,写入或插入速度>10μsec。具体而言,每个新的写入或插入在叶节点中创建右移,即,插入排序,其需要执行附加CLFLUSH指令以存留右移的数据并实现NVM上的数据结构的期望的持久性和一致性,但是这引入不希望的延时。此外,利用B+树数据存储结构,当需要对同一键进行多次更新时,实现数据结构的期望的持久性和一致性的写入放大甚至更加显着。在图4中所示的现有技术多版本B+树数据存储结构中图示了这样的一个示例。在这一示例中,为了在多版本B+树数据存储结构的节点的最后一致版本3(ccv=3)中插入键/值对(1,9),键/值对(12,8)、(8,3)和(5,1)各自被右移,并且键/值对(1,9)被插入以最终形成节点的最后一致版本4(ccv=4)。接下来,为了插入键/值对(1,4),现有节点中的插槽都已满,因此两个新的叶节点必须被形成。一旦两个新的叶节点被形成,键/值对(12,8)和(8,3)就必须被右移到新的叶节点之一,并且键/值对(5,1)在新的键值对(1,4)可以被插入另一新的叶节点之前必须在该叶节点中被右移。因此,如这一示例中所示,具有与已经在节点中的键/值对(1,9)中的现有键匹配的键的键/值对(1,4)的插入具有明显的写入放大以实现该更新。
技术实现思路
一种存储管理计算设备,包括被耦合到至少一个处理器的至少一个存储器,该至少一个处理器被配置为执行包括并被存储在该至少一个存储器中的编程指令,以在至少一个存储服务器中的非易失性存储器上保持包括多个节点的数据存储结构。当更新中的接收的键与数据存储结构中的多个节点中的一个节点中的现有键匹配时,进行确定。当确定指示匹配时,提供更新以用于插入在从用于数据存储结构的多个节点中的该一个节点中的与接收的键匹配的现有键延伸的向量中的槽中。一种用于在非易失性存储器上存留数据的方法,包括由存储管理计算设备在至少一个存储服务器中的非易失性存储器上保持包括多个节点的数据存储结构。当更新中的接收的键与数据存储结构中的多个节点中的一个中的现有键匹配时,由存储管理计算设备进行确定。当确定指示匹配时,由存储管理计算设备提供更新以用于插入在从用于数据存储结构的多个节点中的该一个节点中的与接收的键匹配的现有键延伸的向量中的槽中。其上存储有用于在非易失性存储器中存留数据的包括机器可执行代码的指令的非瞬态计算机可读介质,该机器可执行代码当被处理器执行时,使得处理器执行步骤,这些步骤包括在至少一个存储服务器中的非易失性存储器上保持包括多个节点的数据存储结构。当更新中的接收的键与数据存储结构中的多个节点中的一个节点中的现有键匹配时,进行确定。当确定指示匹配时,提供更新以用于插入在从用于数据存储结构的多个节点中的该一个节点中的与接收的键匹配的现有键延伸的向量中的槽中。该技术提供了许多优点,包括提供用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法、非瞬态计算机可读介质和设备。利用这一技术,使叶节点对于对相同键的更新垂直地生长并且仅对于独特的键水平地生长。由于对向量的更新在单个插入内被完成,所以与现有实现方式相比存在零个右移,这大大减少了写入放大。此外,利用这一技术,数据可以使用加载和存储存储器指令以原生形式(即,在没有任何变换的情况下)在NVM上的B+树数据存储结构中被存留。另外,这一技术针对例如范围从一个到一百万个更新的多个更新来优化索引数据存储结构布局,这与现有系统相比将写入延时改善了四倍并将读取延时改善了两倍。甚至进一步地,这一技术可以利用多版本数据存储结构来取得快照,即,应用一致性视图,以向无日志恢复机制提供新添加的向量。附图说明图1是具有在非易失性存储器上存留数据以用于快速更新和瞬时恢复的存储管理计算设备的示例的环境的框图;图2是图1中所示的存储管理计算设备的示例的框图;以及图3是用于在非易失性存储器上存留数据以用于快本文档来自技高网
...
用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法及其设备

【技术保护点】
一种存储管理计算设备,包括:至少一个处理器,至少一个存储器,其被耦合到所述至少一个处理器,所述至少一个处理器被配置为执行包括并被存储在所述至少一个存储器中的编程的指令,以:在至少一个存储服务器中的非易失性存储器上保持包括多个节点的数据存储结构;确定更新中的接收的键何时与所述数据存储结构中的所述多个节点中的一个节点中的现有键匹配;以及当所述确定指示所述匹配时,提供所述更新以用于插入在从用于所述数据存储结构的所述多个节点中的所述一个节点中的与所述接收的键匹配的所述现有键延伸的向量中的槽中。

【技术特征摘要】
【国外来华专利技术】2014.08.29 US 14/472,8001.一种存储管理计算设备,包括:至少一个处理器,至少一个存储器,其被耦合到所述至少一个处理器,所述至少一个处理器被配置为执行包括并被存储在所述至少一个存储器中的编程的指令,以:在至少一个存储服务器中的非易失性存储器上保持包括多个节点的数据存储结构;确定更新中的接收的键何时与所述数据存储结构中的所述多个节点中的一个节点中的现有键匹配;以及当所述确定指示所述匹配时,提供所述更新以用于插入在从用于所述数据存储结构的所述多个节点中的所述一个节点中的与所述接收的键匹配的所述现有键延伸的向量中的槽中。2.根据权利要求1所述的设备,其中提供所述更新以用于所述插入还包括用来在不需要用于所述数据存储结构的所述多个节点中的任何节点中的任何附加右移的情况下提供所述更新的一个或多个编程的指令。3.根据权利要求1所述的设备,其中被耦合到所述存储器的所述处理器还被配置为执行包括并被存储在所述存储器中的一个或多个编程指令,以:当从用于所述数据存储结构的所述多个节点中的所述一个节点中的与所述接收的键匹配的所述现有键延伸的所述向量为满时,触发另一向量的添加。4.根据权利要求1所述的设备,其中所述数据存储结构包括多版本数据存储结构以保持最后一致版本。5.根据权利要求4所述的设备,其中所述最后一致版本还至少包括从用于所述数据存储结构的所述多个节点中的所述一个节点中的所述现有键延伸的所述向量中的所述槽中的所述接收的键。6.根据权利要求1所述的设备,其中所述数据存储结构还包括B+树数据存储结构。7.根据权利要求1所述的设备,其中被耦合到所述存储器的所述处理器还被配置为执行包括并被存储在所述存储器中的一个或多个编程指令,以:当所述确定指示所述接收的键相对于所述现有键中的任何现有键是独特的时,提供所述更新以用于插入在用于所述数据存储结构的所述多个节点中的一个节点中的槽中。8.一种用于在非易失性存储器上存留数据的方法,所述存储器包括:由存储管理计算设备在至少一个存储服务器中的非易失性存储器上保持包括多个节点的数据存储结构;由所述存储管理计算设备确定更新中的接收的键何时与所述数据存储结构中的所述多个节点中的一个节点中的现有键匹配;以及当所述确定指示所述匹配时,由所述存储管理计算设备提供所述更新以用于插入在从用于所述数据存储结构的所述多个节点中的所述一个节点中的与所述接收的键匹配的所述现有键延伸的向量中的槽中。9.根据权利要求8所述的方法,其中提供所述更新以用于所述插入还包括在不需要用于所述数...

【专利技术属性】
技术研发人员:G·库玛布克V·加克哈
申请(专利权)人:NETAPP股份有限公司
类型:发明
国别省市:美国;US

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

1