CN106776249B - 一种用于对并发生成的业务日志的处理方法和*** - Google Patents
一种用于对并发生成的业务日志的处理方法和*** Download PDFInfo
- Publication number
- CN106776249B CN106776249B CN201611071496.7A CN201611071496A CN106776249B CN 106776249 B CN106776249 B CN 106776249B CN 201611071496 A CN201611071496 A CN 201611071496A CN 106776249 B CN106776249 B CN 106776249B
- Authority
- CN
- China
- Prior art keywords
- log
- log area
- service
- query
- condition
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3404—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明通过对并发生成的业务日志的处理方法,通过将缓冲日志区与物理存储分离,减小了***压力,进而减小了***响应迟缓的问题,提高了业务日志的***和存储效率。所述方法包括:将并发生成的业务日志写入缓冲日志区;判断缓冲日志区的状态是否达到预设条件;当缓冲日志区的状态达到预设条件时,将缓冲日志区中的业务日志转存到长期存储介质中;根据唤醒日志区中已有的查询条件,更新唤醒日志区的查询结果集,以实现针对业务日志的查询。
Description
技术领域
本发明涉及Java Web领域,并且更具体地,涉及一种用于对并发生成的业务日志的处理方法和***。
背景技术
在常规的传统web项目中,常常需要各类日志输出,用以帮助管理人员定位问题、监控危险操作等。一般日志分为两类:
(1)***日志:指***级和代码级的调试信息,用于***排查错误和程序调试;
(2)业务日志:指业务范畴和安全权限变更的相关操作记录,用于监控用户关键操作等。
现在常用的做法一般是业务处理代码中加入额外的日志代码向用户数据库业务日志表中***日志记录,虽然这种方式在低并发场景下有编码简单易懂,实时性高等优点,但是在高并发的环境下就显得力不从心了。在日常使用场景中,业务日志会被高频调用,用户量达到一定量后,会频繁的进行数据库读写、请求数据源连接需求,对应用程序和数据库都造成很大负担,导致***响应迟缓甚至卡死,阻滞业务功能响应、严重降低用户体验。
发明内容
本发明目的在于提供一种用于对并发生成的业务日志的处理方法和***,解决高并发下***、查询业务日志时引发的***压力所导致的***响应迟缓等问题。
根据本发明的一方面,提供一种用于对并发生成的业务日志的处理方法,所述方法包括,
将并发生成的业务日志写入缓冲日志区;
判断缓冲日志区的状态是否达到预设条件;
当缓冲日志区的状态达到预设条件时,将缓冲日志区中的业务日志转存到长期存储介质中;以及
根据唤醒日志区中已有的查询条件,更新唤醒日志区的查询结果集,以实现针对业务日志的查询。
优选地,所述预设条件为:缓冲日志区内缓存的业务日志的数据大小是否达到临界值。
优选地,所述预设条件为:间隔时间是否满足进行同步操作的预定时间段。
优选地,当间隔时间满足进行同步操作的预定时间段时,若缓冲日志区内没有数据,则中断同步并重新开始计时。
优选地,通过调用***接口将业务日志写入到缓冲日志区。
优选地,所述唤醒日志区存储的数据为查询条件与查询结果集的对应关系,其中所述查询条件不包括分页条件和时间维度。
优选地,所述针对业务日志的查询为:
获得缓冲日志区中符合查询条件的业务日志的集合R1;
查询唤醒日志区中是否存在符合查询条件的查询结果集;
若唤醒日志区中存在符合查询条件的查询结果集,则根据查询结果集的内容获得业务日志的集合R2;
若唤醒日志区中不存在符合查询条件的查询结果集,则在长期存储介质中进行查询并获取符合查询条件的业务日志的集合R2,并更新唤醒日志区的查询结果集;
计算R1和R2的并集R-,并对R-进行时间维度和分页条件的过滤,得到所有符合查询条件的业务日志的集合R。
优选地,所述过滤方法为迭代遍历法。
优选地,若唤醒日志区中不存在查询条件,则不更新唤醒日志区的查询结果集。
根据本发明的另一方面,提供一种用于对并发生成的业务日志的处理***,包括:
日志写入单元,用于将并发生成的业务日志写入缓冲日志区;
状态判断单元,用于判断缓冲日志区的状态是否达到预设条件;
转存单元,用于将缓冲日志区中的业务日志转存到用于长期存储业务日志的长期存储介质中;
日志查询单元,用于根据查询条件获取缓冲日志区、唤醒日志区以及长期存储介质中的业务日志并得到查询结果;
其中所述唤醒日志区用于存储查询条件与查询结果集的对应关系。
优选地,所述缓冲日志区以list形式进行缓存。
优选地,所述唤醒日志区以map形式进行存储。
优选地,所述转存单元在状态判断单元判断缓冲日志区的状态达到预设条件时进行转存。
优选地,所述预设条件为:缓冲日志区内缓存的业务日志的数据大小是否达到临界值。
优选地,所述预设条件为:间隔时间是否满足进行同步操作的预定时间段。
本发明通过缓冲日志区将***和查询业务日志与日志的物理存储分离开来,在缓冲日志区中的***和查询的速度对比文件***或数据库***中的存储和查询速度会有所增加,且同步到长期存储介质时是集中且多线程的,给***带来的压力较小,减小***响应迟缓的问题。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为根据本发明优选实施例的处理方法的流程图;
图2为根据本发明优选实施例的业务日志的查询方法流程图;
图3为根据本发明优选实施例的处理***的结构图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图1为根据本发明优选实施例的处理方法的流程图。如图1所示,并发生成的业务日志的处理方法100从步骤101开始。在步骤101中,将并发生成的业务日志通过调用***接口写入到缓冲日志区内进行缓存。优选地,缓存日志区可以为本地内存或独立的缓存服务器,因为内存或独立的缓存服务器进行读写的速率较快,在高并发下生成的业务日志较多时,可以快速的进行业务日志的缓存,减小因频繁写入业务日志而造成的***响应缓慢等问题。
在步骤102中,判断缓存日志区的状态是否达到预设条件,若缓存日志区的状态已达到预设条件,则进行步骤103;若缓存日志区的状态没有达到预设条件,则不进行操作。优选地,所述预设条件为,缓冲日志区内缓存的业务日志的数据大小是否达到临界值;也可以为间隔时间是否满足进行同步操作的预定时间段,当间隔时间满足进行同步操作的预定时间段时,若缓冲日志区内没有数据,则中断同步并重新计时。
在步骤103中,将缓冲日志区中的业务日志转存到长期存储介质中进行长期存储。优选地,长期存储介质可以是数据库或其他能达到同样效果的存储介质,且相对于本地内存或独立的缓存服务器,长期存储介质的读写速度较慢,但可以进行长期安全的数据存储。
在步骤104中,根据唤醒日志区中已有的查询条件,更新唤醒日志区的查询结果集,以实现针对业务日志的查询。优选地,唤醒日志区存储的数据为查询条件与查询结果集的对应关系,即key-value关系对,key为查询条件,且这里的查询条件不包括分页条件和时间维度,value为查询结果集,因每条业务日志都有唯一的编号,value即为符合查询条件key的所有业务日志的编号的集合。当进行唤醒日志区的更新时,根据唤醒日志区已有的key,将符合查询条件的新转存到长期存储介质的业务日志的编号加入到对应的value中。
图2为根据本发明优选实施例的业务日志的查询方法流程图。如图2所示,业务日志的查询方法200从步骤201开始。在步骤201中,根据查询条件,首先获得缓冲日志区中符合查询条件的业务日志的集合R1。优选地,缓冲日志区中缓存着还未转存到长期存储介质中的部分业务日志,在需要进行业务日志的查询时,因为是查询所有已经产生的业务日志,缓冲日志区和长期存储介质中均存有一部分日志,所以首先获取缓冲日志区中符合查询条件的日志。
在步骤202中,查询唤醒日志区中是否存在符合查询条件的查询结果集,若存在,则进行步骤203;若不存在,则进行步骤204。优选地,这里的符合查询条件的查询结果集,是指唤醒日志区中存在一个value,其对应的key与本次的查询条件完全一致,例如本次的查询条件为“操作人为小明的高危操作”,若唤醒日志区中存在一个key为“操作人为小明的高危操作”,则将所述key对应的value中的值所对应的业务日志返回作为本次查询的结果R2。
当唤醒日志区中存在符合查询条件的查询结果集,则进行步骤203。在步骤203中,将唤醒日志区中符合查询条件的查询结果集返回作为R2。优选地,在将业务日志从缓冲日志区转存至长期存储介质中时,同步进行了唤醒日志区的更新操作,若唤醒日志区中存在一个key与本次查询条件一致,则其对应的value的值所对应的业务日志的集合一定能代表长期存储介质中所有符合查询条件的业务日志的集合,即集合R2。
当唤醒日志区中不存在符合查询条件的查询结果集,则进行步骤204。在步骤204中,唤醒日志区中不存在符合查询条件的查询结果集,则在长期存储介质中查询符合条件的业务日志,并获取查询结果的集合R2。优选地,长期存储介质因存储量大、读写速度相对较慢等原因,只在唤醒日志区中不存在符合查询条件的查询结果集时,对长期存储介质中存储的业务日志进行查询。
当步骤204执行完毕时,执行步骤205。根据长期存储介质中符合查询条件的业务日志的集合更新唤醒日志区的数据,增加新的条目保存以本次查询条件为key,以长期存储介质中的查询结果为value的对应关系,以便下次查询时直接应用。
当步骤203或205执行完毕后,执行步骤206。在步骤206中,计算R1和R2的并集R-,并对R-进行时间维度和分页条件的过滤,得到所有符合查询条件的业务日志的集合R。优选地,所述过滤方法为迭代遍历法,在进行过滤时以先进行时间维度后分页条件的顺序进行。
图3为根据本发明优选实施例的处理***的结构图。如图3所示,处理***300由日志写入单元301、状态判断单元302、转存单元303、日志查询单元304、缓冲日志区305、唤醒日志区306以及长期存储介质307组成。
优选地,日志写入单元301用于将并发生成的业务日志写入缓冲日志区305,故日志写入单元可以为Java Web中***接口,也可以为能达到写入效果的其他接口。
优选地,状态判断单元302用于判断缓冲日志区305的状态是否达到预设条件,当缓冲日志区305的状态达到预设条件时,转存单元303将缓冲日志区305内的所有数据转存至长期存储介质307中。优选地,所述预设条件为,缓冲日志区305内缓存的业务日志的数据大小是否达到临界值;也可以为间隔时间是否满足进行同步操作的预定时间段,当间隔时间满足进行同步操作的预定时间段时,若缓冲日志区305内没有数据,则中断转存操作并重新计时。
优选地,日志查询单元304主要用于查询过程中获取缓冲日志区305、唤醒日志区306以及长期存储介质307中的业务日志。在获取过程中,首先获取缓冲日志区305中符合查询条件的业务日志的集合R1,其次判断唤醒日志区306中是否存在符合查询条件的查询结果集,若存在,则获取所述查询结果集对应业务日志集合R2,若不存在,则获取长期存储介质307中符合查询条件的业务日志集合R2。最后计算R1和R2的并集,并进行时间维度和分页条件的过滤,得到所有符合查询条件的业务日志的集合R。
优选地,所述缓冲日志区305以list形式进行业务日志的缓存,所述唤醒日志区以map形式进行key-value关系对的存储。
已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。
Claims (13)
1.一种用于对并发生成的业务日志的处理方法,所述方法包括,
将并发生成的业务日志写入缓冲日志区;
判断缓冲日志区的状态是否达到预设条件;
当缓冲日志区的状态达到预设条件时,将缓冲日志区中的业务日志转存到长期存储介质中;其中,在将业务日志从缓冲日志区转存至长期存储介质中时,同步进行了唤醒日志区的更新操作;以及
根据唤醒日志区中已有的查询条件,更新唤醒日志区的查询结果集,以实现针对业务日志的查询;
其中,所述唤醒日志区存储的数据为查询条件与查询结果集的对应关系,其中所述查询条件不包括分页条件和时间维度;
所述针对业务日志的查询为:
获得缓冲日志区中符合查询条件的业务日志的集合R1;
查询唤醒日志区中是否存在符合查询条件的查询结果集;
若唤醒日志区中存在符合查询条件的查询结果集,则根据查询结果集的内容获得业务日志的集合R2;
若唤醒日志区中不存在符合查询条件的查询结果集,则在长期存储介质中进行查询并获取符合查询条件的业务日志的集合R2,并更新唤醒日志区的查询结果集;
计算R1和R2的并集R-,并对R-进行时间维度和分页条件的过滤,得到所有符合查询条件的业务日志的集合R。
2.根据权利要求1所述的方法,其特征在于,所述预设条件为:缓冲日志区内缓存的业务日志的数据大小是否达到临界值。
3.根据权利要求1所述的方法,其特征在于,所述预设条件为:间隔时间是否满足进行同步操作的预定时间段。
4.根据权利要求3所述的方法,当间隔时间满足进行同步操作的预定时间段时,若缓冲日志区内没有数据,则中断同步并重新开始计时。
5.根据权利要求1所述的方法,其特征在于,通过调用***接口将业务日志写入到缓冲日志区。
6.根据权利要求1所述的方法,其特征在于,过滤方法为迭代遍历法。
7.根据权利要求1所述的方法,若唤醒日志区中不存在查询条件,则不更新唤醒日志区的查询结果集。
8.一种用于对并发生成的业务日志的处理***,包括:
日志写入单元,用于将并发生成的业务日志写入缓冲日志区;
状态判断单元,用于判断缓冲日志区的状态是否达到预设条件;
转存单元,用于将缓冲日志区中的业务日志转存到用于长期存储业务日志的长期存储介质中;其中,在将业务日志从缓冲日志区转存至长期存储介质中时,同步进行了唤醒日志区的更新操作;
日志查询单元,用于根据查询条件获取缓冲日志区、唤醒日志区以及长期存储介质中的业务日志并得到查询结果;
其中所述唤醒日志区用于存储查询条件与查询结果集的对应关系;所述查询条件不包括分页条件和时间维度;
针对业务日志的查询为:
获得缓冲日志区中符合查询条件的业务日志的集合R1;
查询唤醒日志区中是否存在符合查询条件的查询结果集;
若唤醒日志区中存在符合查询条件的查询结果集,则根据查询结果集的内容获得业务日志的集合R2;
若唤醒日志区中不存在符合查询条件的查询结果集,则在长期存储介质中进行查询并获取符合查询条件的业务日志的集合R2,并更新唤醒日志区的查询结果集;
计算R1和R2的并集R-,并对R-进行时间维度和分页条件的过滤,得到所有符合查询条件的业务日志的集合R。
9.根据权利要求8所述的***,其特征在于,所述缓冲日志区以list形式进行缓存。
10.根据权利要求8所述的***,其特征在于,所述唤醒日志区以map形式进行存储。
11.根据权利要求8所述的***,其特征在于,所述转存单元在状态判断单元判断缓冲日志区的状态达到预设条件时进行转存。
12.根据权利要求8所述的***,其特征在于,所述预设条件为:缓冲日志区内缓存的业务日志的数据大小是否达到临界值。
13.根据权利要求8所述的***,其特征在于,所述预设条件为:间隔时间是否满足进行同步操作的预定时间段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611071496.7A CN106776249B (zh) | 2016-11-28 | 2016-11-28 | 一种用于对并发生成的业务日志的处理方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611071496.7A CN106776249B (zh) | 2016-11-28 | 2016-11-28 | 一种用于对并发生成的业务日志的处理方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776249A CN106776249A (zh) | 2017-05-31 |
CN106776249B true CN106776249B (zh) | 2020-07-28 |
Family
ID=58905360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611071496.7A Active CN106776249B (zh) | 2016-11-28 | 2016-11-28 | 一种用于对并发生成的业务日志的处理方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776249B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108197233A (zh) * | 2017-12-29 | 2018-06-22 | 飞狐信息技术(天津)有限公司 | 一种数据管理方法、中间件及数据管理*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200972A (zh) * | 2010-03-24 | 2011-09-28 | 腾讯科技(北京)有限公司 | 一种数据库维护方法和设备 |
CN103164511A (zh) * | 2013-02-21 | 2013-06-19 | 烽火通信科技股份有限公司 | 一种存储事件日志自动过滤重复抖动数据的方法 |
CN105488201A (zh) * | 2015-12-08 | 2016-04-13 | 北京皮尔布莱尼软件有限公司 | 一种日志查询方法和*** |
-
2016
- 2016-11-28 CN CN201611071496.7A patent/CN106776249B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200972A (zh) * | 2010-03-24 | 2011-09-28 | 腾讯科技(北京)有限公司 | 一种数据库维护方法和设备 |
CN103164511A (zh) * | 2013-02-21 | 2013-06-19 | 烽火通信科技股份有限公司 | 一种存储事件日志自动过滤重复抖动数据的方法 |
CN105488201A (zh) * | 2015-12-08 | 2016-04-13 | 北京皮尔布莱尼软件有限公司 | 一种日志查询方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN106776249A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10133679B2 (en) | Read cache management method and apparatus based on solid state drive | |
WO2019085471A1 (zh) | 数据库同步方法、应用服务器及计算机可读存储介质 | |
CN106462592B (zh) | 优化对索引的多版本支持的***和方法 | |
CA2491731A1 (en) | System and method for caching data for a mobile application | |
CN112948398B (zh) | 一种面向冷热数据的分级存储***及方法 | |
EP2336901B1 (en) | Online access to database snapshots | |
EP2797014B1 (en) | Database update execution according to power management schemes | |
US20060248125A1 (en) | Method and system for data processing with data backup | |
EP2535815A1 (en) | Consistent backup of a distributed database system | |
JP7101566B2 (ja) | 不揮発性メモリにおけるマルチバージョン同時実行制御(mvcc) | |
US10621104B2 (en) | Variable cache for non-volatile memory | |
EP2541423A1 (en) | Replacement policy for resource container | |
CN106874281A (zh) | 实现数据库读写分离的方法和装置 | |
CN111221828A (zh) | 一种提高数据库数据和缓存数据一致性的方法及终端 | |
CN114706836B (zh) | 一种基于机载嵌入式数据库的数据生命周期管理方法 | |
CN106776249B (zh) | 一种用于对并发生成的业务日志的处理方法和*** | |
CN110554914B (zh) | 资源锁管理方法、装置、服务器及存储介质 | |
US7240065B2 (en) | Providing mappings between logical time values and real time values | |
US11860840B2 (en) | Update of deduplication fingerprint index in a cache memory | |
CN115129618A (zh) | 用于优化数据缓存的方法和设备 | |
US7251660B2 (en) | Providing mappings between logical time values and real time values in a multinode system | |
KR102214697B1 (ko) | 데이터베이스 관리 시스템에서 데이터 저장을 위한 공간 관리를 제공하는 컴퓨터 프로그램 | |
CN107506147B (zh) | 一种保持元数据一致性的方法及*** | |
CN108038121B (zh) | 一种缓存方法及终端 | |
US10372699B2 (en) | Patch-up operations on invalidity data |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |