本发明专利技术提供一种基于服务等级的数据缓存的系统,该系统基于服务等级进行管理,其由数据元信息管理器,缓存指数计算模块,缓存管理器三部分构成,数据元信息管理器,其储存的相应的信息;缓存指数计算模块,根据数据元信息管理器存储的上述的数据元信息来计算数据的缓存指数,缓存指数决定了数据在缓存池中的位置和保留级别;缓存管理器,其负责缓存的管理。本发明专利技术还提供一种基于服务等级的数据缓存的方法。通过本发明专利技术的基于服务等级的缓存数据的系统和方法,能提高缓存的利用效率和命中率,提供系统对用户服务质量和等级的支撑,提高系统核心功能的响应时间以及并发能力。
【技术实现步骤摘要】
本专利技术涉及数据存储领域,特别涉及一种数据缓存的系统和方法,用来系统运行过程中,进行数据缓存,以提高软件系统的性能和效率。
技术介绍
SAAS,软件即服务,提供了软件运营的一种模式。在SAAS等互联网软件或系统中,系统的性能一直是软件架构设计者关注的重点,如何使系统在高并发的情况下保持较高的性能,在系统的架构设计上,数据缓存是一种常有的方法。但目前的数据缓存方法一般采用LRU来对数据进行缓存,在高并发,大数据量,缓存有限的情况下,数据缓存的命中率低,系统的性能不能得到有效提升,也不能按照用户的服务等级来提供有差别的软件服务。本专利技术使用了一种基于用户服务等级,功能优先级,访问频度等的综合缓存指数数据评价的模型和方法。在缓存数据时,根据这种模型和方法,来决定数据缓存的时间,对缓存进行管理,可以提高缓存的命中率,提供系统对用户服务质量和等级的支撑,提高系统核心功能的响应时间以及并发能力。
技术实现思路
针对现有技术中存在的缺陷,本专利技术提出一种基于服务等级的数据缓存的系统,该系统基于服务等级进行管理,其由数据元信息管理器,缓存指数计算模块,缓存管理器三部分构成,数据元信息管理器,其储存的信息包括数据xkey,数据类别xtype,数据优先级别xprio,数据服务等级xslevl,数据计算复杂度xcomplx,数据访问频次xvisitor,数据交换次数xswap,数据最近访问时间xtime ;缓存指数计算模块,根据数据元信息管理器存储的上述的数据元信息来计算数据的缓存指数,缓存指数决定了数据在缓存池中的位置和保留级别;缓存管理器,其负责缓存的管理,根据数据的缓存指数来决定是否从缓存中删去或交换到磁盘。优选地,数据服务等级xslevl表示响应服务请求的级别;数据类别xtype表示数据的类型,与具体所存储的实际数据有关,此变量不参与缓存指数的计算;数据优先级别xprio :表示数据在系统中的重要级别;数据计算复杂度xcomplx :表示所请求的数据为经过计算而获得的; 数据访问频次xvisitor :指从系统启动后,数据被访问的次数,访问次数由数据缓存器管理,每次请求数据时,缓存管理器会自动更新此值;数据交换次数xswap,指从系统启动后,数据被缓存管理器交换到外部设备,从缓存中清除的次数;每次被清除时,缓存管理器会自动更新此值;数据最近访问时间xtime,指最近的数据被访问时间,由缓存管理器维护。优选地,所述数据元信息中,数据类别xtype,数据服务等级xslevl,数据优先级别xprio,数据计算复杂度xcomplx为系统的初始数据,在系统运行前,需要根据系统特点进行初始化优选地,缓存指数xidcache的计算方法为Xidcache = xslevl氺xparaml+xprio氺xparam2+xcomplx氺xparam3+xvisitor氺xparam4+xswap*xparam5+xtime上面公式中,xparami (i = 1,2,3,4,5)分别代表各元信息的权重,xparami的取值不同,影响着数据的缓存时间和效率,对于不同的系统,可以根据情况不同设定不同的权重。优选地,在文档型数据进行缓存的时候,xparami、xparam2、xparam3、xparam4、xparam5分别取值为1000、1000、500、100、10,则计算缓存指数xidcache为Xidcache = xslevl*1000+xprio*1000+xcomplx*500+xvisitor*100+xswap*100+xtime。本专利技术同时还提出一种基于服务等级的数据缓存的方法,该方法包括以下步骤步骤I :客户端请求数据,请求中包含数据xkey,数据类别xtype ;步骤2 :缓存管理器在缓存中查找数据xkey ;步骤3 :判断是否找到数据xkey,如果找到数据xkey则执行步骤4,如果未找到数据xkey则执行步骤4A1 ;步骤4 :将数据xkey返回客户端步骤5 :更新是数据最近访问时间xtime,访问频次xvisitor ;结束;步骤4A1 :从数据元信息管理获取数据元信息;步骤4A2 :从底层数据源获取数据;步骤4A3 :计算缓存指数xidcache ;步骤4A4 :请求将数据xkey放入缓存池中;步骤4A5 :判断缓存池是否有足够空间,如果判断确定有足够空间则执行步骤4A6,如果判断确定没有有足够空间则执行步骤4B1 ;步骤4A6 :将数据(key, indxcache, value)放入缓存并执行步骤5 ;步骤4B1 :进行缓存空间管理,从缓存中将缓存指数比较低的数据交换到外部;步骤4B2 :再次判断缓存池是否有足够空间,如果有则执行步骤4A6,如果没有则丢弃数据。优选地,数据服务等级xslevl表示响应服务请求的级别;数据类别xtype表示数据的类型,与具体所存储的实际数据有关,此变量不参与缓存指数的计算;数据优先级别xprio :表示数据在系统中的重要级别;数据计算复杂度xcomplx :表示所请求的数据为经过计算而获得的;数据访问频次xvisitor :指从系统启动后,数据被访问的次数,访问次数由数据缓存器管理,每次请求数据时,缓存管理器会自动更新此值;数据交换次数xswap,指从系统启动后,数据被缓存管理器交换到外部设备,从缓存中清除的次数;每次被清除时,缓存管理器会自动更新此值;数据最近访问时间xtime,指最近的数据被访问时间,由缓存管理器维护。优选地,所述数据元信息中,数据类别xtype,数据服务等级xslevl,数据优先级别xprio,数据计算复杂度xcomplx为系统的初始数据,在系统运行前,需要根据系统特点进行初始化。优选地,缓存指数xidcache的计算方法为Xidcache = xslevl氺xparaml+xprio氺xparam2+xcomplx氺xparam3+xvisitor氺xparam4+xswap*xparam5+xtime ;上面公式中,xparami (i = 1,2,3,4,5)分别代表各元信息的权重,xparami的取值不同,影响着数据的缓存时间和效率,对于不同的系统,可以根据情况不同设定不同的权 重。优选地,在文档型数据进行缓存的时候,xparami、xparam2、xparam3、xparam4、xparam5分别取值为1000、1000、500、100、10,则计算缓存指数xidcache为Xidcache = xslevl*1000+xprio*1000+xcomplx*500+xvisitor*100+xswap*100+xtime。通过本专利技术的基于服务等级的缓存数据的系统和方法,能提高缓存的利用效率和命中率,提供系统对用户服务质量和等级的支撑,提高系统核心功能的响应时间以及并发能力。附图说明图I为本专利技术提供的基于服务等级的数据缓存系统的结构图。图2为本专利技术提供的基于服务等级的数据缓存的方法的流程图。具体实施例方式下面结合附图对本专利技术作进一步说明。如图I所示,本专利技术的缓存管理的系统由数据元信息管理器,缓存指数计算模块,缓存管理器三部分构成。数据元信息储存数据xkey,数据的类别xtype,数据的优先级别xprio,数据的服务等级xslevl,数据计算本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:胡宇翔,
申请(专利权)人:北京神州数码思特奇信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。