当前位置: 首页 > 专利查询>清华大学专利>正文

非易失性内存数据库管理系统恢复方法、装置和电子设备制造方法及图纸

技术编号:30409128 阅读:21 留言:0更新日期:2021-10-20 11:23
本申请实施例中提供了一种非易失性内存数据库管理系统恢复方法、装置和电子设备,当非易失性内存数据库管理系统处于故障状态时,对非易失性内存分配器进行恢复,并在非易失性内存分配器中查找持久化数据结构的根指针;根据根指针获取树状结构的持久化数据结构所占用的空间信息,根据占用的空间信息对管理系统的元数据进行更新;在元数据更新完成后,对非易失性内存数据库管理系统中的不存在的记录数据进行回收,以将非易失性内存数据库管理系统从故障状态恢复至工作状态。由于持久化数据结构为树状结构,因此只要找到根节点就能找到所有的持久化数据结构,并以此进行系统的故障恢复,无需通过日志文件对系统进行恢复。无需通过日志文件对系统进行恢复。无需通过日志文件对系统进行恢复。

【技术实现步骤摘要】
非易失性内存数据库管理系统恢复方法、装置和电子设备


[0001]本申请涉及数据存储技术,具体地,涉及一种非易失性内存数据库管理系统恢复方法、装置和电子设备。

技术介绍

[0002]数据库管理系统是管理、存储和分析数据的计算机软件。用户可以通过数据库管理系统的接口读取、更新和分析数据。事务是用户执行操作的最小执行单元,一个事务可以包含多个访问或更新操作。数据库管理系统必须支持事务的原子性、一致性、隔离性以及持久性。事务的原子性指的是一个事务是不可分割的,对于数据的修改要么都存在,要么都不存在。事务的持久性指的是一个提交事务对数据的修改不会因为故障而丢失。
[0003]现有的数据库管理系统通常采用内存

非易失介质(如硬盘和固态硬盘)的双层存储架构。内存的访问延迟低,但是内存上的数据会因为断电而丢失,即数据是易失的,非易失性介质的访问延迟高,但是容量大,并且数据不会因为断电丢失,即数据是非易失的。为了防止数据丢失,这种双层存储架构的数据库管理系统需要通过日志文件记录事务的修改,并且定期地将日志文件持久化到非易失性介质上,然而日志文件会增大事务的开销,并且会占用一定的存储空间。
[0004]因此,提出了一种基于非易失性内存的单层架构的数据库管理系统。在非易失性内存的数据库管理系统中,事务可以直接修改非易失性内存上的数据,所以事务对数据的更新不会因为断电而丢失。因此,基于非易失性内存的单层架构的数据库管理系统无需使用日志文件对数据进行管理,降低了日志文件的开销,提高数据库性能并且节约了存储空间。
[0005]在数据库出现故障导致事务运行中断后,为了保证数据库中的事务的原子性,需要对数据库进行恢复,然而由于此种非易失性内存数据库管理系统没有日志文件,因此,在数据库发生故障后对数据库的恢复具有一定的难度。

技术实现思路

[0006]本申请实施例中提供了一种非易失性内存数据库管理系统恢复方法、装置和电子设备,用于解决目前的非易失性内存数据由于没有日志文件导致发生故障后难以恢复的问题。
[0007]根据本申请实施例的第一个方面,提供了一种非易失性内存数据库管理系统恢复方法,非易失性内存数据库管理系统包括非易失性内存分配器、记录数据和持久化数据结构,所述持久化数据结构为树状结构,所述方法包括:
[0008]判断所述非易失性内存数据库管理系统是否处于故障状态;
[0009]若是,则对所述非易失性内存分配器进行恢复,并在所述非易失性内存分配器中查找所述持久化数据结构的根指针;
[0010]根据所述根指针获取所述非易失性内存数据库管理系统的持久化数据结构占用
的空间信息,根据占用的空间信息对所述非易失性内存数据库管理系统的元数据进行更新,其中,所述元数据用于记录所述非易失性内存数据库管理系统的空间分配信息;
[0011]在所述元数据更新完成后,对所述非易失性内存数据库管理系统中的不存在的记录数据进行回收,以将所述非易失性内存数据库管理系统从故障状态恢复至工作状态,其中,所述记录数据不存在是指所述记录数据未被提交事务插入或所述记录数据已经被删除。
[0012]根据本申请实施例的第二个方面,提供了一种非易失性内存数据库管理系统恢复装置,所述非易失性内存数据库管理系统包括非易失性内存分配器、记录数据和持久化数据结构,所述持久化数据结构是指相互之间存在逻辑结构关系和物理结构关系的持久化的数据元素的集合且所述持久化数据结构为树状结构,所述装置包括:
[0013]状态判断模块,用于判断所述非易失性内存数据库管理系统是否处于故障状态;
[0014]分配器恢复模块,用于在处于故障状态时对所述非易失性内存分配器进行恢复,并在所述非易失性内存分配器中查找所述持久化数据结构的根指针;
[0015]元数据恢复模块,用于根据所述根指针获取所述非易失性内存数据库管理系统的持久化数据结构占用的空间信息,根据占用的空间信息对所述非易失性内存数据库管理系统的元数据进行更新,其中,所述元数据用于记录所述非易失性内存数据库管理系统的空间分配信息;
[0016]记录数据分配模块,用于在所述元数据恢复完成后,对所述非易失性内存数据库管理系统中的不存在的记录数据进行回收,以将所述非易失性内存数据库管理系统从故障状态恢复至工作状态,其中,所述记录数据不存在是指所述记录数据未被提交事务插入或所述记录数据已经被删除。
[0017]根据本申请实施例的第三个方面,提供了一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过所述总线通信,所述机器可读指令被所述处理器执行时执行第一方面提供的非易失性内存数据库管理系统恢复方法。
[0018]根据本申请实施例的第四个方面,提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面提供的非易失性内存数据库管理系统恢复方法。
[0019]本申请实施例提供了一种非易失性内存数据库管理系统恢复方法、装置和电子设备,当非易失性内存数据库管理系统处于故障状态时,对非易失性内存分配器进行恢复,并在非易失性内存分配器中查找持久化数据结构的根指针;根据根指针获取非易失性内存数据库管理系统的树状结构的持久化数据结构所占用的空间信息,根据占用的空间信息对非易失性内存数据库管理系统的元数据进行更新,其中,元数据用于记录非易失性内存数据库管理系统的空间分配信息;在元数据更新完成后,对非易失性内存数据库管理系统中的不存在的记录数据进行回收,以将非易失性内存数据库管理系统从故障状态恢复至工作状态。由于持久化数据结构为树状结构,因此只要找到根节点就能找到所有的持久化数据结构,并以此进行系统的故障恢复,无需通过日志文件对系统进行恢复。
附图说明
[0020]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0021]图1为本申请实施例提供的非易失性内存数据库管理系统N2DB的存储结构示意图;
[0022]图2为本申请实施例提供的非易失性内存数据库管理系统恢复方法的流程图;
[0023]图3为本申请实施例提供的步骤S12的子步骤流程图;
[0024]图4为本申请实施例提供的步骤S13的子步骤流程图;
[0025]图5为本申请实施例提供的元数据查找示意图;
[0026]图6为本申请实施例提供的步骤S14的子步骤流程图;
[0027]图7为本申请实施例提供的记录数据恢复示例图;
[0028]图8为本申请实施例提供的N2DB与现有的基于预写日志的存储引擎InnoDB的恢复时间对比示意图;
[0029]图9为本申请实施例提供的N2DB与InnoDB的存储空间对比示意图;
[0030]图10为本申请实施例提供的非易失性内存数据库管理系本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种非易失性内存数据库管理系统恢复方法,其特征在于,非易失性内存数据库管理系统包括非易失性内存分配器、记录数据和持久化数据结构,所述持久化数据结构为树状结构,所述方法包括:判断所述非易失性内存数据库管理系统是否处于故障状态;若是,则对所述非易失性内存分配器进行恢复,并在所述非易失性内存分配器中查找所述持久化数据结构的根指针;根据所述根指针获取所述非易失性内存数据库管理系统的持久化数据结构占用的空间信息,根据占用的空间信息对所述非易失性内存数据库管理系统的元数据进行更新,其中,所述元数据用于记录所述非易失性内存数据库管理系统的空间分配信息;在所述元数据更新完成后,对所述非易失性内存数据库管理系统中的不存在的记录数据进行回收,以将所述非易失性内存数据库管理系统从故障状态恢复至工作状态,其中,所述记录数据不存在是指所述记录数据未被提交事务插入或所述记录数据已经被删除。2.根据权利要求1所述的方法,其特征在于,所述非易失性内存分配器包括位图和持久化指针数组,对所述非易失性内存分配器进行恢复,并在所述非易失性内存分配器中查找所述持久化数据结构的根指针,包括:扫描所述非易失性内存分配器的位图;根据所述位图记录的页面分配信息回收所有未分配的页面;查找所述持久化指针数组中的根指针。3.根据权利要求2所述的方法,其特征在于,根据所述根指针获取所述非易失性内存数据库管理系统的持久化数据结构占用的空间信息,根据占用的空间信息对所述非易失性内存数据库管理系统的元数据进行更新,包括:根据所述根指针指示的位置信息查找所述非易失性内存数据库管理系统中所有的持久化数据结构;统计所有的持久化数据结构所占用的空间信息,根据所述空间信息对所述元数据进行更新,并回收所有未被使用的页面。4.根据权利要求3所述的方法,其特征在于,所述持久化数据结构包括事务状态信息和元数据,根据所述根指针指示的位置信息查找所述非易失性内存数据库管理系统中所有的持久化数据结构,包括:根据所述根指针指示的位置信息查找所述非易失性内存数据库管理系统的事务状态数组的地址和所述元数据的地址;根据所述事务状态数组的地址获取所有的事务状态信息;根据所述元数据的地址获取所有的元数据。5.根据权利要求1所述的方法,其特征在于,在所述元数据更新完成后,对所述非易失性内存数据库管理系统中的不存在的记录数据进行回收,包括:根据更新后的元数据获取所述非易失性内存数据库管理系统的记录数据;针对每一条记录数据,判断所述记录数据是否存在,其中,所述记录数据存在是指所述记录数据由一个提交事务插入...

【专利技术属性】
技术研发人员:武永卫陈康姜进磊蔡诗宇
申请(专利权)人:清华大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1