[发明专利]基于HTM和NVRAM的内存事务性计算的持久性方法有效
申请号: | 201610005809.2 | 申请日: | 2016-01-05 |
公开(公告)号: | CN105512342B | 公开(公告)日: | 2019-03-26 |
发明(设计)人: | 陈海波;陈榕;臧斌宇;魏星达 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F16/90 | 分类号: | G06F16/90 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 郭国中 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 htm nvram 内存 事务性 计算 持久性 方法 | ||
本发明提供了一种基于HTM和NVRAM的内存事务性计算的持久性方法,包括:步骤1:分配NVRAM,并用分配的NVRAM记录HTM执行的事务中修改的数据;步骤2:检查是否需要清理NVRAM,若需要清理,则将该NVRAM的数据写回到磁盘。本发明利用NVRAM和HTM的特性,使得事务性的程序不需要将数据记录到磁盘即可以返回,这样可以低延迟的实现内存事务计算的持久性。本发明能够显著降低数据库系统事务执行的延迟,提升数据库系统的资源利用率以及应用服务的性能。
技术领域
本发明涉及内存数据库事务处理领域,具体地,涉及一种基于HTM和NVRAM的内存事务性计算的持久性方法。
背景技术
数据库事务的持久性是数据库系统的重要特征,直接关系到用户的数据是否会丢失。现有的解决方案主要为将数据写到磁盘中再提交事务。这样所带来的问题是由于磁盘读写具有较高的延迟,这样会显著的增加内存事务计算的延迟。
硬件事务性内存HTM(Hardware transactional memory)是事务性内存计算技术,提供了程序执行的原子性和隔离性。并且HTM非常高效的实现了这些特性。然而HTM并没有提供持久性的支持。
持久性内存NVRAM(Non-volatile RAM)为一种新的内存技术,有多种实现,其都保证如果数据被写到该内存中则可确保数据的持久性。由于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的事务开始分配。
与现有技术相比,本发明具有如下的有益效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610005809.2/2.html,转载请声明来源钻瓜专利网。