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