面向非易失性內(nèi)存的高級編程語言對象持久化方法研究
發(fā)布時間:2021-08-03 05:16
隨著計算機(jī)體系結(jié)構(gòu)和內(nèi)存技術(shù)的發(fā)展,非易失性內(nèi)存(Non-Volatile Memory)及其相關(guān)技術(shù)正受到越來越多的關(guān)注。它不僅提供了可按字節(jié)尋址的,接近DRAM的訪問速度,還提供了類似傳統(tǒng)磁盤的數(shù)據(jù)持久性,因此被認(rèn)為是下一代內(nèi)存—存儲體系結(jié)構(gòu)的發(fā)展方向。然而,許多高級語言(如Python,JavaScript等)卻缺少合理并高效的方法來利用非易失性內(nèi)存處理需要持久化的對象。在過去,由這些高級語言編寫的應(yīng)用程序往往依賴于外部的存儲系統(tǒng)(如文件系統(tǒng),數(shù)據(jù)庫系統(tǒng))來處理這些數(shù)據(jù)。但是,這一方面導(dǎo)致了數(shù)據(jù)在內(nèi)存和存儲之間傳遞的開銷,另一方面,由于對象的內(nèi)存結(jié)構(gòu)與存儲的結(jié)構(gòu)往往有所不同,這使得數(shù)據(jù)在傳遞的過程中往往需要進(jìn)行序列化和反序列化。針對以上兩個問題,本文提出了面向非易失性內(nèi)存的高級語言對象持久化框架,旨在為高級語言的面向?qū)ο缶幊烫峁└咝У臄?shù)據(jù)持久化方案。首先,該框架使得高級語言可以像對待普通對象一樣,創(chuàng)建和訪問持久對象。另外,該框架為持久對象設(shè)計了持久內(nèi)存結(jié)構(gòu),這使得程序可直接訪問持久對象,而不需要數(shù)據(jù)在存儲和內(nèi)存中傳輸。另外,由于數(shù)據(jù)具有持久性,該框架能夠保證這些對象中的數(shù)據(jù)可以在...
【文章來源】:上海交通大學(xué)上海市 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:83 頁
【學(xué)位級別】:碩士
【部分圖文】:
–1傳統(tǒng)的高級語言持久對象的處理方法
第二章基于NVM的對象持久化總體框架上海交通大學(xué)碩士學(xué)位論文圖2–1傳統(tǒng)的高級語言持久對象的處理方法Figure2–1Traditionalwaystohandlepersistentobjectsinhigh-levellanguages然而,隨著近年來NVM技術(shù)的發(fā)展,上述的結(jié)構(gòu)有望得到根本上的優(yōu)化。由于NVM提供了接近DRAM的訪問速度,可按字節(jié)尋址的訪問特性,以及存儲的持久性,因此上述的讀,寫,更新可通過如圖2–2過程來完成。圖2–2基于NVM的高級語言持久對象處理方法Figure2–2NVM-basedwaystohandlepersistentobjectinhigh-levellanugages在這里,NVM設(shè)備被抽象為一塊連續(xù)的持久內(nèi)存,它通過mmap的方式被映射到進(jìn)程空間中,從而可以在該進(jìn)程中直接通過指針訪問。持久對象在內(nèi)存和持久內(nèi)存中有著相同的結(jié)構(gòu),因此對對象直接的讀,寫,和更新即是對持久對象的—10—
上海交通大學(xué)碩士學(xué)位論文第二章基于NVM的對象持久化總體框架讀,寫,和更新。這種新型的結(jié)構(gòu)從以下三個方面顯著提升了處理持久對象的性能:1.數(shù)據(jù)僅存在一份副本,減少了數(shù)據(jù)拷貝帶來的開銷。2.同時,由于數(shù)據(jù)結(jié)構(gòu)的同一性,不再需要序列化和反序列化。3.可直接通過內(nèi)存的讀寫操作訪問持久對象,因此不再有文件I/O層的開銷。然而,這種存儲結(jié)構(gòu)結(jié)構(gòu)要求持久對象采用額外的設(shè)計來保證其數(shù)據(jù)的可用性。首先,持久對象的結(jié)構(gòu)中不能有普通指針的存在。因?yàn)橹羔樖莻與進(jìn)程相關(guān)的虛擬地址,會在程序重啟時失效。第二,持久對象需要額外的操作來保證數(shù)據(jù)的一致性,對于傳統(tǒng)結(jié)構(gòu)來說這往往是通過文件系統(tǒng)或者數(shù)據(jù)庫系統(tǒng)來保證的。最后,持久對象需要建立額外的垃圾回收機(jī)制,該機(jī)制不僅保證了持久對象中的垃圾能正確地被回收,還要有經(jīng)受程序異常中斷的能力。但盡管如此,本研究后續(xù)的實(shí)驗(yàn)表明,該結(jié)構(gòu)相對與傳統(tǒng)結(jié)構(gòu)而言仍然可以帶來很大的性能提升。2.2系統(tǒng)框架本研究針對高級語言中持久對象設(shè)計的整體框架圖如圖2–3所示。圖2–3總體框架Figure2–3Overallframework如上圖所示,本研究設(shè)計的高級語言對象持久化解決方案的總體框架包含以下三個部分:—11—
本文編號:3319011
【文章來源】:上海交通大學(xué)上海市 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:83 頁
【學(xué)位級別】:碩士
【部分圖文】:
–1傳統(tǒng)的高級語言持久對象的處理方法
第二章基于NVM的對象持久化總體框架上海交通大學(xué)碩士學(xué)位論文圖2–1傳統(tǒng)的高級語言持久對象的處理方法Figure2–1Traditionalwaystohandlepersistentobjectsinhigh-levellanguages然而,隨著近年來NVM技術(shù)的發(fā)展,上述的結(jié)構(gòu)有望得到根本上的優(yōu)化。由于NVM提供了接近DRAM的訪問速度,可按字節(jié)尋址的訪問特性,以及存儲的持久性,因此上述的讀,寫,更新可通過如圖2–2過程來完成。圖2–2基于NVM的高級語言持久對象處理方法Figure2–2NVM-basedwaystohandlepersistentobjectinhigh-levellanugages在這里,NVM設(shè)備被抽象為一塊連續(xù)的持久內(nèi)存,它通過mmap的方式被映射到進(jìn)程空間中,從而可以在該進(jìn)程中直接通過指針訪問。持久對象在內(nèi)存和持久內(nèi)存中有著相同的結(jié)構(gòu),因此對對象直接的讀,寫,和更新即是對持久對象的—10—
上海交通大學(xué)碩士學(xué)位論文第二章基于NVM的對象持久化總體框架讀,寫,和更新。這種新型的結(jié)構(gòu)從以下三個方面顯著提升了處理持久對象的性能:1.數(shù)據(jù)僅存在一份副本,減少了數(shù)據(jù)拷貝帶來的開銷。2.同時,由于數(shù)據(jù)結(jié)構(gòu)的同一性,不再需要序列化和反序列化。3.可直接通過內(nèi)存的讀寫操作訪問持久對象,因此不再有文件I/O層的開銷。然而,這種存儲結(jié)構(gòu)結(jié)構(gòu)要求持久對象采用額外的設(shè)計來保證其數(shù)據(jù)的可用性。首先,持久對象的結(jié)構(gòu)中不能有普通指針的存在。因?yàn)橹羔樖莻與進(jìn)程相關(guān)的虛擬地址,會在程序重啟時失效。第二,持久對象需要額外的操作來保證數(shù)據(jù)的一致性,對于傳統(tǒng)結(jié)構(gòu)來說這往往是通過文件系統(tǒng)或者數(shù)據(jù)庫系統(tǒng)來保證的。最后,持久對象需要建立額外的垃圾回收機(jī)制,該機(jī)制不僅保證了持久對象中的垃圾能正確地被回收,還要有經(jīng)受程序異常中斷的能力。但盡管如此,本研究后續(xù)的實(shí)驗(yàn)表明,該結(jié)構(gòu)相對與傳統(tǒng)結(jié)構(gòu)而言仍然可以帶來很大的性能提升。2.2系統(tǒng)框架本研究針對高級語言中持久對象設(shè)計的整體框架圖如圖2–3所示。圖2–3總體框架Figure2–3Overallframework如上圖所示,本研究設(shè)計的高級語言對象持久化解決方案的總體框架包含以下三個部分:—11—
本文編號:3319011
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3319011.html
最近更新
教材專著