[发明专利]一种读写日志的处理方法及装置有效
| 申请号: | 201810897307.4 | 申请日: | 2018-08-08 |
| 公开(公告)号: | CN109189726B | 公开(公告)日: | 2020-12-22 |
| 发明(设计)人: | 金恒展 | 申请(专利权)人: | 奇安信科技集团股份有限公司 |
| 主分类号: | G06F16/13 | 分类号: | G06F16/13;G06F16/18 |
| 代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;李相雨 |
| 地址: | 100088 北京市西城区*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 读写 日志 处理 方法 装置 | ||
本发明实施例提供一种读写日志的处理方法及装置,所述方法包括:根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。所述装置执行上述方法。本发明实施例提供的读写日志的处理方法及装置,基于进程级别确定目标数据缓冲区,在将日志写入目标数据缓冲区之后,再基于最小堆按时序读取日志的算法读取已写入的日志,能够高效地对日志进行读写。
技术领域
本发明实施例涉及日志处理技术领域,具体涉及一种读写日志的处理方法及装置。
背景技术
随着信息技术的发展,日志的读写显得尤为重要。
目前为了保证进程安全,通常采用为所有日志的处理进程加锁或进程独享一个缓冲区的方式实现写入日志,每个进程加锁会有写入性能问题,而进程独享一个缓冲区,即所有日志的处理进程中的每一个进程都单独占用一个数据缓冲区(可以为环形缓冲区ringbuffer)通道,使得所有进程占用系统资源(包括内存)过多,而ringbuffer通道过多还会引发对日志读取的性能问题。另外,由于磁盘日志往往需要支持时间查询,日志读取往往需要按时序进行读取并记录到磁盘,这样方便建立索引,各个ringbuffer中的日志都是按时序存储的,要想按时序获取日志,现有的方法每次都需要遍历所有ringbuffer,并获取最早时刻的日志,尤其当ringbuffer的数量较多时极大地影响了日志读取性能,主要体现在:当ringbuffer的数量大,每次寻找最早时刻日志,都需要遍历所有ringbuffer,比较费时。
因此,如何避免上述缺陷,能够高效地对日志进行读写,成为亟须解决的问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种读写日志的处理方法及装置。
第一方面,本发明实施例提供一种读写日志的处理方法,所述方法包括:
根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;
根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;
根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;
在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
第二方面,本发明实施例提供一种读写日志的处理装置,所述装置包括:
第一确定单元,用于根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;
第二确定单元,用于根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;
写入单元,用于根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;
读取单元,用于在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:
根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;
根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇安信科技集团股份有限公司,未经奇安信科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810897307.4/2.html,转载请声明来源钻瓜专利网。





