[发明专利]服务器端无障碍存取高速缓存数据的方法无效

专利信息
申请号: 201010211335.X 申请日: 2010-06-28
公开(公告)号: CN101887399A 公开(公告)日: 2010-11-17
发明(设计)人: 陈宏华 申请(专利权)人: 北京用友政务软件有限公司
主分类号: G06F12/08 分类号: G06F12/08
代理公司: 北京天悦专利代理事务所(普通合伙) 11311 代理人: 田明;任晓航
地址: 100094 北京市海淀*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 服务器端 障碍 存取 高速缓存 数据 方法
【说明书】:

技术领域

发明属于计算机信息处理技术,具体涉及一种服务器端无障碍存取高速缓存数据的方法。

背景技术

目前,在计算机服务器上数据缓存技术通常存在两种方式,一种为实时数据区和缓存数据区一体化的方式,另一种为实时数据区和缓存数据区分开的方式,这两种方式分别存在着缺陷和不足。

实时数据区和缓存数据区一体化的方式存在如下缺陷:

●在服务器集群的方式下,变更数据只能最先在一个服务器的数据缓存区同步,然后通过服务器间的同步机制进行数据同步,后者效率较低。服务器站点越多、更新越频繁、缓存的对象越大,越影响性能。

●数据变更操作会阻塞数据读取操作,影响读取操作效率。变更数据操作和读取数据操作越频繁,影响越严重。

●不经过服务器的数据变更处理后,其变更的数据无法进入到缓存区中。实时数据区和缓存数据区分开的方式存在如下缺陷:

●数据缓存区的数据与最新实时数据之间存在的时间差过长。

●为了减少这个时间差,就采取加快刷新缓存区操作的频率的方式,而这种方式又会引起数据缓存区的读取操作和刷新操作之间相互阻塞影响。刷新操作和读取操作越频繁,影响越严重。

另外,由于现有的数据缓存方案通常采用单缓存区,读取缓存区操作和刷新缓存区操作均针对同一个缓存区进行,互相阻塞,存在冲突。

发明内容

本发明的目的是为了解决现有技术中存在的缓存区的刷新操作和读取操作相冲突的问题,并避免服务器集群方式下的缓存数据和实时数据不一致的问题,提供一种服务器端无障碍存取高速缓存数据的方法。

本发明的技术方案如下:一种服务器端无障碍存取高速缓存数据的方法,包括如下步骤:

(1)在服务器集群的每个服务器进程中创建一个数据缓存对象,数据缓存对象在内存中建立两个数据缓存区、两个对应的读计数器、一个缓存区标志;

(2)在每个服务器进程中创建一个独立的线程,用于刷新数据缓存对象中的两个数据缓存区,在任一时刻,其中一个缓存区已经准备好数据供其他线程读取,另外一个缓存区在进行刷新操作,刷新完成后将其标志为当前已经准备好的缓存区;

(3)在进行缓存区数据的读取操作时,通过判断缓存区标志的值,读取其中一个已经准备好的缓存区的数据。

进一步,如上所述的服务器端无障碍存取高速缓存数据的方法,在步骤(2)中,独立的线程依次循环刷新两个数据缓存区,在完成第一缓存区的数据刷新后,设置缓存区标志使其标志为第一缓存区准备好可读;然后刷新第二缓存区,完成第二缓存区的刷新后,设置缓存区标志使其标志为第二缓存区准备好可读。

更进一步,如上所述的服务器端无障碍存取高速缓存数据的方法,在步骤(2)中,在刷新其中一个数据缓存区之前,先判断其对应的读计数器是否为0,如果不为0,则表示当前还有读缓存区的操作正在进行,用于刷新缓存区的独立线程进入等待状态,直到对应的读计数器为0,再进行刷新操作。

进一步,如上所述的服务器端无障碍存取高速缓存数据的方法,在步骤(3)中,判断缓存区标志的值,如果其标志为第一缓存区准备好可读,则读取第一缓存区的数据,如果其标志为第二缓存区准备好可读,则读取第二缓存区的数据。

更进一步,如上所述的服务器端无障碍存取高速缓存数据的方法,在步骤(3)中,在读取其中一个缓存区的数据之前,设置其对应的读计数器加1,数据读取结束后,设置其对应的读计数器减1。

本发明的有益效果如下:本发明所提供的服务器端无障碍存取高速缓存数据的方法,在每个服务器进程中创建数据缓存对象,并创建独立的刷新进程,能够在服务器集群的方式下,将变更的数据高效独立地同步到各个服务器的数据缓存区中;由于采用双缓存区的技术手段,数据缓存区的读取操作不会被阻塞;而且可以任意缩短刷新缓存区的时间间隔。

附图说明

图1为本发明的方法流程图;

图2为本发明的功能结构示意图。

具体实施方式

下面结合附图和实施例对本发明进行详细的描述。

如图1所示,本发明所提供的服务器端无障碍存取高速缓存数据的方法包括如下步骤:

步骤1、创建数据缓存对象X

首先,在每个服务器进程中创建一个数据缓存对象X。数据缓存对象X在内存中建立两个数据缓存区(buf1、buf2)、两个对应的读计数器(cnt1、cnt2)、一个缓存区标志(flag)。

步骤2、创建独立的线程T,用于刷新缓存数据

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京用友政务软件有限公司,未经北京用友政务软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010211335.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top