Font Size: a A A

The Framework For Object Persistence In High-level Languages Based On Non-volatile Memory

Posted on:2020-12-18Degree:MasterType:Thesis
Country:ChinaCandidate:H XuFull Text:PDF
GTID:2428330623463648Subject:Computer technology
Abstract/Summary:PDF Full Text Request
With the rapid development of computer architectures and especially memory technology,Non-Volatile Memory is drawing more and more attention.It provides not only byte-addressable access with close-to-DRAM speed,but also disk-like persistence,so it is regarded as the direction of the development in next-generation memory hierarchy.However,Non-Volatile has not been well exploited in many high-level languages like Python and JavaScript to handle persistent object.Traditionally,applications written by these high-level languages rely on external storage system like file system or database system to store the objects.However,this not only results in extra cost in data transformation between memory and storage,but also requires objects' serialization and deserialization.Due to the two problems mentioned above,this paper introduces a framework for object persistence in high-level languages based on Non-Volatile Memory,aiming to provide fast and efficient way to handle persistent data for object-oriented programming.Firstly,the framework enables programmers to create and access persistent objects as if native objects.Secondly,the framework provides persistent types corresponding to native types,so that data in persistent objects can be directly access.In addition,since the data is persistent,the framework guarantees that data could be recovered to a consistent state when programs abort unexpectedly.The framework also provides garbage collection(GC)for the persistent objects,so that the useless data could be collected at proper time.In general,the contents of this paper are listed below:(1)Proposing management of persistent objects in high-level languages.Based on the object-oriented programming in high-level languages,this paper provides a persistent object pool to manage persistent objects.The pool provides allocation,management,addressing,and fragment handling of the persistent memory,so that persistent objects to can be stored,accessed,modified or released.(2)Proposing persistent data structures in high-level languages.Based on the types and structures of native objects in high-level languages,this paper provides corresponding persistent types and structures.This enables programmers to persist native objects in persistent object pool.(3)Proposing guarantee of data consistency.Since currently Non-Volatile Memory only support 8-bytes atomic write,this paper firstly provide strategy to guarantee the atomic write for arbitrary length in persistent objects.In the meantime,this paper also provides log-based transaction to support data consistency in practice.(4)Proposing Garbage Collection for persistent objects in high-level languages.This paper proposes an efficient Garbage Collection for objects in persistent object pool,which would release the useless persistent objects at proper time and free the corresponding persistent memory.Meanwhile,the Garbage Collection is also crash-consistent,which means that it could survived program crash,and the pool can be recovered to a consistent state when it is reloaded.
Keywords/Search Tags:Non-Volatile Memory, High-Level Languages, Persistent Objects, Garbage Collection
PDF Full Text Request
Related items