CN109189726A - 一种读写日志的处理方法及装置 - Google Patents
一种读写日志的处理方法及装置 Download PDFInfo
- Publication number
- CN109189726A CN109189726A CN201810897307.4A CN201810897307A CN109189726A CN 109189726 A CN109189726 A CN 109189726A CN 201810897307 A CN201810897307 A CN 201810897307A CN 109189726 A CN109189726 A CN 109189726A
- Authority
- CN
- China
- Prior art keywords
- log
- data buffer
- level
- buffer area
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 365
- 230000008569 process Effects 0.000 claims abstract description 335
- 239000000872 buffer Substances 0.000 claims abstract description 216
- 230000006870 function Effects 0.000 claims description 46
- 230000003139 buffering effect Effects 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims description 7
- 230000037430 deletion Effects 0.000 claims description 7
- 238000013508 migration Methods 0.000 claims description 7
- 230000005012 migration Effects 0.000 claims description 7
- 230000001052 transient effect Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种读写日志的处理方法及装置,所述方法包括:根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。所述装置执行上述方法。本发明实施例提供的读写日志的处理方法及装置,基于进程级别确定目标数据缓冲区,在将日志写入目标数据缓冲区之后,再基于最小堆按时序读取日志的算法读取已写入的日志,能够高效地对日志进行读写。
Description
技术领域
本发明实施例涉及日志处理技术领域,具体涉及一种读写日志的处理方法及装置。
背景技术
随着信息技术的发展,日志的读写显得尤为重要。
目前为了保证进程安全,通常采用为所有日志的处理进程加锁或进程独享一个缓冲区的方式实现写入日志,每个进程加锁会有写入性能问题,而进程独享一个缓冲区,即所有日志的处理进程中的每一个进程都单独占用一个数据缓冲区(可以为环形缓冲区ringbuffer)通道,使得所有进程占用***资源(包括内存)过多,而ringbuffer通道过多还会引发对日志读取的性能问题。另外,由于磁盘日志往往需要支持时间查询,日志读取往往需要按时序进行读取并记录到磁盘,这样方便建立索引,各个ringbuffer中的日志都是按时序存储的,要想按时序获取日志,现有的方法每次都需要遍历所有ringbuffer,并获取最早时刻的日志,尤其当ringbuffer的数量较多时极大地影响了日志读取性能,主要体现在:当ringbuffer的数量大,每次寻找最早时刻日志,都需要遍历所有ringbuffer,比较费时。
因此,如何避免上述缺陷,能够高效地对日志进行读写,成为亟须解决的问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种读写日志的处理方法及装置。
第一方面,本发明实施例提供一种读写日志的处理方法,所述方法包括:
根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;
根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;
根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;
在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
第二方面,本发明实施例提供一种读写日志的处理装置,所述装置包括:
第一确定单元,用于根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;
第二确定单元,用于根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;
写入单元,用于根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;
读取单元,用于在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:
根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;
根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;
根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;
在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如下方法:
根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;
根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;
根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;
在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
本发明实施例提供的读写日志的处理方法及装置,基于进程级别确定目标数据缓冲区,在将日志写入目标数据缓冲区之后,再基于最小堆按时序读取日志的算法读取已写入的日志,能够高效地对日志进行读写。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例读写日志的处理方法流程示意图;
图2为本发明另一实施例读写日志的处理方法流程示意图;
图3为本发明实施例基于最小堆按时序读取日志的算法读取已写入的日志的整体流程图;
图4(1)~(11)分别为本发明实施例基于最小堆按时序读取日志的算法读取已写入的日志的信息状态变化图;
图5为本发明实施例读写日志的处理装置结构示意图;
图6为本发明实施例提供的电子设备实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例读写日志的处理方法流程示意图,如图1所示,本发明实施例提供的一种读写日志的处理方法,包括以下步骤:
S101:根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别。
具体的,装置根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别。所述写入性能参数可以包括日志写入速率,具体确定进程级别的步骤可以如下:若判断获知所述日志写入速率大于等于第一速率阈值;则确定所述进程级别为第一进程级别;若判断获知所述日志写入速率小于所述第一速率阈值,且大于等于第二速率阈值;则确定所述进程级别为第二进程级别;若判断获知所述日志写入速率小于所述第二速率阈值;则确定所述进程级别为第三进程级别。参照表1进行说明如下:
表1
表1描述了进程分级条件及各种进程级别对应数据缓冲区的参数,分级条件依赖于日志写入速率,第一进程级别的第一进程对日志写性能要求高,需要无锁操作,因此,数据缓冲区(可以为环形缓冲区ringbuffer)的进程数上限为1(即独享ringbuffer)。第二进程级别和第三进程级别分别对应的第二进程和第三进程对日志写性能要求偏低,可以共享ringbuffer,则需要加锁,例如:数据面的转发进程需要记录流量日志,写入速率可能达到几万条/秒,因此,该进程对应的进程级别为第一进程级别,需要独享ringbuffer,进行无锁操作;而管理面进程需要记录操作日志,操作日志频率相对比较低,因此,该进程对应的进程级别可以为第三进程级别。
S102:根据所述进程级别,确定所述进程分享数据缓冲区的分享方式。
具体的,装置根据所述进程级别,确定所述进程分享数据缓冲区的分享方式。具体说明如下:若判断获知所述进程级别为所述第一进程级别,则确定所述分享方式为独享数据缓冲区;若判断获知所述进程级别为所述第二进程级别或所述第三进程级别,则确定所述分享方式为共享数据缓冲区。可参照上述说明,不再赘述。
S103:根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作。
具体的,装置根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作。具体说明如下:分配与所述第一进程级别对应第一进程相对应的独享数据缓冲区;分配与所述第二进程级别对应第二进程相对应的第一共享数据缓冲区;分配与所述第三进程级别对应第三进程相对应的第二共享数据缓冲区。图2为本发明另一实施例读写日志的处理方法流程示意图,如图2所示,rb1~rb4是四个ringbuffer缓冲区,日志1~日志8表示按照日志生成时间的先后顺序依次写入目标数据缓冲区的日志,即rb1是与某一进程级别对应进程相对应的目标数据缓冲区、rb2是与另一进程级别对应进程相对应的目标数据缓冲区,rb3和rb4不再赘述。
需要说明的是:该方法还可以包括:获取所述数据缓冲区的读取周期;根据所述第一进程对应的日志写入速率和所述读取周期,计算所述独享数据缓冲区的大小;确定所述第二进程和所述第三进程分别对应的共享进程数上限;根据所述第二进程对应的共享进程数上限、所述第一速率阈值和所述读取周期,计算所述第一共享数据缓冲区的大小;根据所述第三进程对应的共享进程数上限、所述第二速率阈值和所述读取周期,计算所述第二共享数据缓冲区的大小。第一速率阈值和第二速率阈值可以根据实际情况自主设置,但第一速率阈值应大于第二速率阈值。第二进程和第三进程分别对应的共享进程数上限的具体数量可以根据进程的特点来确定。继续参照表1举例说明如下:读取周期可以理解为每次读取日志所需的时间,通常时间很短,一般用毫秒计量。可以理解的是:第一进程对应的日志写入速率的数值w大于等于500条/秒,通过w×t/1000计算出第一进程对应数据缓冲区的大小,由于w的单位是(条/秒),因此作统一量纲的计算。
通过500(第一速率阈值)×10(第二进程对应的共享进程数上限)×t/1000计算出第一共享数据缓冲区的大小。
通过100(第二速率阈值)×50(第三进程对应的共享进程数上限)×t/1000计算出第二共享数据缓冲区的大小。
S104:在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
具体的,装置在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。图3为本发明实施例基于最小堆按时序读取日志的算法读取已写入的日志的整体流程图,如图3所示,对图3中涉及的参数做如下对照说明:
F表示空闲数据缓冲区链表,是空缓冲区集合;
W表示工作数据缓冲区链表,是非空缓冲区集合;
R表示已记录数据缓冲区链表;
T表示最小堆,所述最小堆中的元素属性包括日志、日志生成时间、日志所属的数据缓冲区;
RMax表示预设的从数据缓冲区中读取的最大日志条目;
L表示当前读取日志条目的计数器的计数值;
H_Empty(T)函数,功能是如果输入最小堆为空,则返回真(即为空的标志位),如果输入最小堆为非空,则返回假(即为不为空的标志位);
H_Top(T)函数,功能是返回最小堆最小元素即堆顶元素;
H_Pop(T)函数,功能是删除最小堆最小元素即堆顶元素;
H_PopWithPush(T)函数,功能是将最小堆堆顶元素用新元素替换,向下调整新元素,满足最小堆;
H_Adjust(T)函数,重建生成最小堆。图3中的“记录H_Top(T)日志”对应本发明实施例中的“记录包含所述堆顶元素对应的数据缓冲区”。
图4(1)~(11)分别为本发明实施例基于最小堆按时序读取日志的算法读取已写入的日志的信息状态变化图。其中,图4(1)~(11)中的freelist对应F、worklist对应W、recordlist对应R、log记录已读取的日志的变化情况。结合图3和图4(1)~(11)可以更好的理解本发明实施例基于最小堆按时序读取日志的算法读取已写入的日志的整体流程。
具体的,基于最小堆按时序读取日志的算法读取已写入的日志,可以包括:
基于最小堆按时序读取日志的算法按照日志生成时间的先后顺序从日志所属的数据缓冲区中读取所述日志;获取当前读取日志条目的计数器的计数值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的步骤。参照图3并对应图4(2)~(3)。即在记录某个ringbuffer的日志时候,会再次读取ringbuffer堆顶元素,并添加到最小堆中,调整堆代价也会有效地降低。需要说明的是:如果H_Top(T)的缓冲区为空,则将H_Top(T)的缓冲区从W迁移到F中,通过调用堆顶元素删除函数H_Pop(T)删除所述堆顶元素,并重复执行所述判断所述L是否大于所述RMax的步骤。
具体的,基于最小堆按时序读取日志的算法读取已写入的日志,还可以包括:
若判断获知更新后的R包含所述W,则将所述H_Top(T)的数据缓冲区从所述W中迁移到空闲数据缓冲区链表F中,通过调用所述堆顶元素的删除函数H_Pop(T)删除所述堆顶元素;继续重读所述F中可读取的数据缓冲区下一条日志,并将所述下一条日志添加到所述T中;调用最小堆重建函数H_Adjust(T)重建所述T;从所述F迁移可读取的数据缓冲区到所述W,并使所述R为空;若判断获知所述H_Empty(T)返回不为空的标志位,重复执行所述判断所述L是否大于所述RMax的步骤。参照图3并对应图4(7)~(8)。即当最小堆中所有ringbuffer都被记录过才进行下一次遍历,从而降低了遍历运算的频次。采用图3所示的技术方案作为一个整体,能够降低日志读取的时间复杂度,从而高效读取日志。
本发明实施例提供的读写日志的处理方法,基于进程级别确定目标数据缓冲区,在将日志写入目标数据缓冲区之后,再基于最小堆按时序读取日志的算法读取已写入的日志,能够高效地对日志进行读写。
在上述实施例的基础上,所述写入性能参数包括日志写入速率;相应的,所述根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别,包括:
若判断获知所述日志写入速率大于等于第一速率阈值;则确定所述进程级别为第一进程级别。
具体的,装置若判断获知所述日志写入速率大于等于第一速率阈值;则确定所述进程级别为第一进程级别。可参照上述实施例,不再赘述。
若判断获知所述日志写入速率小于所述第一速率阈值,且大于等于第二速率阈值;则确定所述进程级别为第二进程级别。
具体的,装置若判断获知所述日志写入速率小于所述第一速率阈值,且大于等于第二速率阈值;则确定所述进程级别为第二进程级别。可参照上述实施例,不再赘述。
若判断获知所述日志写入速率小于所述第二速率阈值;则确定所述进程级别为第三进程级别。
具体的,装置若判断获知所述日志写入速率小于所述第二速率阈值;则确定所述进程级别为第三进程级别。可参照上述实施例,不再赘述。
本发明实施例提供的读写日志的处理方法,能够更加合理地确定不同的进程级别。
在上述实施例的基础上,所述根据所述进程级别,确定所述进程分享数据缓冲区的分享方式,包括:
若判断获知所述进程级别为所述第一进程级别,则确定所述分享方式为独享数据缓冲区。
具体的,装置若判断获知所述进程级别为所述第一进程级别,则确定所述分享方式为独享数据缓冲区。可参照上述实施例,不再赘述。
若判断获知所述进程级别为所述第二进程级别或所述第三进程级别,则确定所述分享方式为共享数据缓冲区。
具体的,装置若判断获知所述进程级别为所述第二进程级别或所述第三进程级别,则确定所述分享方式为共享数据缓冲区。可参照上述实施例,不再赘述。
本发明实施例提供的读写日志的处理方法,能够合理地确定数据缓冲区的分享方式。
在上述实施例的基础上,所述根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区,包括:
分配与所述第一进程级别对应第一进程相对应的独享数据缓冲区。
具体的,装置分配与所述第一进程级别对应第一进程相对应的独享数据缓冲区。可参照上述实施例,不再赘述。
分配与所述第二进程级别对应第二进程相对应的第一共享数据缓冲区。
具体的,装置分配与所述第二进程级别对应第二进程相对应的第一共享数据缓冲区。可参照上述实施例,不再赘述。
分配与所述第三进程级别对应第三进程相对应的第二共享数据缓冲区。
具体的,装置分配与所述第三进程级别对应第三进程相对应的第二共享数据缓冲区。可参照上述实施例,不再赘述。
本发明实施例提供的读写日志的处理方法,能够合理地分配不同的进程级别对应进程对应的不同数据缓冲区,进一步能够高效地对日志进行写入。
在上述实施例的基础上,所述方法还包括:
获取所述数据缓冲区的读取周期。
具体的,装置获取所述数据缓冲区的读取周期。可参照上述实施例,不再赘述。
根据所述第一进程对应的日志写入速率和所述读取周期,计算所述独享数据缓冲区的大小。
具体的,装置根据所述第一进程对应的日志写入速率和所述读取周期,计算所述独享数据缓冲区的大小。可参照上述实施例,不再赘述。
确定所述第二进程和所述第三进程分别对应的共享进程数上限。
具体的,装置确定所述第二进程和所述第三进程分别对应的共享进程数上限。可参照上述实施例,不再赘述。
根据所述第二进程对应的共享进程数上限、所述第一速率阈值和所述读取周期,计算所述第一共享数据缓冲区的大小。
具体的,装置根据所述第二进程对应的共享进程数上限、所述第一速率阈值和所述读取周期,计算所述第一共享数据缓冲区的大小。可参照上述实施例,不再赘述。
根据所述第三进程对应的共享进程数上限、所述第二速率阈值和所述读取周期,计算所述第二共享数据缓冲区的大小。
具体的,装置根据所述第三进程对应的共享进程数上限、所述第二速率阈值和所述读取周期,计算所述第二共享数据缓冲区的大小。可参照上述实施例,不再赘述。
本发明实施例提供的读写日志的处理方法,通过计算不同数据缓冲区的大小,进一步能够高效地对日志进行写入。
在上述实施例的基础上,所述基于最小堆按时序读取日志的算法读取已写入的日志,包括:
基于最小堆按时序读取日志的算法按照日志生成时间的先后顺序从日志所属的数据缓冲区中读取所述日志。
具体的,装置基于最小堆按时序读取日志的算法按照日志生成时间的先后顺序从日志所属的数据缓冲区中读取所述日志。可参照上述实施例,不再赘述。
获取当前读取日志条目的计数器的计数值L。
具体的,装置获取当前读取日志条目的计数器的计数值L。可参照上述实施例,不再赘述。
若判断获知所述L不大于预设的从所述数据缓冲区中读取的最大日志条目RMax,调用最小堆是否为空的判断函数H_Empty(T);其中,T表示最小堆,所述最小堆中的元素属性包括所述日志、所述日志生成时间和所述日志所属的数据缓冲区。
具体的,装置若判断获知所述L不大于预设的从所述数据缓冲区中读取的最大日志条目RMax,调用最小堆是否为空的判断函数H_Empty(T);其中,T表示最小堆,所述最小堆中的元素属性包括所述日志、所述日志生成时间和所述日志所属的数据缓冲区。可参照上述实施例,不再赘述。
若判断获知所述H_Empty(T)返回不为空的标志位,则调用获取最小堆堆顶元素的函数H_Top(T),记录包含所述堆顶元素对应的日志,使所述计数值加一,并将已记录数据缓冲区链表R更新为包含所述堆顶元素的数据缓冲区。
具体的,装置若判断获知所述H_Empty(T)返回不为空的标志位,则调用获取最小堆堆顶元素的函数H_Top(T),记录包含所述堆顶元素对应的日志,使所述计数值加一,并将已记录数据缓冲区链表R更新为包含所述堆顶元素的数据缓冲区。可参照上述实施例,不再赘述。
若判断获知更新后的R不包含工作数据缓冲区链表W,且若判断获知所述H_Top(T)的数据缓冲区不为空,则读取所述H_Top(T)的数据缓冲区中的日志S,并通过调用最小堆堆顶元素的替换函数H_PopWithPush(T)用所述日志S替换所述堆顶元素,并重复执行所述判断所述L是否大于所述RMax的步骤。
具体的,装置若判断获知更新后的R不包含工作数据缓冲区链表W,且若判断获知所述H_Top(T)的数据缓冲区不为空,则读取所述H_Top(T)的数据缓冲区中的日志S,并通过调用最小堆堆顶元素的替换函数H_PopWithPush(T)用所述日志S替换所述堆顶元素,并重复执行所述判断所述L是否大于所述RMax的步骤。可参照上述实施例,不再赘述。
本发明实施例提供的读写日志的处理方法,通过降低调整堆的代价,进一步能够高效地对日志进行读取。
在上述实施例的基础上,所述方法还包括:
若判断获知更新后的R包含所述W,则将所述H_Top(T)的数据缓冲区从所述W中迁移到空闲数据缓冲区链表F中,通过调用所述堆顶元素的删除函数H_Pop(T)删除所述堆顶元素。
若判断获知更新后的R包含所述W,则将所述H_Top(T)的数据缓冲区从所述W中迁移到空闲数据缓冲区链表F中,通过调用所述堆顶元素的删除函数H_Pop(T)删除所述堆顶元素。可参照上述实施例,不再赘述。
继续重读所述F中可读取的数据缓冲区下一条日志,并将所述下一条日志添加到所述T中。
继续重读所述F中可读取的数据缓冲区下一条日志,并将所述下一条日志添加到所述T中。可参照上述实施例,不再赘述。
调用最小堆重建函数H_Adjust(T)重建所述T。
调用最小堆重建函数H_Adjust(T)重建所述T。可参照上述实施例,不再赘述。
从所述F迁移可读取的数据缓冲区到所述W,并使所述R为空。
从所述F迁移可读取的数据缓冲区到所述W,并使所述R为空。可参照上述实施例,不再赘述。
若判断获知所述H_Empty(T)返回不为空的标志位,重复执行所述判断所述L是否大于所述RMax的步骤。
若判断获知所述H_Empty(T)返回不为空的标志位,重复执行所述判断所述L是否大于所述RMax的步骤。可参照上述实施例,不再赘述。
本发明实施例提供的读写日志的处理方法,通过降低遍历运算的频次,进一步能够高效地对日志进行读取。
图5为本发明实施例读写日志的处理装置结构示意图,如图5所示,本发明实施例提供了一种读写日志的处理装置,包括第一确定单元501、第二确定单元502、写入单元503和读取单元504,其中:
第一确定单元501用于根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;第二确定单元502用于根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;写入单元503用于根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;读取单元504用于在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
具体的,第一确定单元501用于根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;第二确定单元502用于根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;写入单元503用于根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;读取单元504用于在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
本发明实施例提供的读写日志的处理装置,基于进程级别确定目标数据缓冲区,在将日志写入目标数据缓冲区之后,再基于最小堆按时序读取日志的算法读取已写入的日志,能够高效地对日志进行读写。
在上述实施例的基础上,所述写入性能参数包括日志写入速率;相应的,所述第一确定单元501具体用于:若判断获知所述日志写入速率大于等于第一速率阈值;则确定所述进程级别为第一进程级别;若判断获知所述日志写入速率小于所述第一速率阈值,且大于等于第二速率阈值;则确定所述进程级别为第二进程级别;若判断获知所述日志写入速率小于所述第二速率阈值;则确定所述进程级别为第三进程级别。
具体的,所述第一确定单元501具体用于:若判断获知所述日志写入速率大于等于第一速率阈值;则确定所述进程级别为第一进程级别;若判断获知所述日志写入速率小于所述第一速率阈值,且大于等于第二速率阈值;则确定所述进程级别为第二进程级别;若判断获知所述日志写入速率小于所述第二速率阈值;则确定所述进程级别为第三进程级别。
本发明实施例提供的读写日志的处理装置,能够更加合理地确定不同的进程级别。
在上述实施例的基础上,所述第二确定单元502具体用于:若判断获知所述进程级别为所述第一进程级别,则确定所述分享方式为独享数据缓冲区;若判断获知所述进程级别为所述第二进程级别或所述第三进程级别,则确定所述分享方式为共享数据缓冲区。
具体的,所述第二确定单元502具体用于:若判断获知所述进程级别为所述第一进程级别,则确定所述分享方式为独享数据缓冲区;若判断获知所述进程级别为所述第二进程级别或所述第三进程级别,则确定所述分享方式为共享数据缓冲区。
本发明实施例提供的读写日志的处理装置,能够合理地确定数据缓冲区的分享方式。
在上述实施例的基础上,所述写入单元503具体用于:分配与所述第一进程级别对应第一进程相对应的独享数据缓冲区;分配与所述第二进程级别对应第二进程相对应的第一共享数据缓冲区;分配与所述第三进程级别对应第三进程相对应的第二共享数据缓冲区。
具体的,所述写入单元503具体用于:分配与所述第一进程级别对应第一进程相对应的独享数据缓冲区;分配与所述第二进程级别对应第二进程相对应的第一共享数据缓冲区;分配与所述第三进程级别对应第三进程相对应的第二共享数据缓冲区。
本发明实施例提供的读写日志的处理装置,能够合理地分配不同的进程级别对应进程对应的不同数据缓冲区,进一步能够高效地对日志进行写入。
在上述实施例的基础上,所述装置还用于:获取所述数据缓冲区的读取周期;根据所述第一进程对应的日志写入速率和所述读取周期,计算所述独享数据缓冲区的大小;确定所述第二进程和所述第三进程分别对应的共享进程数上限;根据所述第二进程对应的共享进程数上限、所述第一速率阈值和所述读取周期,计算所述第一共享数据缓冲区的大小;根据所述第三进程对应的共享进程数上限、所述第二速率阈值和所述读取周期,计算所述第二共享数据缓冲区的大小。
具体的,所述装置还用于:获取所述数据缓冲区的读取周期;根据所述第一进程对应的日志写入速率和所述读取周期,计算所述独享数据缓冲区的大小;确定所述第二进程和所述第三进程分别对应的共享进程数上限;根据所述第二进程对应的共享进程数上限、所述第一速率阈值和所述读取周期,计算所述第一共享数据缓冲区的大小;根据所述第三进程对应的共享进程数上限、所述第二速率阈值和所述读取周期,计算所述第二共享数据缓冲区的大小。
本发明实施例提供的读写日志的处理装置,通过计算不同数据缓冲区的大小,进一步能够高效地对日志进行写入。
在上述实施例的基础上,所述读取单元504具体用于:基于最小堆按时序读取日志的算法按照日志生成时间的先后顺序从日志所属的数据缓冲区中读取所述日志;获取当前读取日志条目的计数器的计数值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的步骤。
具体的,所述读取单元504具体用于:基于最小堆按时序读取日志的算法按照日志生成时间的先后顺序从日志所属的数据缓冲区中读取所述日志;获取当前读取日志条目的计数器的计数值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的步骤。
本发明实施例提供的读写日志的处理装置,通过降低调整堆的代价,进一步能够高效地对日志进行读取。
在上述实施例的基础上,所述读取单元504还具体用于:若判断获知更新后的R包含所述W,则将所述H_Top(T)的数据缓冲区从所述W中迁移到空闲数据缓冲区链表F中,通过调用所述堆顶元素的删除函数H_Pop(T)删除所述堆顶元素;继续重读所述F中可读取的数据缓冲区下一条日志,并将所述下一条日志添加到所述T中;调用最小堆重建函数H_Adjust(T)重建所述T;从所述F迁移可读取的数据缓冲区到所述W,并使所述R为空;若判断获知所述H_Empty(T)返回不为空的标志位,重复执行所述判断所述L是否大于所述RMax的步骤。
具体的,所述读取单元504还具体用于:若判断获知更新后的R包含所述W,则将所述H_Top(T)的数据缓冲区从所述W中迁移到空闲数据缓冲区链表F中,通过调用所述堆顶元素的删除函数H_Pop(T)删除所述堆顶元素;继续重读所述F中可读取的数据缓冲区下一条日志,并将所述下一条日志添加到所述T中;调用最小堆重建函数H_Adjust(T)重建所述T;从所述F迁移可读取的数据缓冲区到所述W,并使所述R为空;若判断获知所述H_Empty(T)返回不为空的标志位,重复执行所述判断所述L是否大于所述RMax的步骤。
本发明实施例提供的读写日志的处理装置,通过降低遍历运算的频次,进一步能够高效地对日志进行读取。
本发明实施例提供的读写日志的处理装置具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图6为本发明实施例提供的电子设备实体结构示意图,如图6所示,所述电子设备包括:处理器(processor)601、存储器(memory)602和总线603;
其中,所述处理器601、存储器602通过总线603完成相互间的通信;
所述处理器601用于调用所述存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的各实施例技术方案的范围。
Claims (16)
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.一种读写日志的处理装置,其特征在于,包括:
第一确定单元,用于根据待写入日志所需进程的写入性能参数,确定所述进程的进程级别;
第二确定单元,用于根据所述进程级别,确定所述进程分享数据缓冲区的分享方式;
写入单元,用于根据所述分享方式,分配给与所述进程级别对应进程相对应的目标数据缓冲区;以使所述进程根据所述目标数据缓冲区执行写入日志的写操作;
读取单元,用于在完成所述写操作之后,基于最小堆按时序读取日志的算法读取已写入的日志。
9.根据权利要求8所述的装置,其特征在于,所述写入性能参数包括日志写入速率;相应的,所述第一确定单元具体用于:
若判断获知所述日志写入速率大于等于第一速率阈值;则确定所述进程级别为第一进程级别;
若判断获知所述日志写入速率小于所述第一速率阈值,且大于等于第二速率阈值;则确定所述进程级别为第二进程级别;
若判断获知所述日志写入速率小于所述第二速率阈值;则确定所述进程级别为第三进程级别。
10.根据权利要求9所述的装置,其特征在于,所述第二确定单元具体用于:
若判断获知所述进程级别为所述第一进程级别,则确定所述分享方式为独享数据缓冲区;
若判断获知所述进程级别为所述第二进程级别或所述第三进程级别,则确定所述分享方式为共享数据缓冲区。
11.根据权利要求10所述的装置,其特征在于,所述写入单元具体用于:
分配与所述第一进程级别对应第一进程相对应的独享数据缓冲区;
分配与所述第二进程级别对应第二进程相对应的第一共享数据缓冲区;
分配与所述第三进程级别对应第三进程相对应的第二共享数据缓冲区。
12.根据权利要求11所述的装置,其特征在于,所述装置还用于:
获取所述数据缓冲区的读取周期;
根据所述第一进程对应的日志写入速率和所述读取周期,计算所述独享数据缓冲区的大小;
确定所述第二进程和所述第三进程分别对应的共享进程数上限;
根据所述第二进程对应的共享进程数上限、所述第一速率阈值和所述读取周期,计算所述第一共享数据缓冲区的大小;
根据所述第三进程对应的共享进程数上限、所述第二速率阈值和所述读取周期,计算所述第二共享数据缓冲区的大小。
13.根据权利要求8至12任一所述的装置,其特征在于,所述读取单元具体用于:
基于最小堆按时序读取日志的算法按照日志生成时间的先后顺序从日志所属的数据缓冲区中读取所述日志;
获取当前读取日志条目的计数器的计数值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的步骤。
14.根据权利要求13所述的装置,其特征在于,所述读取单元还具体用于:
若判断获知更新后的R包含所述W,则将所述H_Top(T)的数据缓冲区从所述W中迁移到空闲数据缓冲区链表F中,通过调用所述堆顶元素的删除函数H_Pop(T)删除所述堆顶元素;
继续重读所述F中可读取的数据缓冲区下一条日志,并将所述下一条日志添加到所述T中;
调用最小堆重建函数H_Adjust(T)重建所述T;
从所述F迁移可读取的数据缓冲区到所述W,并使所述R为空;
若判断获知所述H_Empty(T)返回不为空的标志位,重复执行所述判断所述L是否大于所述RMax的步骤。
15.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
16.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810897307.4A CN109189726B (zh) | 2018-08-08 | 2018-08-08 | 一种读写日志的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810897307.4A CN109189726B (zh) | 2018-08-08 | 2018-08-08 | 一种读写日志的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189726A true CN109189726A (zh) | 2019-01-11 |
CN109189726B CN109189726B (zh) | 2020-12-22 |
Family
ID=64920644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810897307.4A Active CN109189726B (zh) | 2018-08-08 | 2018-08-08 | 一种读写日志的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189726B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347443A (zh) * | 2019-06-28 | 2019-10-18 | 联想(北京)有限公司 | 日志处理方法和日志处理装置 |
CN111858502A (zh) * | 2020-06-02 | 2020-10-30 | 武汉达梦数据库有限公司 | 一种基于日志解析同步的日志读取方法和同步*** |
CN113377641A (zh) * | 2021-06-24 | 2021-09-10 | 上海哔哩哔哩科技有限公司 | 日志统计方法及*** |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1763034A2 (en) * | 2005-08-30 | 2007-03-14 | Kabushiki Kaisha Toshiba | Information playback system using information storage medium |
CN102360310A (zh) * | 2011-09-28 | 2012-02-22 | 中国电子科技集团公司第二十八研究所 | 一种分布式***环境下的多任务进程监视方法和监视*** |
CN103309858A (zh) * | 2012-03-06 | 2013-09-18 | 深圳市腾讯计算机***有限公司 | 一种多线程日志管理的方法及装置 |
CN103488582A (zh) * | 2013-09-05 | 2014-01-01 | 深圳市华为技术软件有限公司 | 写高速缓冲存储器的方法及装置 |
US20140025877A1 (en) * | 2010-12-13 | 2014-01-23 | Fusion-Io, Inc. | Auto-commit memory metadata |
CN103914485A (zh) * | 2013-01-07 | 2014-07-09 | 上海宝信软件股份有限公司 | 一种远程收集和检索展示应用***日志的***及方法 |
CN103945013A (zh) * | 2013-01-17 | 2014-07-23 | 方正宽带网络服务股份有限公司 | 数据传输接口装置和数据传输方法 |
CN104537074A (zh) * | 2014-12-31 | 2015-04-22 | 天津南大通用数据技术股份有限公司 | 一种提高数据库***写日志性能的方法 |
CN104571958A (zh) * | 2014-12-27 | 2015-04-29 | 北京奇虎科技有限公司 | 一种任务执行方法和装置 |
CN105577445A (zh) * | 2015-12-30 | 2016-05-11 | 北京京东尚科信息技术有限公司 | 一种日志收集和上报的方法和装置 |
CN105868093A (zh) * | 2016-04-25 | 2016-08-17 | 上海斐讯数据通信技术有限公司 | 一种日志写入方法及服务端 |
CN106708578A (zh) * | 2016-12-23 | 2017-05-24 | 北京五八信息技术有限公司 | 基于双线程的日志输出方法及装置 |
CN108345648A (zh) * | 2018-01-18 | 2018-07-31 | 北京奇安信科技有限公司 | 一种基于列式存储的获取日志信息的方法及装置 |
-
2018
- 2018-08-08 CN CN201810897307.4A patent/CN109189726B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1763034A2 (en) * | 2005-08-30 | 2007-03-14 | Kabushiki Kaisha Toshiba | Information playback system using information storage medium |
US20140025877A1 (en) * | 2010-12-13 | 2014-01-23 | Fusion-Io, Inc. | Auto-commit memory metadata |
CN102360310A (zh) * | 2011-09-28 | 2012-02-22 | 中国电子科技集团公司第二十八研究所 | 一种分布式***环境下的多任务进程监视方法和监视*** |
CN103309858A (zh) * | 2012-03-06 | 2013-09-18 | 深圳市腾讯计算机***有限公司 | 一种多线程日志管理的方法及装置 |
CN103914485A (zh) * | 2013-01-07 | 2014-07-09 | 上海宝信软件股份有限公司 | 一种远程收集和检索展示应用***日志的***及方法 |
CN103945013A (zh) * | 2013-01-17 | 2014-07-23 | 方正宽带网络服务股份有限公司 | 数据传输接口装置和数据传输方法 |
CN103488582A (zh) * | 2013-09-05 | 2014-01-01 | 深圳市华为技术软件有限公司 | 写高速缓冲存储器的方法及装置 |
CN104571958A (zh) * | 2014-12-27 | 2015-04-29 | 北京奇虎科技有限公司 | 一种任务执行方法和装置 |
CN104537074A (zh) * | 2014-12-31 | 2015-04-22 | 天津南大通用数据技术股份有限公司 | 一种提高数据库***写日志性能的方法 |
CN105577445A (zh) * | 2015-12-30 | 2016-05-11 | 北京京东尚科信息技术有限公司 | 一种日志收集和上报的方法和装置 |
CN105868093A (zh) * | 2016-04-25 | 2016-08-17 | 上海斐讯数据通信技术有限公司 | 一种日志写入方法及服务端 |
CN106708578A (zh) * | 2016-12-23 | 2017-05-24 | 北京五八信息技术有限公司 | 基于双线程的日志输出方法及装置 |
CN108345648A (zh) * | 2018-01-18 | 2018-07-31 | 北京奇安信科技有限公司 | 一种基于列式存储的获取日志信息的方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347443A (zh) * | 2019-06-28 | 2019-10-18 | 联想(北京)有限公司 | 日志处理方法和日志处理装置 |
CN111858502A (zh) * | 2020-06-02 | 2020-10-30 | 武汉达梦数据库有限公司 | 一种基于日志解析同步的日志读取方法和同步*** |
CN113377641A (zh) * | 2021-06-24 | 2021-09-10 | 上海哔哩哔哩科技有限公司 | 日志统计方法及*** |
CN113377641B (zh) * | 2021-06-24 | 2022-11-04 | 上海哔哩哔哩科技有限公司 | 日志统计方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN109189726B (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102055650B (zh) | 负载均衡方法及***和管理服务器 | |
CN109189726A (zh) | 一种读写日志的处理方法及装置 | |
CN110134514A (zh) | 基于异构内存的可扩展内存对象存储*** | |
CN106095589B (zh) | 一种分配分区的方法、装置及*** | |
CN107220188A (zh) | 一种自适应缓冲块替换方法 | |
CN102577241A (zh) | 分布式缓存资源调度的方法、装置及*** | |
CN103106152A (zh) | 基于层次存储介质的数据调度方法 | |
CN109558421A (zh) | 基于缓存的数据处理方法、***、装置及存储介质 | |
CN108228649A (zh) | 用于数据访问的方法和设备 | |
CN107247675A (zh) | 一种基于分类预测的缓存选择方法和*** | |
CN109521943A (zh) | 云数据库实例的分配方法及相关产品 | |
CN109408590A (zh) | 分布式数据库的扩容方法、装置、设备及存储介质 | |
JP2019164705A (ja) | 情報処理装置 | |
CN104715044B (zh) | 一种分布式***及其数据操作方法 | |
CN101226542A (zh) | 一种报表缓存的方法 | |
CN103631933A (zh) | 一种面向分布式去重***的数据路由方法 | |
CN108334460A (zh) | 数据缓存方法及装置 | |
CN109359063A (zh) | 面向存储***软件的缓存置换方法、存储设备及存储介质 | |
CN105491117A (zh) | 面向实时数据分析的流式图数据处理***及方法 | |
CN110532198A (zh) | 一种存储空间分配的方法及装置 | |
CN107707680A (zh) | 一种基于节点计算能力的分布式数据负载均衡方法和*** | |
CN109407997A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN106021492B (zh) | 一种对表格数据进行转存的方法及装置 | |
CN108021516A (zh) | 一种并行存储介质存储控制器的命令调度管理***与方法 | |
CN107172222A (zh) | 一种基于分布式存储***的数据存储方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100088 Building 3 332, 102, 28 Xinjiekouwai Street, Xicheng District, Beijing Applicant after: QAX Technology Group Inc. Address before: 100015 Jiuxianqiao Chaoyang District Beijing Road No. 10, building 15, floor 17, layer 1701-26, 3 Applicant before: BEIJING QIANXIN TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |