[发明专利]一种存储服务日志系统及日志系统的性能优化方法、系统在审
申请号: | 202010110183.8 | 申请日: | 2020-02-23 |
公开(公告)号: | CN111274220A | 公开(公告)日: | 2020-06-12 |
发明(设计)人: | 白战豪;张端 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F16/18 | 分类号: | G06F16/18;G06F16/13;G06F16/2457;G06F16/22;G06F11/34 |
代理公司: | 济南诚智商标专利事务所有限公司 37105 | 代理人: | 黄晓燕 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 存储 服务 日志 系统 性能 优化 方法 | ||
1.一种存储服务日志系统,其特征在于,所述存储服务日志系统由三个线程、一个键值对容器multihashmap和n个队列组成,其中:
n个所述队列,用于日志循环入队和循环出队;
所述键值对容器multihashmap,用于以微秒级日志时间为索引键key,在所述队列对循环入队的日志消息进行排序;
三个所述线程,用于控制对排序后的日志消息循环出队以及执行日志下刷、日志打包的动作。
2.根据权利要求1所述的存储服务日志系统,其特征在于,三个所述线程包括日志中间线程、日志下刷线程以及日志打包线程;
所述日志中间线程,用于控制队列中的日志循环出队,并以时间为键、日志消息为值添加至支持重复键值的所述键值对容器multihashmap中,并判断计算循环出队的日志是否达到既定下刷水位;
所述日志下刷线程,用于将经过支持重复键值的键值对容器multihashmap中排序的日志消息取出,按照既定顺序以日志形式下刷至日志文件,并计算指定日志文件大小是否到达既定压缩水位;
所述日志打包线程,用于将达到既定压缩水位的指定日志文件以既定规则更新并后台压缩打包。
3.根据权利要求1所述的存储服务日志系统,其特征在于,n个所述队列的循环入队,使用静态原子变量控制自加,然后对既定队列数量取模以控制日志消息循环入队。
4.一种基于权利要求1所述的存储服务日志系统的日志系统的性能优化方法,其特征在于,所述方法包括下述步骤:
原子变量自加取模,控制日志循环入队和出队顺序,并利用键值对容器multihashmap对微妙级时间戳进行日志消息进行排序;
当队列中的日志达到下刷水位时,将经过键值对容器multihashmap中排序的日志消息取出,按照既定顺序以日志形式下刷至日志文件;
对日志消息下刷的日志文件进行水位控制,判断指定日志文件大小是否到达既定压缩水位;
当指定日志文件大小到达既定压缩水位时,定量进行后台压缩打包。
5.根据权利要求4所述的日志系统的性能优化方法,其特征在于,所述利用支持重复键值的键值对容器multihashmap对微妙级时间戳进行日志消息进行排序的步骤具体包括下述步骤:
封装日志时间为索引键key,并将索引键key添加到支持重复键值的键值对容器multihashmap中;
创建一个局部临时变量,并利用创建的所述局部临时变量记录当前循环入队的日志的大小,同时,每次在队列中插入日志,控制所述支持重复键值的键值对容器multihashmap对循环入队的日志按对应大小排序;
判断计算循环出队的日志是否达到既定下刷水位;
当到达既定下刷水位,给日志下刷线程发送到达既定下刷水位的信号。
6.根据权利要求5所述的日志系统的性能优化方法,其特征在于,所述当队列中的日志达到下刷水位时,将经过支持重复键值的键值对容器multihashmap中排序的日志消息取出,按照既定顺序以日志形式下刷至日志文件,同时对循环出队的日志消息进行水位控制的步骤具体包括下述步骤:
当接收到所述到达既定下刷水位的信号时,控制将经过支持重复键值的键值对容器multihashmap中排序的日志消息取出;
按照既定顺序以日志形式下刷至日志文件,同时对循环出队的日志消息进行水位控制。
7.一种日志系统的性能优化系统,其特征在于,所述系统包括:
取模控制模块,用于原子变量自加取模,控制日志循环入队和出队顺序;
排序模块,用于利用键值对容器multihashmap对微妙级时间戳进行日志消息进行排序;
下刷模块,用于当队列中的日志达到下刷水位时,将经过键值对容器multihashmap中排序的日志消息取出,按照既定顺序以日志形式下刷至日志文件;
出队水平控制模块,用于对日志消息下刷的日志文件进行水位控制,判断指定日志文件大小是否到达既定压缩水位;
压缩打包模块,用于当指定日志文件大小到达既定压缩水位时,定量进行后台压缩打包。
8.根据权利要求7所述的日志系统的性能优化系统,其特征在于,所述排序模块具体包括:
索引键添加模块,用于封装日志时间为索引键key,并将索引键key添加到支持重复键值的键值对容器multihashmap中;
记录模块,用于创建一个局部临时变量,并利用创建的所述局部临时变量记录当前循环入队的日志的大小;
大小排序模块,用于每次在队列中插入日志,控制所述支持重复键值的键值对容器multihashmap对循环入队的日志按对应大小排序;
既定下刷水平判断模块,用于判断计算循环出队的日志是否达到既定下刷水位;
既定下刷水位信号发送模块,用于当到达既定下刷水位,给日志下刷线程发送到达既定下刷水位的信号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010110183.8/1.html,转载请声明来源钻瓜专利网。