基於非易失性內存與Java虛擬機的新型數據管理方法與流程
2023-05-06 14:51:11
本發明涉及數據管理技術領域,具體地,涉及基於非易失性內存與java虛擬機的新型數據管理方法。
背景技術:
隨著資訊時代的到來,人類的生活與數據變得密不可分,如何對海量的數據進行有效的管理成為了當今的技術熱點。良好的數據管理技術應該包含兩個特點:(1)數據的持久化管理,即數據能夠存儲在具有持久化能力的設備中,在系統斷電時不會丟失;(2)數據的高效處理,即能夠快速回應應用的數據操作請求。由於傳統計算機體系結構中的內存不具有持久化能力,而具備持久化性質的硬碟則存在響應速度慢、訪問粒度粗等諸多不足之處,因此傳統的數據管理技術分別使用硬碟和內存進行數據存儲和數據處理。然而,由於硬碟和內存在存儲格式、訪問方法等方面存在巨大差異,傳統的數據管理技術需要對硬碟和內存中的數據分別進行管理,給用戶帶來了沉重的管理負擔。
java是一門面向對象(object-oriented)的高級程序語言,它提出的java虛擬機(javavirtualmachine,jvm)這一抽象可以幫助java應用進行內存管理、性能調優、類型檢查等一系列複雜而瑣碎的工作,使得用戶能夠專注於程序邏輯本身,減輕了用戶的負擔。針對傳統數據管理技術中管理負擔過重的問題,java語言也提出了java持久化接口jpa(javapersistenceapi)將內存與硬碟的數據管理進行了解耦。jpa一方面將持久化數據轉化為java對象格式放入內存中,使用戶能夠使用熟悉的面向對象的方式進行數據處理;另一方面則提供了從java對象到sql語句的轉化,並使用sql語句操作和管理持久化的數據。jpa的提出消除了用戶管理持久化數據的負擔,但內存與硬碟之間數據格式轉化的開銷卻造成了數據處理的性能損失。
非易失性內存這一新型硬體的出現,使得內存在保留原有的高速訪問、細粒度讀寫特點的基礎上,增加了持久化數據的能力,為數據管理技術的發展帶來了全新的機遇,基於非易失性內存的技術方興未艾。相比基於c/c++語言的數據管理技術,基於java虛擬機的數據管理技術可以直接利用java虛擬機成熟的內存管理功能以及java持久化接口來降低數據管理的開銷。然而,目前的java虛擬機缺乏對易失性內存的支持,其持久化接口jpa也不能很好地利用非易失性內存的持久化特性。因此,如何針對java虛擬機以及非易失性內存的特點,開發全新的數據管理技術,從而充分發揮兩者的優勢,同時達成數據的持久化管理和高效處理兩個目標,已成為亟待解決的技術難題。
技術實現要素:
針對現有技術中的缺陷,本發明的目的是提供一種基於非易失性內存與java虛擬機的新型數據管理方法。
根據本發明提供的基於非易失性內存與java虛擬機的新型數據管理方法,包括如下步驟:
數據訪問步驟:通過java應用以java對象格式直接訪問和處理資料庫中的數據,消除了數據格式轉化的過程;
載入資料庫步驟:將資料庫在java虛擬機運行的任意時刻作為java堆的一部分載入並使用;
數據管理步驟:通過java虛擬機對資料庫進行直接的內存管理。
優選地,所述數據訪問步驟中使用輕量級的java持久化接口直接訪問和處理數據。
優選地,所述載入資料庫步驟中的資料庫具有java虛擬機兼容性,即所述資料庫的格式能夠被java虛擬機載入後解析使用。
優選地,通過所述java虛擬機能夠對資料庫進行內存使用監控、垃圾收集以及碎片整理。
優選地,通過所述java虛擬機能夠通過作業系統提供的接口獲取非易失性內存資源,並進行操作和管理。
根據本發明提供的基於非易失性內存與java虛擬機的新型數據管理方法,包括如下步驟:
步驟1:運行java應用,並啟動java虛擬機進行初始化;
步驟2:通過輕量級java持久化接口在java應用運行的任意時刻請求載入或新建資料庫實例,java虛擬機獲取資料庫實例,或者通過作業系統接口向內存管理模塊請求分配更多的非易失性內存;
步驟3:通過java虛擬機對資料庫的內存使用進行資源監控、垃圾回收、碎片整理管理;
步驟4:退出java虛擬機。
與現有技術相比,本發明具有如下的有益效果:
1、本發明充分利用了非易失性內存訪問速度快,粒度細,以及持久化的特點,使數據管理的整體性能得到提升;
2、本發明充分利用了java虛擬機成熟的內存管理功能和持久化接口,進一步降低了數據持久化管理的開銷;
3、本發明在保持原有語義的情況下,提供了更加輕量級的java持久化接口實現,消除了複雜的數據格式轉化過程,進一步提升數據處理的性能。
附圖說明
通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發明的其它特徵、目的和優點將會變得更明顯:
圖1為本發明提供的方法的原理框圖。
具體實施方式
下面結合具體實施例對本發明進行詳細說明。以下實施例將有助於本領域的技術人員進一步理解本發明,但不以任何形式限制本發明。應當指出的是,對本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變化和改進。這些都屬於本發明的保護範圍。
根據本發明提供的基於非易失性內存與java虛擬機的新型數據管理方法,包括如下步驟:
數據訪問步驟:通過java應用以java對象格式直接訪問和處理資料庫中的數據,消除了數據格式轉化的過程;
載入資料庫步驟:將資料庫在java虛擬機運行的任意時刻作為java堆的一部分載入並使用;
數據管理步驟:通過java虛擬機對資料庫進行直接的內存管理。
所述數據訪問步驟中使用輕量級的java持久化接口直接訪問和處理數據。
所述載入資料庫步驟中的資料庫具有java虛擬機兼容性,即所述資料庫的格式能夠被java虛擬機載入後解析使用。
所述java虛擬機能夠對資料庫進行內存使用監控、垃圾收集以及碎片整理。
所述java虛擬機能夠通過作業系統提供的接口獲取非易失性內存資源,並進行操作和管理。
下面結合具體實施例對本發明的技術方案做更加詳細的說明。
基於非易失性內存與java虛擬機的新型數據管理技術的具體運行流程包括:java虛擬機啟動、載入或新建資料庫實例、資料庫操作、java虛擬機退出四個階段。以下將通過具體實施示例來詳細描述本發明。
本發明的示例具體步驟如下:
步驟s1:用戶運行java應用,java虛擬機啟動,進行初始化。
步驟s2:java應用可在運行的任意時刻通過修改過的輕量級java持久化接口(圖中的jpa』)請求載入或新建資料庫實例,java虛擬機根據請求獲取之前已經持久化的資料庫實例,也可以通過作業系統接口向內存管理模塊請求分配更多的非易失性內存。
步驟s3:用戶可通過jpa』進行增刪改查等資料庫操作。由於目前的數據以java對象格式存儲在java虛擬機之中,省去了之前的數據轉化開銷,從而提升了數據處理的性能。同時,java虛擬機也會對資料庫的內存使用進行資源監控、垃圾回收、碎片整理等管理。
步驟s4:當java程序退出時,java虛擬機也隨之退出,但資料庫實例由於存儲在非易失性內存之中,數據並不會因此丟失。當新的java虛擬機啟動時,可以再次向作業系統請求載入該資料庫實例並進行資料庫操作。
以上對本發明的具體實施例進行了描述。需要理解的是,本發明並不局限於上述特定實施方式,本領域技術人員可以在權利要求的範圍內做出各種變化或修改,這並不影響本發明的實質內容。在不衝突的情況下,本申請的實施例和實施例中的特徵可以任意相互組合。