CN101887399A - 服务器端无障碍存取高速缓存数据的方法 - Google Patents

服务器端无障碍存取高速缓存数据的方法 Download PDF

Info

Publication number
CN101887399A
CN101887399A CN201010211335XA CN201010211335A CN101887399A CN 101887399 A CN101887399 A CN 101887399A CN 201010211335X A CN201010211335X A CN 201010211335XA CN 201010211335 A CN201010211335 A CN 201010211335A CN 101887399 A CN101887399 A CN 101887399A
Authority
CN
China
Prior art keywords
data
buffer area
read
cache
ready
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
Application number
CN201010211335XA
Other languages
English (en)
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.)
BEIJING UFIDA SOFTWARE CO LTD
Original Assignee
BEIJING UFIDA SOFTWARE CO 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 BEIJING UFIDA SOFTWARE CO LTD filed Critical BEIJING UFIDA SOFTWARE CO LTD
Priority to CN201010211335XA priority Critical patent/CN101887399A/zh
Publication of CN101887399A publication Critical patent/CN101887399A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明属于计算机信息处理技术,具体涉及一种服务器端无障碍存取高速缓存数据的方法。该方法在每个服务器进程中创建一个数据缓存对象,数据缓存对象在内存中建立两个数据缓存区、两个对应的读计数器、一个缓存区标志;在每个服务器进程中创建一个独立的线程,用于刷新两个数据缓存区,在任一时刻,一个缓存区已经准备好数据供其他线程读取,另外一个缓存区在进行刷新操作,刷新完成后将其标志为当前已经准备好的缓存区;在进行缓存区数据读取操作时,判断缓存区标志的值,读取其中一个已经准备好的缓存区的数据。本发明能够在服务器集群的方式下,将变更的数据高效独立地同步到各个服务器的数据缓存区中,数据缓存区的读取操作不会被阻塞和延迟。

Description

服务器端无障碍存取高速缓存数据的方法
技术领域
本发明属于计算机信息处理技术,具体涉及一种服务器端无障碍存取高速缓存数据的方法。
背景技术
目前,在计算机服务器上数据缓存技术通常存在两种方式,一种为实时数据区和缓存数据区一体化的方式,另一种为实时数据区和缓存数据区分开的方式,这两种方式分别存在着缺陷和不足。
实时数据区和缓存数据区一体化的方式存在如下缺陷:
●在服务器集群的方式下,变更数据只能最先在一个服务器的数据缓存区同步,然后通过服务器间的同步机制进行数据同步,后者效率较低。服务器站点越多、更新越频繁、缓存的对象越大,越影响性能。
●数据变更操作会阻塞数据读取操作,影响读取操作效率。变更数据操作和读取数据操作越频繁,影响越严重。
●不经过服务器的数据变更处理后,其变更的数据无法进入到缓存区中。实时数据区和缓存数据区分开的方式存在如下缺陷:
●数据缓存区的数据与最新实时数据之间存在的时间差过长。
●为了减少这个时间差,就采取加快刷新缓存区操作的频率的方式,而这种方式又会引起数据缓存区的读取操作和刷新操作之间相互阻塞影响。刷新操作和读取操作越频繁,影响越严重。
另外,由于现有的数据缓存方案通常采用单缓存区,读取缓存区操作和刷新缓存区操作均针对同一个缓存区进行,互相阻塞,存在冲突。
发明内容
本发明的目的是为了解决现有技术中存在的缓存区的刷新操作和读取操作相冲突的问题,并避免服务器集群方式下的缓存数据和实时数据不一致的问题,提供一种服务器端无障碍存取高速缓存数据的方法。
本发明的技术方案如下:一种服务器端无障碍存取高速缓存数据的方法,包括如下步骤:
(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,用于刷新缓存数据
在每个服务器进程中创建一个独立的线程T。线程T用于刷新数据缓存对象X中的两个数据缓存区(buf1、buf2),并设置缓存区标志(flag)。
线程是一段完成某个特定功能的代码,是程序中单个顺序的流控制。本发明利用单个程序中可以同时运行多个线程来执行不同任务的原理,创建一个专门的线程用来刷新两个数据缓存区(buf1、buf2),并设置缓存区标志(flag)。线程T刷新两个缓存区的方式是依次循环刷新缓存区buf1和缓存区buf2。在完成缓存区buf1的数据刷新后,设置缓存区标志(flag)使其标志为buf1准备好可读,停顿一段时间后(可选),然后刷新缓存区buf2,完成缓存区buf2的刷新后,设置缓存区标志(flag)使其标志为buf2准备好可读。
线程T在刷新某个数据缓存区之前,先判断其对应的读计数器是否为0(读计数器的初始状态为0),如果不为0,则表示当前还有读缓存区的操作正在进行,线程T进入等待状态,直到对应的读计数器为0,才进行刷新操作。如:线程T在刷新数据缓存区buf1之前,先判断读计数器cnt1是否为0,并等待直到读计数器cnt1为0才刷新数缓存区buf1。
步骤3、读取数据缓存区
缓存区数据读取操作时,判断缓存区标志(flag)的值,如果其标志为缓存区buf1准备好可读,则读取缓存区buf1的数据,如果其标志为缓存区buf2准备好可读,则读取缓存区buf2的数据。
读取某个缓存区的数据前,设置其对应的读计数器加1,数据读取结束后,设置其对应的读计数器减1。如:读取缓存区buf1前,将读计数器cnt1加1,读取结束后,将读计数器cnt1减1。
如图2的功能结构所示,通过上述方法的步骤,服务器进程中的独立线程先判断缓存区buf1对应的读计数器是否为0,如果为0,则刷新缓存区buf1,设置缓存区标志flag使其标志为buf1准备好可读,然后经过一段时间,判断缓存区buf2对应的读计数器是否为0,如果为0,再刷新缓存区buf2,设置缓存区标志flag使其标志为buf2准备好可读;同时,缓存区的数据读取线程判断缓存区标志flag的值,确定缓存区buf1是否准备好可读,如果准备好可读,设置其对应的读计数器cnt1加1,然后读取缓存区buf1的数据,读取结束后,将其对应的读计数器cnt1减1,接下来,确定缓存区buf2是否准备好可读,如果准备好可读,设置其对应的读计数器cnt2加1,然后读取缓存区buf2的数据,读取结束后,将其对应的读计数器cnt2减1。循环上述操作,便可以实现数据缓存区的连续刷新,不会出现读取操作被阻塞或延迟的情况。
显然,本领域的技术人员可以对本发明进行各种形式上的改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (5)

1.一种服务器端无障碍存取高速缓存数据的方法,包括如下步骤:
(1)在服务器集群的每个服务器进程中创建一个数据缓存对象,数据缓存对象在内存中建立两个数据缓存区、两个对应的读计数器、一个缓存区标志;
(2)在每个服务器进程中创建一个独立的线程,用于刷新数据缓存对象中的两个数据缓存区,在任一时刻,其中一个缓存区已经准备好数据供其他线程读取,另外一个缓存区在进行刷新操作,刷新完成后将其标志为当前已经准备好的缓存区;
(3)在进行缓存区数据的读取操作时,通过判断缓存区标志的值,读取其中一个已经准备好的缓存区的数据。
2.如权利要求1所述的服务器端无障碍存取高速缓存数据的方法,其特征在于:在步骤(2)中,独立的线程依次循环刷新两个数据缓存区,在完成第一缓存区的数据刷新后,设置缓存区标志使其标志为第一缓存区准备好可读;然后刷新第二缓存区,完成第二缓存区的刷新后,设置缓存区标志使其标志为第二缓存区准备好可读。
3.如权利要求2所述的服务器端无障碍存取高速缓存数据的方法,其特征在于:在步骤(2)中,在刷新其中一个数据缓存区之前,先判断其对应的读计数器是否为0,如果不为0,则表示当前还有读缓存区的操作正在进行,用于刷新缓存区的独立线程进入等待状态,直到对应的读计数器为0,再进行刷新操作。
4.如权利要求1所述的服务器端无障碍存取高速缓存数据的方法,其特征在于:在步骤(3)中,判断缓存区标志的值,如果其标志为第一缓存区准备好可读,则读取第一缓存区的数据,如果其标志为第二缓存区准备好可读,则读取第二缓存区的数据。
5.如权利要求4所述的服务器端无障碍存取高速缓存数据的方法,其特征在于:在步骤(3)中,在读取其中一个缓存区的数据之前,设置其对应的读计数器加1,数据读取结束后,设置其对应的读计数器减1。
CN201010211335XA 2010-06-28 2010-06-28 服务器端无障碍存取高速缓存数据的方法 Pending CN101887399A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010211335XA CN101887399A (zh) 2010-06-28 2010-06-28 服务器端无障碍存取高速缓存数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010211335XA CN101887399A (zh) 2010-06-28 2010-06-28 服务器端无障碍存取高速缓存数据的方法

Publications (1)

Publication Number Publication Date
CN101887399A true CN101887399A (zh) 2010-11-17

Family

ID=43073327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010211335XA Pending CN101887399A (zh) 2010-06-28 2010-06-28 服务器端无障碍存取高速缓存数据的方法

Country Status (1)

Country Link
CN (1) CN101887399A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218176A (zh) * 2013-04-02 2013-07-24 中国科学院信息工程研究所 数据处理方法及装置
CN108427894A (zh) * 2018-03-27 2018-08-21 中国农业银行股份有限公司 一种数据通信方法及装置
CN108846288A (zh) * 2018-06-06 2018-11-20 浙江华途信息安全技术股份有限公司 一种驱动层进程读取缓存的管理方法
CN109933544A (zh) * 2019-03-13 2019-06-25 广州华多网络科技有限公司 数据预热方法、装置、服务器及存储介质
CN113095503A (zh) * 2020-01-09 2021-07-09 北京君正集成电路股份有限公司 一种实现检测模型高效的系统
CN113779082A (zh) * 2021-01-05 2021-12-10 北京沃东天骏信息技术有限公司 一种更新数据的方法和装置
WO2023010731A1 (zh) * 2021-08-03 2023-02-09 武汉绿色网络信息服务有限责任公司 数据信息处理的方法和服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101093466A (zh) * 2007-08-10 2007-12-26 杭州华三通信技术有限公司 通过缓存写数据的方法和缓存系统及装置
CN101126998A (zh) * 2006-08-15 2008-02-20 英业达股份有限公司 群聚式计算机系统高速缓存数据备份处理方法及系统
CN101132395A (zh) * 2006-08-22 2008-02-27 阿里巴巴公司 一种实现服务器之间的数据同步的方法及系统
CN101131673A (zh) * 2006-08-22 2008-02-27 中兴通讯股份有限公司 一种通用缓存的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101126998A (zh) * 2006-08-15 2008-02-20 英业达股份有限公司 群聚式计算机系统高速缓存数据备份处理方法及系统
CN101132395A (zh) * 2006-08-22 2008-02-27 阿里巴巴公司 一种实现服务器之间的数据同步的方法及系统
CN101131673A (zh) * 2006-08-22 2008-02-27 中兴通讯股份有限公司 一种通用缓存的方法
CN101093466A (zh) * 2007-08-10 2007-12-26 杭州华三通信技术有限公司 通过缓存写数据的方法和缓存系统及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218176A (zh) * 2013-04-02 2013-07-24 中国科学院信息工程研究所 数据处理方法及装置
CN103218176B (zh) * 2013-04-02 2016-02-24 中国科学院信息工程研究所 数据处理方法及装置
CN108427894A (zh) * 2018-03-27 2018-08-21 中国农业银行股份有限公司 一种数据通信方法及装置
CN108427894B (zh) * 2018-03-27 2021-03-09 中国农业银行股份有限公司 一种数据通信方法及装置
CN108846288A (zh) * 2018-06-06 2018-11-20 浙江华途信息安全技术股份有限公司 一种驱动层进程读取缓存的管理方法
CN108846288B (zh) * 2018-06-06 2020-08-18 浙江华途信息安全技术股份有限公司 一种驱动层进程读取缓存的管理方法
CN109933544A (zh) * 2019-03-13 2019-06-25 广州华多网络科技有限公司 数据预热方法、装置、服务器及存储介质
CN109933544B (zh) * 2019-03-13 2023-07-04 广州华多网络科技有限公司 数据预热方法、装置、服务器及存储介质
CN113095503A (zh) * 2020-01-09 2021-07-09 北京君正集成电路股份有限公司 一种实现检测模型高效的系统
CN113095503B (zh) * 2020-01-09 2024-05-03 北京君正集成电路股份有限公司 一种实现检测模型高效的系统
CN113779082A (zh) * 2021-01-05 2021-12-10 北京沃东天骏信息技术有限公司 一种更新数据的方法和装置
WO2023010731A1 (zh) * 2021-08-03 2023-02-09 武汉绿色网络信息服务有限责任公司 数据信息处理的方法和服务器

Similar Documents

Publication Publication Date Title
CN101887399A (zh) 服务器端无障碍存取高速缓存数据的方法
CN103617131B (zh) 一种实现数据缓存的方法
CN102047241B (zh) 本地与全局数据共享
CN102982087B (zh) 一种检测数据库数据一致性的方法、装置及数据库系统
DE112007000632B4 (de) Energieoptimierte Frame-Synchronisation für mehrere USB-Controller mit nicht gleichförmigen Frame-Raten
CN103500229A (zh) 一种数据库同步方法和数据库系统
CN103593168B (zh) 利用多重处理的渲染处理装置及方法
CN103930874A (zh) 使用经调度资源组转变通过对便携式计算装置的工作负载估计而节省功率
CN101504632B (zh) 一种dma数据传输方法、系统及一种dma控制器
CN102467525A (zh) 单据关联方法及系统
CN103488695A (zh) 数据同步装置和数据同步方法
CN106294205A (zh) 缓存数据处理方法及装置
CN104615684A (zh) 一种海量数据通信并发处理方法及系统
CN104933495A (zh) 基于Android的移动终端上的工作任务考核系统
CN106293953B9 (zh) 一种访问共享显示数据的方法及系统
CN102929983A (zh) 嵌入式数据库同步到flash数据库的方法和装置
CN109657000B (zh) 一种轨道交通综合监控系统的实时数据同步方法及装置
CN105930178A (zh) 一种可配置的参数动态装载方法及系统
CN104461603B (zh) 一种信息处理方法及电子设备
CN104740873A (zh) 游戏中的图像渲染方法
CN102413154B (zh) 一种系统之间数据信息同步的方法及装置
CN105068957A (zh) 一种apb总线系统中访问从模块的方法及装置
CN102915338A (zh) 一种分布式文件系统数据同步的方法及文件系统
CN110737372A (zh) 一种用于电子白板的新增图元操作方法、系统及电子白板
CN105224957A (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20101117