CN103942315B - 一种基于装载因子的缓存数据预加载与替换方法 - Google Patents

一种基于装载因子的缓存数据预加载与替换方法 Download PDF

Info

Publication number
CN103942315B
CN103942315B CN201410166680.4A CN201410166680A CN103942315B CN 103942315 B CN103942315 B CN 103942315B CN 201410166680 A CN201410166680 A CN 201410166680A CN 103942315 B CN103942315 B CN 103942315B
Authority
CN
China
Prior art keywords
data
caching
factor
loading
cache
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
Application number
CN201410166680.4A
Other languages
English (en)
Other versions
CN103942315A (zh
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.)
Zhejiang Bangsheng Technology Co.,Ltd.
Original Assignee
Hangzhou Bangsun Financial Information Technology 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 Hangzhou Bangsun Financial Information Technology Ltd filed Critical Hangzhou Bangsun Financial Information Technology Ltd
Priority to CN201410166680.4A priority Critical patent/CN103942315B/zh
Publication of CN103942315A publication Critical patent/CN103942315A/zh
Application granted granted Critical
Publication of CN103942315B publication Critical patent/CN103942315B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Abstract

本发明公开了一种基于装载因子的缓存数据预加载与替换方法,实现在海量数据模式下,对数据的快速预加载和替换。装载因子直观地说就是在 Ri次对数据的读请求中数据命中缓存的次数。该方法基于数据的整体分布因子来计算各个数据的装载因子,根据数据的装载因子来判断该数据是否应该放在缓存中。因为装载因子是表示数据命中缓存的次数,因此当装载因子占比数据读取次数Ri超过一定阀值的时候,我们就可以认为该数据更适合预先装载到缓存中,从而在系统初始化的时候采取加载该数据的策略。

Description

一种基于装载因子的缓存数据预加载与替换方法
技术领域
本发明涉及一种基于海量数据环境的数据缓存方法,尤其涉及一种对海量数据实现快速缓存预加载和替换的方法。
背景技术
随着企业的全球化及海量数据处理的需求不断发展,证券、银行等大型金融企业积累了海量的用户数据,数据量和用户数的剧增,给这些企业系统带来了很大的压力,高速增长的用户请求以及海量的后台数据给Web系统带来了很多性能问题,导致整个系统响应缓慢,用户体验急剧下降。“要么改进系统,要么流失客户。”正是工业界很多公司不得不面对的问题,如何有效减少用户访问延时,提高系统服务质量是一个迫切需要解决的难题。缓存技术被认为是一种有效的解决方案,它能有效缓解Web系统瓶颈、减少网络数据传输以及提升系统的扩展性。
Web缓存技术可以极大的提高系统的响应速度,在近几年的研究中,提出了很多种缓存方法,它们一般基于数据的一些特性,比如最近访问时间、访问次数、数据大小,数据加载成本以及数据修改时间等,通过对这些基础的数据特征分析采用不同的方法来确定缓存策略,试图尽量减少各种成本度量,从而提高命中率,减少数据访问延时和成本。
目前对于缓存技术的研究主要分为缓存预取方法和缓存替换方法两方面,缓存预取是一种主动式的缓存技术。其基本思想是利用先前用户访问的模式和先验知识,把用户最有可能访问的内容预先加载到缓存中。根据预取算法使用的用户行为特征信息不同,可以分为以下两类:
一、基于多用户的行为模式:利用所有或多个用户的行为模式的特征,不管当前请求的用户是谁,都预取相同的数据,一个典型的例子是根据流行度缓存排在前10的数据。
二、基于单用户的行为模式:这种模式基于对单个用户的行为进行分析,并基于用户的行为模式进行预测,一个典型的例子是利用马尔可夫模型(Markov modeling),其基本思想是根据用户的访问历史建立一个马尔可夫图,并用该图来预测用户下一步的行为。
然而传统的缓存方法要么只是着眼于单个用户的访问习惯,基于当前用户的行为模式进行预测,没有从全盘考虑缓存性能,或者需要加载所有数据才能判断哪些数据是需要缓存的,对于海量数据来说,加载所有数据是不可能的。因此传统的缓存方法并不适合海量数据的应用服务。
发明内容
针对传统缓存方法存在的问题,本发明提供了一种基于装载因子的缓存数据预加载与替换方法,实现在海量数据模式下,对数据的快速预加载和替换。装载因子直观地说就是在Ri次对数据的读请求中数据命中缓存的次数。该方法基于数据的整体分布因子来计算各个数据的装载因子,根据数据的装载因子来判断该数据是否应该放在缓存中。因为装载因子是表示数据命中缓存的次数,因此当装载因子占比数据读取次数Ri超过一定阈值的时候,我们就可以认为该数据更适合预先装载到缓存中,从而在系统初始化的时候采取加载该数据的策略。基于以上描述,给出数据定义如下:
Ri:数据对象i的读请求数;
Pi:在Ri次读请求中,数据对象i命中缓存的次数,即装载因子;
λ:系统的数据分布因子,反应了系统整体的数据分布情况。
基于以上定义,装载因子的数据预加载和替换方法步骤描述如下:
一、计算系统的数据分布因子λ,λ反应系统整体的数据分布,对于符合一定分布模型的系统,比如泊松分布的数据,λ可以从理论上计算得到,对于无法通过理论计算获得λ,需要用数据库统计算法得到;
二、数据预加载,系统启动的时候,加载数据库中的数据,并根据系统的数据分布因子计算该数据的装载因子Pi,根据数据的装载因子确定该数据是否应该预先加载到缓存中,当的时候,加载该数据到缓存中,否则该数据不预加载;
三、系统预加载后缓存数据采用惰性更新的方式,当用户访问某个数据的时候,重新计算该数据的装载因子,根据新的装载因子来判断该数据是放到缓存中还是从缓存中移除;
四、当第三步有新的数据需要装入缓存而缓存数据已满的情况,则采用最近最少使用LRU方法替换缓存中的数据。
五、更新数据分布因子λ,当数据量比较少的时候,对于海量数据系统来说,分布因子λ不会有明显的变化,但当数据累积到一定量后则会影响整个系统的数据分布,为了计算的准确性,需要隔一段时间(比如一天一次)重新计算下分布因子λ。然后再循环采用执行第三步~第五步的步骤,保持缓存中数据的时效性和命中率。
本发明具有如下技术效果:
1、本发明通过数据装载因子可以直接通过计算对数据做出是否缓存的判断,而无须等遍历整个数据后再做出是否缓存的策略,从而使整个缓存系统在系统启动的时候就有很高的命中率。
2、本发明采用惰性更新的方式,系统运行过程中缓存替换的开销很小。
3、在系统的缓存达到动态平衡后,该方法也比传统的缓存替换方法命中率要高,该方法会优先缓存“热点”数据。
4、本发明更适用于海量的数据系统,在海量数据系统中,很多传统的方法无法做出缓存决策,因为它们无法加载比对所有的数据。
具体实施方式
数据定义:
Ri:数据对象i的读请求数,
Si:数据对象i的缓存大小,
MTi:数据对象i从缓存中读取的时延,
DTi:数据对象i未缓存的读取时延,
λ:数据分布因子,
M:总的可用缓存的大小,
n:总的数据个数。
则上述方法过程中的各参数计算公式如下:
推导过程请参照后文所述附加说明。
Pi的计算的附加说明:
1、Pi,即本发明中所述的装载因子,是描述数据在访问时,为了达到最低读取时延所需要的最低缓存命中次数,为了求得此次数,需要经过如下数学推导:
推倒中用到的变量的定义:
Ri:数据对象i的读请求数,
Pi:在Ri次读请求中,数据对象i命中缓存的次数,即装载因子,
Si:数据对象i的缓存大小,
MTi:数据对象i从缓存中读取的时延,
DTi:数据对象i未缓存的读取时延,
M:总的可用缓存的大小,
n:总的数据个数,
a)针对某个数据项的平均读取时延可表示为:
b)系统的TPS(Transaction Per Second)为:
c)假设缓存M被充分利用,那么所有对象读取Ri次,平均情况下则为读取次,总的来讲,从缓存中读取的数据量为因此,可以得到针对TPS的约束条件:
d)以系数λ构建以下拉格朗日函数:
e)根据拉格朗日乘数法求极值的条件,要使TPS取得极值,须满足:
f)由此,可得到:
g)针对变化不大的数据,装载因子Pi可以视为定值,因此,针对这部分数据,可以预先将这部分数据的装载因子计算并存储,在日后的访问过程中直接使用预先存储的装载因子判断是否将目标数据装载入缓存。
λ的计算的附加说明:
1.在某些复杂的缓存系统中,各个缓存数据的读取时间等参数不一致,λ可能比较难计算,但对于一些可以简化的系统,比如对于风险监控项目来说,MTi、DTi、Si等参数可以近似认为是定值,λ计算即可以简化,具体参见下文应用附加说明。
2.λ也可以根据理论的分布模型进行计算,比如对于风险监控项目来说,可以采用泊松分布模型,先求每个账户的平均交易次数,然后认为账户交易次数的分布是基于该平均交易次数周边的泊松分布,那样就只需要知道总的账户个数,然后根据理论分布概率计算不同交易次数的账户个数,那样就不需要从数据库中实际统计各个账户的交易次数,而是直接采用理论模型计算出λ。
应用步骤附加说明:
一、对于不具有先验知识的或先验知识不足且数据变化频繁的系统:
1.当系统不在运行时(维护时、初次安装时),运行数据统计程序,提取数据的特征值,特征值包括数据对象的缓存大小、系统总缓存大小、总的数据数量、未缓存数据的访问时延、已缓存数据的访问时延以及对每个数据的可能请求次数的预估。
2.依据1.中得到的特征使用前述公式计算λ。
3.依据2.中得到的特征使用前述公式计算Pi
4.比较Pi和预定的阈值,如果Pi较预定的阈值大或与阈值相等,将相对应的数据装载入缓存,否则,就不装载入缓存。
5.在数据更新过程中,在更新的过程中监控数据特征的变化并在一段时间后重新计算。
6.循环采用3~5的步骤,对即将访问的数据进行评估,决定是否装载入缓存。
7.若缓存有空间,直接将数据装在如缓存中;若缓存中没有空间,则选择一种缓存替换算法(预定义的或基于数据特征评估得到的)选择被替换的缓存,并将数据装载入缓存。
二、对于不具有先验知识的或先验知识不足且数据变化不频繁的系统:
1.当系统不在运行时(维护时、初次安装时),运行数据统计程序,提取数据的特征值,特征值包括数据对象的缓存大小、系统总缓存大小、总的数据数量、未缓存数据的访问时延、已缓存数据的访问时延以及对每个数据的可能请求次数的预估。
2.依据1.中得到的特征使用前述公式计算λ。
3.依据2.中得到的特征使用前述公式计算Pi
4.比较Pi和预定的阈值,如果Pi较预定的阈值大或与阈值相等,将相对应的数据装载入缓存,否则,就不装载入缓存。
5.在数据更新过程中,使用初始值进行计算直到系统停机。
6.循环采用3~5的步骤,对即将访问的数据进行评估,决定是否装载入缓存。
7.若缓存有空间,直接将数据装在如缓存中;若缓存中没有空间,则选择一种缓存替换算法(预定义的或基于数据特征评估得到的)选择被替换的缓存,并将数据装载入缓存。
三、对于具有充分先验知识的且数据变化频繁的系统:
1.当系统不在运行时(维护时、初次安装时),使用先验知识直接得到数据特征值。
2.依据1.中得到的特征使用前述公式计算λ。
3.依据2.中得到的特征使用前述公式计算Pi
4.比较Pi和预定的阈值,如果Pi较预定的阈值大或与阈值相等,将相对应的数据装载入缓存,否则,就不装载入缓存。
5.在数据更新过程中,在更新的过程中监控数据特征的变化并在一段时间后重新计算。
6.循环采用3~5的步骤,对即将访问的数据进行评估,决定是否装载入缓存。
7.若缓存有空间,直接将数据装在如缓存中;若缓存中没有空间,则选择一种缓存替换算法(预定义的或基于数据特征评估得到的)选择被替换的缓存,并将数据装载入缓存。
四、对于具有充分先验知识的且数据变化不频繁的系统:
1.当系统不在运行时(维护时、初次安装时),使用先验知识直接得到数据特征值。
2.依据1.中得到的特征使用前述公式计算λ。
3.依据2.中得到的特征使用前述公式计算Pi
4.比较Pi和预定的阈值,如果Pi较预定的阈值大或与阈值相等,将相对应的数据装载入缓存,否则,就不装载入缓存。
5.在数据更新过程中,使用初始值进行计算直到系统停机。
6.循环采用3~5的步骤,对即将访问的数据进行评估,决定是否装载入缓存。
7.若缓存有空间,直接将数据装在如缓存中;若缓存中没有空间,则选择一种缓存替换算法(预定义的或基于数据特征评估得到的)选择被替换的缓存,并将数据装载入缓存。

Claims (1)

1.一种基于装载因子对缓存数据进行预加载和替换的方法,其特征在于,包括如下步骤:
(1)计算系统的数据的分布情况,对于符合一定分布模型的系统,使用统计模型计算得到分布情况,对于无法找到合适的分布模型的数据,则通过使用数据库统计算法得到;数据分布因子计算方式如下:
λ = ( Σ i = 1 n R i × S i DT i - MT i Σ i = 1 n ( S i × DT i DT i - MT i - M n ) × R i ) 2
其中:Ri:数据对象i的读请求数,Si:数据对象i的缓存大小,MTi:数据对象i从缓存中读取的时延,DTi:数据对象i未缓存的读取时延,λ:数据分布因子,M:总的可用缓存的大小,n:总的数据个数;
(2)在系统启动时,根据数据的分布情况,计算需要加载的数据的装载因子,一旦装载因子占数据访问次数比例超过阈值,则将其加载到缓存,否则不预加载;装载因子计算方式如下,公式中参数的含义与(1)中相同:
P i = R i × DT i DT i - MT i - R i λ × S i × ( DT i - MT i )
(3)系统运行过程中采用惰性更新方法,当用户访问某个数据时,重新计算该数据的装载因子,根据新的装载因子决定是否需要将数据放到缓存中或是否需要从缓存中移除;
(4)在第三步中有新的数据需要更新时,替换缓存中的数据;
(5)对于数据量较少的系统不更新分布因子,但是在数据量增长后隔一定间隔更新一次装载因子之后循环采用第三到第五步的策略,保持缓存中数据的时效性和命中率。
CN201410166680.4A 2014-04-22 2014-04-22 一种基于装载因子的缓存数据预加载与替换方法 Active CN103942315B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410166680.4A CN103942315B (zh) 2014-04-22 2014-04-22 一种基于装载因子的缓存数据预加载与替换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410166680.4A CN103942315B (zh) 2014-04-22 2014-04-22 一种基于装载因子的缓存数据预加载与替换方法

Publications (2)

Publication Number Publication Date
CN103942315A CN103942315A (zh) 2014-07-23
CN103942315B true CN103942315B (zh) 2017-03-22

Family

ID=51189983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410166680.4A Active CN103942315B (zh) 2014-04-22 2014-04-22 一种基于装载因子的缓存数据预加载与替换方法

Country Status (1)

Country Link
CN (1) CN103942315B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636209B (zh) * 2015-02-15 2018-08-24 大连云动力科技有限公司 基于大数据和云存储系统定向性能优化的资源调度系统和方法
CN105426411B (zh) * 2015-10-31 2019-05-28 南京南瑞继保电气有限公司 基于访问趋势预测的时间序列数据库缓存管理方法
CN106294216B (zh) * 2016-08-11 2019-03-05 电子科技大学 一种用于风电系统的缓存替换方法
CN109660819A (zh) * 2017-10-10 2019-04-19 中国移动通信有限公司研究院 基于移动边缘计算的业务缓存方法、装置及服务基站
CN113190526A (zh) * 2021-05-17 2021-07-30 中国铁路设计集团有限公司 基于大数据进行地形切断面并行计算方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521260A (zh) * 2011-11-18 2012-06-27 华为技术有限公司 数据预热方法及装置
CN102821113A (zh) * 2011-06-07 2012-12-12 阿里巴巴集团控股有限公司 缓存方法及系统
CN103051701A (zh) * 2012-12-17 2013-04-17 北京网康科技有限公司 一种缓存准入方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143240B2 (en) * 2003-10-31 2006-11-28 International Business Machines Corporation System and method for providing a cost-adaptive cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102821113A (zh) * 2011-06-07 2012-12-12 阿里巴巴集团控股有限公司 缓存方法及系统
CN102521260A (zh) * 2011-11-18 2012-06-27 华为技术有限公司 数据预热方法及装置
CN103051701A (zh) * 2012-12-17 2013-04-17 北京网康科技有限公司 一种缓存准入方法及装置

Also Published As

Publication number Publication date
CN103942315A (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
CN103942315B (zh) 一种基于装载因子的缓存数据预加载与替换方法
CN100395750C (zh) 一种缓存管理方法
US8909644B2 (en) Real-time adaptive binning
US7386675B2 (en) Systems and methods for using excitement values to predict future access to resources
Schiffers et al. Root plasticity buffers competition among plants: theory meets experimental data
US20210374523A1 (en) Using Reinforcement Learning to Dynamically Tune Cache Policy Parameters
CN109240946A (zh) 数据的多级缓存方法及终端设备
CN103729438A (zh) 网页预加载方法及装置
CN103500213B (zh) 基于预读取的页面热点资源更新方法和装置
CN104320448A (zh) 一种基于大数据的计算设备的缓存与预取加速方法和装置
CN106570108A (zh) 一种云存储环境下海量数据自适应读取优化方法及系统
CN109413694B (zh) 一种基于内容流行度预测的小小区缓存方法及装置
CN108205469A (zh) 一种基于MapReduce的资源分配方法及服务器
CN109961362A (zh) P2p平台信用风险动态评价方法和系统
CN110968816A (zh) 一种基于强化学习的内容缓存方法、装置及存储介质
CN104021226B (zh) 预取规则的更新方法及装置
CN103455509B (zh) 一种获取时间窗口模型参数的方法和系统
CN109542803A (zh) 一种基于深度学习的混合多模式热数据缓存策略
CN105786830A (zh) 计算机系统中模型自适应调整方法、装置及系统
US10871902B2 (en) Adaptive look-ahead configuration for prefetching data in input/output operations based on request size and frequency
Diao et al. Comparative studies of load balancing with control and optimization techniques
CN106681830A (zh) 一种任务缓存空间监测方法和装置
CN109491619A (zh) 缓存数据处理方法、装置和系统
CN110266770B (zh) 基于博弈论的闲置云资源调度方法和装置
CN114785858B (zh) 应用于互感器在线监测系统的资源主动缓存方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 310006 room 607 and 609, C, Europe and America Center, Xihu District World Trade Center, Hangzhou, Zhejiang

Patentee after: Zhejiang Bang Sheng Technology Co., Ltd.

Address before: 310006 room 607 and 609, C, Europe and America Center, Xihu District World Trade Center, Hangzhou, Zhejiang

Patentee before: HANGZHOU BANGSUN FINANCIAL INFORMATION TECHNOLOGY LTD.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 310006 rooms 607 and 609, Zone C, European and American Center, world trade Regent City, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Zhejiang Bangsheng Technology Co.,Ltd.

Address before: 310006 rooms 607 and 609, Zone C, European and American Center, world trade Regent City, Xihu District, Hangzhou City, Zhejiang Province

Patentee before: ZHEJIANG BANGSUN TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder