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

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

Info

Publication number
CN106575306B
CN106575306B CN201580044796.3A CN201580044796A CN106575306B CN 106575306 B CN106575306 B CN 106575306B CN 201580044796 A CN201580044796 A CN 201580044796A CN 106575306 B CN106575306 B CN 106575306B
Authority
CN
China
Prior art keywords
data storage
storage structure
key
nodes
existing
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.)
Active
Application number
CN201580044796.3A
Other languages
English (en)
Other versions
CN106575306A (zh
Inventor
G·库玛布克
V·加克哈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NetApp Inc
Original Assignee
NetApp Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NetApp Inc filed Critical NetApp Inc
Publication of CN106575306A publication Critical patent/CN106575306A/zh
Application granted granted Critical
Publication of CN106575306B publication Critical patent/CN106575306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

用于在非易失性存储器上存留数据以用于快速更新和瞬时恢 复的方法及其设备
技术领域
本技术总体上涉及用于持久存储的方法和设备,并且更具体地涉及用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法及其设备。
背景技术
在不久的将来,具有比动态随机存取存储器(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是用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法的流程图;
图4是图示了现有技术多版本B+树数据存储结构中的各种版本的更新的示图;
图5是图示了根据这一技术的示例的向量化多版本B+树数据存储结构中的更新的示图;
图6是图示了根据这一技术的示例的向量化多版本B+树数据存储结构与先前现有系统相比在写入延时上的四倍的改善的图表;以及
图7是图示了根据这一技术的示例的向量化多版本B+树数据存储结构与先前现有系统相比在读取延时上的两倍的改善的图表。
具体实施方式
具有在非易失性存储器上存留数据以用于快速更新和瞬时恢复的非易失性存储器(NVM)存储管理计算设备12的示例的网络环境10在图1和图2中被图示。示例性环境10包括NVM存储管理计算设备12、客户端计算设备14(1)-14(n)、NVM存储设备16和动态随机存取存储器(DRAM)存储设备17,尽管这种环境10在其他配置中可以包括其他类型和/或数量的系统、设备、组件和/或元件这一该技术提供了许多优点,包括提供用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法、非瞬态计算机可读介质和设备。
客户端计算设备14(1)-14(n)通过通信网络18与NVM存储管理计算设备12通信,并且NVM存储管理计算设备12通过另一通信网络20与NVM存储设备16和动态随机存取存储器(DRAM)存储设备17通信。作为示例,通信网络18和20可以是互连、局域网(LAN)、广域网(WAN)和/或它们的组合,尽管其他类型和/或数量的通信网络可以被使用。
客户端计算设备14(1)-14(n)中的每个客户端计算设备在这一示例中可以包括通过总线或其他链路而被耦合在一起的处理器、存储器、通信接口、输入设备和显示设备,尽管客户端计算设备14(1)-14(n)中的每个客户端计算设备可以具有其他类型和数量的组件。例如,客户端计算设备14(1)-14(n)可以运行提供与由NVM存储管理计算设备12托管的应用交换数据的接口的接口应用。客户端计算设备14(1)-14(n)中的每个客户端计算设备可以例如是常规个人计算机(PC)、工作站、智能电话或其他处理和/或计算系统。
NVM存储设备16和DRAM存储设备17在这一示例中接收并响应来自NVM存储管理计算设备12的各种读取和写入请求,诸如如在这里的示例中所说明和描述的对写入或存储数据的请求。NVM存储设备16和DRAM存储设备17中的每一个可以包括通过总线或其它链路被耦合在一起的处理器、存储器和通信接口,尽管NVM存储设备16和DRAM存储设备17中的每一个可以具有其他类型和数量的部件。作为示例,NVM存储设备16可以包括任何类型的非易失性持久存储装置,并且DRAM存储设备17可以包括常规的磁盘或光盘,或者适合于在基于块的架构中存储数据。
NVM存储管理计算设备12可以被客户端计算设备14(1)-14(n)用来访问和利用NVM存储设备16和DRAM存储设备17以存储和存留数据,尽管其他类型和/或数量的存储管理计算设备可以被使用。更具体地参考图2,示例性NVM存储管理计算设备12的框图被图示。在这一示例中,NVM存储管理计算设备12包括通过总线28或其它链路被耦合在一起的处理器22、存储器24和通信接口26,尽管其它数量和类型的设备也可以被使用。
NVM存储管理计算设备12中的处理器22执行本发明的一个或多个方面的存储的指令的程序,如通过这里的实施例所描述和说明的,尽管处理器22可以执行其它数量和类型的编程的指令。NVM存储管理计算设备12中的处理器22可包括例如具有一个或多个处理核心的一个或多个中央处理单元或通用处理器。
NVM存储管理计算设备12中的存储器24存储用于本发明的一个或多个方面的这些编程的指令,如在这里被描述和说明的,尽管一些或全部的编程的指令可以在其他地方被存储和/或执行。包括诸如动态RAM(DRAM)之类的随机存取存储器(RAM)或由被耦合到处理器22的磁性、光学或其它读取和/或写入系统读取和/或写入的其它计算机可读介质的各种不同类型的存储器存储设备可以被使用。在这一示例中,存储器24包括高速缓存30,尽管存储器可以包括其他类型和/或数量的数据存储装置、模块和/或其他编程的指令。
NVM存储管理计算设备12中的通信接口26用于在都经由通信网络18和20被耦合在一起的客户端计算设备14(1)-14(n)和存储服务器设备16(1)-16(n)之间通信,尽管具有到其他设备和元件的其它类型和数量的连接和配置的其他类型和数量的通信网络或系统也可以被使用。仅作为示例,通信网络18和20中的一个或多个通信网络可以使用以太网上的TCP/IP和包括超文本传输协议(HTTP)和/或安全HTTP(HTTPS)的工业标准协议,尽管各自都具有其自己的通信协议的其他类型和数量的通信网络也可以被使用。
虽然在这里描述了NVM存储管理计算设备12、客户端计算设备14(1)-14(n)、NVM存储设备16和DRAM存储设备17的示例,但是在这里描述的示例中的设备和/或系统是出于示例性目的,因为用于实现示例的特定硬件和软件的许多变化是可能的,如一个或多个相关领域中的技术人员将认识到的。此外,在示例的任何实施例中,两个或更多个计算系统或设备可以替代系统中的任何一个系统。
示例还可以被体现为具有存储在其上的用于如在这里描述的通过这里的示例而被描述和说明的本技术的一个或多个方面的指令的非瞬态计算机可读介质,这些指令当被NVM存储管理计算设备12中的处理器22执行时,使得处理器22执行实现如在这里描述和说明的示例的方法所必需的步骤。
参考图1至图3和图5至图7,现在将描述用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的示例性方法。更具体地参考图3,在步骤100中,NVM存储管理计算设备12保持支持一个或多个向量的向量化多版本B+树数据存储结构,尽管支持一个或多个向量的其他类型和/或数量的数据存储结构可以被使用。
在步骤102中,NVM存储管理计算设备12从客户端计算设备14(1)-14(n)中的一个客户端计算设备接收将在NVM存储设备16中被存留的、具有键/值对的更新,尽管该更新可以被存留到其他位置的非易失性存储器。此外,在这一特定示例中,来自客户端计算设备14(1)-14(n)中的一个客户端计算设备的更新是写请求,尽管NVM存储管理计算设备12还可以从客户端计算设备14(1)-14(n)接收其他类型和/或数量的请求,诸如读取请求,该读取请求用这一技术也被更高效地处理,如在下面讨论的图7中的图表中所图示的。
在步骤104中,NVM存储管理计算设备12确定来自客户端计算设备14(1)-14(n)中的一个客户端计算设备的更新中的键/值对中的接收的键何时与向量化多版本B+树数据存储结构中的节点中的一个节点中的现有键匹配。遵循先前在背景技术中参考图4公开的示例,但是现在利用这一技术利用向量化多版本B+树数据存储结构的示例,当从客户端计算设备14(1)-14(n)中的一个客户端计算设备接收具有键/值对(1,4)的更新时,则将找到与键/值对(1,9)中的键1的匹配。如果在步骤104中NVM存储管理计算设备12确定来自客户端计算设备14(1)-14(n)中的一个客户端计算设备的更新中的键/值对中的接收的键与向量化多版本B+树数据存储结构中的节点中的一个节点中的现有键匹配,则采用“是”分支到步骤106。
在步骤106中,NVM存储管理计算设备12利用单个操作向更新提供具有将现有键匹配到向量化多版本B+树数据存储结构的接收的键的键/值对,以被添加到节点中的匹配的现有键下面的垂直向量中,尽管其它类型和/或数量的向量或相对于匹配的现有键的其他方向的其他结构可以被使用。在这一示例中,使用最年轻优先方法提供具有接收的键的键/值对的更新以用于添加到节点中的匹配的现有键下面的垂直向量中,即,向量被反向填充并且对最年轻值的访问是O(1)操作,尽管其他方法可以被使用,诸如最老优先方法,仅作为示例。在最老优先方法被使用的情况下,向量在正向方向上被填充并且对最年轻值的访问在这一示例中是O(n)运算。因此,根据哪一种方法被利用(例如,最年轻优先或者最老优先),针对向量中的特定值的搜索时间变化。当例如最年轻优先方法被使用时,搜索向量中最年轻的值是最快的并且搜索最老的值是最慢的。当例如最老优先方法被使用时,则搜索向量中最年轻的值是最慢的并且搜索最老的值是最快的。作为示例,在图5中,键/值对(1,4)被提供以被添加到在向量化多版本B+树数据存储结构的节点中的匹配的现有键1下面的垂直矢量,其正在使用上面讨论的最年轻优先方法,尽管可以使用其他方法,例如最老优先方法。
在步骤108中,NVM存储管理计算设备12确定在NVM存储设备16上的向量化多版本B+树数据存储结构的节点中的与接收的键匹配的现有键下面的向量是否为满。如果在步骤108中NVM存储管理计算设备12确定与接收的键匹配的现有键下面的向量为满,则采用“是”分支到步骤110。
在步骤110中,当从数据存储结构的多个节点中的一个节点中的与接收的键匹配的现有键延伸的向量为满时,NVM存储管理计算设备12触发在NVM存储设备16上的向量化多版本B+树数据存储结构的节点中添加另一向量。作为示例,在图5中,在现有键1下面的具有作为节点的最后一致版本4(ccv=4)的一部分的值9和作为节点的最后一致版本5(ccv=5)的一部分的值4的第一个所示向量不为满。然而,如果该向量为满,则另一向量可被触发以用于添加在节点中的现有键1下面,并且出于说明的目的,这一附加向量在图5中被示出。
如果回到在步骤108中NVM存储管理计算设备12确定与接收的键匹配的现有键下面的向量不为满,则采用“否”分支到步骤112。在步骤112中,接收的更新中的键/值中的值被添加到向量化多版本B+树数据存储结构的节点中的与接收的键匹配的现有键下面的向量。此外,在这一示例中,向量化多版本B+树数据存储结构保持包括向量中的任何值的节点的最后当前一致版本。作为示例,在图5中,键/值对(1,4)的值4被添加到向量化多版本B+树数据存储结构的节点中的匹配的现有键1下面的垂直向量。此外,如图5中的这一示例中所图示的,现有键1下面的向量中的值4被保持为向量化多版本B+树数据存储结构的节点的最后一致版本5(ccv=5)的一部分。
如果回到在步骤104中NVM存储管理计算设备12确定来自客户端计算设备14(1)-14(n)中的一个客户端计算设备的更新中的键/值对中的接收的键与向量化多版本B+树数据存储结构中的节点中的一个节点中的现有键不匹配(即,是独特的),则采用“否”分支到步骤114。在步骤114中,NVM存储管理计算设备12可以提供键/值对中的接收的键以用于插入在向量化多版本B+树数据存储结构中的节点中。
仅作为示例,在图5中,由于到最后一致版本4(ccv=4)为止的图示的节点为满并且现在假定接收的更新具有键/值对(2,7),则在接收的键与任何现有键之间不存在匹配。作为结果,由于节点为满的并且现在存在匹配键,因此两个叶节点被形成。接下来,在将键值对(2,7)插入在键1和5之间之前,键值对(12,8)和(8,3)被右移到一个叶节点并且键值对(5,1)在另一个叶节点中被右移。
因此,如利用这里的示例所说明和描述的,这一技术提供了用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法、非瞬态计算机可读介质和设备。使用这一技术,使叶节点对于对相同键的更新垂直地生长并且仅对于独特的键水平地生长。由于对向量的更新是在单个插入内完成的,所以与现有实现方式相比存在零个右移,这大大减少了写入放大。此外,使用这一技术,可以使用加载和存储存储器指令以原生形式(即,在没有任何变换的情况下)在NVM上的B+树数据存储结构中存留数据。
另外,这一技术优化用于例如范围从一个到一百万个更新的多个更新的索引数据结构布局,从而使得写插入比基本持久MVDS快四倍并且读取比基本持久MVDS快两倍。仅作为示例,在图6中图示了如下图表,该图表图示了根据这一技术的示例的向量化多版本B+树数据存储结构与先前现有系统相比在写入延时上的四倍的改进。另外,仅作为示例,在图7中图示了如下图表,该图表图示了根据这一技术的示例的向量化多版本B+树数据存储结构与先前现有系统相比在读取延时上的两倍的改进。
甚至进一步地,这一技术利用并扩展多版本数据结构以包括向量来提供快照(即,应用一致视图),以提供无日志恢复机制。由于根据这一技术的示例当在NVM上存留数据时不需要日志重放,因此可以在亚秒内使能恢复。
已经这样描述了本发明的基本概念,对本领域技术人员将显而易见的是,前述详细公开内容旨在仅通过示例方式而被呈现,并且不是限制性的。将发生各种改变、改进和修改,并且这些改变、改进和修改旨在对于本领域技术人员,尽管在本文中没有明确说明。这些改变、改进和修改旨在由此提出,并且在本发明的精神和范围内。此外,处理元件或序列的所述次序或者数字、字母或其他指定的使用因此并不旨在将所要求保护的过程限制为任何顺序,除非在权利要求中指定。因此,本发明仅受所附权利要求及其等同物限制。

Claims (15)

1.一种计算设备,包括:
至少一个处理器,
至少一个存储器,其被耦合到所述至少一个处理器,所述至少一个处理器被配置为执行包括并被存储在所述至少一个存储器中的编程的指令,以:
在至少一个存储服务器中的非易失性存储器上保持包括多个节点的数据存储结构,其中所述数据存储结构包括B+树数据存储结构;
确定更新中的接收的键何时与所述数据存储结构中的所述多个节点中的一个节点中的现有键匹配;以及
当所述确定指示所述匹配时,在从用于所述数据存储结构的所述多个节点中的所述一个节点中的与所述接收的键匹配的所述现有键延伸并且竖直地在所述现有键下方的向量中的槽中插入所述更新。
2.根据权利要求1所述的设备,其中被耦合到所述存储器的所述处理器还被配置为执行包括并被存储在所述存储器中的一个或多个编程指令,以:
当从用于所述数据存储结构的所述多个节点中的所述一个节点中的与所述接收的键匹配的所述现有键延伸的所述向量为满时,触发另一向量的添加。
3.根据权利要求1所述的设备,其中所述数据存储结构包括多版本数据存储结构以保持最后一致版本。
4.根据权利要求3所述的设备,其中所述最后一致版本还至少包括从用于所述数据存储结构的所述多个节点中的所述一个节点中的所述现有键延伸的所述向量中的所述槽中的所述接收的键。
5.根据权利要求1所述的设备,其中被耦合到所述存储器的所述处理器还被配置为执行包括并被存储在所述存储器中的一个或多个编程指令,以:
当所述确定指示所述接收的键相对于所述现有键中的任何现有键是独特的时,在用于所述数据存储结构的所述多个节点中的一个节点中的槽中插入所述更新。
6.一种用于在非易失性存储器上存留数据的方法,包括:
由计算设备在至少一个存储服务器中的非易失性存储器上保持包括多个节点的数据存储结构,其中所述数据存储结构包括B+树数据存储结构;
由所述计算设备确定更新中的接收的键何时与所述数据存储结构中的所述多个节点中的一个节点中的现有键匹配;以及
当所述确定指示所述匹配时,由所述计算设备在从用于所述数据存储结构的所述多个节点中的所述一个节点中的与所述接收的键匹配的所述现有键延伸并且竖直地在所述现有键下方的向量中的槽中插入所述更新。
7.根据权利要求6所述的方法,还包括由所述计算设备在从用于所述数据存储结构的所述多个节点中的所述一个节点中的与所述接收的键匹配的所述现有键延伸的所述向量为满时,触发另一向量的添加。
8.根据权利要求6所述的方法,其中所述数据存储结构包括多版本数据存储结构以保持最后一致版本。
9.根据权利要求8所述的方法,其中所述最后一致版本还至少包括从用于所述数据存储结构的所述多个节点中的所述一个节点中的所述现有键延伸的所述向量中的所述槽中的所述接收的键。
10.根据权利要求6所述的方法,还包括由所述计算设备在所述确定指示所述接收的键相对于所述现有键中的任何现有键是独特的时,在用于所述数据存储结构的所述多个节点中的一个节点中的槽中插入所述更新。
11.一种非瞬态计算机可读介质,其上存储有用于在非易失性存储器中存留数据的包括机器可执行代码的指令,所述机器可执行代码在被处理器执行时,使得所述处理器:
在至少一个存储服务器中的非易失性存储器上保持包括多个节点的数据存储结构,其中所述数据存储结构包括B+树数据存储结构;
确定更新中的接收的键何时与所述数据存储结构中的所述多个节点中的一个节点中的现有键匹配;以及
当所述确定指示所述匹配时,在从用于所述数据存储结构的所述多个节点中的所述一个节点中的与所述接收的键匹配的所述现有键延伸并且竖直地在所述现有键下方的向量中的槽中插入所述更新。
12.根据权利要求11所述的介质,其中所述可执行代码在被所述处理器执行时,还使得所述处理器在从用于所述数据存储结构的所述多个节点中的所述一个节点中的与所述接收的键匹配的所述现有键延伸的所述向量为满时,触发另一向量的添加。
13.根据权利要求11所述的介质,其中所述数据存储结构包括多版本数据存储结构以保持最后一致版本。
14.根据权利要求13所述的介质,其中所述最后一致版本还至少包括从用于所述数据存储结构的所述多个节点中的所述一个节点中的所述现有键延伸的所述向量中的所述槽中的所述接收的键。
15.根据权利要求11所述的介质,其中所述可执行代码在被所述处理器执行时,还使得所述处理器在所述确定指示所述接收的键相对于所述现有键中的任何现有键是独特的时,在用于所述数据存储结构的所述多个节点中的一个节点中的槽中插入所述更新。
CN201580044796.3A 2014-08-29 2015-08-24 用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法及其设备 Active CN106575306B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/472,800 2014-08-29
US14/472,800 US20160063051A1 (en) 2014-08-29 2014-08-29 Methods for persisting data on nonvolatile memory for fast updates and instantaneous recovery and devices thereof
PCT/US2015/046537 WO2016032957A1 (en) 2014-08-29 2015-08-24 Methods for persisting data on nonvolatile memory for fast updates and instantaneous recovery and devices thereof

Publications (2)

Publication Number Publication Date
CN106575306A CN106575306A (zh) 2017-04-19
CN106575306B true CN106575306B (zh) 2020-07-07

Family

ID=54105989

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580044796.3A Active CN106575306B (zh) 2014-08-29 2015-08-24 用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法及其设备

Country Status (5)

Country Link
US (1) US20160063051A1 (zh)
EP (1) EP3186729B1 (zh)
JP (1) JP2017527909A (zh)
CN (1) CN106575306B (zh)
WO (1) WO2016032957A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107728937B (zh) * 2017-09-15 2020-09-04 上海交通大学 一种使用非易失性内存介质的键值对持久存储方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1552032A (zh) * 2000-11-30 2004-12-01 �Ү�� 数据库
CN101650972A (zh) * 2009-06-12 2010-02-17 东信和平智能卡股份有限公司 智能卡的非易失性存储器数据更新方法
WO2012052785A1 (en) * 2010-10-22 2012-04-26 Acunu Limited Versioned data structure
US8510344B1 (en) * 2010-08-27 2013-08-13 Amazon Technologies, Inc. Optimistically consistent arbitrary data blob transactions

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103134A (ja) * 1992-09-18 1994-04-15 Hitachi Software Eng Co Ltd インデックスの構築方法
JPH08235040A (ja) * 1995-02-27 1996-09-13 Hitachi Ltd データファイル管理システム
US6175835B1 (en) * 1996-07-26 2001-01-16 Ori Software Development, Ltd. Layered index with a basic unbalanced partitioned index that allows a balanced structure of blocks
US6772172B2 (en) * 2001-04-27 2004-08-03 Sun Microsystems, Inc. Method, system, program, and computer readable medium for indexing object oriented objects in an object oriented database
US7016913B2 (en) * 2002-03-20 2006-03-21 Sun Microsystems, Inc. Method, system, data structures, and article of manufacture for implementing a persistent object
US20050102255A1 (en) * 2003-11-06 2005-05-12 Bultman David C. Computer-implemented system and method for handling stored data
JP4713257B2 (ja) * 2005-07-13 2011-06-29 日本放送協会 データ記憶装置及びバージョン管理プログラム
JP4498409B2 (ja) * 2007-12-28 2010-07-07 株式会社エスグランツ データベースのインデックスキー更新方法及びプログラム
US8412689B2 (en) * 2010-07-07 2013-04-02 Microsoft Corporation Shared log-structured multi-version transactional datastore with metadata to enable melding trees
US9135269B2 (en) * 2011-12-07 2015-09-15 Egnyte, Inc. System and method of implementing an object storage infrastructure for cloud-based services
US8768977B2 (en) * 2012-07-31 2014-07-01 Hewlett-Packard Development Company, L.P. Data management using writeable snapshots in multi-versioned distributed B-trees
US10241711B2 (en) * 2013-03-14 2019-03-26 Hewlett-Packard Enterprise Development LP Multiversioned nonvolatile memory hierarchy for persistent memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1552032A (zh) * 2000-11-30 2004-12-01 �Ү�� 数据库
CN101650972A (zh) * 2009-06-12 2010-02-17 东信和平智能卡股份有限公司 智能卡的非易失性存储器数据更新方法
US8510344B1 (en) * 2010-08-27 2013-08-13 Amazon Technologies, Inc. Optimistically consistent arbitrary data blob transactions
WO2012052785A1 (en) * 2010-10-22 2012-04-26 Acunu Limited Versioned data structure

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Resolving Journaling of Journal Anomaly in Android I/O:Multi-Version B-tree with Lazy Split";Wook-Hee Kim 等;《Proceedings of the 12th USENIX Conference on File and Storage Technologies(FAST 14)》;20140220;第273-285页 *

Also Published As

Publication number Publication date
JP2017527909A (ja) 2017-09-21
CN106575306A (zh) 2017-04-19
EP3186729B1 (en) 2019-04-10
US20160063051A1 (en) 2016-03-03
WO2016032957A1 (en) 2016-03-03
EP3186729A1 (en) 2017-07-05

Similar Documents

Publication Publication Date Title
US10891264B2 (en) Distributed, scalable key-value store
US8555019B2 (en) Using a migration cache to cache tracks during migration
US10698831B2 (en) Method and apparatus for data access
CN108234641A (zh) 基于分布式一致性协议实现的数据读写方法及装置
CN111414389B (zh) 一种数据处理方法、装置、电子设备及存储介质
US20210081388A1 (en) Methods, apparatuses and computer program products for managing metadata of storage object
US10860481B2 (en) Data recovery method, data recovery system, and computer program product
US11113195B2 (en) Method, device and computer program product for cache-based index mapping and data access
US8782375B2 (en) Hash-based managing of storage identifiers
US10860480B2 (en) Method and device for cache management
KR20220125198A (ko) 데이터의 추가 기록 방법, 장치, 전자 기기, 저장 매체 및 컴퓨터 프로그램매체
US11099980B2 (en) Host aware update write
US20150089097A1 (en) I/o processing control apparatus and i/o processing control method
CN109726039B (zh) 用于管理虚拟机的方法和设备
US10311033B2 (en) Alleviation of index hot spots in data sharing environment with remote update and provisional keys
CN105808451B (zh) 一种数据缓存方法以及相关装置
CN106575306B (zh) 用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法及其设备
US11494099B2 (en) Method, device, and computer program product for managing storage system
US11314430B2 (en) Reading data in sub-blocks using data state information
US11093169B1 (en) Lockless metadata binary tree access
US10747627B2 (en) Method and technique of achieving extraordinarily high insert throughput
US20150278260A1 (en) Data set management using transient data structures
US10311039B2 (en) Optimized iterators for RCU-protected skiplists
US9483408B1 (en) Deferred metadata initialization
US20230333929A1 (en) Method, electronic device, and computer program product for accessing data of raid

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