一种事务日志的压缩方法、存储介质与设备与流程
- 国知局
- 2024-09-14 14:24:13
本发明涉及数据库技术,特别是涉及一种事务日志的压缩方法、存储介质与设备。
背景技术:
1、在kingbasees数据库(简称kes数据库)中,事务日志其实指的是xlog日志(或称为wal日志),数据库系统会将所有事务对kes数据库的所有更新操作均记录下来,并在其被应用前写入xlog日志文件。在一些场景中,xlog日志量的大幅减少,具有很重要的作用。例如在备机宕机场景中,在备机重新正常工作前,主机需要保留足够多的xlog日志,待备机启动后,用于备机xlog日志redo(回放),最终使得主备一致。备机如果长时间无法正常工作,那么主机保留的xlog日志量可能很可观。又例如在启用xlog日志归档的场景中,如果kes数据库业务繁忙,那么归档的xlog日志量将是一个客观的数字。在一些远程归档配置下,大量的xlog日志也会占用较多带宽。因此,在这些场景下,需要压缩xlog日志以减小xlog日志量。
2、然而,目前kes数据库的xlog日志写流程中只可对xlog日志中的部分数据(pagedata)进行压缩,不能对其他部分进行压缩,xlog日志量的减小幅度不够,影响到数据库的整体性能。另外,由于xlog日志文件中的xlog日志内容都是按照固定的位置存储的,而压缩后的xlog日志长度与压缩前的xlog日志长度不一致,会导致记录xlog日志位置的信息不再可用。
技术实现思路
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、在第一预设位置内写入事务日志压缩标记。
26、可选地,在对待压缩的事务日志进行压缩操作的步骤之后,压缩方法还包括:
27、计算压缩后的事务日志的总长度。
28、根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的事务日志的压缩方法。
29、根据本发明的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的事务日志的压缩方法。
30、本发明的事务日志的压缩方法,通过在组装待压缩的事务日志的过程中,获取待压缩的事务日志的待压缩区间,以待压缩的事务日志的待压缩区间为压缩粒度,对待压缩的事务日志进行压缩操作,实现了以整个待压缩区间对待压缩的事务日志进行压缩,无需将待压缩的事务日志分成多个压缩区间分别进行压缩,减少了压缩操作次数,提高了压缩效率,从而提高了数据库的整体性能。
31、进一步地,本发明的事务日志的压缩方法,通过在对待压缩的事务日志进行压缩操作之后,根据压缩后的事务日志的长度,在事务日志写缓存中预分配事务日志的存储位置,并根据预分配得到的事务日志的存储位置,将事务日志拷贝到事务日志写缓存,避免了后续拷贝到事务日志写缓存时事务日志的存储位置信息发生变化,消除事务日志压缩前后的长度变化对事务日志存储位置信息造成的影响,从而在支持压缩前后的事务日志的数据长度不一致的情况下保持了事务日志在事务日志写缓存中的存储位置信息的稳定性。
32、更进一步地,本发明的事务日志的压缩方法,将待压缩的事务日志划分为顺序排列的第一数据区域和第二数据区域,其中第二数据区域即为待压缩的事务日志的待压缩区间,实现了预先将待压缩的事务日志按照是否需要进行压缩划分为两个数据区域,保证了在对待压缩的事务日志中尽可能多的数据进行压缩的同时,快速准确地获取到需要压缩的数据区域,提高了压缩操作的准确性。
33、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
技术特征:1.一种事务日志的压缩方法,包括:
2.根据权利要求1所述的事务日志的压缩方法,其中,
3.根据权利要求1所述的事务日志的压缩方法,其中,所述待压缩的事务日志包括顺序排列的第一数据区域和第二数据区域;并且
4.根据权利要求3所述的事务日志的压缩方法,其中,
5.根据权利要求4所述的事务日志的压缩方法,其中,
6.根据权利要求4所述的事务日志的压缩方法,其中,
7.根据权利要求3所述的事务日志的压缩方法,其中,所述第一数据区域内中预设有用于存储事务日志压缩标记的第一预设位置;并且
8.根据权利要求1所述的事务日志的压缩方法,其中,
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的事务日志的压缩方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的事务日志的压缩方法。
技术总结本发明涉及数据库技术,特别是涉及一种事务日志的压缩方法、存储介质与设备。该事务日志的压缩方法包括:在组装待压缩的事务日志的过程中,获取待压缩的事务日志的待压缩区间;以待压缩的事务日志的待压缩区间为压缩粒度,对待压缩的事务日志进行压缩操作。本发明的事务日志的压缩方法以整个待压缩区间对待压缩的事务日志进行压缩,避免了将待压缩的事务日志分成多个压缩区间分别进行压缩导致的压缩操作次数频繁的问题,提高了压缩效率,提高了数据库的整体性能。技术研发人员:沈志伟受保护的技术使用者:北京人大金仓信息技术股份有限公司技术研发日:技术公布日:2024/9/12本文地址:https://www.jishuxx.com/zhuanli/20240914/293876.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。