CN114327268A - 一种应用于kv存储的自适应防护方法、装置及存储介质 - Google Patents

一种应用于kv存储的自适应防护方法、装置及存储介质 Download PDF

Info

Publication number
CN114327268A
CN114327268A CN202111609913.XA CN202111609913A CN114327268A CN 114327268 A CN114327268 A CN 114327268A CN 202111609913 A CN202111609913 A CN 202111609913A CN 114327268 A CN114327268 A CN 114327268A
Authority
CN
China
Prior art keywords
slow
key
time
total
keys
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.)
Pending
Application number
CN202111609913.XA
Other languages
English (en)
Inventor
魏来
蔡惠聪
徐锐波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Yunsizhixue Technology Co ltd
Original Assignee
Beijing Yunsizhixue Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Yunsizhixue Technology Co ltd filed Critical Beijing Yunsizhixue Technology Co ltd
Priority to CN202111609913.XA priority Critical patent/CN114327268A/zh
Publication of CN114327268A publication Critical patent/CN114327268A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种应用于KV存储的自适应防护方法、装置及存储介质,所述应用于KV存储的自适应防护方法,包括:统计汇总预设时间段内所有连接的key维度的慢查询总耗时,并进行排序;针对高于预设阈值的前n位key做出慢查屏蔽处理,慢查屏蔽的时段内,对该n位key的读写操作均返回失败。本发明的应用于KV存储的自适应防护方法,可以对KV存储系统进行实时自适应防护,感知不合理的key,在key维度进行阶段性流量屏蔽,以保护KV存储系统不会雪崩。

Description

一种应用于KV存储的自适应防护方法、装置及存储介质
技术领域
本发明涉及分布式存储技术领域,具体的涉及一种应用于KV存储的自适应防护方法、装置及存储介质。
背景技术
KV存储——key-value,键值存储。键值存储是数据库最简单的组织形式。键值存储通常都有例如以下接口:
Get(key):获取之前存储于某标示符“key”之下的一些数据,或者“key”下没有数据时报错。
Set(key,value):将“value”存储到存储空间中某标示符“key”下。使得我们能够通过调用同样的“key”来访问它。
假设“key”下已经有了一些数据,旧的数据将被替换。
Delete(key):删除存储在“key”下的数据。
大部分低层实现都是使用哈希表或者某种自平衡树(比如B-树或者红黑树)。有时候数据太大而不装不进内存,或者必须维持数据谨防系统由于未知原因而崩溃。
时间段内系统的处能力等价于该时间段内所有连接的非空闲时间的累加值,而一个慢查询的key,意味着更多地占用了连接的处理时间,占用得越多,这个时间段内这个key对系统造成的处理压力越大。现有的KV存储系统缺少自我保护,使用方对存储系统的低效使用,容易对存储系统形成压力,造成存储系统崩溃,导致上游所有调用方都受影响。
有鉴于此,特提出本发明专利。
发明内容
本发明为了解决上述技术问题,提出了一种可以对KV存储系统进行实时自适应防护,感知不合理的key,在key维度进行阶段性流量屏蔽,以保护KV存储系统不会雪崩的应用于KV存储的自适应防护方法、装置及存储介质,具体技术方案如下:
一种应用于KV存储的自适应防护方法,包括:
统计汇总预设时间段内所有连接的key维度的慢查询总耗时,并进行排序;
针对高于预设阈值的前n位key做出慢查屏蔽处理,慢查屏蔽的时段内,对该n位key的读写操作均返回失败。
作为本发明的可选实施方式,所述统计汇总预设时间段内所有连接的key维度的慢查询总耗时包括:
在进行每个连接处理时,实时监测该连接在处理该key的相关请求时的慢查询耗时,并将超过了单次慢查询阈值的耗时记录为session_slow_key_cost;
累加t1-tn时间段内,一个连接处理针对该key的session_slow_key_cost,得到session_slow_key_total,其中,所述session_slow_key_total表示在t1-tn时间段内一个连接处理针对该key的慢查询累积耗时;
将所有的连接的session_slow_key_total进行累加,得该key在t1-tn时间内所有连接处理的慢查询总耗时;
针对t1-tn时间段内所有连接根据key进行分别统计汇总连接处理的慢查询总耗时记录为:
key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total。
作为本发明的可选实施方式,所述统计汇总预设时间段内所有连接的key维度的慢查询总耗时统计每个连接key维度的慢查询耗时包括:
在进行每个连接处理时,实时监测该连接在处理该key的相关请求时的慢查询耗时,并将超过了单次慢查询阈值的耗时记录为session_slow_key_cost;
统计t1时刻,所有连接处理的各个key的session_slow_key_cost,记录为key1:session_slow_key_cost,key2:session_slow_key_cost,……,keyn:session_slow_key_cost;
累加t1-tn时间段内,所有连接处理的各个key的慢查询累积耗时,记录为key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total。
作为本发明的可选实施方式,所述针对高于预设阈值的前n位key做出慢查屏蔽处理包括:
根据key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total筛选出t1-tn时间段内所有命中慢查询的key,进行权重计算得到各个命中key的权重值;
根据计算的权重值针对各个命中key进行排序,得到时间段内对KV存储系统压力最大的前n个key,对排名前n位的key进行慢查屏蔽处理。
作为本发明的可选实施方式,针对所述命中慢查询的key进行权重计算包括的参数值有key的慢查询时长T,以及慢查询时长T对应的权数ζ;key被连接的频率F,以及频率F对应的权数η;key的优先级别S,以及优先级别S对应的权数θ。
作为本发明的可选实施方式,预设慢查屏蔽处理时间为Tp,针对排名前n位的key进行慢查屏蔽处理的时间为Tp,当慢查屏蔽处理的时间达到Tp后,则释放所述被进行慢查屏蔽处理的key,被释放的key可被重新进行读写操作;
其中,所述慢查屏蔽处理时间为Tp大于或者等于至少一个时间段t1-tn。
作为本发明的可选实施方式,所述key被慢查屏蔽处理期间,针对该屏蔽key的连接请求均立即反馈为“请求失败”,且记录反馈时长Ts。
作为本发明的可选实施方式,所述key被慢查屏蔽处理期间的下一个t1-tn时间段内,再次被计算排序屏蔽,则系统发出报警信息。
本发明同时提供一种应用于KV存储的自适应防护装置,包括:
慢查询模块,统计汇总预设时间段内所有连接的key维度的慢查询总耗时,并进行排序;
以及处理模块,针对高于预设阈值的前n位key做出慢查屏蔽处理,慢查屏蔽的时段内,对该n位key的读写操作均返回失败。
本发明同时还提供一种存储介质,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现所述的一种应用于KV存储的自适应防护方法。
与现有技术相比,本发明的有益效果:
本发明的应用于KV存储的自适应防护方法,针对KV存储系统在进行连接请求时,针对一定时间段内key维度的慢查询总耗时的监测,将慢查询时间高于预设阈值的前n位key做出慢查屏蔽处理,避免了慢查key长时间占用更多的连接处理时间而对系统造成压力,屏蔽这些慢查询时间过长的key,可以最大程度地避免存储系统陷入崩溃状态,释放存储能力给其他key,提升系统的处理能力,增强系统的稳定性。
因此,本发明的应用于KV存储的自适应防护方法,可以对KV存储系统进行实时自适应防护,感知不合理的key,在key维度进行阶段性流量屏蔽,以保护KV存储系统不会雪崩。
附图说明:
图1本发明实施例的一种应用于KV存储的自适应防护方法的流程图一;
图2本发明实施例的一种应用于KV存储的自适应防护方法的流程图二;
图3本发明实施例的一种应用于KV存储的自适应防护方法的流程图三。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。
因此,以下对本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的部分实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征和技术方案可以相互组合。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,这类术语仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
参见图1所示,本实施例提供了一种应用于KV存储的自适应防护方法,包括:
统计汇总预设时间段内所有连接的key维度的慢查询总耗时,并进行排序;
针对高于预设阈值的前n位key做出慢查屏蔽处理,慢查屏蔽的时段内,对该n位key的读写操作均返回失败。
本实施例的应用于KV存储的自适应防护方法,针对KV存储系统在进行连接请求时,针对一定时间段内key维度的慢查询总耗时的监测,将慢查询时间高于预设阈值的前n位key做出慢查屏蔽处理,避免了慢查key长时间占用更多的连接处理时间而对系统造成压力,屏蔽这些慢查询时间过长的key,可以最大程度地避免存储系统陷入崩溃状态,释放存储能力给其他key,提升系统的处理能力,增强系统的稳定性。
因此,本实施例的应用于KV存储的自适应防护方法,可以对KV存储系统进行实时自适应防护,感知不合理的key,在key维度进行阶段性流量屏蔽,以保护KV存储系统不会雪崩。
本实施例的自适应防护方法需要针对key维度的慢查询日志进项监测分析,因此,适用于日志型的KV存储系统(如Redis),针对日志型的KV存储系统设计慢查询日志功能,慢查询日志功能用于记录执行时间超过给定时长的命令请求,用户可以通过这个功能产生的日志来监视和优化查询速度。
服务器配置有两个和慢查询日志相关的选项:
slowlog-log-slower-than选项指定执行时间超过多少微秒(1秒等于1,000,000微秒)的命令请求会被记录到日志上。
举个例子,如果这个选项的值为100,那么执行时间超过100微秒的命令就会被记录到慢查询日志;如果这个选项的值为500,那么执行时间超过500微秒的命令就会被记录到慢查询日志;诸如此类。
slowlog-max-len选项指定服务器最多保存多少条慢查询日志。
服务器使用先进先出的方式保存多条慢查询日志:当服务器储存的慢查询日志数量等于slowlog-max-len选项的值时,服务器在添加一条新的慢查询日志之前,会先将最旧的一条慢查询日志删除。
举个例子,如果服务器slowlog-max-len的值为100,并且假设服务器已经储存了100条慢查询日志,那么如果服务器打算添加一条新日志的话,它就必须先删除目前保存的最旧的那条日志,然后再添加新日志。
一个慢查询日志功能的例子,首先用CONFIG_SET命令将slowlog-log-slower-than选项的值设为0微秒,这样Redis服务器执行的任何命令都会被记录到慢查询日志中,接着将slowlog-max-len选项的值设为5,让服务器最多只保存5条慢查询日志。
具体地,作为本实施例的可选实施方式,参见图2所示,所述统计汇总预设时间段内所有连接的key维度的慢查询总耗时包括:
在进行每个连接处理时,实时监测该连接在处理该key的相关请求时的慢查询耗时,并将超过了单次慢查询阈值的耗时记录为session_slow_key_cost;
累加t1-tn时间段内,一个连接处理针对该key的session_slow_key_cost,得到session_slow_key_total,其中,所述session_slow_key_total表示在t1-tn时间段内一个连接处理针对该key的慢查询累积耗时;
将所有的连接的session_slow_key_total进行累加,得该key在t1-tn时间内所有连接处理的慢查询总耗时;
针对t1-tn时间段内所有连接根据key进行分别统计汇总连接处理的慢查询总耗时记录为:
key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total。
本实施例通过针对每个连接处理的日志进行慢查询,当慢查询超过阈值时将被记录,并在t1-tn时间段内进行持续性的慢查询监测记录,得到在处理某一key的连接处理时的慢查询总耗时,当总耗时过大,说明处理该key的连接请求需要占据较大的系统的资源,需要被筛选出来做进一步的处理。
作为本实施例的另一种可选实施方式,参见图3所示,所述统计汇总预设时间段内所有连接的key维度的慢查询总耗时统计每个连接key维度的慢查询耗时包括:
在进行每个连接处理时,实时监测该连接在处理该key的相关请求时的慢查询耗时,并将超过了单次慢查询阈值的耗时记录为session_slow_key_cost;
统计t1时刻,所有连接处理的各个key的session_slow_key_cost,记录为key1:session_slow_key_cost,key2:session_slow_key_cost,……,keyn:session_slow_key_cost;
累加t1-tn时间段内,所有连接处理的各个key的慢查询累积耗时,记录为key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total。
本实施方式与上述实施方式的区别在于针对key的累加计算方式略有区别,但最终都是为了得到t1-tn时间段内,所有连接处理的各个key的慢查询累积耗时,记录为key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total。
因此,本实施例的应用于KV存储的自适应防护方法并不局限于采用上述两种计算t1-tn时间段内所有连接处理的各个key的慢查询累积耗时的方法,凡是能够实现计算结果的均可采用。
进一步地,针对KV存储系统来说,慢查询时间并不能单一的评价该key值是否需要被屏蔽,还需要综合考虑key的其它关键因素,从而不仅要保证KV存储系统的高效性,还需要满足用户的使用需求。因此,本实施例所述的一种应用于KV存储的自适应防护方法,所述针对高于预设阈值的前n位key做出慢查屏蔽处理包括:
根据key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total筛选出t1-tn时间段内所有命中慢查询的key,进行权重计算得到各个命中key的权重值;
根据计算的权重值针对各个命中key进行排序,得到时间段内对KV存储系统压力最大的前n个key,对排名前n位的key进行慢查屏蔽处理。
本实施例通过针对key的慢查询时间监测,将超过设定慢查阈值的key筛选出作为命中key,针对命中key进行权重计算,考虑key的各个方面的影响因素,再做出对排名前n位的key进行慢查屏蔽处理,是在保证KV存储系统的高效稳定性以及用户的使用需求性。
权重计算即将各数值乘以相应的权数,然后加总求和得到总体值,再除以总的单位数。权重的值就是加权平均值,值的大小不仅取决于总体中各单位的数值(变量值)的大小,而且取决于各数值出现的次数(频数),由于各数值出现的次数对其在平均数中的影响起着权衡轻重的作用,因此叫做权数。
具体地,本实施例针对所述命中慢查询的key进行权重计算包括的参数值有key的慢查询时长T,以及慢查询时长T对应的权数ζ;key被连接的频率F,以及频率F对应的权数η;key的优先级别S,以及优先级别S对应的权数θ。
本实施例的权重计算包括的参数值中key的慢查询时长T表征key所占用的系统资源,key被连接的频率F则表征key被用户所检索的需求,key的优先级别S则表征key的重要程度。举例说明,假如某命中key的慢查询时长T超过了慢查阈值,但是该命中key被查询的频率F很高,和/或有限级别S很高,则最终根据权重计算得到的权重值排序并非一定靠前。
因此,本实施例的应用于KV存储的自适应防护方法以慢查询时间作为监测条件,针对连接处理的key进行监测,筛选出占用系统资源较多的key,综合各个方面的因素后进行权重计算,根据权重计算的权重值进行排序,更加的客观全面,不仅保证了KV系统的高效稳定,而且确保满足用户端的使用需求。
进一步地,参见图1所示,本实施例所述的一种应用于KV存储的自适应防护方法,预设慢查屏蔽处理时间为Tp,针对排名前n位的key进行慢查屏蔽处理的时间为Tp,当慢查屏蔽处理的时间达到Tp后,则释放所述被进行慢查屏蔽处理的key,被释放的key可被重新进行读写操作;
其中,所述慢查屏蔽处理时间为Tp大于或者等于至少一个时间段t1-tn。
为了保证KV存储系统作为数据库的基本功能属性,本实施例慢查屏蔽处理的key达到预设慢查屏蔽处理时间Tp后,则被释放,可被重新进行读写操作。
作为本实施例的可选实施方式,所述key被慢查屏蔽处理期间,针对该屏蔽key的连接请求均立即反馈为“请求失败”,且记录反馈时长Ts。由于key被慢查屏蔽处理,被拒绝读写,因此,在进行该key的连接处理时会立即反馈出“请求失败”的结果,此时记录的反馈时长Ts作为该屏蔽key在下一个t1-tn时间段内的慢查询时间记录,由于反馈时长Ts很小,因此在下一个t1-tn时间段内一般不会命中慢查阈值。
进一步地,所述key被慢查屏蔽处理期间的下一个t1-tn时间段内,再次被计算排序屏蔽,则系统发出报警信息。由本实施例的慢查屏蔽处理策略可知,被屏蔽key被重新释放后,在被慢查屏蔽处理期间的下一个t1-tn时间段内,一般都会被释放,但是若再次被屏蔽,则需要进行系统排查,确认是否存在错误或者异常。
因此,本实施例的应用于KV存储的自适应防护方法包括:
通过对每个连接key维度的慢查情况进行实时统计,将单位时间内key维度的慢查总耗时进行排序,将高于某个阈值的前个key做慢查屏蔽处理,慢查屏蔽的时段内,对该key的读写操作均返回失败。
对于单个key来说,有如下公式,计算单个key在时间段内对存储系统造成的压力session_slow_key_cost:连接在处理该key的相关请求时,超过了单次慢查阈值的耗时。
计算第一步:累加t1-tn时间内,一个session(连接)处理的session_slow_key_cost,得到session_slow_key_total
计算第二步:将所有的session(连接)的session_slow_key_total进行累加,得一个key的慢查权重将时间段内所有命中慢查的key进行权重计算,按照该权重值进行排序,得到时间段内对系统压力最大的前n个key,对排名前n位的key进行慢查屏蔽,屏蔽t时间。
由于时间段内系统的处能力等价于该时间段内所有连接的非空闲时间的累加值,而一个慢查的key,意味着更多地占用了连接的处理时间,占用得越多,这个时间段内这个key对系统造成的处理压力越大,本实施例的应用于KV存储的自适应防护方法通过屏蔽这些key,可以最大程度地保护存储系统陷入崩溃状态,释放存储能力给其他key。
本实施例同时提供一种应用于KV存储的自适应防护装置,包括:
慢查询模块,统计汇总预设时间段内所有连接的key维度的慢查询总耗时,并进行排序;
以及处理模块,针对高于预设阈值的前n位key做出慢查屏蔽处理,慢查屏蔽的时段内,对该n位key的读写操作均返回失败。
本实施例的应用于KV存储的自适应防护装置,在进行连接请求时,慢查询模块针对一定时间段内key维度的慢查询总耗时的监测,处理模块将慢查询时间高于预设阈值的前n位key做出慢查屏蔽处理,避免了慢查key长时间占用更多的连接处理时间而对系统造成压力,屏蔽这些慢查询时间过长的key,可以最大程度地避免存储系统陷入崩溃状态,释放存储能力给其他key,提升系统的处理能力,增强系统的稳定性。
因此,本实施例的应用于KV存储的自适应防护装置,可以对KV存储系统进行实时自适应防护,感知不合理的key,在key维度进行阶段性流量屏蔽,以保护KV存储系统不会雪崩。
本实施例的自适应防护装置的慢查询模块需要针对key维度的慢查询日志进项监测分析,因此,适用于日志型的KV存储系统(如Redis),针对日志型的KV存储系统设计慢查询日志功能,慢查询日志功能用于记录执行时间超过给定时长的命令请求,用户可以通过这个功能产生的日志来监视和优化查询速度。
本实施例日志型的KV存储系统的服务器配置有两个和慢查询日志相关的选项:
slowlog-log-slower-than选项指定执行时间超过多少微秒(1秒等于1,000,000微秒)的命令请求会被记录到日志上。
举个例子,如果这个选项的值为100,那么执行时间超过100微秒的命令就会被记录到慢查询日志;如果这个选项的值为500,那么执行时间超过500微秒的命令就会被记录到慢查询日志;诸如此类。
slowlog-max-len选项指定服务器最多保存多少条慢查询日志。
服务器使用先进先出的方式保存多条慢查询日志:当服务器储存的慢查询日志数量等于slowlog-max-len选项的值时,服务器在添加一条新的慢查询日志之前,会先将最旧的一条慢查询日志删除。
举个例子,如果服务器slowlog-max-len的值为100,并且假设服务器已经储存了100条慢查询日志,那么如果服务器打算添加一条新日志的话,它就必须先删除目前保存的最旧的那条日志,然后再添加新日志。
一个慢查询日志功能的例子,首先用CONFIG_SET命令将slowlog-log-slower-than选项的值设为0微秒,这样Redis服务器执行的任何命令都会被记录到慢查询日志中,接着将slowlog-max-len选项的值设为5,让服务器最多只保存5条慢查询日志。
具体地,作为本实施例的可选实施方式,所述慢查询模块统计汇总预设时间段内所有连接的key维度的慢查询总耗时包括:
在进行每个连接处理时,实时监测该连接在处理该key的相关请求时的慢查询耗时,并将超过了单次慢查询阈值的耗时记录为session_slow_key_cost;
累加t1-tn时间段内,一个连接处理针对该key的session_slow_key_cost,得到session_slow_key_total,其中,所述session_slow_key_total表示在t1-tn时间段内一个连接处理针对该key的慢查询累积耗时;
将所有的连接的session_slow_key_total进行累加,得该key在t1-tn时间内所有连接处理的慢查询总耗时;
针对t1-tn时间段内所有连接根据key进行分别统计汇总连接处理的慢查询总耗时记录为:
key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total。
本实施例的慢查询模块通过针对每个连接处理的日志进行慢查询,当慢查询超过阈值时将被记录,并在t1-tn时间段内进行持续性的慢查询监测记录,得到在处理某一key的连接处理时的慢查询总耗时,当总耗时过大,说明处理该key的连接请求需要占据较大的系统的资源,需要被筛选出来做进一步的处理。
作为本实施例的另一种可选实施方式,所述慢查询模块统计汇总预设时间段内所有连接的key维度的慢查询总耗时统计每个连接key维度的慢查询耗时包括:
在进行每个连接处理时,实时监测该连接在处理该key的相关请求时的慢查询耗时,并将超过了单次慢查询阈值的耗时记录为session_slow_key_cost;
统计t1时刻,所有连接处理的各个key的session_slow_key_cost,记录为key1:session_slow_key_cost,key2:session_slow_key_cost,……,keyn:session_slow_key_cost;
累加t1-tn时间段内,所有连接处理的各个key的慢查询累积耗时,记录为key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total。
本实施方式与上述实施方式的区别在于慢查询模块针对key的累加计算方式略有区别,但最终都是为了得到t1-tn时间段内,所有连接处理的各个key的慢查询累积耗时,记录为key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total。
因此,本实施例的应用于KV存储的自适应防护装置并不局限于采用上述两种计算t1-tn时间段内所有连接处理的各个key的慢查询累积耗时的方法,凡是能够实现计算结果的均可采用。
进一步地,针对KV存储系统来说,慢查询时间并不能单一的评价该key值是否需要被屏蔽,还需要综合考虑key的其它关键因素,从而不仅要保证KV存储系统的高效性,还需要满足用户的使用需求。因此,本实施例所述的一种应用于KV存储的自适应防护方法,所述处理模块针对高于预设阈值的前n位key做出慢查屏蔽处理包括:
根据key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total筛选出t1-tn时间段内所有命中慢查询的key,进行权重计算得到各个命中key的权重值;
根据计算的权重值针对各个命中key进行排序,得到时间段内对KV存储系统压力最大的前n个key,对排名前n位的key进行慢查屏蔽处理。
本实施例通过慢查模块针对key的慢查询时间监测,将超过设定慢查阈值的key筛选出作为命中key,处理模块针对命中key进行权重计算,考虑key的各个方面的影响因素,再做出对排名前n位的key进行慢查屏蔽处理,是在保证KV存储系统的高效稳定性以及用户的使用需求性。
权重计算即将各数值乘以相应的权数,然后加总求和得到总体值,再除以总的单位数。权重的值就是加权平均值,值的大小不仅取决于总体中各单位的数值(变量值)的大小,而且取决于各数值出现的次数(频数),由于各数值出现的次数对其在平均数中的影响起着权衡轻重的作用,因此叫做权数。
具体地,本实施例处理模块针对所述命中慢查询的key进行权重计算包括的参数值有key的慢查询时长T,以及慢查询时长T对应的权数ζ;key被连接的频率F,以及频率F对应的权数η;key的优先级别S,以及优先级别S对应的权数θ。
本实施例的权重计算包括的参数值中key的慢查询时长T表征key所占用的系统资源,key被连接的频率F则表征key被用户所检索的需求,key的优先级别S则表征key的重要程度。举例说明,假如某命中key的慢查询时长T超过了慢查阈值,但是该命中key被查询的频率F很高,和/或有限级别S很高,则最终根据权重计算得到的权重值排序并非一定靠前。
因此,本实施例的应用于KV存储的自适应防护装置以慢查询时间作为监测条件,针对连接处理的key进行监测,筛选出占用系统资源较多的key,综合各个方面的因素后进行权重计算,根据权重计算的权重值进行排序,更加的客观全面,不仅保证了KV系统的高效稳定,而且确保满足用户端的使用需求。
进一步地,本实施例所述的一种应用于KV存储的自适应防护装置,系统预设慢查屏蔽处理时间为Tp,针对排名前n位的key进行慢查屏蔽处理的时间为Tp,当慢查屏蔽处理的时间达到Tp后,则释放所述被进行慢查屏蔽处理的key,被释放的key可被重新进行读写操作;
其中,所述慢查屏蔽处理时间为Tp大于或者等于至少一个时间段t1-tn。
为了保证KV存储系统作为数据库的基本功能属性,本实施例慢查屏蔽处理的key达到预设慢查屏蔽处理时间Tp后,则被释放,可被重新进行读写操作。
作为本实施例的可选实施方式,所述key被慢查屏蔽处理期间,针对该屏蔽key的连接请求均立即反馈为“请求失败”,且记录反馈时长Ts。由于key被慢查屏蔽处理,被拒绝读写,因此,在进行该key的连接处理时会立即反馈出“请求失败”的结果,此时记录的反馈时长Ts作为该屏蔽key在下一个t1-tn时间段内的慢查询时间记录,由于反馈时长Ts很小,因此在下一个t1-tn时间段内一般不会命中慢查阈值。
进一步地,所述key被慢查屏蔽处理期间的下一个t1-tn时间段内,再次被计算排序屏蔽,则系统发出报警信息。由本实施例的慢查屏蔽处理策略可知,被屏蔽key被重新释放后,在被慢查屏蔽处理期间的下一个t1-tn时间段内,一般都会被释放,但是若再次被屏蔽,则需要进行系统排查,确认是否存在错误或者异常。
本实施例提供了一种存储介质,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现任意一项所述的一种应用于KV存储的自适应防护方法。
本实施例所述存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
本实施例还提供了一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行所述应用于KV存储的自适应防护方法。
电子设备以通用计算设备的形式表现。其中处理器可以是一个,也可以是多个并且协同工作。本发明也不排除进行分布式处理,即处理器可以分散在不同的实体设备中。本发明的电子设备并不限于单一实体,也可以是多个实体设备的总和。
所述存储器存储有计算机可执行程序,通常是机器可读的代码。所述计算机可读程序可以被所述处理器执行,以使得电子设备能够执行本发明的方法,或者方法中的至少部分步骤。
所述存储器包括易失性存储器,例如随机存取存储单元(RAM)和/或高速缓存存储单元,还可以是非易失性存储器,如只读存储单元(ROM)。
应当理解,本发明的电子设备中还可以包括上述示例中未示出的元件或组件。例如,有些电子设备中还包括有显示屏等显示单元,有些电子设备还包括人机交互元件,例如按扭、键盘等。只要该电子设备能够执行存储器中的计算机可读程序以实现本发明方法或方法的至少部分步骤,均可认为是本发明所涵盖的电子设备。
通过以上对实施方式的描述,本领域的技术人员易于理解,本发明可以由能够执行特定计算机程序的硬件来实现,例如本发明的系统,以及系统中包含的电子处理单元、服务器、客户端、手机、控制单元、处理器等。本发明也可以由执行本发明的方法的计算机软件来实现,例如由微处理器、电子控制单元,客户端、服务器端等执行的控制软件来实现。但需要说明的是,执行本发明的方法的计算机软件并不限于由一个或特定个的硬件实体中执行,其也可以是由不特定具体硬件的以分布式的方式来实现。对于计算机软件,软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中,也可以分布式存储于网络上,只要其能使得电子设备执行根据本发明的方法。
以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但本发明不局限于上述具体实施方式,因此任何对本发明进行修改或等同替换;而一切不脱离发明的精神和范围的技术方案及其改进,其均涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种应用于KV存储的自适应防护方法,其特征在于,包括:
统计汇总预设时间段内所有连接的key维度的慢查询总耗时,并进行排序;
针对高于预设阈值的前n位key做出慢查屏蔽处理,慢查屏蔽的时段内,对该n位key的读写操作均返回失败。
2.根据权利要求1所述的一种应用于KV存储的自适应防护方法,其特征在于,所述统计汇总预设时间段内所有连接的key维度的慢查询总耗时包括:
在进行每个连接处理时,实时监测该连接在处理该key的相关请求时的慢查询耗时,并将超过了单次慢查询阈值的耗时记录为session_slow_key_cost;
累加t1-tn时间段内,一个连接处理针对该key的session_slow_key_cost,得到session_slow_key_total,其中,所述session_slow_key_total表示在t1-tn时间段内一个连接处理针对该key的慢查询累积耗时;
将所有的连接的session_slow_key_total进行累加,得该key在t1-tn时间内所有连接处理的慢查询总耗时;
针对t1-tn时间段内所有连接根据key进行分别统计汇总连接处理的慢查询总耗时记录为:
key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total。
3.根据权利要求1所述的一种应用于KV存储的自适应防护方法,其特征在于,所述统计汇总预设时间段内所有连接的key维度的慢查询总耗时统计每个连接key维度的慢查询耗时包括:
在进行每个连接处理时,实时监测该连接在处理该key的相关请求时的慢查询耗时,并将超过了单次慢查询阈值的耗时记录为session_slow_key_cost;
统计t1时刻,所有连接处理的各个key的session_slow_key_cost,记录为key1:session_slow_key_cost,key2:session_slow_key_cost,……,keyn:session_slow_key_cost;
累加t1-tn时间段内,所有连接处理的各个key的慢查询累积耗时,记录为key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total。
4.根据权利要求2或3所述的一种应用于KV存储的自适应防护方法,其特征在于,所述针对高于预设阈值的前n位key做出慢查屏蔽处理包括:
根据key1:session_slow_key_cost_total,key2:session_slow_key_cost_total,……,keyn:session_slow_key_cost_total筛选出t1-tn时间段内所有命中慢查询的key,进行权重计算得到各个命中key的权重值;
根据计算的权重值针对各个命中key进行排序,得到时间段内对KV存储系统压力最大的前n个key,对排名前n位的key进行慢查屏蔽处理。
5.根据权利要求4所述的一种应用于KV存储的自适应防护方法,其特征在于,针对所述命中慢查询的key进行权重计算包括的参数值有key的慢查询时长T,以及慢查询时长T对应的权数ζ;key被连接的频率F,以及频率F对应的权数η;key的优先级别S,以及优先级别S对应的权数θ。
6.根据权利要求4所述的一种应用于KV存储的自适应防护方法,其特征在于,预设慢查屏蔽处理时间为Tp,针对排名前n位的key进行慢查屏蔽处理的时间为Tp,当慢查屏蔽处理的时间达到Tp后,则释放所述被进行慢查屏蔽处理的key,被释放的key可被重新进行读写操作;
其中,所述慢查屏蔽处理时间为Tp大于或者等于至少一个时间段t1-tn。
7.根据权利要求4所述的一种应用于KV存储的自适应防护方法,其特征在于,所述key被慢查屏蔽处理期间,针对该屏蔽key的连接请求均立即反馈为“请求失败”,且记录反馈时长Ts。
8.根据权利要求4所述的一种应用于KV存储的自适应防护方法,其特征在于,所述key被慢查屏蔽处理期间的下一个t1-tn时间段内,再次被计算排序屏蔽,则系统发出报警信息。
9.一种应用于KV存储的自适应防护装置,其特征在于,包括:
慢查询模块,统计汇总预设时间段内所有连接的key维度的慢查询总耗时,并进行排序;
以及处理模块,针对高于预设阈值的前n位key做出慢查屏蔽处理,慢查屏蔽的时段内,对该n位key的读写操作均返回失败。
10.一种存储介质,存储有计算机可执行程序,其特征在于,所述计算机可执行程序被执行时,实现如权利要求1-8任意一项所述的一种应用于KV存储的自适应防护方法。
CN202111609913.XA 2021-12-27 2021-12-27 一种应用于kv存储的自适应防护方法、装置及存储介质 Pending CN114327268A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111609913.XA CN114327268A (zh) 2021-12-27 2021-12-27 一种应用于kv存储的自适应防护方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111609913.XA CN114327268A (zh) 2021-12-27 2021-12-27 一种应用于kv存储的自适应防护方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN114327268A true CN114327268A (zh) 2022-04-12

Family

ID=81012370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111609913.XA Pending CN114327268A (zh) 2021-12-27 2021-12-27 一种应用于kv存储的自适应防护方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN114327268A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090112795A1 (en) * 2007-10-30 2009-04-30 Oracle International Corp. Query statistics
US20170142213A1 (en) * 2015-11-12 2017-05-18 Facebook, Inc. Compact data structures for push notifications
CN109522327A (zh) * 2018-11-16 2019-03-26 北京京东金融科技控股有限公司 信息生成方法、装置和系统
CN111258973A (zh) * 2020-01-17 2020-06-09 广州虎牙科技有限公司 Redis慢日志的存储、展示方法、装置、设备和介质
WO2020238546A1 (zh) * 2019-05-31 2020-12-03 杭州复杂美科技有限公司 一种kv数据库配置方法、查询方法、设备和存储介质
CN112181306A (zh) * 2020-10-10 2021-01-05 杭州电子科技大学 一种号段模式下生成分布式id的方法
CN112835921A (zh) * 2021-01-27 2021-05-25 北京达佳互联信息技术有限公司 慢查询处理方法、装置、电子设备及存储介质
WO2021189953A1 (zh) * 2020-10-12 2021-09-30 平安科技(深圳)有限公司 日志数据处理方法、装置、计算机设备和存储介质
CN113760964A (zh) * 2020-06-05 2021-12-07 中国电信股份有限公司 一种用于处理数据库的慢查询的方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090112795A1 (en) * 2007-10-30 2009-04-30 Oracle International Corp. Query statistics
US20170142213A1 (en) * 2015-11-12 2017-05-18 Facebook, Inc. Compact data structures for push notifications
CN109522327A (zh) * 2018-11-16 2019-03-26 北京京东金融科技控股有限公司 信息生成方法、装置和系统
WO2020238546A1 (zh) * 2019-05-31 2020-12-03 杭州复杂美科技有限公司 一种kv数据库配置方法、查询方法、设备和存储介质
CN111258973A (zh) * 2020-01-17 2020-06-09 广州虎牙科技有限公司 Redis慢日志的存储、展示方法、装置、设备和介质
CN113760964A (zh) * 2020-06-05 2021-12-07 中国电信股份有限公司 一种用于处理数据库的慢查询的方法
CN112181306A (zh) * 2020-10-10 2021-01-05 杭州电子科技大学 一种号段模式下生成分布式id的方法
WO2021189953A1 (zh) * 2020-10-12 2021-09-30 平安科技(深圳)有限公司 日志数据处理方法、装置、计算机设备和存储介质
CN112835921A (zh) * 2021-01-27 2021-05-25 北京达佳互联信息技术有限公司 慢查询处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US7167915B2 (en) Monitoring storage resources used by computer applications distributed across a network
US7127456B1 (en) System and method for logging database queries
Mozafari et al. Performance and resource modeling in highly-concurrent OLTP workloads
US5758071A (en) Method and system for tracking the configuration of a computer coupled to a computer network
US5696701A (en) Method and system for monitoring the performance of computers in computer networks using modular extensions
EP2411927B1 (en) Monitoring of distributed applications
US20050114429A1 (en) Method and apparatus for load balancing of distributed processing units based on performance metrics
US11163735B2 (en) Database capacity estimation for database sizing
US7607135B2 (en) Apparatus and method for enhancing performance of a computer system
US6269410B1 (en) Method and apparatus for using system traces to characterize workloads in a data storage system
US20020194432A1 (en) Designing a cache using an LRU-LFU array
US8788527B1 (en) Object-level database performance management
US9117030B2 (en) System and method to predict elapsed response time for a query during application development stage
Thereska et al. Informed data distribution selection in a self-predicting storage system
JP5329756B2 (ja) データベースにおける空間使用の追跡
US11550762B2 (en) Implementation of data access metrics for automated physical database design
US20180150342A1 (en) Smart self-healing service for data analytics systems
US9660891B2 (en) Methods and systems for computer monitoring
CN114327268A (zh) 一种应用于kv存储的自适应防护方法、装置及存储介质
US20060041664A1 (en) Efficient accumulation of performance statistics in a multi-port network
US11204717B2 (en) Object storage system with access control quota status check
US11580082B2 (en) Object storage system with control entity quota usage mapping
CN108874923B (zh) 虚拟物品分发方法、服务器及计算机可读存储介质
KR102542052B1 (ko) 커널 레벨에서의 로그 카운트 처리장치와 처리시스템 및 이를 이용한 로그 카운트 방법
CN110866045A (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