当前位置:主页 > 科技论文 > 软件论文 >

面向非易失性内存的高级编程语言对象持久化方法研究

发布时间:2021-08-03 05:16
  随着计算机体系结构和内存技术的发展,非易失性内存(Non-Volatile Memory)及其相关技术正受到越来越多的关注。它不仅提供了可按字节寻址的,接近DRAM的访问速度,还提供了类似传统磁盘的数据持久性,因此被认为是下一代内存—存储体系结构的发展方向。然而,许多高级语言(如Python,JavaScript等)却缺少合理并高效的方法来利用非易失性内存处理需要持久化的对象。在过去,由这些高级语言编写的应用程序往往依赖于外部的存储系统(如文件系统,数据库系统)来处理这些数据。但是,这一方面导致了数据在内存和存储之间传递的开销,另一方面,由于对象的内存结构与存储的结构往往有所不同,这使得数据在传递的过程中往往需要进行序列化和反序列化。针对以上两个问题,本文提出了面向非易失性内存的高级语言对象持久化框架,旨在为高级语言的面向对象编程提供高效的数据持久化方案。首先,该框架使得高级语言可以像对待普通对象一样,创建和访问持久对象。另外,该框架为持久对象设计了持久内存结构,这使得程序可直接访问持久对象,而不需要数据在存储和内存中传输。另外,由于数据具有持久性,该框架能够保证这些对象中的数据可以在... 

【文章来源】:上海交通大学上海市 211工程院校 985工程院校 教育部直属院校

【文章页数】:83 页

【学位级别】:硕士

【部分图文】:

面向非易失性内存的高级编程语言对象持久化方法研究


–1传统的高级语言持久对象的处理方法

持久对象,高级语言,方法


第二章基于NVM的对象持久化总体框架上海交通大学硕士学位论文图2–1传统的高级语言持久对象的处理方法Figure2–1Traditionalwaystohandlepersistentobjectsinhigh-levellanguages然而,随着近年来NVM技术的发展,上述的结构有望得到根本上的优化。由于NVM提供了接近DRAM的访问速度,可按字节寻址的访问特性,以及存储的持久性,因此上述的读,写,更新可通过如图2–2过程来完成。图2–2基于NVM的高级语言持久对象处理方法Figure2–2NVM-basedwaystohandlepersistentobjectinhigh-levellanugages在这里,NVM设备被抽象为一块连续的持久内存,它通过mmap的方式被映射到进程空间中,从而可以在该进程中直接通过指针访问。持久对象在内存和持久内存中有着相同的结构,因此对对象直接的读,写,和更新即是对持久对象的—10—

框架图,框架,持久对象


上海交通大学硕士学位论文第二章基于NVM的对象持久化总体框架读,写,和更新。这种新型的结构从以下三个方面显著提升了处理持久对象的性能:1.数据仅存在一份副本,减少了数据拷贝带来的开销。2.同时,由于数据结构的同一性,不再需要序列化和反序列化。3.可直接通过内存的读写操作访问持久对象,因此不再有文件I/O层的开销。然而,这种存储结构结构要求持久对象采用额外的设计来保证其数据的可用性。首先,持久对象的结构中不能有普通指针的存在。因为指针是个与进程相关的虚拟地址,会在程序重启时失效。第二,持久对象需要额外的操作来保证数据的一致性,对于传统结构来说这往往是通过文件系统或者数据库系统来保证的。最后,持久对象需要建立额外的垃圾回收机制,该机制不仅保证了持久对象中的垃圾能正确地被回收,还要有经受程序异常中断的能力。但尽管如此,本研究后续的实验表明,该结构相对与传统结构而言仍然可以带来很大的性能提升。2.2系统框架本研究针对高级语言中持久对象设计的整体框架图如图2–3所示。图2–3总体框架Figure2–3Overallframework如上图所示,本研究设计的高级语言对象持久化解决方案的总体框架包含以下三个部分:—11—


本文编号:3319011

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3319011.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户01c81***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com