首页> 中国专利> 基于HTM和NVRAM的内存事务性计算的持久性方法

基于HTM和NVRAM的内存事务性计算的持久性方法

摘要

本发明提供了一种基于HTM和NVRAM的内存事务性计算的持久性方法,包括:步骤1:分配NVRAM,并用分配的NVRAM记录HTM执行的事务中修改的数据;步骤2:检查是否需要清理NVRAM,若需要清理,则将该NVRAM的数据写回到磁盘。本发明利用NVRAM和HTM的特性,使得事务性的程序不需要将数据记录到磁盘即可以返回,这样可以低延迟的实现内存事务计算的持久性。本发明能够显著降低数据库系统事务执行的延迟,提升数据库系统的资源利用率以及应用服务的性能。

著录项

  • 公开/公告号CN105512342A

    专利类型发明专利

  • 公开/公告日2016-04-20

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN201610005809.2

  • 发明设计人 陈海波;陈榕;臧斌宇;魏星达;

    申请日2016-01-05

  • 分类号G06F17/30;

  • 代理机构上海汉声知识产权代理有限公司;

  • 代理人郭国中

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2023-12-18 15:29:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-26

    授权

    授权

  • 2016-06-22

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160105

    实质审查的生效

  • 2016-04-20

    公开

    公开

说明书

技术领域

本发明涉及内存数据库事务处理领域,具体地,涉及一种基于HTM和NVRAM 的内存事务性计算的持久性方法。

背景技术

数据库事务的持久性是数据库系统的重要特征,直接关系到用户的数据是否会 丢失。现有的解决方案主要为将数据写到磁盘中再提交事务。这样所带来的问题是 由于磁盘读写具有较高的延迟,这样会显著的增加内存事务计算的延迟。

硬件事务性内存HTM(Hardwaretransactionalmemory)是事务性内存计算技术, 提供了程序执行的原子性和隔离性。并且HTM非常高效的实现了这些特性。然而 HTM并没有提供持久性的支持。

持久性内存NVRAM(Non-volatileRAM)为一种新的内存技术,有多种实现,其 都保证如果数据被写到该内存中则可确保数据的持久性。由于NVRAM的读写的延 迟和传统内存具有相当的延迟,同时比写磁盘要快许多。

尽管HTM可以非常高效的执行,然而其工作集合有限制,因此在HTM的执行 中无法访问过多的内存。同时,由于NVRAM的大小也有限制,因此如何有效的咋 HTM中利用NVRAM来记录事务的修改存在着挑战。由于数据库持久性要求数据 最终会被储存在磁盘中,因此仍需要有效的方法将NVRAM记录的日志最终写回到 磁盘中。

目前,现有的HTM系统通常采用批处理来定期的将事务的修改写到磁盘中来降 低磁盘的开销,这样会带来非常高的延迟。而使用NVRAM的数据库系统并没有使用 HTM来支持数据库事务的隔离性和原子性,这样相比HTM系统吞吐量并不高。因此 如何针对HTM,结合NVRAM,合理设计内存数据库事务持久化方法,减少事务执 行的延迟,高效的实现内存数据库事务的持久性实已成为本领域技术人员亟待解决 的技术难题。

发明内容

针对现有技术中的缺陷,本发明的目的是提供一种基于HTM和NVRAM的内 存事务性计算的持久性方法。

根据本发明提供的基于HTM和NVRAM的内存事务性计算的持久性方法,包 括如下步骤:

步骤1:分配NVRAM,并用分配的NVRAM记录HTM执行的事务中修改的数 据;

步骤2:检查是否需要清理NVRAM,若需要清理,则将该NVRAM的数据写 回到磁盘。

优选地,所述步骤1包括:

步骤1.1:在事务开始前,预先分配NVRAM用来记录事务需要修改的内存数据;

若NVRAM不够时,等待清理程序告知有足够的NVRAM后再进行分配;当NVRAM 分配完成后标记所用的NVRAM为:不可分配;

步骤1.2:事务在进入HTM执行时,当对某些数据进行修改后,将数据的版本号加 一,并将数据的版本号和修改后的值记录到预先分配的NVRAM中。

优选地,所述步骤2包括:

步骤2.1:清理程序定期查看是否有足够的NVRAM可进行分配,若发现没有足够 的NVRAM,则将部分标为不可分配的NVRAM的数据写回到磁盘中,并将这些NVRAM 标记为可用;

步骤2.2:清理程序告知所有等待分配NVRAM的事务开始分配。

与现有技术相比,本发明具有如下的有益效果:

1、本发明中的方法利用NVRAM和HTM的使用较低的延迟来实现数据库事务 持久性,本方法通过在HTM中把数据记录在NVRAM中,使得在NVRAM中的数 据即是已经提交的数据,这样就不需要额外的协议来检查NVRAM的数据是否已经 提交,同时不会给事务执行带来额外的延迟,也不需要等待数据被写回到磁盘中再 提交事务,从而大大降低事务执行的延迟。

2、本发明利用可以直接支持使用HTM的内存数据库系统,最大程度的利用硬件 所提供的性能优势,这样带来的高效的内存数据库系统具有高吞吐量和低延迟,数据库 的整体性能非常好同时还会提升用户的体验。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特 征、目的和优点将会变得更明显:

图1为本发明中基于HTM和NVRAM的内存事务持久性方法的逻辑流程图;

图2为本发明中基于HTM和NVRAM的内存事务持久性方法的NVRAM内存分 配和回收机制原理图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人 员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技 术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于 本发明的保护范围。

本发明采用HTM和NVRAM的硬件技术,实现数据库事务系统的持久性。

具体地,如图1所示,图1为基于HTM和NVRAM的内存事务持久性方法的逻辑 流程图。

步骤S1:事务查看是否有足够的NVRAM来进行分配,如果有则标记需要的 NVRAM为不可分配;若没有足够的NVRAM,则等待足够的NVRAM被标记为可 用后再重新进行分配。

步骤S2:事务在使用HTM执行事务时,如果需要对某个数据进行修改,则将 这个数据的版本号加1,并且将这个数据的新版本号和新的数据记录到步骤S1分配 的NVRAM中。

步骤S3:清理程序定期检查是否有NVRAM被标记为需要清理,若有则将该 NVRAM中的数据写回到磁盘中,随后再将这块NVRAM标记为可分配,并且通知 等待分配的事务开始分配NVRAM。

进一步具体的,NVRAM的分配和清理算法如图2所示,所有的NVRAM被分 为两个大块,其中每个大块又有许多个小段NVRAM可供分配。其中有一个NVRAM 作为当前使用的NVRAM。在步骤S1中每个要执行的事务通过检查当前使用的 NVRAM中是否有足够多的小块内存来记录程序将要进行的修改的数据(图2的白 色块),如果有则直接将这些小块标记为:不可用(图2的黑色块),并开始执行 事务。如果没有则将该大块内存标记为需要清理(图2箭头),同时将当前使用的 NVRAM切换为另一个NVRAM大块。如果此时当前使用的NVRAM的标记仍为需 要清理,则等待其变为可分配。否则在新的当前NVRAM中进行分配NVRAM,并 将分配后的NVRAM标记为:不可分配。

清理程序会定期检查当前是否有大块的标记为需要清理。如果有则将其中的数 据写到磁盘中,当写磁盘操作完成后再将清理的大块标记为可分配。一次清理工作 便完成。

综上所述,本发明提出的基于HTM和NVRAM的内存事务持久性方法,能够不 用等到事务修改的数据被写到磁盘中便可以保证事务的持久性,进而可以更早的提 交事务,大大降低内存事务执行的延迟。从而提高内存数据库事务系统的整体性能 和用户体验。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上 述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改, 这并不影响本发明的实质内容。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号