CN104583989A - 高性能持久性存储器 - Google Patents
高性能持久性存储器 Download PDFInfo
- Publication number
- CN104583989A CN104583989A CN201280075500.0A CN201280075500A CN104583989A CN 104583989 A CN104583989 A CN 104583989A CN 201280075500 A CN201280075500 A CN 201280075500A CN 104583989 A CN104583989 A CN 104583989A
- Authority
- CN
- China
- Prior art keywords
- nvm
- data
- affairs
- processor
- new data
- 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.)
- Pending
Links
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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种在高性能持久性存储器中执行数据事务的方法,包括利用处理器进行:通过向非易失性存储器(NVM)写入新数据来更新数据;以及从通信地耦合到NVM的事务加速器接收完成的信号。一种用于高性能持久性存储器的装置,包括:处理器;存储器控制器,其通信地耦合到所述处理器;以及非易失性存储器,其通信地耦合到所述存储器控制器和处理器,所述非易失性存储器包括ACID事务加速器,其中,所述处理器通过向非易失性存储器(NVM)写入新数据来更新所述NVM上的数据;以及当数据已经被更新时从ACID事务加速器接收完成的信号。
Description
背景技术
大型数据中心使用大且相对复杂的数据结构。这些数据中心可以操纵大量存储器以便处理、发送和接收信息。对于现代数据中心的一个关注方面在于商业持续性,其中公司或若干公司依赖于系统来运行它们的操作。如果提供给数据中心系统的功率失效或者系统崩溃,则公司的操作可能部分受损或者操作可能完全停止。
这些功率失效或者系统崩溃可能导致系统或应用重新引导。在系统重新引导期间,数据中心将相对复杂的数据结构重新加载回系统上。数据中心可能加载数太字节的信息到系统上以便系统恢复合适的操作。此外,当初始加载程序时,系统可能应对大量数据。将这样的信息加载到系统上可能花费若干分钟或者更长时间,这可能一起影响或停止商业持续性。
附图说明
附图图示了本文描述的原理的各种示例并且作为说明书的一部分。这些示例并不限制权利要求的范围。
图1A和1B是根据本文描述的原理的一个示例的存储器系统的分别从侧部和顶部视图的框图,该存储器系统包括多个三维非易失性存储器(3D NVM)堆栈。
图1C是示出根据本文描述的原理的一个示例的图1A和1B的三维非易失性存储器(3D NVM)堆栈之一的三维框图。
图2是示出根据本文描述的原理的一个示例的利用以原子性、一致性、隔离的、耐久性(ACID)加速器进行的撤销和重做记录(logging)的方法的流程图。
图3是示出根据本文描述的原理的一个示例的用于以ACID加速器来撤销记录的方法的流程图。
图4是示出根据本文描述的原理的一个示例的以ACID加速器重做记录的方法的流程图。
图5A和5B是根据本文描述的原理的一个示例的分别用于撤销记录和重做记录的加速器设计。
图6是示出根据本文描述的原理的一个示例的在存储器控制器与ACID加速器之间调度存储器以及向NVM高效地写入数据的方法的流程图。
贯穿附图,相同的参考标号标明类似但并不一定相同的元素。
具体实施方式
本说明书描述了在高性能持久性存储器中执行数据事务的方法,包括:利用处理器,通过向非易失性存储器(NVM)写入新数据来更新数据,以及从通信地耦合到NVM的事务加速器接收完成的信号。
本说明书还描述了用于高性能持久性存储器的装置,包括:处理器;存储器控制器,其通信地耦合到处理器;以及非易失性存储器,其通信地耦合到存储器控制器和处理器,非易失性存储器包括ACID事务加速器,其中处理器通过向非易失性存储器(NVM)写入新数据来更新NVM上的数据,并且当数据已经被更新时从ACID事务加速器接收完成的信号。
本说明书还描述了用于在高性能持久性存储器设备中执行ACID事务的计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其包括以其来体现的计算机可用程序代码。计算机可用程序代码可以包括用于在由处理器执行时进行以下操作的计算机可用程序代码:通过向非易失性存储器(NVM)写入新数据来更新数据,并且从通信地耦合到NVM的事务加速器接收完成的信号。
如上文所注意到的,大型数据中心使用大且相对复杂的数据结构。这些数据中心可以操纵大量存储器以便处理、发送和接收信息。对于现代数据中心的一个关注方面在于商业持续性,其中公司或若干公司依赖于系统来运行它们的操作。如果提供给数据中心系统的功率失效或者系统崩溃,则公司的操作可能部分受损或者操作可能完全停止。结果,这些功率失效或者系统崩溃可能导致系统或在系统上运行的程序重新引导。在系统重新引导期间,数据中心将相对复杂的数据结构重新加载回系统上。数据中心可能加载数太字节的信息到系统上以便系统恢复合适的操作。此外,当初始加载程序时,系统可能应对大量数据。将这样的信息加载到系统上可能花费若干分钟或者更长时间,这可能一起影响或停止商业持续性。
为了加载这些大且相对复杂的数据结构,高性能持久性存储器系统可以用于以快速、低廉且高效的方式来处理该大量数据。实现这个,当程序开始时或者在程序或系统重新引导之后,大且复杂的数据结构可以准备就绪以供使用。
在本描述的一个示例中,3D NVM实现比现有实现高得多的性能。这是通过在NVM中本地维护检查点设置(checkpointing)而没有复杂的撤销和重做记录约束来达成的。因此,如果如本文所描述的使用高性能持久性存储器的系统丢失功率、程序挂起或系统崩溃,则最后的事务用作检查点以还原系统数据。在一个示例中,3D NVM可以提供硬件支持来在对处理器和操作系统的架构有极小改变的情况下将缓存系统与耐久性相分离以实现低廉的通用持久性存储器,而不丧失性能和编程灵活性。
在各种示例中,本文描述的高性能持久性存储器系统用于具有相对大的存储器内数据集的数据中心。通常,大量存储器被加载到计算机系统上。例如,该数据可以用于当计算机初始加电时把由复杂数据结构构成的大操作系统加载到计算机上。另外,该数据可以包括为程序提供功能性的相对复杂的数据结构。本高性能持久性存储器系统利用具有逻辑堆栈的多个3D NVM以在崩溃后快速访问数据,而不用串行地从存储器读取字节和在存储器中构件数据结构。
如在本说明书中和在所附权利要求中所使用的,术语“高性能持久性存储器”意在被广泛理解为快速访问非易失性存储器(NVM),其即使在至设备的功率不再可用时也可以保留并存储信息。因此,如果以及当运行在系统上的程序被中断或者系统经历功率下降时,高性能持久性存储器可以保留数据。
另外,如本说明书中和所附权利要求中所使用的,术语“三维非易失性存储器(3D NVM)”广泛地指代其中数据可以被存储和检索的任何存储器存储介质。在一个示例中,3D NVM可以不需要功率来维持其上所存储的信息。仍另外地,在一个示例中,多个3D NVM可以堆叠在彼此的顶部,以允许高性能持久性存储器的竖向扩展。
此外,如在本说明书中和所附权利要求中所使用的,术语“逻辑管芯(die)”意在被广泛地理解为在其上制造功能集成电路的小块半导体材料。在一个示例中,逻辑管芯提供对高持久性存储器的架构支持。
仍另外地,如在本说明书中和所附权利要求中所使用的,术语“逻辑操作”意在被理解为涉及逻辑功能的使用的任何操作,诸如“AND”(与)或“OR”(或),其被应用于特定逻辑电路的输入信号。逻辑操作也可以称为“事务”。
还另外地,如在本说明书中和所附权利要求中所使用的,术语“ACID事务”意在被广泛地理解为提供了发送到数据库的事务被可靠处理的事务属性的任何集合。在一个示例中,针对每个事务定义属性集合,使得它们是原子性、一致性、隔离的和耐久性(ACID)的。
对于为“原子性”的事务,每个事务被整个交托(commit)。因此,如果事务是“原子性”的,则当事务的一个部分失效时,整个事务将失效并且非易失性存储器的状态将保持不变。
此外,对于为“一致性”的事务,每个进行的事务将把数据库从一个有效状态带到另一个有效状态中。写入到数据库的任何数据被确保对于所有预定义的规则是有效的。这些规则可以包括但不限于级联、触发或约束。例如,如果事务被请求并且系统过程确定该事务将把数据移动到无效状态中,则该事务不被执行。
另外,对于为“隔离的”事务,该属性确保如果多个事务要被执行而非顺序地,则结果将包括仿佛事务被串行执行似的相同系统状态。因此,在另一事务之前、之后或与其同时地执行的任何一个事务各自将导致相同的状态。
此外,对于为“耐久性”的事务,一旦事务被交托,其将永久地保持被交托或存储,即使在功率丢失或系统崩溃的情况下。因此,事务是非易失性并且持久性的。
下文参照方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本系统和方法的示例。将理解的是,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以通过计算机程序代码来实现。该计算机程序代码可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以产生机器,使得经由计算机或其它可编程数据处理装置的处理器而执行的代码实现(多个)流程图和/或框图的一个或多个框中指定的功能/动作。
在一个示例中,该计算机程序代码可以存储在计算机可读存储介质中,其可以指引计算机或其它可编程数据处理装置以特定方式运作,使得存储在计算机可读存储器中的代码产生包括程序代码的制品,所述程序代码实现(多个)流程图和/或框图的一个或多个框中指定的功能/动作。
计算机程序代码也可以被加载到计算机或其它可编程数据处理装置上以使得一系列操作在计算机或其它可编程装置上执行以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的计算机代码实现(多个)流程图和/或框图的一个或多个框中指定的功能/动作。
在以下描述中,出于解释的目的,阐述了许多特定细节以便提供对本系统和方法的透彻理解。然而,对本领域技术人员将显而易见的是,可以在没有这些特定细节的情况下实践本装置、系统和方法。在说明书中对“示例”或类似语言的引用意指结合该示例而描述的特定特征、结构或特性如所描述的那样被包括,但是可以不被包括在其它示例中。
现在参照各图,图1A示出根据本文描述的原理的一个示例的包括多个三维非易失性存储器(3D NVM)堆栈(101)的存储器系统(100)的侧视框图。如在系统(100)中所图示,3D NVM堆栈(101)可以包括非易失性存储器(NVM)(110)的多个竖向放置的分片(slice),非易失性存储器(NVM)(110)包括多个NVM管芯。可以使用的存储器的其它示例可以包括存储器设备,诸如ROM、nvSRAM、FeRAM、MRAM、PRAM、CBRAM、SONOS、NRAM或其它类型的非易失性存储器。因此,尽管图1示出了多个竖向堆叠的NVRAM(110)设备,但是NVM设备可以并入任何类型的非易失性存储器,NVRAM为示例。
另外,代替于以3D NVM堆栈(101)的形式的NVM,NVM存储器可以替代地以二维配置来安置。因此,尽管图1A、1B和1C示出NVM堆栈(101)是三维的,但是在本描述中可以使用任何存储器配置,而不偏离本文描述的原理。
竖向放置的NVRAM设备(110)可以堆叠在彼此之上以产生NVMRAM设备(110)的3D堆栈(101)。在每个3D NVM堆栈(101)内的每个NVRAM设备(110)可以经由在制造过程期间在每个NVRAM设备(110)中创建的硅通孔(TSV)(112,图1C)通信地耦合到3D NVM堆栈(101)中的多个其它NVRAM设备(110)。TSV(112,图1C)可以充当总线以允许在3D NVM堆栈(101)内的所有NVRAM设备(110)表现为单个设备。
在一个示例中,3D NVMRAM堆栈(101)可以用于构建简单存储器模块或构建可伸缩存储器网络。尽管图1示出堆叠在一起形成3D NVRAM(101)的NVRAM(110)的多个竖向放置的分片,但是本说明书设想任何数目和类型的NVM可以水平地或竖向地通信地耦合在一起。多个NVRAM设备(110)的堆叠可以具有多个优点。一个优点是通过利用在存储器板上可用的竖向空间来节省计算系统(100)内的物理空间。因此,系统(100)可以涉及如少许或如很多NVRAM设备(110)以便系统操作。
3D NVRAM堆栈(101)可以从处理器(102)接收数据并被指引将数据存储在其上。另外,存储器控制器(图1B,103)可以用于管理至和自3D NVM堆栈(101)中的每个NVRAM设备(110)的数据移动的流。
图1B示出了根据本文描述的原理的一个示例的包括多个三维非易失性存储器(3D NVM)堆栈(101)的存储器系统(100)的顶视框图。如上文所讨论的,NVRAM设备(110)可以由存储器控制器(103)控制,存储器控制器(103)管理进和出3D NVM堆栈(101)的数据流。在NVRAM设备(110)和存储器控制器(103)之间的通信可以通过使用在硅插入器(interposer)(104)上的路由互连(111)来实现。在一个示例中,个体NVRAM设备(110)或三维非易失性存储器(3D NVM)堆栈(101)可以不被包括在相同硅插入器(104)上,并且替代地可以与处理器(102)和存储器控制器(103)物理地远离形成而同时仍然经由互连(111)通信地耦合到它们。
在操作中,处理器(102)可以将可执行代码发送到存储器控制器(103),使得存储器控制器可以管理至个体NVRAM设备(110)的数据流。在一个示例中,处理器(102)可以将经更新的数据发送到多个NVMRAM设备(110)。
图1C是示出根据本文描述的原理的一个示例的图1A和1B的多个三维非易失性存储器(3D NVM)堆栈(101)之一的三维框图。每个竖向放置的NVRAM设备(110)可以包括多个NVM管芯的部分并且可以在每个NVRAM设备(110)之间形成单排或多排信道(108)。ACID事务加速器(105)可以通信地耦合到每个NVRAM设备(110)以及在逻辑管芯(106)上。在一个示例中,ACID事务加速器(105)可以物理地耦合到NVM,使得其被置于逻辑管芯上,NVM设备(110)也耦合到所述逻辑管芯上。在另一示例中,ACID事务加速器(105)可以在物理上与逻辑管芯(106)远离形成而存在。因此,尽管图1C可以示出ACID事务加速器(105)被置于NVM设备的三维堆栈上,但是存在其它示例,其中ACID事务加速器(105)通信地耦合到NVM设备,但是被置于其自己的逻辑管芯上。
事务加速器(105)用于维持如上文所描述的原子性、一致性、隔离的和耐久性事务。另外,加速器(105)可以确保对系统(100)的处理器和操作系统架构做出极小改变。
图2是示出根据本文描述的原理的一个示例的利用使用ACID加速器(105)进行的撤销和重做记录的方法的流程图。该方法可以由例如通过操作者、系统或设备发出更新(201)命令而开始。这里,可以根据上面提及的ACID属性将新数据写入NVM(201)。在该过程(200)期间,加速器(105)可以使用检查点设置技术来利用NVM(110)中的当前数据来存储被传递的数据的当前状态。如果(根据任何ACID事务属性)更新过程或事务过程失效并且新数据未被写入NVM,则该检查点设置过程将允许系统(100)能够在失效点处重新开始。
如下文将描述的,加速器(105)可以被给予对多个缓冲器的访问,所述缓冲器包含从处理器(102)接收的新数据和由NVRAM设备(110)保留的旧数据。控制逻辑可以由加速器(105)用来读取旧数据、将数据记录到NVRAM设备(110)、等待直到记录完成,以及将经缓冲的新数据写入NVRAM设备(110)。在该过程期间,然而,耐久性属性与写数据过程相分离。在一个示例中,通过将数据缓冲在加速器(105)上的旧数据缓冲器和新数据缓冲器中,存储器操作可以通过成批数据处理被优化。
在该情况中,以下不需要发生:通过使处理器(102)读取旧数据来向NVRAM设备(110)更新数据,将包括旧数据的地址的元组推送到撤销记录,等待直到元组被写出到撤销记录,以及将新数据写入3D NVM堆栈(101)。这里,可以意识到,将针对记录操作和数据更新二者来访问NVM。
替代地,如本说明书中所描述的存储器控制器(103)可以只是将新数据写入3D NVM堆栈(101),并且等待直到事务中的所有数据被写出到3D NVM堆栈(101)。事务为耐久性的ACID要求与数据访问过程相分离,并且系统可以提供高性能而仍快速和廉价的持久性存储器系统(100)。另外,记录操作对于处理器(102)是透明的,并且处理器(102)将把事务更新作为规则的存储器更新来对待。
一旦所有数据已经被写入NVM,完成的信号就将从加速器(105)被接收(202)。因此,ACID事务现在被存储在合适的3D NVM堆栈(101)中。如果系统(100)将失效或丢失功率,则加速器(105)可以识别持久性数据的最近版本。
图3是示出根据本文描述的原理的一个示例的用于以ACID加速器(105)进行撤销记录的方法(300)的流程图。图3示出了图1A、1B和1C的系统(100)如何完成ACID事务作为撤销记录事务。当加速器从处理器(102)接收(301)新数据时,ACID事务开始。然后读取(302)旧数据。然后,ACID加速器向NVM记录(303)成批数据。成批数据可以被定义为经缓冲的旧数据,其具有定义将数据存储在NVRAM设备(110)内何处的地址。使用被缓冲的成批数据有助于优化存储器操作,其中写入和等待时间在堆叠的NVM中被优化,因为在NVM与存储器控制器之间不存在往返延迟。然后系统等待(304)直到记录完成。一旦记录已经完成,经缓冲的新数据就被写入(305)NVM。
加速器(105)内的缓冲器可以是由控制器(103)管理的存储器,或者可以是除了数据块之外还具有硬件管理的标签和元数据的类缓存结构。另外,加速器(105)可以执行针对事务的多个记录,或者可以同时处置多个事务。
如上文所注意到的,数据可以被重排序以改进信道利用,并且通过对进入的数据进行缓冲,ACID加速器(105)可以重构正确的定序。处理器(102)可以指引存储器控制器(103)发送定义数据的次序的元数据连同数据和事务ID。该元数据可以经由在末级缓存与控制器(103)之间创建的快速总线被发送到加速器(105)。该总线可以专用于发送写预留,其包括时间戳和事务ID。因为要通过该总线发送的数据包括元数据,所以其可以比真实存储器访问的数据相对更小。因此,额外的总线将引起对处理器管脚计数的极小压力。当数据写入完成时,由处理器(102)从加速器接收完成的信号(306)。有利地,在旧数据被推送到撤销记录之后,任何新数据被写出到NVM。因此,在本示例的架构中在撤销记录期间可以避免串行化。
因此,本系统(100)可以允许事务的存储器写入从存储器控制器(103)被无序发出,如同它们是正常存储器写入一样,以便维持高性能水平。尽管ACID加速器(105)内的缓冲器可以以元数据来缓冲和重排序存储器写入以维持关于事务的正确次序,但是对于缓冲器而言也可能用部分更新的事务来填充。在其它系统中,这可以防止多个事务向前移动并且系统可能被死锁。然而,本ACID加速器(105)可以关于有多少部分交托的事务和它们的数据可以在缓冲器中排成队而设置阈值限制。该阈值限制可以由系统(100)来定义以适合任何特定集合的事务或者可以是用户定义的。
因为加速器(105)基于存储在加速器的缓冲器中并且由处理器侧存储器控制器(103)提供的元数据而知晓有多少事务已经被发出以及有多少缓存行已经被更新,所以加速器(105)可以请求存储器控制器(103)刷新完成的事务(即,未交托给NVM(110)的事务)的脏缓存行。在该情况中,存储器控制器(103)可以不被允许随意并且基于其自己的调度策略来发出所需存储器。通过存储器控制器(103)与ACID加速器(105)之间的仔细协作,系统(100)可以能够在极小的性能损失的情况下支持持久性存储器并且避免任何潜在的死锁。在一个示例中,可以基于是否需要即时(instant)耐久性来实现该持久性感知的存储器调度。在一个示例中,存储器控制器(103)、处理器(102)和操作系统也可以选择是允许存储器写入被无序发出还是仅在它一可以被允许就将数据刷新到NVM(101)。
现在将描述根据本申请的撤销记录过程的示例。假设5个事务被发送到ACID加速器(105),即:A、B、C、D和E。初始地,这些事务以字母次序被交托。此外假设这些事务产生以下数据块,即:A1、A2、A3、B4、B5、B6、C7、C8、D9和E10。如上文所描述的,事务加速器(105)可以接收具有时间戳和事务ID的多个写预留。以该方式,事务加速器(105)被通知这样的事实:例如,事务A具有3个存储器写入块,A1、A2和A3。此外假设处理器或存储器控制器(103)对数据写入进行重排序,所以NVM接收以下序列:A1、E10、A2、B4、B5、C7、A3、C8、D9、B6。如上文所描述的,进入的数据首先被缓冲(303)。当接收到A3时,加速器向NVM交托A1、A2和A3,并且从加速器接收完成的信号(306)。此外,B未被交托,直到B6被接收,所以事务B、C、D和E被缓冲。当B6被接收时(集合中的最后事务),ACID加速器(105)具有用于事务B、C、D和E的所有数据。结果,避免了串行化,并且于是同时交托所有事务。
图4是示出根据本文描述的原理的一个示例的用于以ACID加速器(105)进行重做记录的方法的流程图。图4示出图1A、1B和1C的系统(100)如何完成ACID事务作为重做记录事务。ACID事务开始,其中加速器(105)从处理器(102)接收(401)新的经缓冲的数据。没有此外的动作被立即执行,直到针对事务的最后数据写入被发送(402)到加速器(105)。在加速器(105)已经接收了所有新的经缓冲的数据之后,成批数据被记录(403)到NVM。一旦记录(403)已经完成(404),就从加速器(105)接收(405)完成的信号。当接收到(405)完成的信号时,新的经缓冲的数据被写入(406)NVM。
与上文类似,加速器(105)可以执行针对事务的多个记录,或者可以同时处置多个事务。另外,在事务完成以及针对事务的整个重做记录完成(404)之后,新数据可以被写(406)出到NVM。而且,类似于撤销记录,ACID加速器(105)可以通过利用成批数据处理来优化存储器操作来提供相对更简单的接口,其中成批数据处理是通过缓冲数据、写入它以及等待来进行的。这证明是堆叠的存储器内的快得多的过程,因为在3D NVM堆栈(101)与存储器控制器(103)之间没有往返延迟。仍另外地,处理器可以具有相同的接口,同时NVM堆栈选择最优途径;即用于ACID支持的撤销记录(300)或重做记录(400)。
图5A是根据本文描述的原理的一个示例的用于撤销记录的加速器(500)设计的图示。图5A示出了图1A、1B和1C的系统(100)内的3D NVM堆栈(101),其具有用于撤销记录事务的加速器(500)设计。撤销记录提供逻辑控制器(501),其可以包括硬件逻辑和执行计算机可用程序代码的处理器。这里,控制器(501)可以产生用于系统的期望的逻辑。如上文所注意到的,当撤销记录是期望的并且被写入NVM(504)时,新数据和旧数据二者都要被缓冲。图5A示出新数据和旧数据可以被存储,至少暂时地分别存储在新(502)和旧数据缓冲器(503)中。一旦被更新的数据的一致性和/或持久性版本已经在NVM(504)中被创建,这些缓冲器(502、503)可以被重用。在一个示例中,与计算系统和NVM(504)相关联的操作系统可以有助于分配NVM(504)的部分。在一些示例中,NVM(504)的不同部分可以被分配以适合可以结合NVM(504)发生的各种不同的事务。
如上文所讨论的,系统(100)可以允许存储器写入无序地从存储器控制器(103)被发出到NVM(504),如同它们是正常的存储器写入一样。尽管ACID加速器(105、500)内的多个缓冲器(502、503)可以以从存储器控制器(103)提供的元数据来缓冲和重排序存储器写入,但是对于多个缓冲器(502、503)而言可能用部分更新的事务来填充。然而,ACID加速器(105、500)可以关于有多少部分交托的事务和它们的数据可以在缓冲器中被排成队而设置阈值限制。该阈值限制可以由系统(100)来定义以适合任何特定集合的事务或者可以是用户定义的。
因为加速器(105、500)基于由处理器侧存储器控制器(103)提供的元数据而知晓有多少事务已经被发出以及有多少缓存行已经被更新,所以加速器(105、500)可以请求存储器控制器(103)刷新完成的事务的脏缓存行。在该情况中,存储器控制器(103)可以不被允许随意基于其自己的调度策略而发出所需存储器。通过存储器控制器(103)与ACID加速器(105、500)之间的协作,系统(100)可以能够在极小性能损失的情况下支持持久性存储器。在一个示例中,可以基于是否需要即时耐久性来实现该持久性感知的存储器调度。在一个示例中,存储器控制器(103)、处理器(102)和操作系统也可以选择是允许存储器写入被无序发出还是只是在它一可以被允许就将数据刷新到NVM(110)。
在一个示例中,通过使用ACID加速器(105、500)内的控制逻辑(501),ACID加速器(105、500)可以控制多个缓冲器(502、503)与NVM(110)之间的对接。在一个示例中,当多个缓冲器(502、503)开始填充时,ACID加速器(105、500)将完成记录事务以便确保数据在合适时并且尽可能快地被持久性地记录。然而,一旦完成任何记录事务,在合适时ACID加速器(105、500)就可以向NVM(110)写入成批数据。例如,如果NVM(110)内的目标存储器块在ACID加速器(105、500)正在尝试写入该存储器块时可能是忙的,则ACID加速器(105、500)可以首先向NVM(110)交托其它事务,直到该存储器块变为可用。以该方式,ACID加速器(105、500)可以利用否则本将花费来等待繁忙的存储器块完成其它事务的时间。
图5B是根据本文描述的原理的一个示例的用于撤销记录的加速器(105)设计示例的图示。图5B示出了图1A、1B和1C的系统(100)内的3D NVM堆栈(101),其具有用于重做记录事务的加速器(105)设计。重做记录提供逻辑控制器(501),其可以是硬件逻辑或具有体现在其上的计算机可用程序代码的简单处理器。在任一情况中,控制器(501)能够产生用于系统(100)的期望的逻辑。如上文所注意到的,当重做记录被发起并被写入NVM(504)时,新数据(502)要被缓冲。
图6是示出根据本文描述的原理的一个示例的在存储器控制器(103)与ACID加速器(105、500)之间调度存储器的方法(600)以及用于高效地向NVM(101)写入数据的方法的流程图。尽管这里在图6中所描绘的两种方法(即,在存储器控制器(103)与ACID加速器(105、500)之间调度存储器的方法以及用于高效地向NVM(101)写入数据的方法)被一起示出为方法600,但是本说明书还设想这两种方法可以分离地并且彼此独立地开始和发生。因此,图6意在被理解为仅仅是本文描述的方法的示例。
尽管处理器和存储器控制器保持从事务和正常写入二者生成存储器请求,但是ACID加速器(105、500)可以关于是否已经满足对部分交托的事务的数目的阈值限制做出判定(610)。如果已经满足阈值(确定是,610),则ACID加速器(105、500)可以通知(650)存储器控制器(103)停止发送新事务的数据并且请求(655)存储器控制器(103)刷新完成的事务的脏缓存行。然后,ACID加速器(105、500)可以通过执行如下文所提及的记录和更新步骤(605、615、620、625、630、635、645、640)来完成(660)多个部分更新的事务。一旦这发生,ACID加速器(105、500)然后就可以再次确定(610)是否已经满足对部分交托的事务的数目的阈值限制。因此,在一个示例中,ACID加速器(105、500)可以在部分更新的事务的每次完成之后连续检查是否仍然已达到阈值限制。在另一示例中,ACID加速器(105、500)可以完成预定数目的部分更新的事务并然后做出相同查询(610)。
如果尚未满足阈值(确定否,610),则ACID加速器(105、500)可以通过以下来完成向NVM(110)写入数据的方法:继续让存储器控制器(103)随意发出多个存储器请求并从存储器控制器(103)接受(605)新数据。如上文所描述的,所接收(605)的新数据可以是无序的。
ACID加速器(105、500)然后可以读取(615)旧数据,如上文所描述的。在读取(615)旧数据之后,ACID加速器然后可以向NVM记录(620)成批数据。然后可以关于要被写入的数据块是否繁忙做出(625)确定。如果数据块繁忙(确定是,625),则ACID加速器(105、500)可以向NVM交托(645)其它事务并且等待数据块变为可用。在该情况中,当数据块确实变为可用时,过程继续进行以下:ACID加速器(105、500)等待(630)直到记录完成,向NVM(110)写入(635)经缓冲的新数据,以及将完成的信号发送(640)到处理器(102)和存储器控制器(103)。
如果数据块不繁忙(确定否,625),则ACID加速器(105、500)等待(630)直到记录完成。ACID加速器(105、500)然后向NVM(110)写入(635)经缓冲的新数据,以及将完成的信号发送(640)到处理器(102)和存储器控制器(103)。然后,贯穿应用的执行可以重复整个过程。
尽管图6在以上描述了在存储器控制器(103)与ACID加速器(105、500)之间调度存储器的以及高效地向NVM(110)写入数据的方法,但是在一个示例中,该方法可以仅包括在存储器控制器(103)与ACID加速器(105)之间调度存储器的方法。在另一示例中,该方法可以仅包括高效地向NVM(110)写入数据的方法,如上所述。
本说明书还可以描述为用于在高性能持久性存储器设备中执行ACID事务的计算机程序产品。计算机程序产品可以包括计算机可读存储介质,所述计算机可读存储介质包括以其来体现的计算机可用程序代码。计算机可用程序代码可以包括在由处理器执行时通过向非易失性存储器(NVM)写入新数据来更新数据的计算机可用程序代码以及在由处理器执行时从通信地耦合到NVM的事务加速器接收完成的信号的计算机可用程序代码。
在本说明书中可以利用(多个)计算机可读介质的任何组合。计算机可读存储介质可以是例如但不限于:电子、磁性、光学电磁、红外或半导体系统、装置或设备或者前述的任何适当组合。计算机可读介质的更多特定示例(非穷举的列表)将包括以下:具有多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROP或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光学存储设备、磁性存储设备或前述的任何适当组合。在本文档的上下文中,计算机可读存储介质可以是任何有形介质,其可以包含或存储用于由任何指令执行系统、装置或设备(诸如,例如处理器)使用或与其结合使用的程序。
体现在计算机可读介质上的程序代码可以使用任何合适介质来传输,包括但不限于:无线、有线线路、光纤线缆、RF等等或者前述的任何适当组合。
用于实行本说明书的操作的计算机程序代码可以用除了别的之外诸如Java、Smalltalk或C++的面向对象编程语言来编写。用于实行本说明书的操作的计算机程序代码也可以用诸如结构化查询语言的声明式编程语言来编写。然而,用于实行本系统和方法的操作的计算机程序代码也可以用诸如例如“C”编程语言或类似编程语言的过程式编程语言来编写。程序代码可以整体在用户的计算机上、部分在用户的计算机上、作为独立计算机可读介质封装、部分在用户的计算机上以及部分在远程计算机上或者整体在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过局域网(LAN)或广域网(WAN)来连接到用户的计算机,或者连接可以进行到外部计算机(例如,考虑使用互联网服务提供商的互联网)。
各图中的流程图和框图图示了系统、方法和计算机程序产品的可能实现的架构、功能性和操作。在此方面,流程图或框图中的每个框可以表示代码的模块、段或部分,其包括用于实现(多个)特定逻辑功能的多个可执行指令。还应当注意到,在一些替代实现中,在框中所注的功能可以不以图中所注的次序发生。例如,接连示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反次序执行,这取决于所涉及的功能性。还将注意到,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以通过执行指定功能或动作的专用的基于硬件的系统或专用硬件和计算机指令的组合来实现。
本文使用的术语用于描述具体示例的目的并且不意图是限制性的。如本文所使用的,单数形式“一”、“一个”和“该”意图也包括复数形式,除非上下文清楚地另有指示。还将理解的是,术语“包括”和/或“包含”当在说明书中使用时指定存在所陈述的特征、整数、操作、元素和/或组件,但是不排除存在或添加多个其它特征、整数、操作、元素、组件和/或其群组。
前面的描述已经被呈现来说明和描述所描述的原理的示例。该描述并不意图是穷举的或者将这些原理限制到所公开的任何精确形式。鉴于以上教导,许多修改和变型是可能的。
Claims (15)
1.一种在高性能持久性存储器中执行数据事务的方法,包括:
利用处理器:
通过向非易失性存储器(NVM)写入新数据来更新数据;以及
从通信地耦合到NVM的事务加速器接收完成的信号。
2.根据权利要求1所述的方法,其中,更新数据包括在所述事务加速器处从所述处理器接收新数据,并且将所述新数据暂时缓冲在与所述事务加速器相关联的新数据缓冲器中。
3.根据权利要求2所述的方法,其中,所接收的新数据包括多个部分交托的事务,并且其中,在超过所述缓冲器中部分交托的事务的数目的阈值限制时,所述事务加速器指令所述处理器刷新多个完成的事务的多个脏缓存行。
4.根据权利要求3所述的方法,其中,如果所述事务加速器正尝试向其写入完成的事务的NVM内的多个数据块繁忙,则所述事务加速器向NVM交托多个其它事务直到所述数据块变为可用。
5.根据权利要求2所述的方法,其中,更新数据包括缓冲从所述处理器接收的新数据和在所述非易失性存储器上保留的旧数据。
6.根据权利要求1所述的方法,其中,向NVM写入新数据包括通过使用成批数据处理向NVM写入所述新数据。
7.根据权利要求1所述的方法,其中,从所述加速器接收完成的信号包括当数据写入完成时将完成的信号从所述加速器发送到所述处理器。
8.根据权利要求1所述的方法,还包括从通信地耦合到所述处理器的存储器控制器接收元数据,所述元数据定义对所述新数据的写入的数目和次序。
9.根据权利要求6所述的方法,其中,所述元数据由所述事务加速器经由专用总线从所述存储器控制器接收,所述专用总线将所述存储器控制器通信地耦合到NVM。
10.一种用于高性能持久性存储器的装置,包括:
处理器;
存储器控制器,其通信地耦合到所述处理器;以及
非易失性存储器,其通信地耦合到所述存储器控制器和处理器,所述非易失性存储器包括ACID事务加速器;
其中,所述处理器:
通过向非易失性存储器(NVM)写入新数据来更新所述NVM上的数据;以及
当数据已经被更新时从ACID事务加速器接收完成的信号。
11.根据权利要求10所述的装置,其中,当被所述处理器指令时,所述ACID加速器:
读取旧数据;
向NVM记录所述旧数据;以及
向NVM写入经缓冲的新数据。
12.根据权利要求10所述的装置,其中,所述存储器控制器经由专用总线通信地耦合到所述NVM,并且其中,所述存储器控制器向所述NVM发送元数据,所述元数据定义对所述新数据进行的写入的数目和次序。
13.根据权利要求10所述的装置,其中,当数据已经变为持久性的时,所述ACID加速器向所述处理器发送完成的信号。
14.根据权利要求10所述的装置,其中,所接收的新数据包括多个部分交托的事务,并且其中,在超过所述缓冲器中部分交托的事务的数目的阈值限制时,所述事务加速器指令所述存储器控制器刷新多个完成的事务的多个脏缓存行。
15.一种用于在高性能持久性存储器设备中执行ACID事务的计算机程序产品,所述计算机程序产品包括:
计算机可读存储介质,其包括以其来体现的计算机可用程序代码,所述计算机可用程序代码包括:
在由处理器执行时通过向非易失性存储器(NVM)写入新数据来更新数据的计算机可用程序代码;以及
在由处理器执行时从通信地耦合到NVM的事务加速器接收完成的信号的计算机可用程序代码。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2012/052684 WO2014035377A1 (en) | 2012-08-28 | 2012-08-28 | High performance persistent memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104583989A true CN104583989A (zh) | 2015-04-29 |
Family
ID=50184017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280075500.0A Pending CN104583989A (zh) | 2012-08-28 | 2012-08-28 | 高性能持久性存储器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20150261461A1 (zh) |
EP (1) | EP2891069A4 (zh) |
CN (1) | CN104583989A (zh) |
TW (1) | TW201409475A (zh) |
WO (1) | WO2014035377A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107690630A (zh) * | 2015-04-20 | 2018-02-13 | 西部数据技术公司 | 计算设备中的桥配置 |
CN107851061A (zh) * | 2015-05-19 | 2018-03-27 | 净睿存储股份有限公司 | 远程存储器中硬件辅助的事务提交 |
CN107924418A (zh) * | 2015-09-24 | 2018-04-17 | 英特尔公司 | 在非易失性存储器中使易失性隔离事务具有失败原子性 |
CN115951846A (zh) * | 2023-03-15 | 2023-04-11 | 苏州浪潮智能科技有限公司 | 数据写入方法、装置、设备及介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008131058A2 (en) * | 2007-04-17 | 2008-10-30 | Rambus Inc. | Hybrid volatile and non-volatile memory device |
US10025530B2 (en) * | 2014-09-29 | 2018-07-17 | Western Digital Technologies, Inc. | Optimized garbage collection for solid-state storage devices |
US10691559B2 (en) | 2016-08-15 | 2020-06-23 | Oracle International Corporation | Persistent memory transactions with undo logging |
US10445236B2 (en) * | 2016-11-14 | 2019-10-15 | Futurewei Technologies, Inc. | Method to consistently store large amounts of data at very high speed in persistent memory systems |
US10671512B2 (en) * | 2018-10-23 | 2020-06-02 | Microsoft Technology Licensing, Llc | Processor memory reordering hints in a bit-accurate trace |
CN110008059B (zh) * | 2019-02-20 | 2021-05-11 | 深圳市汇顶科技股份有限公司 | 非易失性存储介质的数据更新方法、装置及存储介质 |
CN110515705B (zh) * | 2019-08-07 | 2022-03-11 | 上海交通大学 | 可扩展的持久性事务内存及其工作方法 |
US11960363B2 (en) * | 2019-09-23 | 2024-04-16 | Cohesity, Inc. | Write optimized, distributed, scalable indexing store |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020147890A1 (en) * | 2001-04-06 | 2002-10-10 | Saulsbury Ashley N. | Method and apparatus for checkpointing to facilitate reliable execution |
US20060227585A1 (en) * | 2005-03-24 | 2006-10-12 | Masanori Tomoda | Computer system, disk apparatus and data update control method |
CN1902599A (zh) * | 2003-12-30 | 2007-01-24 | 桑迪士克股份有限公司 | 具有大型擦除区块的非易失性存储器系统的管理 |
CN102016808A (zh) * | 2008-05-01 | 2011-04-13 | 惠普发展公司,有限责任合伙企业 | 将检查点数据存储于非易失性存储器中 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5682517A (en) * | 1994-06-21 | 1997-10-28 | Pitney Bowes Inc. | Method of transferring data to a memory medium in a mailing machine |
US7058849B2 (en) * | 2002-07-02 | 2006-06-06 | Micron Technology, Inc. | Use of non-volatile memory to perform rollback function |
US7383290B2 (en) * | 2004-03-09 | 2008-06-03 | Hewlett-Packard Development Company, L.P. | Transaction processing systems and methods utilizing non-disk persistent memory |
US7516267B2 (en) * | 2005-11-03 | 2009-04-07 | Intel Corporation | Recovering from a non-volatile memory failure |
US7802062B2 (en) * | 2007-09-28 | 2010-09-21 | Microsoft Corporation | Non-blocking variable size recyclable buffer management |
US7925925B2 (en) * | 2008-12-30 | 2011-04-12 | Intel Corporation | Delta checkpoints for a non-volatile memory indirection table |
US8145817B2 (en) * | 2009-04-28 | 2012-03-27 | Microsoft Corporation | Reader/writer lock with reduced cache contention |
-
2012
- 2012-08-28 WO PCT/US2012/052684 patent/WO2014035377A1/en active Application Filing
- 2012-08-28 EP EP12883648.3A patent/EP2891069A4/en not_active Withdrawn
- 2012-08-28 CN CN201280075500.0A patent/CN104583989A/zh active Pending
- 2012-08-28 US US14/423,913 patent/US20150261461A1/en not_active Abandoned
-
2013
- 2013-05-02 TW TW102115688A patent/TW201409475A/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020147890A1 (en) * | 2001-04-06 | 2002-10-10 | Saulsbury Ashley N. | Method and apparatus for checkpointing to facilitate reliable execution |
CN1902599A (zh) * | 2003-12-30 | 2007-01-24 | 桑迪士克股份有限公司 | 具有大型擦除区块的非易失性存储器系统的管理 |
US20060227585A1 (en) * | 2005-03-24 | 2006-10-12 | Masanori Tomoda | Computer system, disk apparatus and data update control method |
CN102016808A (zh) * | 2008-05-01 | 2011-04-13 | 惠普发展公司,有限责任合伙企业 | 将检查点数据存储于非易失性存储器中 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107690630A (zh) * | 2015-04-20 | 2018-02-13 | 西部数据技术公司 | 计算设备中的桥配置 |
CN107690630B (zh) * | 2015-04-20 | 2019-03-19 | 西部数据技术公司 | 计算设备中的桥配置 |
CN107851061A (zh) * | 2015-05-19 | 2018-03-27 | 净睿存储股份有限公司 | 远程存储器中硬件辅助的事务提交 |
CN107851061B (zh) * | 2015-05-19 | 2021-09-28 | 净睿存储股份有限公司 | 远程存储器中硬件辅助的事务提交 |
CN107924418A (zh) * | 2015-09-24 | 2018-04-17 | 英特尔公司 | 在非易失性存储器中使易失性隔离事务具有失败原子性 |
CN107924418B (zh) * | 2015-09-24 | 2023-02-21 | 英特尔公司 | 在非易失性存储器中使易失性隔离事务具有失败原子性 |
CN115951846A (zh) * | 2023-03-15 | 2023-04-11 | 苏州浪潮智能科技有限公司 | 数据写入方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20150261461A1 (en) | 2015-09-17 |
TW201409475A (zh) | 2014-03-01 |
EP2891069A1 (en) | 2015-07-08 |
WO2014035377A1 (en) | 2014-03-06 |
EP2891069A4 (en) | 2016-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104583989A (zh) | 高性能持久性存储器 | |
US10725983B2 (en) | Systems and methods for database management using append-only storage devices | |
US11132350B2 (en) | Replicable differential store data structure | |
CN103262030B (zh) | 经由动态聚合操作的快速且线性化并发优先级队列 | |
US9251233B2 (en) | Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation | |
US9805074B2 (en) | Compressed representation of a transaction token | |
CN105706061B (zh) | 使用非易失性存储器的崩溃恢复 | |
CN108140009A (zh) | 分布式自主式基于rdma的b树键值管理器 | |
CN106716395B (zh) | 事务处理的方法、装置及计算机系统 | |
US20150178329A1 (en) | Multiple rid spaces in a delta-store-based database to support long running transactions | |
CN102148871B (zh) | 存储资源调度方法和装置 | |
CN105408895A (zh) | 用于多个访问方法的无锁存、日志结构化的存储 | |
US20090063807A1 (en) | Data redistribution in shared nothing architecture | |
CN107111631A (zh) | 粒度同步/半同步架构 | |
CN109725840A (zh) | 利用异步冲刷对写入进行节流 | |
CN105339885B (zh) | 磁盘上数据的小随机更改的高效存储 | |
CN103562878A (zh) | 在镜像虚拟机系统中的存储器检查点设置 | |
CN102726002B (zh) | 数据配置及其回退方法和设备 | |
US20160085445A1 (en) | Method operating raid system and data storage systems using write command log | |
EP2979185B1 (en) | Address range transfer from first node to second node | |
US8600962B2 (en) | Transaction processing device, transaction processing method, and transaction processing program | |
US11151157B2 (en) | Database management method | |
CN113227999A (zh) | 微服务数据聚合搜索引擎更新 | |
US20140122433A1 (en) | Storage device and data backup method | |
JP2018180688A (ja) | 更新処理プログラム、装置、及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170123 Address after: American Texas Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Applicant before: Hewlett-Packard Development Company, L.P. |
|
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150429 |
|
WD01 | Invention patent application deemed withdrawn after publication |