非易失性主存中事务数据存储优化方法及系统的制作方法

文档序号:8457225阅读:379来源:国知局
非易失性主存中事务数据存储优化方法及系统的制作方法
【技术领域】
[0001] 本发明涉及非易失性主存存储技术领域,特别涉及一种非易失性主存中事务数据 存储优化方法及系统。
【背景技术】
[0002] 非易失性主存(Non-Volatile Memory,NVM)是一种新型的内存,它具有字节可寻 址、掉电非易失、存储密度高、不需要频繁的刷新、能耗低的优点。同时,它也存在不足之处, 如相对较长的写延时,以及有限的写次数限制。非易失性内存对计算机系统结构、系统软 件、软件库以及应用程序都有很多新的启示。非易失性内存设备可以与现有的DRAM设备共 同构成混合主存,其中应用程序中临时性的数据存储在DRAM上,而把需要持久保存的数据 存储在NVM上。NVM用作内存时,需要对现有的体系结构和软件架构进行重新设计或者优 化。
[0003] 目前的一种方法是使用软件事务内存(Software Transactional Memory,STM)技 术,该技术能够使NVM维持事务特性,即原子性(Atomicity)、一致性(Consistency)、隔离 性(Isolation)和持久性(Durability)。同时,由于STM是基于现有的编程模型,这种使 用STM技术对NVM进行管理和控制的方式,易于程序员接受和使用。使用STM对NVM进行 管理的通用模型,是建立非易失堆(Non-Volatile Heaps)。为了保证NVM内存在使用过程 中的一致性和原子性,STM通常采用写前日志(Write-Ahead Logging,WAL),包括重做日志 (Redo Log)和撤销日志(Undo Log)。
[0004] 在DRAM-NVM混合主存存储模型中,DRAM用于存放暂时性的数据,而NVM用于存放 需要持久化的数据。而在Non-Volatile Heaps编程模型中,在事务执行的过程中,持久性 的数据包括日志(Log)和非易失性内存数据(Persistent Data)。现有的存储模型中,Log 和Persistent Data是不做区分、一致对待的。然而,一方面由于NVM设备本身具有的缺点, 即较长的写延时,导致事务执行时间变长;另一方面,由于NVM本身的写寿命有限,采用Log 技术时,Log数据至少是Persistent Data的一倍,导致NVM设备被非程序本身需要的数据 消耗掉一半。
[0005] 目前的一种相关技术为NVM Duet。NVM Duet是将PCM用于一致主存,即既用于存 储暂时性数据,又用来存储持久性数据。NVM Duet在PCM设备中预存了两组参数,一组数据 保持时间长的参数,一组数据保持时间短的参数。数据保持时间长的参数用来存储持久性 数据,而数据保留时间短的参数用来存储暂时性数据。NVM Duet所指的暂时性数据是工作 内存的数据,不需要持久性和掉电恢复。但是,NVMDuet并没有考虑到持久性写也可以进行 分类存储。

【发明内容】

[0006] 本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。
[0007] 为此,本发明的一个目的在于提出一种非易失性主存中事务数据存储优化方法, 该方法既能够满足系统在发生故障时对一致性的要求,同时能够加速事务执行时对日志的 操作,而且能够有效的延长非易失性内存的使用寿命。
[0008] 本发明的第二个目的在于提供一种非易失性主存中事务数据存储优化系统。
[0009] 为了实现上述目的,本发明第一方面的实施例提出了一种非易失性主存中事务数 据存储优化方法,利用非易失性主存的数据保持时间与写入速度成负相关的性质,在所述 非易失性主存中预存多组写入参数,从中选择两组写入参数,其中,第一组写入参数的数据 保持时间长、写入速度慢,第二组写入参数的数据保持时间短、写入速度快,所述方法包括 以下步骤:判断要存储的事务数据的类型,其中,所述要存储的事务数据的类型包括持久性 数据和日志;如果所述要存储的事务数据为持久性数据,则采用第一组写入参数对所述事 务数据进行存储;如果所述要存储的事务数据为日志,则采用第二组写入参数对所述事务 数据进行存储。
[0010] 根据本发明实施例的非易失性主存中事务数据存储优化方法,把对非易失性内 存的写,分成日志写和数据写两类,日志写采用持久性时间较短的写入参数(第二写入参 数),而数据写采用持久性时间较长的写入参数(第一写入参数),这样既能够满足系统在 发生故障时对一致性的要求,同时能够加速事务执行时对日志的操作,而且能够有效的延 长非易失性内存的使用寿命。
[0011] 另外,根据本发明上述实施例的非易失性主存中事务数据存储优化方法还可以具 有如下附加的技术特征:
[0012] 在一些示例中,还包括:根据所述第一组写入参数和第二组写入参数计算所述非 易失性内存寿命延长比例。
[0013] 在一些示例中,通过以下公式计算所述非易失性内存寿命延长比例:
[0014] Endurance = LogPortionX a +DataPortion,
[0015] 其中,LogPortion为日志写入量占日志和数据总写入量的比例,DataPortion为 数据写入量占日志和数据总写入量的比例,α为第二组写入参数比第一组写入参数的写入 速度提高的倍数。
[0016] 在一些示例中,还包括:将所述非易失性内存划分为数据区和日志区,并利用磨损 均衡算法周期性地将所述数据区和日志区的存储性质进行互换。
[0017] 本发明第二方面的实施例还提供了一种非易失性主存中事务数据存储优化系统, 利用非易失性主存的数据保持时间与写入速度成负相关的性质,在所述非易失性主存中预 存多组写入参数,从中选择两组写入参数,其中,第一组写入参数的数据保持时间长、写入 速度慢,第二组写入参数的数据保持时间短、写入速度快,所述系统包括:判断模块,所述判 断模块用于判断要存储的事务数据的类型,其中,所述要存储的事务数据的类型包括持久 性数据和日志;存储模块,所述存储模块用于在所述要存储的事务数据为持久性数据时,采 用第一组写入参数对所述事务数据进行存储,以及在所述要存储的事务数据为日志时,采 用第二组写入参数对所述事务数据进行存储。
[0018] 根据本发明实施例的非易失性主存中事务数据存储优化系统,把对非易失性内 存的写,分成日志写和数据写两类,日志写采用持久性时间较短的写入参数(第二写入参 数),而数据写采用持久性时间较长的写入参数(第一写入参数),这样既能够满足系统在 发生故障时对一致性的要求,同时能够加速事务执行时对日志的操作,而且能够有效的延 长非易失性内存的使用寿命。
[0019] 另外,根据本发明上述实施例的非易失性主存中事务数据存储优化系统还可以具 有如下附加的技术特征:
[0020] 在一些示例中,还包括:计算模块,所述计算模块用于根据所述第一组写入参数和 第二组写入参数计算所述非易失性内存寿命延长比例。
[0021] 在一些示例中,通过以下公式计算所述非易失性内存寿命延长比例:
[0022] Endurance = LogPortionX a +DataPortion,
[0023] 其中,LogPortion为日志写入量占日志和数据总写入量的比例,DataPortion为 数据写入量占日志和数据总写入量的比例,α为第二组写入参数比第一组写入参数的写入 速度提高的倍数。
[0024] 在一些示例中,还包括:分区模块,所述分区模块用于将所述非易失性内存划分为 数据区和日志区,并利用磨损均衡算法周期性地将所述数据区和日志区的存储性质进行互 换。
[0025] 本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。
【附图说明】
[0026] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变 得明显和容易理解,其中:
[0027] 图1是根据本发明一个实施例的非易失性主存中事务数据存储优化方法的流程 图;
[0028] 图2是根据本发明一个实施例的非易失性主存中事务数据存储优化方法的应用 模型示意图;
[0029] 图3是根据本发明一个实施例的非易失性主存中事务数据存储优化系统的结构
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1