一种读写日志的处理方法及装置制造方法及图纸

技术编号:20074857 阅读:24 留言:0更新日期:2019-01-15 00:34
本发明专利技术实施例提供一种读写日志的处理方法及装置,所述方法包括:根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。所述装置执行上述方法。本发明专利技术实施例提供的读写日志的处理方法及装置,基于进程级别确定目标数据缓冲区,在将日志写入目标数据缓冲区之后,再基于最小堆按时序读取日志的算法读取已写入的日志,能够高效地对日志进行读写。

A Processing Method and Device for Reading and Writing Logs

The embodiment of the present invention provides a processing method and device for reading and writing logs. The method includes: determining the process level of the process according to the writing performance parameters of the process to be written to the log; determining the sharing mode of the process sharing data buffer according to the process level; and allocating the process level corresponding to the process level according to the sharing mode. The target data buffer enables the process to perform write operations to the log according to the target data buffer; after the write operations are completed, the written logs are read based on an algorithm for timing the log read by the minimum heap. The device performs the above method. The method and device of reading and writing log provided by the embodiment of the present invention can determine the target data buffer based on the process level, read and write the log efficiently after writing the log to the target data buffer, and then read the written log based on the algorithm of reading the log in time sequence on the smallest heap.

【技术实现步骤摘要】
一种读写日志的处理方法及装置
本专利技术实施例涉及日志处理
,具体涉及一种读写日志的处理方法及装置。
技术介绍
随着信息技术的发展,日志的读写显得尤为重要。目前为了保证进程安全,通常采用为所有日志的处理进程加锁或进程独享一个缓冲区的方式实现写入日志,每个进程加锁会有写入性能问题,而进程独享一个缓冲区,即所有日志的处理进程中的每一个进程都单独占用一个数据缓冲区(可以为环形缓冲区ringbuffer)通道,使得所有进程占用系统资源(包括内存)过多,而ringbuffer通道过多还会引发对日志读取的性能问题。另外,由于磁盘日志往往需要支持时间查询,日志读取往往需要按时序进行读取并记录到磁盘,这样方便建立索引,各个ringbuffer中的日志都是按时序存储的,要想按时序获取日志,现有的方法每次都需要遍历所有ringbuffer,并获取最早时刻的日志,尤其当ringbuffer的数量较多时极大地影响了日志读取性能,主要体现在:当ringbuffer的数量大,每次寻找最早时刻日志,都需要遍历所有ringbuffer,比较费时。因此,如何避免上述缺陷,能够高效地对日志进行读写,成为亟须解决的本文档来自技高网...

【技术保护点】
1.一种读写日志的处理方法,其特征在于,包括:根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。

【技术特征摘要】
1.一种读写日志的处理方法,其特征在于,包括:根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。2.根据权利要求1所述的方法,其特征在于,所述写入性能参数包括日志写入速率;相应的,所述根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别,包括:若判断获知所述日志写入速率大于等于第一速率阈值;则确定所述进程级别为第一进程级别;若判断获知所述日志写入速率小于所述第一速率阈值,且大于等于第二速率阈值;则确定所述进程级别为第二进程级别;若判断获知所述日志写入速率小于所述第二速率阈值;则确定所述进程级别为第三进程级别。3.根据权利要求2所述的方法,其特征在于,所述根据所述进程级别,确定所述进程分享数据缓冲区的分享方式,包括:若判断获知所述进程级别为所述第一进程级别,则确定所述分享方式为独享数据缓冲区;若判断获知所述进程级别为所述第二进程级别或所述第三进程级别,则确定所述分享方式为共享数据缓冲区。4.根据权利要求3所述的方法,其特征在于,所述根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区,包括:分配与所述第一进程级别对应第一进程相对应的独享数据缓冲区;分配与所述第二进程级别对应第二进程相对应的第一共享数据缓冲区;分配与所述第三进程级别对应第三进程相对应的第二共享数据缓冲区。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:获取所述数据缓冲区的读取周期;根据所述第一进程对应的日志写入速率和所述读取周期,计算所述独享数据缓冲区的大小;确定所述第二进程和所述第三进程分别对应的共享进程数上限;根据所述第二进程对应的共享进程数上限、所述第一速率阈值和所述读取周期,计算所述第一共享数据缓冲区的大小;根据所述第三进程对应的共享进程数上限、所述第二速率阈值和所述读取周期,计算所述第二共享数据缓冲区的大小。6.根据权利要求1至5任一所述的方法,其特征在于,所述基于最小堆按时序读取日志的算法读取已写入的日志,包括:基于最小堆按时序读取日志的算法按照日志生成时间的先后顺序从日志所属的数据缓冲区中读取所述日志;获取当前读取日志条目的计数器的计数值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的步骤。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:若判断获知更新后的R包含所述W,则将所述H_Top(T)的数据缓冲区从所述W中迁移到空闲数据缓冲区链表F中,通过调用所述堆顶元素的删除函数H_Pop(T)删除所述堆顶元素;继续重读所述F中可读取的数据缓冲区下一条日志,并将所述下一条日志添加到所述T中;调用最小堆重建函数H_Adjust(T)重建所述T;从所述F迁移可读取的数据缓冲区到所述W,并使所述R为空;若判断获知所述H_Empty(T)返回不为空的标志位,重复执行所述判断所述L是否大于所述RMax的步骤。8.一种读写日志的处理装置,其特征在于,包括:第一确定单元,用于根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;第二确定单元,用于根...

【专利技术属性】
技术研发人员:金恒展
申请(专利权)人:北京奇安信科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1