CN101459599A - 一种实现缓存数据访问与加载并发进行的方法及系统 - Google Patents

一种实现缓存数据访问与加载并发进行的方法及系统 Download PDF

Info

Publication number
CN101459599A
CN101459599A CNA2008101751252A CN200810175125A CN101459599A CN 101459599 A CN101459599 A CN 101459599A CN A2008101751252 A CNA2008101751252 A CN A2008101751252A CN 200810175125 A CN200810175125 A CN 200810175125A CN 101459599 A CN101459599 A CN 101459599A
Authority
CN
China
Prior art keywords
data
buffer area
access
data buffer
pointer
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.)
Granted
Application number
CNA2008101751252A
Other languages
English (en)
Other versions
CN101459599B (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.)
Beijing new sharp Internet Technology Co.,Ltd.
Original Assignee
BEIJING SHANLIAN INTERACTIVE NETWORK TECHNOLOGY 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 SHANLIAN INTERACTIVE NETWORK TECHNOLOGY Co Ltd filed Critical BEIJING SHANLIAN INTERACTIVE NETWORK TECHNOLOGY Co Ltd
Priority to CN2008101751252A priority Critical patent/CN101459599B/zh
Publication of CN101459599A publication Critical patent/CN101459599A/zh
Application granted granted Critical
Publication of CN101459599B publication Critical patent/CN101459599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种实现缓存数据访问与加载并发进行的方法,所述方法为:使用两个数据缓存区来存储数据,所述两个数据缓存区中的一个处于访问状态,另外一个处于等待状态;使用数据加载指针和数据访问指针来进行两个数据缓存区的指向;在对缓存数据进行加载时,使用数据加载指针指向处在等待状态的数据缓存区,进行缓存数据的加载;同时如果需要对缓存数据进行访问,则使用数据访问指针指向处在访问状态的数据缓存区,进行缓存数据的访问。根据本发明,能够在加载数据的同时访问数据,而不影响访问数据的正确性,并且还提高了访问数据的速度。

Description

一种实现缓存数据访问与加载并发进行的方法及系统
技术领域
本发明涉及数据缓存,尤其涉及一种实现缓存数据访问与加载并发进行的方法及系统。
背景技术
在互联网数据访问中,客户端在对访问服务端进行查询、插入和更新数据的请求服务中,比如说搜索请求服务,会频繁搜索读取的一些相关内容,一般的情况是将这些读取的内容数据存储在磁盘上,由于读取磁盘的速度很慢,从而会影响访问数据的速度。
改进的方式是将需要频繁读取的数据在访问之前提前存储在内存中,这是因为计算机访问内存的速度远远高于访问磁盘的速度,这样会极大提高访问数据的速度。但是现有技术中没有解决在数据加载在内存中和访问数据同时进行的问题,而数据加载是一种耗时操作,如果在数据还没有完全加载完时处理客户端的访问请求,将不能保证客户端得到准确的数据,并且在数据加载的过程中会影响数据的访问速度。
发明内容
为了解决上述问题,本发明的目的是使访问与加载缓存数据能够同时进行,提高访问数据的速度,并保证访问存取数据的正确性。
为实现上述目的,本发明的技术方案是,一种实现缓存数据访问与加载并发进行的方法,所述方法包括以下步骤:
使用两个数据缓存区来存储数据,所述两个数据缓存区中的一个处于访问状态,另外一个处于等待状态;
使用数据加载指针和数据访问指针来进行两个数据缓存区的指向;
在对缓存数据进行加载时,使用数据加载指针指向处在等待状态的数据缓存区,进行缓存数据的加载;
同时如果需要对缓存数据进行访问,则使用数据访问指针指向处在访问状态的数据缓存区,进行缓存数据的访问;或者
在对缓存数据进行访问时,使用数据访问指针指向处在访问状态的数据缓存区,进行缓存数据的访问;
同时如果需要对缓存数据进行加载,使用数据加载指针指向处在等待状态的数据缓存区,进行缓存数据的加载;
其中所述处于访问状态的数据缓存区在访问结束之后变为等待状态,所述处于等待状态的数据缓存区在加载完数据之后变为访问状态。
所述处于访问状态的数据缓存区存储有数据,所述处于等待状态的数据缓存区无存储数据。
所述数据缓存区采用哈希表的数据结构来存储数据。
一种实现访问与加载缓存数据并发进行的系统,所述系统包括:
数据存取模块,与数据存取模块相连接的第一指针管理模块,与第一和第二指针管理模块相连接的数据缓存模块,与第二指针管理模块相连接的数据管理模块;
其中所述数据存取模块,用来获取并分析客户端的请求数据包,并把访问数据的请求指令发给第一指针管理模块;
所述第一指针管理模块,用来管理数据访问指针指向数据缓存模块中处于访问状态的数据缓存区,以使对所述数据缓存模块进行访问数据的存取;
所述数据缓存模块,用来存储需要频繁读取的数据,包括处于访问状态的数据缓存区和处于等待状态的数据缓存区;
所述第二指针管理模块,用来管理数据加载指针指向数据缓存模块中处于等待状态的数据缓存区,以使对所述数据缓存模块进行缓存数据的加载。
所述数据管理模块,用来配置不同的需要加载的数据源,并把数据加载的指令发送给第二指针管理模块。
所述访问数据的请求指令包括查询、插入、删除以及更新数据的指令。
所述数据缓存区采用哈希表的数据结构来缓存数据。
所述处于访问状态的数据缓存区存储有数据,所述处于等待状态的数据缓存区无存储数据。
所述处于访问状态的数据缓存区在访问结束之后变为等待状态,所述处于等待状态的数据缓存区在加载完数据之后变为访问状态。
所述哈希表采用关键字为索引值,来查找存储值。
由上述技术方案可知,本发明采用在两个数据缓存区来分别进行数据的访问和数据加载的操作,从而不必在数据重新加载之前先释放当前使用的内存空间,重新申请内存空间进行数据加载,因此能够在加载数据的同时访问数据,而不影响访问数据的正确性,并且还提高了访问数据的速度。
通过以下参照附图对优选实施例的说明,本发明的上述以及其它目的、特征和优点将更加明显。
附图说明
图1为本发明的一种访问与加载缓存数据并发进行的系统的结构示意图;
图2是本发明的一种访问与加载缓存数据并发进行的流程示意图。
具体实施方式
下面将详细描述本发明的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。
本发明的主要构思在于使用两个数据缓存区来存储数据,来解决加载数据与访问数据同时并行处理的问题。
下面根据本发明的一种访问与加载缓存数据并发进行的系统来详细介绍本发明的上述构思。
图1是本发明一种实施例的访问与加载缓存数据并发进行的系统的结构示意图,如图1所示,所述系统包括与数据存取模块,数据存取模块相连接的第一指针管理模块,与第一和第二指针管理模块相连接的数据缓存模块,与第二指针管理模块相连接的数据管理模块。
所述数据缓存模块,包括数据缓存区A和数据缓存区B,如图2所示,用于缓存需要频繁读取的数据,其中两个数据缓存区一个处于等待状态,另一个处于活跃状态,所述等待状态是数据缓存区没有数据,所述活跃状态是数据缓存区存储有数据,可以进行访问,其中一个数据存储区为等待状态,则另一个即为等待。这里所述的数据缓存区采用HASH表的数据结构,其中以HASH表为数据结构在内存中动态的申请连续的存储空间,存储的数据必须满足key->value模式,即通过key进行索引,找到存储value的内存地址。
所述数据存取模块,用于前端数据的存取,获取并分析客户端的请求数据包,并把访问数据的请求指令发给第一指针管理模块。该数据存取模块,是缓存服务器对客户端开放的接口,监听Socket,等待网络连接,获取并分析客户端的请求数据包,作出相应的处理,客户端可以发送、查询、插入、删除、更新数据的请求,对处于活跃状态的hash(哈希)表进行操作。请求数据包格式为command、key、value、command是对hash表进行操作的命令字,包括add、update、delete、query;其中key为存于hash表中的数据索引值,Value为存于hash表中的数据。
所述数据管理模块,用来配置不同的需要加载的数据源,并把数据加载的指令发送给第二指针管理模块。该数据管理模块根据配置可对不同形式的数据源进行加载,并通过判断配置的数据超时时间,对数据进行重新加载,这里数据源可以为数据库、文件、系统管道等。
所述第一指针管理模块,用来管理指针指向数据缓存模块中处于访问状态的数据缓存区,以使对所述数据缓存模块进行访问数据的存取;所述第二指针管理模块,用来管理指针指向数据缓存模块中处于等待状态的数据缓存区,以使对所述数据缓存模块进行缓存数据的加载。这里第一和第二指针模块所管理的指针不是指向数据缓存区A就是数据缓存区B,如图2所示,比如说当前状态数据缓存区A为活跃状态,数据缓存区B为等待状态,当通过数据存取模块对缓存数据进行操作时,第一指针管理模块会将指针指向当前处于活跃状态的数据缓存区A,完成数据存取,并且在访问结束之后将数据缓存区S的活跃状态表为等待状态,并释放A占用的内存空间;当数据管理模块进行数据重加载时,第二指针管理模块会将指针指向当前处于等待状态的数据缓存区B,并且在数据加载完毕之后将数据缓存区B的等待状态变为活跃状态;这时,数据缓存区A为等待状态,数据缓存区B为活跃状态。
根据所述系统的构成可知,本发明采用两个数据缓存区来存储数据,其中一个数据缓存区处于访问状态,另外一个数据缓存区处于等待状态,在对缓存数据进行加载时,使用第二指针管理模块管理数据加载指针指向处在等待状态的数据缓存区,进行缓存数据的加载;这时如果需要对缓存数据进行访问,则使用第一指针管理模块管理数据访问指针指向处在访问状态的数据缓存区,进行缓存数据的访问;反之,如果在对缓存数据进行访问时,需要对缓存数据进行加载也可用同样的方式,即使用数据访问指针指向处在访问状态的数据缓存区,进行缓存数据的访问,同时使用数据加载指针指向处在等待状态的数据缓存区,进行缓存数据的加载;并且在所述处于访问状态的数据缓存区在访问结束之后变为等待状态,所述处于等待状态的数据缓存区在加载完数据之后变为访问状态。从而使数据访问和加载同时进行。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。

Claims (9)

1.一种实现缓存数据访问与加载并发进行的方法,其特征在于,所述方法包括以下步骤:
使用两个数据缓存区来存储数据,所述两个数据缓存区中的一个处于访问状态,另外一个处于等待状态;
使用数据加载指针和数据访问指针来进行两个数据缓存区的指向;
在对缓存数据进行加载时,使用数据加载指针指向处在等待状态的数据缓存区,进行缓存数据的加载;
同时如果需要对缓存数据进行访问,则使用数据访问指针指向处在访问状态的数据缓存区,进行缓存数据的访问;或者
在对缓存数据进行访问时,使用数据访问指针指向处在访问状态的数据缓存区,进行缓存数据的访问;
同时如果需要对缓存数据进行加载,使用数据加载指针指向处在等待状态的数据缓存区,进行缓存数据的加载;
其中所述处于访问状态的数据缓存区在访问结束之后变为等待状态,所述处于等待状态的数据缓存区在加载完数据之后变为访问状态。
2.根据权利要求1所述的方法,其特征在于,所述处于访问状态的数据缓存区存储有数据,所述处于等待状态的数据缓存区无存储数据。
3.根据权利要求1所述的系统,其特征在于,所述数据缓存区采用哈希表的数据结构来缓存数据。
4.根据权利要求3所述的系统,其特征在于,所述哈希表采用关键字为索引值,来查找存储值。
5.一种实现缓存数据访问与加载并发进行的系统,其特征在于,所述系统包括:
数据存取模块,与数据存取模块相连接的第一指针管理模块,与第一和第二指针管理模块相连接的数据缓存模块,与第二指针管理模块相连接的数据管理模块;
其中所述数据存取模块,用来获取并分析客户端的请求数据包,并把访问数据的请求指令发给第一指针管理模块;
所述第一指针管理模块,用来管理数据访问指针指向数据缓存模块中处于访问状态的数据缓存区,以使对所述数据缓存模块进行访问数据的存取;
所述数据缓存模块,用来存储需要频繁读取的数据,包括处于访问状态的数据缓存区和处于等待状态的数据缓存区;
所述第二指针管理模块,用来管理数据加载指针指向数据缓存模块中处于等待状态的数据缓存区,以使对所述数据缓存模块进行缓存数据的加载;
所述数据管理模块,用来配置不同的需要加载的数据源,并把数据加载的指令发送给第二指针管理模块。
6.根据权利要求5所述的系统,其特征在于,所述访问数据的请求指令包括查询、插入、删除以及更新数据的指令。
7.根据权利要求5所述的系统,其特征在于,所述处于访问状态的数据缓存区存储有数据,所述处于等待状态的数据缓存区无存储数据。
8.根据权利要求5所述的系统,其特征在于,所述数据缓存区采用哈希表的数据结构来缓存数据。
9.根据权利要求8所述的系统,其特征在于,所述哈希表采用关键字为索引值,来查找存储值。
CN2008101751252A 2008-10-30 2008-10-30 一种实现缓存数据访问与加载并发进行的方法及系统 Active CN101459599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101751252A CN101459599B (zh) 2008-10-30 2008-10-30 一种实现缓存数据访问与加载并发进行的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101751252A CN101459599B (zh) 2008-10-30 2008-10-30 一种实现缓存数据访问与加载并发进行的方法及系统

Publications (2)

Publication Number Publication Date
CN101459599A true CN101459599A (zh) 2009-06-17
CN101459599B CN101459599B (zh) 2011-04-06

Family

ID=40770237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101751252A Active CN101459599B (zh) 2008-10-30 2008-10-30 一种实现缓存数据访问与加载并发进行的方法及系统

Country Status (1)

Country Link
CN (1) CN101459599B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885901A (zh) * 2012-12-21 2014-06-25 联想(北京)有限公司 文件读取方法、存储设备和电子设备
CN105426411A (zh) * 2015-10-31 2016-03-23 南京南瑞继保电气有限公司 基于访问趋势预测的时间序列数据库缓存管理方法
CN106445839A (zh) * 2016-10-09 2017-02-22 国云科技股份有限公司 一种高性能文件存储系统及其实现方法
CN110336866A (zh) * 2019-06-26 2019-10-15 北京大米科技有限公司 一种数据存取方法、装置、存储介质及服务器
CN113311994A (zh) * 2021-04-09 2021-08-27 中企云链(北京)金融信息服务有限公司 一种基于高并发的数据缓存方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100343826C (zh) * 2003-04-29 2007-10-17 华为技术有限公司 一种实现内存管理的方法
CN100498970C (zh) * 2004-08-06 2009-06-10 华为技术有限公司 读改写并发处理系统及读改写并发处理方法
CN1945552A (zh) * 2006-11-03 2007-04-11 中兴通讯股份有限公司 数据预读装置及其数据读取方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885901A (zh) * 2012-12-21 2014-06-25 联想(北京)有限公司 文件读取方法、存储设备和电子设备
CN105426411A (zh) * 2015-10-31 2016-03-23 南京南瑞继保电气有限公司 基于访问趋势预测的时间序列数据库缓存管理方法
CN105426411B (zh) * 2015-10-31 2019-05-28 南京南瑞继保电气有限公司 基于访问趋势预测的时间序列数据库缓存管理方法
CN106445839A (zh) * 2016-10-09 2017-02-22 国云科技股份有限公司 一种高性能文件存储系统及其实现方法
CN110336866A (zh) * 2019-06-26 2019-10-15 北京大米科技有限公司 一种数据存取方法、装置、存储介质及服务器
CN113311994A (zh) * 2021-04-09 2021-08-27 中企云链(北京)金融信息服务有限公司 一种基于高并发的数据缓存方法

Also Published As

Publication number Publication date
CN101459599B (zh) 2011-04-06

Similar Documents

Publication Publication Date Title
EP2973018B1 (en) A method to accelerate queries using dynamically generated alternate data formats in flash cache
CN110046133B (zh) 一种存储文件系统的元数据管理方法、装置及系统
CN104850572B (zh) HBase非主键索引构建与查询方法及其系统
US6754799B2 (en) System and method for indexing and retrieving cached objects
US8868595B2 (en) Enhanced control to users to populate a cache in a database system
CN107783985B (zh) 一种分布式数据库查询方法、装置及管理系统
CN104331428A (zh) 一种小文件和大文件的存储及访问方法
CN110555001B (zh) 数据处理方法、装置、终端及介质
CN109766318B (zh) 文件读取方法及装置
CN101459599B (zh) 一种实现缓存数据访问与加载并发进行的方法及系统
CN105635196A (zh) 一种获取文件数据的方法、系统和应用服务器
CN101404649B (zh) 一种基于cache的数据处理系统及其方法
US20080071992A1 (en) Method and Apparatus for Space Efficient Identification of Candidate Objects for Eviction from a Large Cache
CN111913917A (zh) 一种文件处理方法、装置、设备和介质
US10515055B2 (en) Mapping logical identifiers using multiple identifier spaces
WO2019019382A1 (zh) 缓存处理方法、装置、计算机设备和存储介质
CN111831691A (zh) 一种数据读写方法及装置、电子设备、存储介质
CN102004773A (zh) 数据读写处理方法及web应用服务器
WO2015015727A1 (ja) ストレージ装置、データアクセス方法およびプログラム記録媒体
CN113051221A (zh) 数据存储方法、装置、介质、设备及分布式文件系统
CN111694806A (zh) 一种事务日志的缓存方法、装置、设备和存储介质
CN109213760B (zh) 非关系数据存储的高负载业务存储及检索方法
CN103761255A (zh) NoSQL方式数据存储的优化方法及系统
US9069821B2 (en) Method of processing files in storage system and data server using the method
KR20190123819A (ko) 데이터 저장장치의 주소 맵핑 테이블 운용 방법

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181017

Address after: 100044 33 floor, Tengda building, 168 west Wai Street, Haidian District, Beijing.

Patentee after: BEIJING KONGZHONG XINSHI INFORMATION TECHNOLOGY CO.,LTD.

Address before: 100176 C207 room 14, Zhonghe street, Beijing economic and Technological Development Zone, Beijing

Patentee before: BEIJING SHANLIAN INTERACTIVE NETWORK TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231220

Address after: 3335, 3rd Floor, Building 3, No. 33 Zique Road, Haidian District, Beijing, 100044

Patentee after: Beijing new sharp Internet Technology Co.,Ltd.

Address before: 100044, Beijing, Haidian District, West Street, No. 168, Tengda building, 33 floor

Patentee before: BEIJING KONGZHONG XINSHI INFORMATION TECHNOLOGY CO.,LTD.