基于存储级内存的内存数据快速持久化的方法技术

技术编号:13073948 阅读:40 留言:0更新日期:2016-03-30 09:52
本发明专利技术提供了一种基于存储级内存的内存数据快速持久化的方法。该方法基于平坦的混合内存架构,通过用户层和内核层的协同设计实现。包括:将一定容量的SCM以及存储于此SCM上的数据抽象为一块持久区域;在用户层设计应用程序编程接口(API),响应应用程序对持久区域的访存;扩展内核的Buddy system,实现异构混合内存管理;在设计持久区域管理器,实现包括持久区域的持久映射、持久区域元数据管理等功能。本发明专利技术可以避免在传统存储架构下,数据持久化所需的数据线性化过程,同时可实现持久数据的直接访问和原地更新,简化了传统架构下软件栈的层级调用,可有效缓解I/O瓶颈,提高持久数据的访存性能。

【技术实现步骤摘要】

本专利技术属于持久化内存领域的基于混合内存架构的系统软件技术,具体地,设及 一种利用非易失内存的内存管理、进程地址空间管理、地址映射技术的基于存储级内存的 内存数据快速持久化的方法。
技术介绍
随着大数据的到来,数据量的不断增加和数据类型的日趋复杂为内存数据持久化 提出了更高的要求。在数据处理和计算过程中,系统软件的元数据、应用程序数据W及高性 能计算的计算状态等各种类型的数据都可能需要被高效的持久化。目前,内存数据的持久 化一般是依赖于操作系统提供的一些持久原语(文件或者块I/O)或者数据库系统运两种技 术。当运用系统原语实现持久化时,应用程序需要自行关注程序代码的原子性W确保持久 更新的完整性,同时还要设及内存数据的序列化/反序列化操作。而数据库系统并不能够很 好地应对系统软件元数据的持久化问题,且面临数据阻抗不匹配问题的处理。综上所述,当 前的内存数据持久化的方法都会引入应用程序的附加处理,运无疑增加了应用程序设计的 复杂度,层级的软件找和频繁的I/O操作也大大降低了数据持久化的效率。 非易失内存技术的发展,为内存数据持久化提供了更为有效的解决方案。非易失 内存由于其非易失性、可字节寻址、较低的访存延迟W及高存储密度等优良特性,成为学术 界和商界的关注热点。M.K.Qureshi等人在M.K.Qureshi,V.S;rinivasan,andJ.A.Rivers. 基于相变存储器的高性能可扩展的主存系统.ACMSIGARCHComputerArchitecture News,VO1.37,no. 3,pp. 24-33中提出用非易失内存构建主存系统的设计,并给出了一定的 性能测试指标。J.Y.Jung等人在J.Y.JungandS.Cho.Memorage:基于新兴持久性存储器的 的适应性主内存和存储架构.Proceedingsofthe27thinternationalACMconference onInternationalconferenceonsupercomputing.ACM,2013,pp. 115-126中探讨了异构 混合内存个构建W及对系统软件设计的影响等。其研究表明通过内存总线接入计算机系 统,与DRAM-起构建混合内存系统,可W最大程度得利用非易失存储器件的优良特性,同时 可W为系统软件和应用软件的研发提供更广阔的设计空间。 经检索,H.Volos等在H.Veles,A.J.Tack,andM.M.Swift.Mnemosyne:轻型的持久 内存系统.ACMSIGARCHComputerArchitecture化ws,vol.39,no.l.ACM,2011,卵.91-104中提出了一种基于非易失内存技术的持久内存系统,该持久内存系统存在如下缺陷: iW.Veles的持久内存系统的映射机制完全依赖于传统的文件系统的映射机制; 2)其持久化内存数据需要映射到固定的虚拟地址才可保证其地址映射的持久化。 目前没有发现同本专利技术类似技术的说明或报道,也尚未收集到国内外类似的资 料。
技术实现思路
[000引针对现有技术中存在的上述缺陷,本专利技术的目的是利用存储级内存天然的非易失 性w及、高密度、低延迟等优良特性,设计并实现一种基于存储级内存的内存数据快速持久 化的方法。本专利技术通过提供API(ApplicationProgrammingInte;rface,应用程序编程接 口),为应用程序提供可W直接访存SCM(StorageClassMemo巧,存储级内存)的接口;在内 核层,设计持久区域管理器,实现持久区域逻辑和物理属性的映射W及持久区域元数据的 管理等,使得持久区域可W持久于应用程序或系统的重运行过程。为实现上述目的,本专利技术是通过W下技术方案实现的。 -种,包括如下步骤: 步骤1:将一定容量的存储级内存(SCM)与存储于此SCM的持久数据抽象为一块持 久区域; 步骤2:设计供应用程序调用的API接口,响应应用程序对持久区域访问的访存请 求; 步骤3:对持久区域映射的用户程序进程地址空间进行动态分配和管理; 步骤4:扩展内核伙伴系统(Buddysystem),实现内核对SCM的管理和分配; 步骤5:设计持久区域管理器,包括持久映射表W及持久对持久映射表的处理函 数,实现持久区域元数据的管理W及对持久区域的逻辑和物理属性的映射;步骤6:设计针对持久区域访存的缺页处理函数。 优选地,在所述步骤1中,每一块持久区域均通过应用程序定义一个唯一的ID来标 识,记为P_ID。 优选地,在所述步骤2中,在用户层设计API接口,应用程序对持久区域的访问,均 通过API接口触发请求;所述API接口能够为用户程序提供动态地申请和回收持久区域的访 问功能,同时,申请持久区域访问时,将持久区域的唯一ID作为API调用参数。 优选地,在所述步骤3中,在动态分配进程地址空间时,首先在用户程序进程地址 空间的地址映射段标识4k整数倍的内存空间,然后在该标识的内存空间调用内存分配算 法,进行动态进程地址空间分配。 优选地,在所述步骤4中,包括如下步骤: 在内核层对Linux内核进行扩展,增加一个SCM_Z0肥内存域,用来描述SCM,并通过 运一扩展,实现Buddysystem对DRAM和SCM的统一管理; 为了提高存储内存的耐用性,在扩展Buddysystem的同时,改进Buddysystem对 于SCM的分配和回收算法;即有效利用Buddysystem的双向链表,在页面回收时,将被释放 的页面链入到相应链表的表尾,从而均匀化页面的访存频度,减少热点页面的形成,延长 SCM的写寿命;增加一个写频度临界链表,将超过写频度阔值的页面加入到写频度临界链表,避 免由于SCM的物理故障造成的物理数据访存错误。 优选地,在所述步骤5中,所述持久区域管理器用于对SCM中所有持久区域进行管 理,通过持久区域管理器实现持久区域的逻辑和物理属性的映射W及持久区域元数据的管 理,具体为: 逻辑和物理属性的映射通过一个Ξ元组<P_ID,P_add;rJ_size>形成持久映射记 录,其中P_ID为持久区域的唯一标识,P_acMr为存储持久区域的物理起始地址,P_size为持 久区域所占空间的大小;持久映射表即为多条持久映射记录形成的散列表,该散列表不仅 存储了每个持久区域的逻辑和物理属性的映射关系,同时记录了每个持久区域的大小w及 起始地址等物理布局信息,因此当创建、删除或更新一个持久区域时,都将触发对持久映射 表的插入、删除或更新一条持久映射记录的操作。此外在系统初始化时,Buddysystmem也 需要对持久映射表进行扫描来构建持久区域的空闲链表; 通过tID对持久映射表进行检索来获取持久区域的P_acklr,,该检索通过哈希算 法来提高检索速度,具体为:1)将?_10的字符序列表示转换成二进制表示形式; 2)通过混合哈希算法,对128位的二进制P_ID进行处理,最终得到24位的存储序列 号; 3)由此存储序列号再计算得到P_ID所对应的持久映射记录的存储地址; 将?_10二进制表示形式的最高位作为该持久映射记录是否有效的标志:其中,0表 示持久映射记录无效;1表示持久映射记录准确、完整且有效。 优本文档来自技高网
...

【技术保护点】
一种基于存储级内存的内存数据快速持久化的方法,其特征在于,包括如下步骤:步骤1:将一定容量的SCM与存储于此SCM的持久数据抽象为一块持久区域;步骤2:设计供应用程序调用的API接口,响应应用程序对持久区域访问的访存请求;步骤3:对持久区域映射的用户程序进程地址空间进行动态分配和管理;步骤4:扩展内核Buddy system,实现内核对SCM的管理和分配;步骤5:设计持久区域管理器,包括持久映射表以及持久对持久映射表的处理函数,实现持久区域元数据的管理以及对持久区域的逻辑和物理属性的映射;步骤6:设计针对持久区域访存的缺页处理函数。

【技术特征摘要】

【专利技术属性】
技术研发人员:李素敏黄林鹏周杰朱佳顺吴仁克
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1