CN110515705B - 可扩展的持久性事务内存及其工作方法 - Google Patents

可扩展的持久性事务内存及其工作方法 Download PDF

Info

Publication number
CN110515705B
CN110515705B CN201910726002.1A CN201910726002A CN110515705B CN 110515705 B CN110515705 B CN 110515705B CN 201910726002 A CN201910726002 A CN 201910726002A CN 110515705 B CN110515705 B CN 110515705B
Authority
CN
China
Prior art keywords
transaction
pointer
version
log
new
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
CN201910726002.1A
Other languages
English (en)
Other versions
CN110515705A (zh
Inventor
古金宇
王肇国
臧斌宇
陈海波
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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201910726002.1A priority Critical patent/CN110515705B/zh
Publication of CN110515705A publication Critical patent/CN110515705A/zh
Application granted granted Critical
Publication of CN110515705B publication Critical patent/CN110515705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种可扩展的持久性事务内存及其工作方法,包括:非易失存储器和动态随机储存器;所述非易失存储器中包括:原始数据对象以及每个事务维护的日志,所述日志包含新的数据对象,在原始数据对象中使用指针next指向对应的新的数据对象;所述动态随机储存器中包括:每个线程维护的元数据。本发明提出了使用DVCC技术减少寻找版本的时间,同时将NVM中的日志作为新版本的方法,有效地减少了写操作次数。

Description

可扩展的持久性事务内存及其工作方法
技术领域
本发明涉及存储技术领域,具体地,涉及一种可扩展的持久性事务内存及其工作方法。
背景技术
事务性内存(TM)是一种类似于数据库事务的并发控制机制,被用来在并发编程中控制对共享内存的访问。TM是一种乐观并发控制模型,它允许多个线程并行运行,当多个线程修改的数据发生冲突时,系统会终止当前事务的提交请求并稍后重试。这种无锁编程不仅在冲突较少的场景下拥有更好的并行性,还为程序开发人员提供了更高层的线程同步的抽象。程序开发者只需要显示地将代码块声明为一个事务,TM便可以保证这组操作的原子性、一致性和隔离性。近年来我们见证了实时数据驱动和高吞吐量需求的应用的集中爆发,越来越多的流式分布式系统被部署投入使用,它们对高并发和高性能的需求也进一步让TM成为焦点。但是TM无法满足这些应用对容错的要求,因为它无法保证持久性。持久性指的是在发生硬件或软件错误时,已经提交的更改不会丢失。因此在当前环境下,寻找一种高效可扩展的持久化事务内存(PTM)就成了很多研究关注的对象。
遗憾的是,由于动态随机储存器(DRAM)具有断电后储存数据丢失的物理特性,在仅使用DRAM的系统中保证持久性是一个几乎不可能完成的任务。但是近年来,非易失存储器(NVM)的飞速发展正在颠覆传统的储存架构,特别是最近Intel公司发布了傲腾(Optane)储存技术,标志着NVM从研究领域到主流产品的转变。NVM是指断电后所储存的数据不会丢失的计算机储存器,它具有按字节寻址、低能耗、读性能接近DRAM、写性能低于DRAM但远高于硬盘等特性。NVM断电后数据不丢失的特性正是实现PTM的关键,但如何在保证持久化的前提下同时满足TM提供的原子性、一致性和隔离性仍面临很多挑战,目前主流的做法有以下两种:
一种方法是将事务操作的日志持久化到NVM中,为了避免竞争,需要将被修改的数据加锁。然而这种做法的并行性很差,一次写操作可能会阻塞后续大量的读操作。由于NVM具有读写速度不对称的特点,其写入的速度大约是DRAM的十分之一,这会显著增加阻塞的时间。因此在这种设计中,长时间的阻塞往往会成为整个系统性能的瓶颈。另一种方法将NVM与DRAM结合起来,当处理一个操作时,先将操作的更新和日志信息缓存在DRAM中,然后使用一些线程在后台异步地将日志写回到NVM中,再使用一个特殊的线程根据日志逐步将操作持久化到NVM中的对象上。然而在这种设计中,写回NVM中对象的操作中依赖于一种全局顺序,这将显著降低系统的并行性。因为日志缓存的空间有限,如果读取日志进行持久化操作的速度低于创建日志的速度,导致日志缓存空间被占满后,整个系统就会被阻塞。这样一来,依赖全局顺序的读取日志操作就会成为整个系统的瓶颈。研究表明,这种设计不具有可扩展性,它的性能最多可以被扩展到8核。
总之,目前没有一种方案可以同时做到:1)高效:读操作不受数据持久化操作太大影响;2)可扩展性好:不过度限制持久化操作的顺序,避免出现可能影响并行性的因素。
公开号为CN104881371A的专利公开了一种持久性内存事务处理缓存管理方法与装置,该方法包括:在事务开始时,事务从非易失性内存中读取原版数据至处理器缓存,并由处理器执行事务;在事务执行过程中,事务为产生的新版数据分配空间,并采用缓存窃取写回技术以允许对未提交数据进行持久化;在事务提交或中止时,将事务数据或状态强制持久化至非易失性内存;在事务数据或状态已持久化至非易失性内存之后,将事务数据写回至原数据地址,并采用缓存非强制写回技术不强制已提交数据持久化至非易失性内存;事务周期性以强制整体刷回的形式将缓存数据持久化至非易失性内存;当系统发生故障时,对事务数据进行故障恢复处理。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种可扩展的持久性事务内存及其工作方法。
根据本发明提供的一种可扩展的持久性事务内存,包括:非易失存储器和动态随机储存器;
所述非易失存储器中包括:原始数据对象、新版本数据对象以及每个事务维护的日志,所述日志包含差异日志和检查点日志,在原始数据对象中使用指针copy指向对应的新版本数据对象组成的版本链,使用指针pending指向正在被修改尚未提交的数据对象;
所述动态随机储存器中包括:每个线程维护的元数据。
优选地,所述指针copy和pending初始化为0,所述指针pending还充当锁的作用,只有当所述指针pending为空的时候才能执行新的写操作。
优选地,每个所述新的数据对象包含三个指针,分别指向原始数据对象、当前事务和更老版本的数据对象。
优选地,使用事务的结束时间作为新的数据对象的提交时间。
优选地,所述元数据包含:事务的开始时间、事务的结束时间、指向差异日志的指针diff_log、指向检查点日志的指针cp_log以及事务的状态。
根据本发明提供的一种可扩展的持久性事务内存的工作方法,采用上述的可扩展的持久性事务内存,执行包括:开始事务、读对象、写对象以及提交事务中的一个或任意多个。
优选地,所述开始事务包括:
将事务标记为ACTIVE;
设置事务的开始时间戳为系统全局的时间戳,结束时间戳为无穷大。
优选地,所述读对象包括:
检查对象的pending指针,如果不为空,且pending指向对象是由当前事务创建的,则直接返回pending指向的对象;
如果对象的copy指针为空,则直接返回原始对象;
遍历该对象的版本链,从该对象copy指针指向的版本开始,判断如果该版本的提交时间(commitTS)小于当前事务的开始时间,则返回此版本的对象;如果所有版本都不符合上述条件,则返回原始对象。
优选地,所述写对象包括:
如果当前事务已经修改过该对象,直接返回该对象的最新版本;
在为当前事物事务的日志预分配的DRAM区域中申请新版本对象的日志空间,并初始化其指向事务的指针;
原子性地执行以下操作:如果原始对象的nextpending指针是否不为空,则将其指向刚刚初始化的新对象。如果失败,则取消写操作,稍后再重试;
如果操作成功,设置新对象指向原始对象的指针,并将原始最新版本对象的内容复制到新对象中,返回新对象。
优选地,所述提交事务包括:
将当前事务的状态标记为INACTIVE;
进入持久化阶段:将当前事务修改对象的差异日志写入非易失存储器,将日志中的持久化时间戳设置为全局的时间戳;
进入并发提交阶段:将pending指向的对象置于版本链头部后将pending置为空,标记进入关键路径,将事务的提交时间设置为全局的时间戳加1的值,标记退出关键路径,将全局时间戳原子性地加1,分别更新每个新版本对象的提交时间;
进入写回阶段:首先探测宽限期,如果有开始时间比当前事务提交时间还要早的处于ACTIVE状态的事务,则等待事务结束;再使用所有的最新版本数据对象覆写原始数据对象。
与现有技术相比,本发明具有如下的有益效果:
1、本发明提出了使用MVCC(Multi-version Concurrency Control,多版本并发控制)技术实现快照隔离,并将新版本对象数据储存在DRAM中,通过差异日志和检查点日志来保证持久性,有效地减少了写操作次数。
2、本发明提出了三阶段提交协议,通过将提交过程的提交和持久化解耦,显著降低读操作的阻塞时间。
3、本发明提出了一种内存布局设计方案,使用事务的提交时间作为每个新版本对象的提交时间,高效地解决了使得所有新对象同时可见的问题。
4、本发明提出让每个线程将维护自己的环形日志空间,显著提升了系统的并行度,避免日志回收成为系统性能的瓶颈。
5、本发明提出了一套完整的可持久化事务性内存的设计方案,具备较高的吞吐率和可扩展性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明内存的布局设计图;
图2为开始事务流程图;
图3为读对象流程图;
图4为写对象流程图;
图5为提交事务流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
在传统的PTM中,由于只维护了数据对象的一个版本,在一个线程写该对象的时候会阻塞其它线程对该对象的读请求。本发明提出使用快照隔离来解决这一问题。快照隔离指的是同一事务中对相同对象的读操作会返回相同的结果。快照隔离一般依赖多版本并发控制(MVCC)来实现,MVCC为每一个对象维护了多个版本,每一个版本的元数据中都保存有其提交的时间戳,读操作会根据当前事务的时间戳选择合适的版本。在快照隔离的设计中,写操作会创建一个新的版本,因此几乎不会阻塞对旧版本的读操作。
但是这也带来了新的问题:
如何避免频繁写入NVM?
如果版本太多,如何快速找到正确的版本?
如何避免持久化成为系统性能的瓶颈?
如何避免日志回收成为系统性能的瓶颈?
本发明包含以下技术点:
1.采用MVCC(Multi-version concurrency control,多版本并发控制)的设计,本发明提出将新版本数据对象储存在DRAM中,以减少对NVM的写入。每一个对象的多个版本通过新版本数据对象上的next指针构成版本链。新的版本会被加入到版本链的头部,以便新的事务更快地找到正确的版本。为了减少寻找版本的时间,最新版本会被周期性地写回原始对象,进而缩短版本链以节省空间。
2.使用差异日志和检查点日志保证系统的持久性。差异日志被用来记录事务中对数据对象的修改情况,它只会记录新旧版本的差异,因此有效减少了对NVM的写入。当系统崩溃后进行错误恢复时,可以根据差异日志来恢复丢失的版本。检查点日志被用来记录较新的对象版本,当DRAM中的较新版本被写回原始对象过程中系统崩溃时,可以依据检查点日志中的对象信息进行错误恢复。同时,在检查点日志中记录新的版本信息时,相对应的差异日志中的差异信息可以被删除。
3.采用检测宽限期的方法来决定写回的时机。宽限期指的是所有进程都至少完成了一次事务的时间段。因此在写新版本完成并经历一个宽限期后,后续的读操作不可能读到原始版本。这时原始版本可以安全地被新版本覆写。
4.使用三阶段提交协议,三阶段指的是持久化阶段、并发提交阶段和写回阶段。在持久化阶段,所有的新版本对象的差异信息会被写入NVM;在并发提交阶段,事务会更新其提交时间戳,并原子性地更新所有对象的时间戳;在写回阶段,所有的新版本对象会覆写原始版本。这种设计使得持久化操作对读操作几乎没有影响:在持久化阶段,读操作会读到原始版本;在并发提交阶段会暂时地阻塞读操作,但是时间很短;在写回阶段读操作会读取到新版本。
图1是本发明提出的可扩展的持久性事务内存的布局设计图。内存布局由四个部分组成:位于NVM中的原始数据对象、位于NVM中的每个事务维护的日志、位于DRAM中的新版本对象以及位于DRAM中的每个线程维护的元数据。在原始数据对象中使用一个指针copy来指向新版本对象,新版本对象使用指针(命名为next并初始化为0)来指向下一个版本,它们共同组成了该对象的版本链。在原始数据中使用另一个指针(命名为pending并初始化为0)来指向当前正在被修改的版本(该版本被储存在DRAM中),同时该指针同时还充当锁的作用,只有当pending为空的时候才可以执行新的写操作(新的写者获得锁)。在原始对象中使用指针cp_latest指向最新的检查点日志中备份的对象。为每个线程预先分配日志区域,每个事务从当前线程的日志区域申请日志空间。日志包括两部分:差异日志和检查点日志。差异日志以键值对的方式记录新版本对象对原始对象的修改,检查点日志是原始对象的一个备份,其中包含一个source指针指向原始对象。在新版本对象中除了上述的指向下一个版本的next指针外,还有一个指针writer指向当前事务。我们直接使用事务的结束时间(endTS)作为新版本的提交时间,这样只需要修改一处,就能达到原子性修改所有新版本时间戳的效果。在线程的元数据中记录了当前事务的元数据(每个线程执行时最多运行一个事务),主要包含:事务的开始(startTS)与结束时间(endTS)、指向差异日志的指针(diff_log)、指向检查点日志的指针(cp_log)、事务的状态(status)等信息。
本发明提出的可扩展的持久性事务内存的工作方法,在上述内存结构的基础上,包括开始事务、读一个对象、写一个对象、提交事务以及故障恢复,它们的具体步骤分别如下:
如图2所示,开始事务的具体步骤:
1.将事务标记为ACTIVE;
2.设置事务的开始时间戳为系统全局的时间戳,结束时间戳为无穷大。
如图3所示,读操作的具体步骤:
1.检查对象的pending指针,如果不为空,且pending指向对象是由当前事务创建的,则直接返回pending指向的对象;
2.如果对象的copy指针为空,则直接返回原始对象;否则进入步骤3;
3.遍历该对象的版本链,从该对象copy指针指向的版本开始,判断如果该版本的提交时间(commitTS)小于当前事务的开始时间,则返回此版本的对象;如果所有版本都不符合上述条件,则返回原始对象。
如图4所示,写操作的具体步骤:
1.如果当前事务已经修改过该对象,直接返回该对象的最新版本即可;
2.在为当前事务的预分配的DRAM区域中申请新版本对象的空间,并初始化其指向事务的指针;
3.原子性地执行以下操作:如果原始对象的pending指针是否不为空,则将其指向刚刚初始化的新对象。如果失败,则取消写操作,稍后再重试;
4.如果操作成功,设置新对象指向原始对象的指针,并将最新版本对象的内容复制到新对象中,返回新对象。
如图5所示,提交事务的具体步骤:
1.将当前事务的状态标记为INACTIVE;
2.进入三阶段提交的持久化阶段:将当前事务修改对象的差异日志写入NVM,将日志中的持久化时间戳设置为全局的时间戳;
3.进入并发提交阶段:将pending指向的对象置于版本链头部后将pending置为空,标记进入关键路径,将事务的提交时间设置为全局的时间戳加一的值,标记退出关键路径,将全局时间戳原子性地加一,最后分别更新每个新版本对象的提交时间;
4.进入写回阶段:首先探测宽限期,如果有开始时间比当前事务提交时间还要早的处于ACTIVE的事务,则等待其结束。等待结束后,就不会有新的事务读取到原始对象,因此原始对象就可以被安全地删除。现在便可以将版本链中最新的版本写回原始对象,但是此时还不能释放版本链中的最新版本的内存,因为它仍可能被其他事务引用,因此我们另外再等待一个宽限期,这就保证了新的事务不会访问到版本链中的对象,版本链也可以被安全的删除,copy指针可以被置为0。
需要说明的是,上述写回阶段不必出现在每次提交中,当访问版本链的次数过多或者储存新版本的空间不足时才会触发上述写回操作。为了避免集中式的写回操作成为系统的瓶颈,本发明提出使用一个单独的线程来将写回操作广播到所有工作线程,每个接收到信号的线程都会各自独立地完成写回操作。需要注意的是,写回仅仅针对最新版本,因此大部分的版本不会被写回,显著减少了NVM的写入次数。
故障恢复的具体步骤:
1.遍历所有的检查点日志,将检查点日志的内容复制到原始版本中,并将原始版本指向检查点日志的指针置为空;
2.遍历所有的差异日志,按时间先后顺序重做提交时间晚于检查点提交时间的更改,这样可以保证原始对象处于最新状态。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (8)

1.一种可扩展的持久性事务内存,其特征在于,包括:非易失存储器和动态随机储存器;
所述非易失存储器中包括:原始数据对象、新版本数据对象以及每个事务维护的日志,所述日志包含差异日志和检查点日志,在原始数据对象中使用指针copy指向对应的新的数据对象组成的版本链,使用指针pending指向正在被修改尚未提交的数据对象;
所述动态随机储存器中包括:每个线程维护的元数据;
所述指针copy和pending初始化为0,所述指针pending还充当锁的作用,只有当所述指针pending为空的时候才能执行新的写操作;
每个所述新的数据对象包含三个指针,分别指向原始数据对象、当前事务和更老版本的数据对象。
2.根据权利要求1所述的可扩展的持久性事务内存,其特征在于,使用事务的结束时间作为新的数据对象的提交时间。
3.根据权利要求1所述的可扩展的持久性事务内存,其特征在于,所述元数据包含:事务的开始时间、事务的结束时间、指向差异日志的指针diff_log、指向检查点日志的指针cp_log以及事务的状态。
4.一种可扩展的持久性事务内存的工作方法,其特征在于,采用权利要求1至3任意一项所述的可扩展的持久性事务内存,执行包括:开始事务、读对象、写对象以及提交事务中的一个或任意多个。
5.根据权利要求4所述的可扩展的持久性事务内存的工作方法,其特征在于,所述开始事务包括:
将事务标记为ACTIVE;
设置事务的开始时间戳为系统全局的时间戳,结束时间戳为无穷大。
6.根据权利要求4所述的可扩展的持久性事务内存的工作方法,其特征在于,所述读对象包括:
检查对象的pending指针,如果不为空,且pending指向对象是由当前事务创建的,则直接返回pending指向的对象;
如果对象的copy指针为空,则直接返回原始对象;
遍历该对象的版本链,从该对象copy指针指向的版本开始,判断如果该版本的提交时间小于当前事务的开始时间,则返回此版本的对象;如果所有版本都不符合提交时间小于当前事务的开始时间,则返回原始对象。
7.根据权利要求4所述的可扩展的持久性事务内存的工作方法,其特征在于,所述写对象包括:
如果当前事务已经修改过该对象,直接返回该对象的最新版本;
在为当前事物事务的日志预分配的DRAM区域中申请新版本对象的日志空间,并初始化其指向事务的指针;
原子性地执行以下操作:如果原始对象的nextpending指针是否不为空,则将其指向刚刚初始化的新对象,如果失败,则取消写操作,稍后再重试;
如果操作成功,设置新对象指向原始对象的指针,并将原始最新版本对象的内容复制到新对象中,返回新对象。
8.根据权利要求4所述的可扩展的持久性事务内存的工作方法,其特征在于,所述提交事务包括:
将当前事务的状态标记为INACTIVE;
进入持久化阶段:将当前事务修改对象的差异日志写入非易失存储器,将日志中的持久化时间戳设置为全局的时间戳;
进入并发提交阶段:将pending指向的对象置于版本链头部后将pending置为空,标记进入关键路径,将事务的提交时间设置为全局的时间戳加1的值,标记退出关键路径,将全局时间戳原子性地加1,分别更新每个新版本对象的提交时间;
进入写回阶段:首先探测宽限期,如果有开始时间比当前事务提交时间还要早的处于ACTIVE状态的事务,则等待事务结束;再使用所有的最新版本数据对象覆写原始数据对象。
CN201910726002.1A 2019-08-07 2019-08-07 可扩展的持久性事务内存及其工作方法 Active CN110515705B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910726002.1A CN110515705B (zh) 2019-08-07 2019-08-07 可扩展的持久性事务内存及其工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910726002.1A CN110515705B (zh) 2019-08-07 2019-08-07 可扩展的持久性事务内存及其工作方法

Publications (2)

Publication Number Publication Date
CN110515705A CN110515705A (zh) 2019-11-29
CN110515705B true CN110515705B (zh) 2022-03-11

Family

ID=68624322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910726002.1A Active CN110515705B (zh) 2019-08-07 2019-08-07 可扩展的持久性事务内存及其工作方法

Country Status (1)

Country Link
CN (1) CN110515705B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414320B (zh) * 2020-02-20 2023-06-06 上海交通大学 基于日志文件系统的非易失内存构建磁盘cache的方法及系统
CN111638996B (zh) 2020-05-14 2023-04-11 华中科技大学 一种保证非易失内存中故障原子性的方法及系统
CN112597254B (zh) * 2020-12-07 2023-02-03 中国科学院计算技术研究所 面向混合dram-nvm主存的联机事务型数据库系统
CN113722052B (zh) * 2021-08-23 2024-02-20 华中科技大学 一种基于数据双版本的非易失内存更新方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1864137A (zh) * 2003-08-06 2006-11-15 甲骨文国际公司 具有高效版本控制的数据库管理系统
CN104537037A (zh) * 2014-12-23 2015-04-22 杭州华为数字技术有限公司 一种处理数据库日志的方法及装置
CN109871386A (zh) * 2017-12-04 2019-06-11 Sap欧洲公司 非易失性存储器中的多版本并发控制(mvcc)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014035377A1 (en) * 2012-08-28 2014-03-06 Hewlett-Packard Development Company, L.P. High performance persistent memory
CN104881371B (zh) * 2015-05-29 2018-02-09 清华大学 持久性内存事务处理缓存管理方法与装置
CN108897642B (zh) * 2018-06-27 2020-11-27 清华大学 持久性事务内存系统中日志机制的优化方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1864137A (zh) * 2003-08-06 2006-11-15 甲骨文国际公司 具有高效版本控制的数据库管理系统
CN104537037A (zh) * 2014-12-23 2015-04-22 杭州华为数字技术有限公司 一种处理数据库日志的方法及装置
CN109871386A (zh) * 2017-12-04 2019-06-11 Sap欧洲公司 非易失性存储器中的多版本并发控制(mvcc)

Also Published As

Publication number Publication date
CN110515705A (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
CN110515705B (zh) 可扩展的持久性事务内存及其工作方法
US11386065B2 (en) Database concurrency control through hash-bucket latching
US5581750A (en) System and method for improving data recovery performance
US10360149B2 (en) Data structure store in persistent memory
US9798630B2 (en) Hardware-supported memory temporal copy
US7676691B2 (en) Systems and methods for providing nonlinear journaling
US8380689B2 (en) Systems and methods for providing nonlinear journaling
US7822932B2 (en) Systems and methods for providing nonlinear journaling
KR101470713B1 (ko) 버퍼링된 저장을 이용하여 트랜잭션들을 가속화하기 위한 메커니즘들
US5850507A (en) Method and apparatus for improved transaction recovery
US5369757A (en) Recovery logging in the presence of snapshot files by ordering of buffer pool flushing
US7383290B2 (en) Transaction processing systems and methods utilizing non-disk persistent memory
US7035881B2 (en) Organization of read-write snapshot copies in a data storage system
US7752402B2 (en) Systems and methods for allowing incremental journaling
EP2972891B1 (en) Multiversioned nonvolatile memory hierarchy for persistent memory
US8595446B2 (en) System and method for performing dynamic mixed mode read validation in a software transactional memory
EP3493071B1 (en) Multi-version concurrency control (mvcc) in non-volatile memory
US8103838B2 (en) System and method for transactional locking using reader-lists
US20180300083A1 (en) Write-ahead logging through a plurality of logging buffers using nvm
KR20120104364A (ko) 무제한 트랜잭션 메모리(utm) 시스템에서의 모드 전환의 수행
CN107315746B (zh) 基于非易失性主存的高效事务文件系统构建方法
CN113220490A (zh) 异步写回持久化内存的事务持久化方法及系统
CN112597254A (zh) 面向混合dram-nvm主存的联机事务型数据库系统
US20050203974A1 (en) Checkpoint methods and systems utilizing non-disk persistent memory
CN113722052B (zh) 一种基于数据双版本的非易失内存更新方法

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