一种嵌入式数据库事务处理方法、装置、设备及存储介质与流程
本发明涉及嵌入式数据库处理,尤其涉及一种嵌入式数据库事务处理方法、装置、设备及存储介质。
背景技术:
1、嵌入式数据库广泛应用于各类网络设备(如otn、ptn、交换机、数通设备等)中,用于存储配置信息、状态数据等关键业务数据。在此类应用场景下,嵌入式数据库不仅需要满足高并发、写密集场景下的极低延迟要求,还必须保证在面临意外断电、系统崩溃等异常情况时数据的完整性与一致性。然而,现有的嵌入式数据库可靠性保障方法往往难以兼顾高性能与高可靠。
2、其中,现有的嵌入式数据库可靠性保障方法:1、预写日志(wal)技术:对数据文件进行修改之前,必须先将所有修改记录到日志文件中。系统崩溃时,通过日志记录恢复数据。2、写时复制(cow)技术:当需要修改数据时,不直接覆盖原有数据,而是创建数据的副本并在副本上进行修改,修改完成后,通过原子指针切换更新整个数据库。现有技术存在的问题:1、严格事务操作影响性能:可靠性的取得是需要在事务中进行同步的磁盘写入(日志或者数据),这种操作在高并发、写密集场景下成为性能瓶颈。2、放弃事务操作可靠性不能保障:两种技术均提供了不使用事务的完全异步数据写入方式,但在系统异常(比如意外断电)时,会导致数据库文件损坏不可恢复。
3、因此,如何兼顾嵌入式数据库高性能和可靠性,是目前亟需解决的技术问题。
技术实现思路
1、本发明主要目的在于提供一种嵌入式数据库事务处理方法、装置、设备及存储介质,一方面可以满足数据库的高性能操作,另一方面在系统异常时可以保障数据库文件的完整性和可用性,有效避免了数据库文件损坏的风险。
2、第一方面,本申请提供了一种嵌入式数据库事务处理方法,其中该方法包括步骤:
3、基于数据库写入事务请求,在所述数据库中为所述事务分配新的数据页并在所述数据页上完成写入;
4、记录所述事务的标识符和所分配的数据页资源列表,以生成意图日志;
5、响应于预设触发条件,将所述数据页上的事务批量落盘至所述数据库;
6、若落盘过程中出现异常,则利用所述意图日志记录的数据页资源列表进行页面资源回收,以恢复完整的数据库。
7、结合上述第一方面,作为一种可选的实现方式,响应于落盘过程中崩溃重启,以最后一次完整持久化的数据库状态为基准,并基于读取的意图日志的记录,提取数据页资源列表;
8、将所述数据页资源列表所对应的页面资源回收至数据库的空闲页面列表中,以恢复所述数据库至一致的待使用状态。
9、结合上述第一方面,作为一种可选的实现方式,若接收到数据库写事务提交请求,则在所述数据库文件的内存映射区域,利用写时复制机制为所述事务分配新的数据页;
10、将所述事务对应的数据变更写入所述数据页。
11、结合上述第一方面,作为一种可选的实现方式,判断意图日志文件是否存在且包含日志记录;
12、若存在且包括日志记录,则丢弃日志记录中的所有事务的数据变更内容。
13、结合上述第一方面,作为一种可选的实现方式,对意图日志执行同步磁盘操作,以对所述意图日志进行持久化,并在不同步数据库文件的情况下向客户端返回事务提交成功。
14、结合上述第一方面,作为一种可选的实现方式,判断是否满足预设触发条件,所述预设触发条件包括:设置的定时器是否超时、意图日志阈值是否满足设定条件或是否接收到处理指令;
15、若满足预设触发条件,则将新的数据页上写入的事务批量同步至数据库,使得数据库文件的内存映射区的当前状态持久化。
16、结合上述第一方面,作为一种可选的实现方式,若确定事务同步至数据库成功后,截断或清空意图日志文件。
17、第二方面,本申请提供了一种嵌入式数据库事务处理装置,该装置包括:
18、分配模块,其用于基于数据库写入事务请求,在所述数据库中为所述事务分配新的数据页并在所述数据页上完成写入;
19、生成模块,其用于记录所述事务的标识符和所分配的数据页资源列表,以生成意图日志;
20、执行模块,其用于响应于预设触发条件,将所述数据页上的事务批量落盘至所述数据库;
21、处理模块,其用于若落盘过程中出现异常,则利用所述意图日志记录的数据页资源列表进行页面资源回收,以恢复完整的数据库。
22、第三方面,本申请还提供了一种电子设备,所述电子设备包括:处理器;存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现第一方面任一项所述的方法。
23、第四方面,本申请还提供了一种计算机可读存储介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行第一方面任一项所述的方法。
24、本申请提供的一种嵌入式数据库事务处理方法、装置、设备及存储介质,其中该方法包括步骤:基于数据库写入事务请求,在所述数据库中为所述事务分配新的数据页并在所述数据页上完成写入;记录所述事务的标识符和所分配的数据页资源列表,以生成意图日志;响应于预设触发条件,将所述数据页上的事务批量落盘至所述数据库;若落盘过程中出现异常,则利用所述意图日志记录的数据页资源列表进行页面资源回收,以恢复完整的数据库。本申请一方面可以满足数据库的高性能操作,另一方面在系统异常时可以保障数据库文件的完整性和可用性,有效避免了数据库文件损坏的风险。
25、应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
1.一种嵌入式数据库事务处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述若落盘过程中出现异常,则利用所述意图日志记录的数据页资源列表进行页面资源回收,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于数据库写入事务请求,在所述数据库中为所述事务分配新的数据页并在所述数据页上完成写入,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于读取的意图日志的记录,提取数据页资源列表之前,包括:
5.根据权利要求1所述的方法,其特征在于,所述记录所述事务的标识符和所分配的数据页资源列表,以生成意图日志之后,包括:
6.根据权利要求1所述的方法,其特征在于,所述响应于预设触发条件,将所述数据页上的事务批量落盘至所述数据库,包括:
7.根据权利要求6所述的方法,其特征在于,还包括:
8.一种嵌入式数据库事务处理装置,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备,包括:
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行根据权利要求1至7中任一项所述的方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com