[发明专利]数据库引擎文件处理方法及装置有效
申请号: | 202110346153.1 | 申请日: | 2021-03-31 |
公开(公告)号: | CN112732702B | 公开(公告)日: | 2021-06-25 |
发明(设计)人: | 刘鑫伟;张世维;杨绍鹏 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/215 | 分类号: | G06F16/215;G06F16/21 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 熊永强;贾允 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 引擎 文件 处理 方法 装置 | ||
本申请涉及一种数据库引擎文件处理方法及装置,该方法包括:响应于用于消除待处理引擎文件中空洞的文件处理指令,生成与待处理引擎文件对应的第一引擎文件和第二引擎文件;使用第一引擎文件处理对待处理数据表的读写操作;遍历待处理引擎文件中的每条第一数据记录,确定第一数据记录是否为有效记录;在第一数据记录为有效记录的情况下,将第一数据记录写入至第二引擎文件中;将第一引擎文件中的各条第二数据记录合并至第二引擎文件中;将合并后的第二引擎文件设置为待处理数据表的引擎文件。本申请能够不停止存储节点即可消除待处理引擎文件中的空洞,避免了数据库的单点故障问题以及业务数据的丢失。
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据库引擎文件处理方法及装置。
背景技术
数据库的存储引擎是数据库底层软件组织,用户可以使用存储引擎对数据库中的数据记录进行创建、查询、更新和删除等读写操作。而数据记录的大小不一,数据记录在读写操作的过程中,例如大小改变或删除等,可能会导致数据记录所属的引擎文件中出现空洞,过多的空洞将会严重影响数据记录的读写效率。
目前对引擎文件中空洞的处理方案一般采用离线处理的方式,即先停止从存储节点,然后对从存储节点上的引擎文件进行处理,并在处理完成后采用主从切换将从存储节点切换为主存储节点,然后再停止从存储节点,继续对从存储节点上的引擎文件进行处理。而在停止从存储节点时,数据库存在单点故障问题,也即若主存储节点出现异常,用户将不能正常访问数据库,造成业务数据的大量丢失。
发明内容
本申请提供一种数据库引擎文件处理方法、装置、设备及存储介质,能够不停止存储节点即可消除待处理引擎文件中的空洞,避免了数据库的单点故障问题以及业务数据的丢失。
一方面,本申请提供了一种数据库引擎文件处理方法,所述方法包括:
响应于用于消除待处理数据表的引擎文件中空洞的文件处理指令,将所述待处理数据表的引擎文件确定为待处理引擎文件,生成与所述待处理引擎文件对应的第一引擎文件和第二引擎文件;
使用所述第一引擎文件处理对所述待处理数据表的读写操作;
遍历所述待处理引擎文件中的每条第一数据记录,确定所述第一数据记录是否为有效记录;在所述第一数据记录为有效记录的情况下,将所述第一数据记录写入至所述第二引擎文件中;
将所述第一引擎文件中的各条第二数据记录合并至所述第二引擎文件中;
将合并后的所述第二引擎文件设置为所述待处理数据表的引擎文件。
另一方面提供了一种数据库引擎文件处理方法,所述方法包括:
接收引擎文件处理请求,获取所述引擎文件处理请求中的存储节点类型标识和待处理数据表标识;
将所述待处理数据表标识对应的数据表,确定为待处理数据表;
根据所述存储节点类型标识和所述待处理数据表标识,确定至少一个存储节点;
向每个所述存储节点发送用于消除所述待处理数据表的引擎文件中空洞的文件处理指令,以使所述存储节点将所述待处理数据表的引擎文件确定为待处理引擎文件,生成与所述待处理引擎文件对应的第一引擎文件和第二引擎文件,使用所述第一引擎文件处理对所述待处理数据表的读写操作,并遍历所述待处理引擎文件中的每条第一数据记录,在所述第一数据记录为有效记录的情况下,将所述第一数据记录写入至所述第二引擎文件中,以及将所述第一引擎文件中的各条第二数据记录合并至所述第二引擎文件中,将合并后的所述第二引擎文件设置为所述待处理数据表的引擎文件。
另一方面提供了一种数据库引擎文件处理装置,所述装置包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110346153.1/2.html,转载请声明来源钻瓜专利网。