基于访问趋势预测的时间序列数据库缓存管理方法.pdf

上传人:a**** 文档编号:6206502 上传时间:2019-05-21 格式:PDF 页数:9 大小:451.62KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510733108.6

申请日:

2015.10.31

公开号:

CN105426411A

公开日:

2016.03.23

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/30申请日:20151031|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

南京南瑞继保电气有限公司

发明人:

杨凡; 钱锋; 张俊

地址:

211102江苏省南京市江宁区苏源大道69号

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明提供了基于访问趋势预测的时间序列数据库缓存管理方法,在常规数据库提供数据访问缓存的基础上,建立时间序列数据库双缓存机制;在常规缓存之外增加一块预测数据缓存,用于预测访问数据的预加载,以便在数据访问之前将其载入内存,加快查询速度。本发明用以实现对时间序列数据库数据缓存进行有效管理,提高数据缓存命中与系统数据查询效率。系统对于近期访问数据进行分析,并预测数据访问趋势,对预测数据进行加载,提高数据访问速度。此种方法适用于时间序列数据库数据缓存管理,用于提高时间序列数据库数据查询效率。

权利要求书

1.基于访问趋势预测的时间序列数据库缓存管理方法,其特征在于包括以下步骤:在常规数据库提供数据访问缓存的基础上,建立时间序列数据库双缓存机制;在常规缓存之外增加一块预测数据缓存,用于预测访问数据的预加载,以便在数据访问之前将其载入内存,加快查询速度。2.根据权利要求1所述的基于访问趋势预测的时间序列数据库缓存管理方法,其特征在于:根据数据访问情况判定是否进行趋势分析,当趋势分析算法满足启动条件时,系统启动趋势分析算法,对后续访问趋势进行分析,预测后续可能被访问的数据。3.根据权利要求1所述的基于访问趋势预测的时间序列数据库缓存管理方法,其特征在于判定启动趋势分析的条件如下:趋势分析启动条件式(1)式(1)对t0-t时刻内的查询次数进行积分操作,当这段时间内的数据查询总次数达到n次,n为预设的阈值,可进行调整,则认为目前为系统密集查询时期,需要启动访问趋势预测算法。4.根据权利要求1所述的基于访问趋势预测的时间序列数据库缓存管理方法,其特征在于:系统缓存由常规缓存与预读缓存两部分组成;系统在常规的数据缓存之外额外加入预读缓存,用于对于系统趋势分析的预测访问数据进行装载,常规缓存与预读缓存统一由缓存管理系统管理,供时间序列数据库使用。5.根据权利要求1所述的基于访问趋势预测的时间序列数据库缓存管理方法,其特征在于:判断访问预趋势分析达到启动条件后,首先识别访问序列中的热点测点,然后对该测点的检索值相关的时间范围进行最小二乘法曲线拟合,得到拟合曲线后,根据曲线获取后续可能的访问时间范围;对于客户端的每次查询可用表达式:Query=[x,t]式(2)其中x表示测点集合,t代表查询的时间范围对于在时间范围内T内S次查询可表示为:Q={[x1,t1],[x2,t2],[x3,t3]…[xs,ts]}式(3)对于式(3)所表示的查询序列,对测点集合进行分拆,计算每个测点的被查询次数,对于查询次数较多的测点形成查询时间队列:X(t)={t1,t2,t3,t4,…,tn}式(4)对于式(4)中的测点X的访问时间序列,采用如下方法就行趋势拟合计算:设拟合的公式为:X(t)=An+B式(5)根据式(6),式(7)计算参数:式(6)式(7)计算出参数后,根据式(5)计算n+1时刻的t时间值。6.根据权利要求1所述的基于访问趋势预测的时间序列数据库缓存管理方法,其特征在于:确定装载的存数据后检测是否已经存在于常规缓存或预读缓存中,已存在则不载入。7.根据权利要求1所述的基于访问趋势预测的时间序列数据库缓存管理方法,其特征在于:对于查询请求首先查询常规缓存再查询预读缓存,常规缓存与预读缓存全不命中直接查询数据文件。

说明书

基于访问趋势预测的时间序列数据库缓存管理方法

技术领域

本发明涉及时间序列数据库领域,具体而言本发明涉及一种基于访问趋势预测的时间序列数据库数据缓存管理方法。

背景技术

时序数据库是广域测量系统(WAMS)的基础,同时还可用于变电站监控、调度、直流、稳控等多个系统中,满足其存储海量、高频数据的需求。在实际应用中,时间序列数据库存储毫秒级数据,数据访问的频度高,访问数据量大,为保证访问效率,数据库系统内会设置访问缓存,提高访问效率。

对于时间序列数据库的数据检索,具有以下特点:

1在短时间内突发访问大量数据,在某一段查询中查询某个测点的大量数据。

2数据访问往往具有连续趋势,如每次查询某个测点的一段时间内的数据,且连续访问。

3对访问时效要求高,数据查询的返回速度要求高于传统商用数据库。

为满足查询速度的需求,时间序列数据库会在内部设置内存缓存,用于对热点数据进行高速缓存,减少磁盘IO,提高查询效率。常规的缓存管理办法一般为先进先出,最近未被使用等方法,对缓存进行统一管理。

但此种方法基于当前已被使用过或被检索过的数据,但时间序列数据库的数据访问往往具有明显的趋势性,例如查询某个测点的历史曲线,会在短时间内连续检索一段时间内的数据,被检索过的数据往往不会被反复存取,而相邻时间段内的数据有可能被继续读取,常规的缓存方法往往不会取得很好的效果。

为解决上述问题,本发明致力于在常规缓存外增加预读缓存,通过对数据访问的趋势进行分析,预测下一阶段可能会被访问的数据,得到分析结果后,提前将相关数据载入预读缓存,以提高数据访问效率。

发明内容

针对现有技术的缺陷和不足,本发明旨在于提供基于访问趋势预测的时间序列数据库缓存管理方法,其适用于时间数列数据库的数据缓存管理,预测时序库客户端的数据访问序列,提前将数据载入内存,提高时间序列数据库的数据访问效率,降低系统突发IO负荷。

为了达成上述目的,本发明的解决方案是:基于访问趋势预测的时间序列数据库缓存管理方法,其特征在于:

在常规数据库提供数据访问缓存的基础上,建立时间序列数据库双缓存机制;

在常规缓存之外增加一块预测数据缓存,用于预测访问数据的预加载,以便在数据访问之前将其载入内存,加快查询速度。

进一步的,根据数据访问情况判定是否进行趋势分析,当趋势分析算法满足启动条件时,系统启动趋势分析算法,对后续访问趋势进行分析,预测后续可能被访问的数据。

进一步的,判定启动趋势分析的条件如下:

趋势分析启动条件

t 0 t q u e r y > n ]]>式(1)

式(1)对t0-t时刻内的查询次数进行积分操作,当这段时间内的数据查询总次数达到n次,n为预设的阈值,可进行调整,则认为目前为系统密集查询时期,需要启动访问趋势预测算法。

进一步的,系统缓存由常规缓存与预读缓存两部分组成;系统在常规的数据缓存之外额外加入预读缓存,用于对于系统趋势分析的预测访问数据进行装载,常规缓存与预读缓存统一由缓存管理系统管理,供时间序列数据库使用。

进一步的,判断访问预趋势分析达到启动条件后,首先识别访问序列中的热点测点,然后对该测点的检索值相关的时间范围进行最小二乘法曲线拟合,得到拟合曲线后,根据曲线获取后续可能的访问时间范围;

对于客户端的每次查询可用表达式:

Query=[x,t]式(2)

其中x表示测点集合,t代表查询的时间范围

对于在时间范围内T内S次查询可表示为:

Q={[x1,t1],[x2,t2],[x3,t3]…[xs,ts]}式(3)

对于式(3)所表示的查询序列,对测点集合进行分拆,计算每个测点的被查询次数,对于查询次数较多的测点形成查询时间队列:

X(t)={t1,t2,t3,t4,…,tn}式(4)

对于式(4)中的测点X的访问时间序列,采用如下方法就行趋势拟合计算:

设拟合的公式为:

X(t)=An+B式(5)

根据式(6),式(7)计算参数:

A = Σ t n - Σ t Σ n 1 n Σ t 2 - ( Σ n ) 2 1 n ]]>式(6)

B = Σ t 1 n - Σ n 1 n ]]>式(7)

计算出参数后,根据式(5)计算n+1时刻的t时间值。

进一步的,确定装载的缓存数据后检测是否已经存在于常规缓存或预读缓存中,已存在则不载入。

进一步的,对于查询请求首先查询常规缓存再查询预读缓存,常规缓存与预读缓存全不命中直接查询数据文件。

本基于访问预测算法的时序数据库缓存预取方法,包含如下步骤:

系统缓存分为常规缓存与预读缓存两个部分,如图1所示,常规缓存采用常规缓存管理算法进行管理,预测缓存数据的装入不是按照访问过的数据载入缓存的模式进行装载,而是通过对客户端访问趋势的预测进行数据的装入。

服务器端对客户端的多次查询请求特征进行计算,通过设定的窗口时间对每个客户端的访问趋势进行计算,预测其访问趋势,即客户端可能下一阶段可能访问的数据。

服务器端根据计算结果利用闲时对趋势数据进行预装,提前将这部分数据载入预读缓存。若预读缓存满,采用LRU算法进行移出。

客户端后续访问服务端会同时从两个缓存中进行读取。

本发明采用常规缓存与预测缓存相结合的方式,对于数据查询请求,采用滑动窗口算法对进行判断是否满足趋势预测的启动条件,满足启动条件后,采用最小二乘法对访问序列进行拟合,判断后续访问数据,并将预测的可能会被访问的数据提前预装入预测缓存,以提高数据查询效率。

采用上述方案后,本发明具有以下特点:

(1)系统存在额外缓存,可提高数据检索效率。

(2)预测分析仅在数据访问趋势性明显的情况下进行,采用改良的滑动窗口算法进行访问趋势性判断。

(3)使用最小二乘法进行访问趋势分析,计算速度快。

(4)两块缓存统一管理,对应用透明,不增加应用复杂性。

附图说明

图1是本发明所应用的系统缓存结构图;

图2是本发明中数据趋势分析启动的条件示意图;

图3是本发明中数据趋势分析及缓存处理的流程图。

具体实施方式

参见图1、图2和图3,本基于访问趋势预测的时间序列数据库缓存管理方法,具体包括如下步骤:

(1)系统缓存分为常规缓存与预测缓存两个部分,常规缓存采用常规缓存管理算法进行管理,预测缓存数据的装入不是按照访问过的数据载入缓存的模式进行装载,而是通过对客户端数据访问趋势的预测进行数据的装入。

具体来说,在常规数据缓存之外,增加一块预测缓存,预测缓存的大小可设为常规缓存三分之一至二分之一,其结构与常规数据缓存保持一致,两块缓存的读写统一由缓存管理模块处理,对时间序列数据库的其它模块保持透明。预测缓存用于载入系统预测的未来可能的访问数据。

(2)服务器端对客户端的多次查询请求特征进行计算,通过设定的窗口时间对每个客户端的访问趋势进行计算,预测其访问趋势,即客户端可能下一阶段可能访问的数据。计算趋势算法如下所述:

首先设定查询趋势的窗口计算阈值设为S,即计算窗口为S次,窗口时间阈值为T,含义为若客户端在时间T内查询次数达到S次,触发趋势计算。

对于客户端的每次查询可用表达式Query=[x,t],其中x表示测点集合,t代表时间范围,对于在时间范围内T内S次查询可表示为对于客户端的每次查询可用表达式:

Query=[x,t]式(1)

其中x表示测点集合,t代表查询的时间范围

对于在时间范围内T内S次查询可表示为:

Q={[x1,t1],[x2,t2],[x3,t3]…[xs,ts]}式(2)

对于式(2)所表示的查询序列,对测点集合进行分拆,计算每个测点的被查询次数,对于查询次数较多的测点形成查询时间队列:

X(t)={t1,t2,t3,t4,…,tn}式(3)

对于式(3)中的测点X的访问时间序列,采用如下方法就行趋势拟合计算:

设拟合的公式为:

X(t)=An+B式(4)

根据式(5)、式(6)计算参数:

A = Σ t n - Σ t Σ n 1 n Σx 2 - ( Σ x ) 2 1 n ]]>式(5)

B = Σ t 1 n - Σ n 1 n ]]>式(6)

(3)时序库根据计算出的tn+1的值,检查是否已存在于缓存中,若不存在,则将相关测点的Δt时间范围内的数据预读入预测缓存,若预测缓存已满,则采用LRU算法移除其它缓存。

(4)时间序列数据库对于查询请求,同时检索两块缓存。

以下将以时间序列数据库的查询过程为例,结合附图对本发明的技术方案进行详细说明。具体步骤如下:

(1)如图1所示,时间序列数据库的数据缓存分为两个部分,常规缓存与预读缓存两个部分,常规缓存采用常规管理算法进行管理,预读缓存用于装入预读数据,即目前暂未被访问到,但系统预测出可能下一个时间段可能被访问到的数据。

(2)如图2所示,预读缓存的目的在于在高频访问阶段判断访问趋势,因此预测分析的启动需具备一定的条件,目前采用改良的滑动窗口算法进行预测分析的启动判断,算法存在两个参数t,s,主要思想指在时间t内系统有连续s次数据检索,认为达到高频访问阶段,系统将启动访问趋势分析。

(3)如图3所示,趋势分析的主要算法流程如下所述,达到高频访问程度后,系统首先会分析多次查询中的热点数据,即被多数查询关注的测点;对热点数据被查询的时间段进行最小二乘曲线拟合,得出相关曲线后,分析下一次访问的可能查询的数据;接着在现有缓存中检索预测出的数据,如已经存在则算法结束,不存在则将数据载入缓存。

虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

基于访问趋势预测的时间序列数据库缓存管理方法.pdf_第1页
第1页 / 共9页
基于访问趋势预测的时间序列数据库缓存管理方法.pdf_第2页
第2页 / 共9页
基于访问趋势预测的时间序列数据库缓存管理方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《基于访问趋势预测的时间序列数据库缓存管理方法.pdf》由会员分享,可在线阅读,更多相关《基于访问趋势预测的时间序列数据库缓存管理方法.pdf(9页珍藏版)》请在专利查询网上搜索。

本发明提供了基于访问趋势预测的时间序列数据库缓存管理方法,在常规数据库提供数据访问缓存的基础上,建立时间序列数据库双缓存机制;在常规缓存之外增加一块预测数据缓存,用于预测访问数据的预加载,以便在数据访问之前将其载入内存,加快查询速度。本发明用以实现对时间序列数据库数据缓存进行有效管理,提高数据缓存命中与系统数据查询效率。系统对于近期访问数据进行分析,并预测数据访问趋势,对预测数据进行加载,提高数据。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1