[发明专利]一种读写日志的处理方法及装置有效
| 申请号: | 201810897307.4 | 申请日: | 2018-08-08 |
| 公开(公告)号: | CN109189726B | 公开(公告)日: | 2020-12-22 |
| 发明(设计)人: | 金恒展 | 申请(专利权)人: | 奇安信科技集团股份有限公司 |
| 主分类号: | G06F16/13 | 分类号: | G06F16/13;G06F16/18 |
| 代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;李相雨 |
| 地址: | 100088 北京市西城区*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 读写 日志 处理 方法 装置 | ||
1.一种读写日志的处理方法,其特征在于,包括:
根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;
根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;
根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;
在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志;
所述写入性能参数包括日志写入速率;相应的,所述根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别,包括:
若判断获知所述日志写入速率大于等于第一速率阈值;则确定所述进程级别为第一进程级别;
若判断获知所述日志写入速率小于所述第一速率阈值,且大于等于第二速率阈值;则确定所述进程级别为第二进程级别;
若判断获知所述日志写入速率小于所述第二速率阈值;则确定所述进程级别为第三进程级别;
所述根据所述进程级别,确定所述进程分享数据缓冲区的分享方式,包括:
若判断获知所述进程级别为所述第一进程级别,则确定所述分享方式为独享数据缓冲区;
若判断获知所述进程级别为所述第二进程级别或所述第三进程级别,则确定所述分享方式为共享数据缓冲区。
2.根据权利要求1所述的方法,其特征在于,所述根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区,包括:
分配与所述第一进程级别对应第一进程相对应的独享数据缓冲区;
分配与所述第二进程级别对应第二进程相对应的第一共享数据缓冲区;
分配与所述第三进程级别对应第三进程相对应的第二共享数据缓冲区。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取所述数据缓冲区的读取周期;
根据所述第一进程对应的日志写入速率和所述读取周期,计算所述独享数据缓冲区的大小;
确定所述第二进程和所述第三进程分别对应的共享进程数上限;
根据所述第二进程对应的共享进程数上限、所述第一速率阈值和所述读取周期,计算所述第一共享数据缓冲区的大小;
根据所述第三进程对应的共享进程数上限、所述第二速率阈值和所述读取周期,计算所述第二共享数据缓冲区的大小。
4.根据权利要求1至3任一所述的方法,其特征在于,所述基于最小堆按时序读取日志的算法读取已写入的日志,包括:
基于最小堆按时序读取日志的算法按照日志生成时间的先后顺序从日志所属的数据缓冲区中读取所述日志;
获取当前读取日志条目的计数器的计数值L;
若判断获知所述L不大于预设的从所述数据缓冲区中读取的最大日志条目RMax,调用最小堆是否为空的判断函数H_Empty(T);其中,T表示最小堆,所述最小堆中的元素属性包括所述日志、所述日志生成时间和所述日志所属的数据缓冲区;
若判断获知所述H_Empty(T)返回不为空的标志位,则调用获取最小堆堆顶元素的函数H_Top(T),记录包含所述堆顶元素对应的日志,使所述计数值加一,并将已记录数据缓冲区链表R更新为包含所述堆顶元素的数据缓冲区;
若判断获知更新后的R不包含工作数据缓冲区链表W,且若判断获知所述H_Top(T)的数据缓冲区不为空,则读取所述H_Top(T)的数据缓冲区中的日志S,并通过调用最小堆堆顶元素的替换函数H_PopWithPush(T)用所述日志S替换所述堆顶元素,并重复执行所述判断所述L是否大于所述RMax的步骤。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若判断获知更新后的R包含所述W,则将所述H_Top(T)的数据缓冲区从所述W中迁移到空闲数据缓冲区链表F中,通过调用所述堆顶元素的删除函数H_Pop(T)删除所述堆顶元素;
继续重读所述F中可读取的数据缓冲区下一条日志,并将所述下一条日志添加到所述T中;
调用最小堆重建函数H_Adjust(T)重建所述T;
从所述F迁移可读取的数据缓冲区到所述W,并使所述R为空;
若判断获知所述H_Empty(T)返回不为空的标志位,重复执行所述判断所述L是否大于所述RMax的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇安信科技集团股份有限公司,未经奇安信科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810897307.4/1.html,转载请声明来源钻瓜专利网。





