CN109698865A - 一种基于访问预测的云应用缓存方法 - Google Patents
一种基于访问预测的云应用缓存方法 Download PDFInfo
- Publication number
- CN109698865A CN109698865A CN201811603133.2A CN201811603133A CN109698865A CN 109698865 A CN109698865 A CN 109698865A CN 201811603133 A CN201811603133 A CN 201811603133A CN 109698865 A CN109698865 A CN 109698865A
- Authority
- CN
- China
- Prior art keywords
- cloud application
- application component
- caching
- access
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
发明涉及一种基于访问预测的云应用缓存方法。本发明通过模式图来描述客户访问模式,消除了传统马尔可夫方法引入的无效客户访问行为,分析客户的访问历史获取模式图,基于预测概率函数实现云应用组件缓存替换,提高了动态缓存命中率以及云应用的性能。
Description
技术领域
本发明涉及一种基于访问预测的云应用组件缓存方法,属于软件技术领域。
背景技术
云应用中存在大量的云应用组件,它们提供了客户所需要的服务。每个客户请求到达云应用后,云应用调用相应云应用组件的业务逻辑来生成动态Web内容返回给客户。返回给客户的动态Web内容由云应用组件根据不同的参数取值动态产生,这些动态Web内容与云应用组件相关,同时根据客户请求中包含的请求参数值不同而改变。
缓存技术是提高服务器性能的有效技术,它已经在Web服务器和代理服务器领域得到了成功应用(Li, K., Shen, H., Tajima, K., 2004. Cache Design forTranscoding Proxy Caching. In: Proceedings of IFIP International Conferenceon Network and Parallel Computing (NPC’04), Wuhan, China, pp.187-194)。缓存技术的基本思想是将客户访问过的内容在缓存中存放一个副本,当该内容下次被访问时,直接将缓存中保留的副本返回给客户端,从而减轻服务器负载、降低网络拥塞,减少客户访问延迟。由于云应用返回给客户的内容由云应用组件动态产生,客户的两次访问可能得到不同的Web内容,严格遵循Java EE规范的话,不应该缓存云应用组件产生的动态Web内容,这可能使得客户访问到无效的甚至错误的信息。
然而,云应用中存在大量的“读”云应用组件,它们通常负责后台数据的查询与展示功能,不对原始数据进行修改(Turner, D.A., 2005. Web Page Caching in Java WebApplications. In: Proceedings of International Conference on InformationTechnology Coding and Computing (ITCC'05), Las Vegas, pp. 805 - 808)。这些“读”云应用组件通常被大量客户频繁访问,但是在一定的时间内,只要其参数值保持不变,它为所有客户返回完全一致的应答内容。缓存这些“读”云应用组件的执行结果为多个客户服务能够有效的降低云应用负载,减少云应用组件的执行次数,进而提高云应用的性能。对应于“读“云应用组件,那些对原始数据进行修改的云应用组件称为“写”云应用组件,它们的执行结果不能被缓存,因此这些“写”云应用组件为不可缓存云应用组件。
动态缓存对象由云应用组件及其参数值决定,因此,需要高效的缓存替换算法及时的将失效的缓存对象替换出缓存***,为新创建的缓存对象腾出存储空间。高效的缓存替换算法能够减少缓存替换发生的次数,提高缓存命中率,从而提高云应用的性能。缓存替换算法仍采用传统的静态服务器领域研究成果,忽略了云应用客户访问行为的连续性特征。对云应用而言,云应用组件对应一定的业务逻辑,这使得客户的访问行为符合一定的访问模式。利用上述访问模式预测客户未来的访问行为,能够更加有效的选择被替换的缓存对象,改进缓存替换算法的设计,并提高缓存机制的效率与云应用的性能。
发明内容
本发明的目的:消除了传统马尔可夫方法引入的无效客户访问行为,提高了动态缓存命中率以及云应用的性能。
本发明的原理:发明涉及一种基于访问预测的云应用缓存方法,通过模式图来描述客户访问模式,分析客户的访问历史获取模式图,基于预测概率函数实现云应用组件缓存替换。
本发明技术解决方案:一种基于访问预测的云应用缓存方法,其特点在于实现步骤如下:
第一步,云应用组件定义。
云应用的云应用组件主要包括Servlet、JSP以及JSF组件,它们根据客户请求中的参数值动态生成Web内容返回给客户。由于JSP组件与JSF组件最终被编译为Servlet组件运行,云应用的云应用组件主要指Servlet组件。云应用组件定义为一个4元组:wc=<id,name, parameters, type>,其中,id是云应用组件的标识,name是云应用组件的名称,parameters是云应用组件的参数名集合,type代表云应用组件的分类,type为{cacheable,non-cacheable}。当type=cacheable时,云应用组件是可缓存的云应用组件,所产生的动态内容能够被缓存。当type=non-cacheable时,云应用组件为不可缓存云应用组件。
S为云应用的云应用组件集合,SC为可缓存云应用组件集合,SNC为不可缓存云应用组件集合。首先编号所有可缓存云应用组件,即假设S={wc1,wc2,…wci,…wcN} 并且 |S|=N,|SC|=L,那么当 1≤i≤L时,wci.type = cacheable,并且当L<i≤N时wci.type=non-cacheable。可缓存云应用组件通常完成一些数据读取或查询功能。因为读云应用组件与写云应用组件由企业云应用的业务逻辑决定,所以可缓存云应用组件由熟悉云应用组件业务逻辑的云应用开发者定义,并随云应用一起部署到云应用中。
动态缓存对象定义为一个5元组,dco=<id,wc,values,content,factors>,其中,id是云应用组件缓存对象的标识,wc是产生该缓存对象的可缓存云应用组件,values是可缓存云应用组件的一组参数值,content是云应用组件的parameters取值为values时产生的动态Web内容,factors是缓存替换算法需要的一组参数。与静态文件相比,动态缓存对象不仅与可缓存云应用组件有关,它还受可缓存云应用组件的参数值values影响,不同的参数值将产生不同的缓存对象。
第二步,访问模式定义。
云应用的每个云应用组件对应了一定的业务功能,云应用组件之间存在一定的业务关联。这种关联使得客户的访问行为呈现一定的连续性特征,即遵循一定的访问模式,关注的是客户的顺序访问行为。
会话:企业客户对云应用组件的访问序列,可以表示为session={id 1, id 2,…, id length },其中id i代表云应用组件的标识,length代表了会话的长度。
转移:如果一个会话中包含了序列…id m ,…,id m+d …并且id m =wc source .id, id m+d = wc target .id,存在一个从云应用组件wcsource到云应用组件wctarget距离为d的转移,其中,wc source , wc target 和 d分别代表转移的源云应用组件,目标云应用组件和转移距离。当转移距离为1时,为直接转移。如果直接转移的源云应用组件和目标云应用组件相同,为自转移。
访问模式转移发生概率为Probability(source, target, d),为云应用中所有访问规律的集合称为云应用的客户访问模式。客户发出的两个转移距离为d的请求request1与Request2在云应用内部被映射为对云应用组件Web Component1与Web Component2的距离为d的顺序访问。在所有客户访问历史中,该转移发生的概率由转移概率给出。为了描述上述客户访问模式,模式图能够有效的表示客户的访问行为,根据其反映的内容不同,模式图又分为转移图与转移概率图。
转移图:由一组客户会话sessions= {session(1), session(2),……,session
(m)}产生。TG(d)的节点i代表云应用组件wc i ,边<i,j>代表转移,边的权值WTG(d)
(i, j)代表了在这组会话中转移发生的次数。
转移概率图:记录了云应用的所有序列模式。对于一组会话sessions={session(1),session(2),……,session(m)},TPG(d)的节点与边与转移图TG(d)有着相同的含义,但是边<i,j>的权值WTPG(d)(i, j)=Probability(i, j, d),代表转移概率。
第三步,访问模式发现。
为了获得云应用的客户访问模式,本发明必须分析客户的访问历史。这可以通过分析云应用日志的信息,或通过在线收集的方式进行。访问模式发现算法用于从这些历史数据中获取模式图,其输入为一组客户会话及转移距离d,输出为对应的模式图。
在云应用中,除了代表企业业务逻辑的云应用组件之外,通常还包含一些辅助的云应用组件,它们可能是应用开发者开发的一些辅助云应用组件类,也可能是一些应用层框架的组件。这些辅助云应用组件不代表任何业务功能,但是与客户访问的云应用组件交织在一起,这会影响序列模式的有效性。因此,本发明应该首先删除客户会话中的这些辅助云应用组件以保证所得到的序列模式能够反映客户的访问行为。这些组件的集合称为无效组件集合,它们也在缓存配置文件中定义。访问模式发现算法步骤如下:预处理所有会话,删除所有无效访问行为;计算所有距离的转移图;计算所有距离的转移概率图。
第四步,基于访问预测的云应用组件缓存
预测概率函数利用客户访问模式以及云应用当前的状态预测可缓存云应用组件被再次访问的概率,可以作为一个新的代价因子对传统的缓存替换算法加以补充。本节本发明根据云应用的特点设计了两个预测概率函数,它们分别根据云应用的会话状态与缓存状态来预测缓存对象被再次访问的概率。
基于会话状态的预测概率函数:,
基于缓存状态的预测概率函数:,
其中,session[length]代表云应用中的一个活动客户会话最后访问的云应用组件,D代表用于预测的转移距离。等式ranksession(j)反映了实时的云应用用户访问行为。而函数rankcache(j)反映了缓存***的状态,这使得其预测结果可能不如ranksession(j)精确,但是相比而言它具有更少的计算时间复杂度,能够减少对云应用资源的占用。
预测概率函数引入了一定的计算消耗,但是它们能够更精确的替换缓存***中已经过时的缓存对象,减少缓存替换发生的次数,减少可缓存云应用组件的不必要执行。总体而言,它能够提高云应用的缓存命中率,进而提高其性能。因为预测概率函数基于云应用组件之间的关联而不是具体的缓存对象之间的关联,在一些特殊的情况下,本发明的方法可能无法得到很好的应用。如果一些云应用组件通过参数之不同来实现多个业务功能,此时客户可能不停访问相同的云应用组件。
基于序列模式的缓存替换PReplace(rankt, rankp, distance),包含三个参数rankt, rankp, distance,其中rankt代表传统缓存替换算法的替换代价函数,rankp代表预测概率函数,distance代表预测距离。相应的PReplace算法的替换代价函数定义为:rank(dco)=rankt(dco) × rankp (dco)。
本发明与现有技术相比具有如下优点:
通过模式图来描述客户访问模式,消除了传统马尔可夫方法引入的无效客户访问行为,通过分析客户的访问历史获取模式图,基于预测概率函数实现云应用组件缓存替换,提高了动态缓存命中率以及云应用的性能。
附图说明
图1为云应用组件缓存***架构图。
具体实施方式
以下结合具体实施例和附图对本发明进行详细说明,如图1所示,本发明实施例方法流程:
云应用的缓存机制主要包括三个部分:动态缓存***、缓存定义文件以及缓存请求处理单元。其中缓存***负责缓存对象的管理、缓存一致性维护以及缓存替换等功能,缓存定义文件负责缓存相关信息的定义,而缓存请求处理单元负责缓存***与云应用的集成。
缓存***的主要功能包括:缓存配置文件的读取;缓存对象的管理;缓存一致性维护以及缓存对象替换,主要包含以下5个组件:
(1)缓存管理器负责与缓存请求处理单元缓存定位与缓存更新交互,提供缓存功能。
(2)缓存配置管理器负责从缓存配置文件中读入缓存配置信息,作为缓存管理器的管理依据
(3)缓存持久化管理器负责缓存对象的持久化操作,当占用内存空间过大时,将部分访问频率较低的缓存对象存储在硬盘上。
(4)缓存一致性维护管理器负责根据缓存一致性规则将失效的缓存对象从缓存***中删除,避免无效数据的存在。
(5)缓存替换管理器负责缓存替换功能,即当缓存***中的缓存对象所占用空间大于缓存***的空间限制时,根据缓存定义中定义的缓存替换算法从缓存***中选择一定的缓存对象从缓存***中删除。
缓存配置文件主要包括三方面的内容:缓存对象配置、缓存一致性机制配置以及缓存替换算法配置。
(1)缓存对象配置包括应用组件URL、name以及一组参数名,其中URL和name是缓存***判断可缓存应用组件的依据,参数名则指定了创建缓存对象的另一个参数一句。
(2)缓存一致性策略定义中,当type=invalidate时,source指定了产生失效行为的应用组件,target指明了应该被删除的应用组件的缓存对象,即当source应用组件被执行时,应该从缓存中删除所有target应用组件所创建的缓存对象。而当type=expire时,失效规则仅扫描缓存对象的创建时间,当超过指定的时间时即将对应的缓存对象替换出缓存。
(3)缓存替换算法配置指定了缓存替换的策略,在Web中提供了几种不同的缓存替换策略:
最近最久未使用策略为每个缓存对象维护一个最后访问时间的属性,当缓存已满需要替换一些缓存对象时,选择具有最早访问时间的缓存对象替换出缓存;最近最少使用策略统计缓存对象在过去一个时间周期内被访问的频率,主要是为每个缓存对象维护一个访问次数的属性,它选择具有最少访问次数的缓存对象替换出缓存;GDSF策略综合考虑了缓存对象的最近访问时间和频率,同时也考虑了生成缓存对象的代价,除了上述两个因素外,还为缓存对象维护了对象大小、生成缓存对象的Servlet执行时间两个属性,选择具有最小替换代价的缓存对象替换出缓存。
访问模式驱动的缓存替换策略根据客户的访问历史计算模式图,并且根据缓存***的状态和整个云应用客户会话的状态统计缓存对象被再次访问的概率,然后将其与上述三种策略组合形成不同的缓存替换策略。
缓存请求处理单元通过缓存定位和缓存更新两个请求处理单元集成到请求处理过程中。其中缓存定位模块位于HTTPParser请求处理单元之后,它根据已经解析的请求URL确定当前请求是否是一个可缓存应用组件,如果是则在缓存***中查找其对应参数值的缓存对象直接返回应答结果给客户。缓存更新负责将可缓存应用组件的响应内容存储到缓存***中,同时也负责更新相应的缓存对象信息。
Claims (1)
1.一种基于访问预测的云应用缓存方法,方法特征在于实现步骤如下:
第一步,云应用组件定义:<id, name, parameters, type>,其中,id是云应用组件的标识,name是云应用组件的名称,parameters是云应用组件的参数名集合,type代表云应用组件的分类,type为{cacheable, non-cacheable};
第二步,访问模式构建:转移概率图d为TPG(d),图d边<i,j>的权值WTPG(d)(i, j)=Probability(i, j, d),代表节点i到节点j的转移概率;
第三步,访问模式发现:历史数据中获取模式图,其输入为一组客户会话及转移距离d,输出为对应的模式图,预处理所有会话,删除所有无效访问行为;计算所有距离的转移图;计算所有距离的转移概率图;
第四步,基于访问预测的云应用组件缓存:基于会话状态的预测概率函数,其中,session[length]代表云应用
中的一个活动客户会话最后访问的云应用组件,D代表用于预测的转移距离,length为会话
长度;
第五步,基于序列模式的缓存替换PReplace(rankt, rankp, distance),包含三个参数rankt, rankp, distance,其中rankt代表传统缓存替换算法的替换代价函数,rankp代表预测概率函数,distance代表预测距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811603133.2A CN109698865A (zh) | 2018-12-26 | 2018-12-26 | 一种基于访问预测的云应用缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811603133.2A CN109698865A (zh) | 2018-12-26 | 2018-12-26 | 一种基于访问预测的云应用缓存方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109698865A true CN109698865A (zh) | 2019-04-30 |
Family
ID=66232217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811603133.2A Pending CN109698865A (zh) | 2018-12-26 | 2018-12-26 | 一种基于访问预测的云应用缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109698865A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045907A (zh) * | 2019-12-12 | 2020-04-21 | 苏州博纳讯动软件有限公司 | 一种基于业务量的***容量预测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681990A (zh) * | 2015-11-05 | 2017-05-17 | 华中科技大学 | 一种移动云存储环境下缓存数据的预取方法 |
US20170208125A1 (en) * | 2016-01-19 | 2017-07-20 | Hope Bay Technologies, Inc | Method and apparatus for data prefetch in cloud based storage system |
-
2018
- 2018-12-26 CN CN201811603133.2A patent/CN109698865A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681990A (zh) * | 2015-11-05 | 2017-05-17 | 华中科技大学 | 一种移动云存储环境下缓存数据的预取方法 |
US20170208125A1 (en) * | 2016-01-19 | 2017-07-20 | Hope Bay Technologies, Inc | Method and apparatus for data prefetch in cloud based storage system |
Non-Patent Citations (2)
Title |
---|
YANG LI等: "Sequential Pattern-Based Cache Replacement in Servlet Container", 《WEB ENGINEERING 7TH INTERNATIONAL CONFERENCE,ICWE 2007》 * |
李洋等: "基于序列模式的Servlet容器缓存替换", 《软件学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045907A (zh) * | 2019-12-12 | 2020-04-21 | 苏州博纳讯动软件有限公司 | 一种基于业务量的***容量预测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ali et al. | A survey of web caching and prefetching | |
CN102640125B (zh) | 分布式内容存储和取回 | |
JP5450841B2 (ja) | ユーザコンテンツフィードをサポートするための機構 | |
US20100325363A1 (en) | Hierarchical object caching based on object version | |
CN109271355A (zh) | 一种清理日志文件缓存的方法及装置 | |
EP3049940B1 (en) | Data caching policy in multiple tenant enterprise resource planning system | |
JP2009529183A (ja) | 応答出力キャッシュに対するマルチキャッシュ協調 | |
US20170286477A1 (en) | Database system recovery using non-volatile system memory | |
Challenger et al. | Efficiently serving dynamic data at highly accessed web sites | |
CN103782295A (zh) | 分布式数据管理***中的查询说明计划 | |
US20070299810A1 (en) | Autonomic application tuning of database schema | |
Zulfa et al. | Caching strategy for Web application–a systematic literature review | |
CN105915619B (zh) | 顾及访问热度的网络空间信息服务高性能内存缓存方法 | |
CN109698865A (zh) | 一种基于访问预测的云应用缓存方法 | |
US9449032B2 (en) | Multi-buffering system supporting read/write access to different data source type | |
US11455556B2 (en) | Framework for measuring telemetry data variability for confidence evaluation of a machine learning estimator | |
He et al. | An SLA-driven cache optimization approach for multi-tenant application on PaaS | |
Srikantaiah et al. | Web caching and prefetching with cyclic model analysis of web object sequences | |
Gulati et al. | A novel approach for determining next page access | |
Wang et al. | Smart Cache Insertion and Promotion Policy for Content Delivery Networks | |
EP4261712A1 (en) | Data elimination method and apparatus, cache node, and cache system | |
Vakili et al. | Speed up Cassandra read path by using Coordinator Cache | |
Carra et al. | Cost-based memory partitioning and management in memcached | |
Wu et al. | Mining personalization interest and navigation patterns on portal | |
Welicki et al. | Improving performance and server resource usage with page fragment caching in distributed web servers |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190430 |
|
WD01 | Invention patent application deemed withdrawn after publication |