CN107193629A - 基于非易失性内存与Java虚拟机的新型数据管理方法 - Google Patents
基于非易失性内存与Java虚拟机的新型数据管理方法 Download PDFInfo
- Publication number
- CN107193629A CN107193629A CN201710225733.9A CN201710225733A CN107193629A CN 107193629 A CN107193629 A CN 107193629A CN 201710225733 A CN201710225733 A CN 201710225733A CN 107193629 A CN107193629 A CN 107193629A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- java
- java virtual
- data
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于非易失性内存与Java虚拟机的新型数据管理方法,包括数据访问步骤:通过Java应用以Java对象格式直接访问和处理数据库中的数据,消除了数据格式转化的过程;载入数据库步骤:将数据库在Java虚拟机运行的任意时刻作为Java堆的一部分载入并使用;数据管理步骤:通过Java虚拟机对数据库进行直接的内存管理。本发明利用了新型硬件非易失性内存具有的访问速度快、粒度细、持久化的特点,并结合Java虚拟机的内存管理模块以及持久化接口,对现有的数据管理技术进行了改进,在保证数据持久化存储的同时达成数据高效处理的目标。
Description
技术领域
本发明涉及数据管理技术领域,具体地,涉及基于非易失性内存与Java虚拟机的新型数据管理方法。
背景技术
随着信息时代的到来,人类的生活与数据变得密不可分,如何对海量的数据进行有效的管理成为了当今的技术热点。良好的数据管理技术应该包含两个特点:(1)数据的持久化管理,即数据能够存储在具有持久化能力的设备中,在***断电时不会丢失;(2)数据的高效处理,即能够快速回应应用的数据操作请求。由于传统计算机体系结构中的内存不具有持久化能力,而具备持久化性质的硬盘则存在响应速度慢、访问粒度粗等诸多不足之处,因此传统的数据管理技术分别使用硬盘和内存进行数据存储和数据处理。然而,由于硬盘和内存在存储格式、访问方法等方面存在巨大差异,传统的数据管理技术需要对硬盘和内存中的数据分别进行管理,给用户带来了沉重的管理负担。
Java是一门面向对象(object-oriented)的高级程序语言,它提出的Java虚拟机(Java Virtual Machine,JVM)这一抽象可以帮助Java应用进行内存管理、性能调优、类型检查等一系列复杂而琐碎的工作,使得用户能够专注于程序逻辑本身,减轻了用户的负担。针对传统数据管理技术中管理负担过重的问题,Java语言也提出了Java持久化接口JPA(Java Persistence API)将内存与硬盘的数据管理进行了解耦。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虚拟机启动时,可以再次向操作***请求载入该数据库实例并进行数据库操作。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (6)
1.一种基于非易失性内存与Java虚拟机的新型数据管理方法,其特征在于,包括如下步骤:
数据访问步骤:通过Java应用以Java对象格式直接访问和处理数据库中的数据,消除了数据格式转化的过程;
载入数据库步骤:将数据库在Java虚拟机运行的任意时刻作为Java堆的一部分载入并使用;
数据管理步骤:通过Java虚拟机对数据库进行直接的内存管理。
2.根据权利要求1所述的基于非易失性内存与Java虚拟机的新型数据管理方法,其特征在于,所述数据访问步骤中使用轻量级的Java持久化接口直接访问和处理数据。
3.根据权利要求1所述的基于非易失性内存与Java虚拟机的新型数据管理方法,其特征在于,所述载入数据库步骤中的数据库具有Java虚拟机兼容性,即所述数据库的格式能够被Java虚拟机载入后解析使用。
4.根据权利要求1所述的基于非易失性内存与Java虚拟机的新型数据管理方法,其特征在于,通过所述Java虚拟机能够对数据库进行内存使用监控、垃圾收集以及碎片整理。
5.根据权利要求1所述的基于非易失性内存与Java虚拟机的新型数据管理方法,其特征在于,通过所述Java虚拟机能够通过操作***提供的接口获取非易失性内存资源,并进行操作和管理。
6.一种基于非易失性内存与Java虚拟机的新型数据管理方法,其特征在于,包括如下步骤:
步骤1:运行Java应用,并启动Java虚拟机进行初始化;
步骤2:通过轻量级Java持久化接口在Java应用运行的任意时刻请求载入或新建数据库实例,Java虚拟机获取数据库实例,或者通过操作***接口向内存管理模块请求分配更多的非易失性内存;
步骤3:通过Java虚拟机对数据库的内存使用进行资源监控、垃圾回收、碎片整理管理;
步骤4:退出Java虚拟机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710225733.9A CN107193629A (zh) | 2017-04-07 | 2017-04-07 | 基于非易失性内存与Java虚拟机的新型数据管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710225733.9A CN107193629A (zh) | 2017-04-07 | 2017-04-07 | 基于非易失性内存与Java虚拟机的新型数据管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107193629A true CN107193629A (zh) | 2017-09-22 |
Family
ID=59871403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710225733.9A Pending CN107193629A (zh) | 2017-04-07 | 2017-04-07 | 基于非易失性内存与Java虚拟机的新型数据管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107193629A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955488A (zh) * | 2019-09-10 | 2020-04-03 | 中兴通讯股份有限公司 | 一种持久性内存的虚拟化方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1040409B1 (en) * | 1997-12-16 | 2003-04-16 | Microsoft Corporation | Combining multiple class files into run-time image |
CN102455902A (zh) * | 2010-10-29 | 2012-05-16 | 国际商业机器公司 | 用于对象持久化的方法以及计算机*** |
CN102681866A (zh) * | 2011-11-22 | 2012-09-19 | 飞天诚信科技股份有限公司 | 一种运行Java程序的方法和装置 |
CN103810112A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失性内存***及其管理方法 |
CN106406748A (zh) * | 2015-07-30 | 2017-02-15 | 伊姆西公司 | 存储器中心数据库架构 |
-
2017
- 2017-04-07 CN CN201710225733.9A patent/CN107193629A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1040409B1 (en) * | 1997-12-16 | 2003-04-16 | Microsoft Corporation | Combining multiple class files into run-time image |
CN102455902A (zh) * | 2010-10-29 | 2012-05-16 | 国际商业机器公司 | 用于对象持久化的方法以及计算机*** |
CN102681866A (zh) * | 2011-11-22 | 2012-09-19 | 飞天诚信科技股份有限公司 | 一种运行Java程序的方法和装置 |
CN103810112A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失性内存***及其管理方法 |
CN106406748A (zh) * | 2015-07-30 | 2017-02-15 | 伊姆西公司 | 存储器中心数据库架构 |
Non-Patent Citations (1)
Title |
---|
HIDEAKI KIMURA: "FOEDUS: OLTP Engine for a Thousand Cores and NVRAM", 《ACM》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955488A (zh) * | 2019-09-10 | 2020-04-03 | 中兴通讯股份有限公司 | 一种持久性内存的虚拟化方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7937419B2 (en) | Garbage collection via multiobjects | |
US8037112B2 (en) | Efficient access of flash databases | |
CN102722432B (zh) | 追踪内存访问的方法和装置 | |
US7072919B2 (en) | Method for performing data migration | |
US6529919B1 (en) | Incremental class unloading in a train-algorithm-based garbage collector | |
US7035884B2 (en) | Placement of allocation trains in the train algorithm | |
US6928460B2 (en) | Method and apparatus for performing generational garbage collection in a segmented heap | |
US7249235B2 (en) | Architecture for a scalable and user-extensible heap dump analysis tool | |
US8694562B2 (en) | Generational garbage collection for a pool-based heap | |
US6105040A (en) | Method and apparatus for managing stored objects | |
CN106406748B (zh) | 存储器中心数据库架构 | |
GB2345160A (en) | Virtual machine memory management | |
CN111309310B (zh) | 面向非易失性内存的JavaScript对象持久化框架 | |
US8024374B2 (en) | Computer object conversion using an intermediate object | |
US8447793B2 (en) | Efficient remembered set for region-based garbage collectors | |
Iwabuchi et al. | Metall: A persistent memory allocator enabling graph processing | |
Srisa-an et al. | Active memory processor: A hardware garbage collector for real-time java embedded devices | |
CN103020077A (zh) | 一种电力***实时数据库内存管理方法 | |
CN107193629A (zh) | 基于非易失性内存与Java虚拟机的新型数据管理方法 | |
US7237085B2 (en) | Architecture for a scalable heap analysis tool | |
CN110362505A (zh) | 一种使用缓存***进行读写缓存的方法 | |
Wang et al. | scList: A PCRAM-based Hybrid Memory Management Scheme | |
GB2428321A (en) | Versioning objects in a virtual machine | |
Xu et al. | Jsnvm: supporting data persistence in javascript using non-volatile memory | |
Venstermans et al. | Java object header elimination for reduced memory consumption in 64-bit virtual machines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170922 |
|
RJ01 | Rejection of invention patent application after publication |