[发明专利]日志管理方法、装置、设备及存储介质有效
申请号: | 202110949207.3 | 申请日: | 2021-08-18 |
公开(公告)号: | CN113609091B | 公开(公告)日: | 2022-07-12 |
发明(设计)人: | 刘熙 | 申请(专利权)人: | 星环众志科技(北京)有限公司 |
主分类号: | G06F16/18 | 分类号: | G06F16/18;G06F16/182;G06F16/13;G06F16/172 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 黄玉霞 |
地址: | 100036 北京市海淀区复兴路69号院11号*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 日志 管理 方法 装置 设备 存储 介质 | ||
本发明实施例公开了一种日志管理方法、装置、设备及存储介质。该方法包括:获取目标进程中的各实例的实例标识和日志项,并根据实例标识和日志项生成与各实例对应的索引数据;所述索引数据用于对日志项进行操作;将各实例的日志项顺序存储到磁盘的存储分区中形成日志文件,并将与各实例对应的索引数据存储到可嵌入数据库RocksDB中。本发明实施例的技术方案,实现单个进程中的多个实例共享日志,提高资源利用率和磁盘性能,对大规模的日志文件可以进行高效处理。
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种日志管理方法、装置、设备及存储介质。
背景技术
在分布式系统中,通常采用多个进程保存数据的多个副本,保证系统的可靠性。可以使用进程的日志文件来实现多个副本的数据同步,并使用Raft协议,基于日志形式实现数据的一致性。
现有技术中,针对Multi-Raft场景,单进程内可能需要管理万级别的raft实例,如果每个raft实例维护独立的日志,会导致以下问题:日志数据占用过多系统资源,如文件句柄、磁盘空间等;磁盘随机写现象严重,影响磁盘性能。
发明内容
本发明实施例提供一种日志管理方法、装置、设备及存储介质,以实现单个进程中的多个实例共享日志,提高磁盘性能,对大规模的日志文件可以进行高效处理。
第一方面,本发明实施例提供了一种日志管理方法,包括:
获取目标进程中的各实例的实例标识和日志项,并根据实例标识和日志项生成与各实例对应的索引数据;索引数据用于对日志文件进行操作;
将各实例的日志项顺序存储到磁盘的存储分区中形成日志文件,并将与各实例对应的索引数据存储到RocksDB中。
可选的,索引数据,包括:与各日志文件对应的日志索引,日志索引用于对日志文件进行读取操作;
根据实例标识和日志项生成与各实例对应的索引数据,包括:
获取日志项的日志编号;
将实例标识与日志编号的组合作为键名,将日志项对应的存储分区的编号与日志文件偏移量的组合作为键值,生成键值对形式的日志索引。
可选的,索引数据,还包括:用于日志回收的实例元信息,以及用于节点重启后恢复索引数据的全局元信息;
实例元信息,包括:实例的可删除日志文件的日志编号的最大值,与日志编号最大值对应的任期,以及实例的实例删除标识;
全局元信息,包括:各实例的索引数据最后一次落盘时,处于开放状态的存储分区的编号。
可选的,将各实例的日志项顺序存储到磁盘的存储分区中形成日志文件,并将与各实例对应的索引数据存储到RocksDB中,包括:
按照日志项的写入顺序,依次从各实例的日志项中确定当前待处理的目标日志项,并将目标日志项存储到处于开放状态的磁盘存储分区中形成日志文件;
对各实例的索引数据进行编码,以键值对的形式存储到RocksDB中。
可选的,在将与各实例对应的索引数据存储到RocksDB中之前,还包括:关闭RocksDB的预写日志功能。
可选的,还包括:
响应于全局元信息的定时更新消息,将全局元信息更新为当前处于开放状态的磁盘存储分区的编号,并根据更新后的全局元信息进行索引数据落盘处理;和/或,
响应于索引数据的恢复请求,从RocksDB实例中读取全局元信息,从全局元信息对应的存储分区编号开始,顺序扫描日志文件,恢复索引数据。
可选的,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于星环众志科技(北京)有限公司,未经星环众志科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110949207.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种钛酸铋高温压电陶瓷材料及其制备方法
- 下一篇:育苗装置和育苗设备