[发明专利]非易失性内存数据库管理系统恢复方法、装置和电子设备有效
申请号: | 202110684054.4 | 申请日: | 2021-06-21 |
公开(公告)号: | CN113515501B | 公开(公告)日: | 2022-10-25 |
发明(设计)人: | 武永卫;陈康;姜进磊;蔡诗宇 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F11/14 |
代理公司: | 北京新知远方知识产权代理事务所(普通合伙) 11397 | 代理人: | 马军芳;张艳 |
地址: | 100089*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 非易失性 内存 数据库 管理 系统 恢复 方法 装置 电子设备 | ||
1.一种非易失性内存数据库管理系统恢复方法,其特征在于,非易失性内存数据库管理系统包括非易失性内存分配器、记录数据和持久化数据结构,所述持久化数据结构为树状结构,所述方法包括:
判断所述非易失性内存数据库管理系统是否处于故障状态;
若是,则对所述非易失性内存分配器进行恢复,并在所述非易失性内存分配器中查找所述持久化数据结构的根指针;
根据所述根指针获取所述非易失性内存数据库管理系统的持久化数据结构占用的空间信息,根据占用的空间信息对所述非易失性内存数据库管理系统的元数据进行更新,其中,所述元数据用于记录所述非易失性内存数据库管理系统的空间分配信息;
在所述元数据更新完成后,对所述非易失性内存数据库管理系统中的不存在的记录数据进行回收,以将所述非易失性内存数据库管理系统从故障状态恢复至工作状态,其中,所述记录数据不存在是指所述记录数据未被提交事务插入或所述记录数据已经被删除。
2.根据权利要求1所述的方法,其特征在于,所述非易失性内存分配器包括位图和持久化指针数组,对所述非易失性内存分配器进行恢复,并在所述非易失性内存分配器中查找所述持久化数据结构的根指针,包括:
扫描所述非易失性内存分配器的位图;
根据所述位图记录的页面分配信息回收所有未分配的页面;
查找所述持久化指针数组中的根指针。
3.根据权利要求2所述的方法,其特征在于,根据所述根指针获取所述非易失性内存数据库管理系统的持久化数据结构占用的空间信息,根据占用的空间信息对所述非易失性内存数据库管理系统的元数据进行更新,包括:
根据所述根指针指示的位置信息查找所述非易失性内存数据库管理系统中所有的持久化数据结构;
统计所有的持久化数据结构所占用的空间信息,根据所述空间信息对所述元数据进行更新,并回收所有未被使用的页面。
4.根据权利要求3所述的方法,其特征在于,所述持久化数据结构包括事务状态信息和元数据,根据所述根指针指示的位置信息查找所述非易失性内存数据库管理系统中所有的持久化数据结构,包括:
根据所述根指针指示的位置信息查找所述非易失性内存数据库管理系统的事务状态数组的地址和所述元数据的地址;
根据所述事务状态数组的地址获取所有的事务状态信息;
根据所述元数据的地址获取所有的元数据。
5.根据权利要求1所述的方法,其特征在于,在所述元数据更新完成后,对所述非易失性内存数据库管理系统中的不存在的记录数据进行回收,包括:
根据更新后的元数据获取所述非易失性内存数据库管理系统的记录数据;
针对每一条记录数据,判断所述记录数据是否存在,其中,所述记录数据存在是指所述记录数据由一个提交事务插入,且未被任何事务删除;
对不存在的记录数据进行回收;
根据未被回收的记录数据建立持久化索引。
6.根据权利要求1所述的方法,其特征在于,所述判断所述非易失性内存数据库管理系统是否处于故障状态,包括:
判断所述非易失性内存数据库管理系统中是否存在标志位;
若不存在,则判定所述非易失性内存数据库管理系统处于故障状态。
7.根据权利要求1-6任意一项所述的方法,其特征在于,在所述非易失性内存数据库管理系统从故障状态恢复至工作状态之后,所述方法还包括:
创建后台扫描线程,通过所述后台扫描线程对所述记录数据的版本链进行扫描,其中,所述版本链是指一条记录数据的多个历史版本按照时间顺序构成的链表;
根据扫描结果对不在所述版本链上的版本对应的记录数据进行回收;
根据扫描结果对所述版本链中属于中断事务的版本对应的记录数据进行回收。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110684054.4/1.html,转载请声明来源钻瓜专利网。