[发明专利]日志存储方法、装置、节点设备及存储介质有效
申请号: | 202010833472.0 | 申请日: | 2020-08-18 |
公开(公告)号: | CN112035410B | 公开(公告)日: | 2023-08-18 |
发明(设计)人: | 毛东方;李海翔;王建民;黄向东;潘安群 | 申请(专利权)人: | 腾讯科技(深圳)有限公司;清华大学 |
主分类号: | G06F16/13 | 分类号: | G06F16/13;G06F16/18;G06F16/182 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张所明 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 日志 存储 方法 装置 节点 设备 介质 | ||
本申请公开了一种日志存储方法、装置、节点设备及存储介质,属于数据库技术领域。该方法包括:响应于目标事务的提交事件,确定第一存储介质的剩余容量,第一存储介质为用于存储日志的非易失性存储介质;响应于该剩余容量小于该目标事务的未缓存日志的数据量,创建日志检查点,将第二存储介质中基于修改操作产生的业务数据存储至第三存储介质;将该目标事务的未缓存日志写入到该第一存储介质。本申请通过直接在第一存储介质中持久化地存储日志,无需执行繁琐的双层日志缓存流程,大大节约了日志存储占用的空间,提升了数据库的系统性能,避免了限制数据库系统的吞吐量上限,有利于数据扩容。
技术领域
本申请涉及数据库技术领域,特别涉及一种日志存储方法、装置、节点设备及存储介质。
背景技术
在主流的数据库系统中,通常会采用日志模块来优化系统性能。在写入数据时,会先将数据快速缓存在内存中,之后再异步持久化到磁盘中,当系统崩溃宕机时,由于内存中的、尚未持久化的数据会丢失,此时系统通过日志模块能够将尚未持久化的数据恢复,保证数据可靠性。另外,为了保证日志模块可以正常恢复内存中的数据,因此数据写入后对应的日志也需要持久化到磁盘中,因此,大大限制了数据库系统吞吐量的上限。
发明内容
本申请实施例提供了一种日志存储方法、装置、节点设备及存储介质,能够避免限制数据库系统的吞吐量上限,优化数据库系统性能。该技术方案如下:
一方面,提供了一种日志存储方法,该方法包括:
响应于目标事务的提交事件,确定数据库系统中第一存储介质的剩余容量,所述第一存储介质为用于存储日志的非易失性存储介质;
响应于所述剩余容量小于所述目标事务的未缓存日志的数据量,创建日志检查点,将第二存储介质中基于修改操作产生的业务数据存储至第三存储介质,所述第二存储介质为易失性存储介质,所述第三存储介质为非易失性存储介质;
将所述目标事务的未缓存日志写入到所述第一存储介质。
一方面,提供了一种日志存储装置,该装置包括:
确定模块,用于响应于目标事务的提交事件,确定数据库系统中第一存储介质的剩余容量,所述第一存储介质为用于存储日志的非易失性存储介质;
存储模块,用于响应于所述剩余容量小于所述目标事务的未缓存日志的数据量,创建日志检查点,将第二存储介质中基于修改操作产生的业务数据存储至第三存储介质,所述第二存储介质为易失性存储介质,所述第三存储介质为非易失性存储介质;
写入模块,用于将所述目标事务的未缓存日志写入到所述第一存储介质。
在一种可能实施方式中,响应于所述剩余容量大于或等于所述目标事务的未缓存日志的数据量,执行所述写入模块。
在一种可能实施方式中,所述装置还包括:
获取模块,用于获取所述第一存储介质的存储容量;
配置模块,用于将所述数据库系统的日志空间容量参数配置为所述第一存储介质的存储容量。
在一种可能实施方式中,所述存储模块还用于:
每间隔第一目标时长,响应于符合目标条件,创建日志检查点;
将所述第二存储介质中基于修改操作产生的业务数据存储至所述第三存储介质;
将所述第一存储介质中已存储的最后一个日志块内的日志复制至所述第一存储介质中的第一个日志块;
将所述第一存储介质的起始写入位置指针移动至所述第一个日志块。
在一种可能实施方式中,所述目标条件包括下述至少一项:
所述第一存储介质的剩余容量小于容量阈值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司;清华大学,未经腾讯科技(深圳)有限公司;清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010833472.0/2.html,转载请声明来源钻瓜专利网。