CN101616053A - 一种用于数据交互的缓存模式自适应系统及方法 - Google Patents
一种用于数据交互的缓存模式自适应系统及方法 Download PDFInfo
- Publication number
- CN101616053A CN101616053A CN200810067981A CN200810067981A CN101616053A CN 101616053 A CN101616053 A CN 101616053A CN 200810067981 A CN200810067981 A CN 200810067981A CN 200810067981 A CN200810067981 A CN 200810067981A CN 101616053 A CN101616053 A CN 101616053A
- Authority
- CN
- China
- Prior art keywords
- cache mode
- client
- server
- cache
- storehouse
- 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
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及通信计算机技术领域,提供了一种用于数据交互的缓存模式自适应系统及方法。所述系统包括位于服务器中的缓存模式库和缓存模式管理器;所述缓存模式库用于存储至少一个缓存模式;所述缓存模式管理器包括缓存模式选择模块,所述缓存模式选择模块接收线程发送的客户端请求配置指令,并根据所述客户端发送的配置信息,在所述缓存模式库中选择适合所述客户端的缓存模式提供给所述客户端。本发明还提供了一种用于数据交互的缓存模式自适应方法。采用本发明,能动态的改变系统的数据存储结构,自适应选择合适的数据存储结构,提高了系统的效率。
Description
技术领域
本发明涉及通信计算机技术领域.,更具体地说,涉及一种用于数据交互的缓存模式自适应系统及方法。
背景技术
目前几乎所有流行的操作系统都支持线程,传统技术是每当有一个客户端连接时,就将为它创建一个线程,当客户端断开连接时销毁线程。当客户端并发量很大时,这种线程创建和销毁的服务器开销很大。
在客户端-服务器(“Client-Sever”,简称CS)系统中,客户端与服务器通过线程池进行数据交互,线程池是指一组一定数量的线程的集合,其类似操作系统中缓冲区(Buffer)的概念,分为管理线程和工作线程。管理线程负责所有工作线程的创建、销毁和选择等管理工作;工作线程是实际为客户端提供服务的线程。
使用线程池,可以预先创建一定数量的线程,当一个客户端连接时,从线程池中选择一个空闲的线程为之提供服务,当客户端离开时,线程池维护线程状态为空闲,从而可以为其它客户端提供服务,服务器无需进行频繁的线程创建和销毁,节省大量服务器开销,提高了效率。
客户端与服务器之间通过线程池进行数据交互时,会有缓冲区来存储接收和发送的数据,缓冲区的数据存储结构称为Buffer Mode(缓存模式)。传统技术中,缓冲区都是固定的数据结构(如单链表数据存储结构、十字交叉链表数据存储结构等),即存储数据的数据存储结构固定不变。例如,预先设定客户端采用单链表数据存储结构,则服务器采用相应的单链表数据存储结构。由于不同的数据结构具有自身的特点,例如有的插入数据速度快,有的查询数据快,因此如果采用固定不便的数据存储结构,则只能用到此种数据结构的优点,数据存储结构单一,不能发挥各种数据存储结构的优点,不能动态改变数据存储结构。
发明内容
本发明要解决的技术问题在于,针对现有技术中数据存储结构单一,不能动态改变数据存储结构的问题,提供一种用于数据交互的缓存模式自适应系统。
本发明还提供一种用户数据交互的缓存模式自适应方法,以更好地解决现有技术中存在的上述问题。
本发明解决其技术问题所采用的技术方案是:构造一种用于数据交互的缓存模式自适应系统,所述系统包括位于服务器中的缓存模式库和缓存模式管理器;
所述缓存模式库用于存储至少一个缓存模式;
所述缓存模式管理器包括缓存模式选择模块,所述缓存模式选择模块接收线程发送的客户端请求配置指令,并根据所述客户端发送的配置信息,在所述缓存模式库中选择适合所述客户端的缓存模式提供给所述客户端。
优选地,所述缓存模式管理器还包括缓存模式生成模块,所述缓存模式生成模块接收线程发送的客户端请求创建指令,并根据所述客户端发送的缓存模式,在所述缓存模式库中创建新的缓存模式。
进一步优选地,所述缓存模式生成模块进一步用于,当接收所述客户端的请求创建指令时,查询所述缓存模式库中是否存在所述客户端发送的缓存模式,若不存在,则复制所述客户端发送的缓存模式,并存储在所述缓存模式库中。
优选地,所述系统还包括线程池,所述线程池用于响应客户端发送的请求配置指令或请求创建指令,在创建缓存模式成功后通知所述客户端,或在所述缓存模式选择模块选择到适合所述客户端的缓存模式后,提供缓存模式给所述客户端。
为了更好地解决其技术问题,所述用于数据交互的缓存模式自适应方法,包括以下步骤:
A、服务器通过空闲的线程响应客户端的请求配置指令,并接收所述客户端发送的配置信息;
B、所述服务器根据所述客户端发送的配置信息,在所述服务器中的缓存模式库中选择适合所述客户端的缓存模式提供给所述客户端。
优选地,所述缓存模式库中存储的缓存模式包括服务器自身配置的缓存模式,以及服务器通过空闲的线程响应所述客户端的请求创建指令,并接收所述客户端发送的缓存模式,在所述缓存模式库中复制的所述客户端发送的缓存模式。
进一步优选地,所述方法还包括步骤:所述服务器创建新的缓存模式后,通知所述客户端创建缓存模式成功。
优选地,所述方法还包括步骤C:所述客户端收到缓存模式后,与所述服务器通过相同的缓存模式进行数据交互。
本发明根据客户端发送的请求配置指令,可为客户端自适应选择合适的缓存模式,同时本发明根据客户端发送的请求创建指令,复制客户端发送的缓存模式,来更新服务器存储的缓存模式,还可以将其存储的缓存模式提供给其它客户端,实现了客户端与服务器中的缓存模式自适应变化,因此能动态的改变数据存储结构,自适应选择合适的数据存储结构,能用到各种数据存储结构的优点,提高了系统的效率。
附图说明
图1是本发明中的一个实施例中用于数据交互的缓存模式自适应系统的应用示意图;
图2是本发明的一个实施例中用于数据交互的缓存模式的自适应系统的应用示意图;
图3是图2实施例中用于数据交互的缓存模式自适应方法的流程图;
图4是本发明的另一个实施例中用于数据交互的缓存模式的自适应系统的应用示意图;
图5是图4实施例中用于数据交互的缓存模式自适应方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,服务器100与多个客户端200、300......N进行数据交互,其内部包括线程池101、缓存模式管理器(Buffer Mode Manager)102和缓存模式库(Buffer Mode Library)103,其中:
线程池101与缓存模式管理器102、缓存模式库103连接,线程池101是一组一定数量线程的集合,用于对线程进行管理(包括线程的创建、销毁和选择等)和提供客户端200、300.....N服务,在一实施例中,线程池101用于响应客户端200、300.....N的请求配置指令和请求创建指令,并在服务器100创建缓存模式成功后通知客户端200、300.....N,或在服务器100选择到适合客户端的缓存模式后,提供缓存模式给客户端200、300.....N。
缓存模式管理器102与线程池101、缓存模式库103连接,其包括缓存模式选择模块1021和缓存模式生成模块1022(图1中未示出)。缓存模式选择模块1021用于接收线程发送的请求配置指令,当某个客户端与服务器100建立连接时,若客户端发送请求配置指令,客户端同时会将其自身的配置信息一并发送给服务器100,则缓存模式选择模块1021根据客户端发送的配置信息,在缓存模式库103中选择适合该客户端的缓存模式提供给该客户端。这里的配置信息,包括客户端提供的自身环境等,例如CPU频率,内存大小等,缓存模式选择模块1021根据客户端的这些自身环境,来匹配最接近客户端的缓存模式提供给客户端。
缓存模式生成模块1022用于接收线程发送的请求创建指令时,当某个客户端与服务器100建立连接,客户端自身配置有缓存模式,并需要创建客户端自身的缓存模式给服务器100时,客户端向服务器100发送请求创建指令,同时客户端还会向服务器100发送其自身的缓存模式,则缓存模式生成模块1022根据客户端发送的缓存模式,查询缓存模式库103中是否存在该客户端发送的缓存模式,若不存在,则复制该客户端的缓存模式,并存储在缓存模式库103中;若存在,则由缓存模式选择模块1021选择适合客户端的缓存模式为客户端服务。
某个客户端发送请求配置指令还是请求创建指令是由不同的客户端标识决定。当客户端自身配置有缓存模式,其可以向服务器100发送请求配置指令,请求服务器100为该客户端配置一个新的缓存模式,也可以向服务器100发送请求创建指令,请求服务器100创建该客户端具有的缓存模式。当客户端自身未配置缓存模式时,则向服务器100发送请求配置指令,请求服务器100为该客户端配置一个缓存模式,这时服务器100会根据该客户端发送的客户端配置信息,来选择适合该客户端的缓存模式提供给该客户端。
缓存模式库103与线程池101、缓存模式管理器102连接,用于存储至少一个缓存模式。基于上述描述,缓存模式库103中存储的缓存模式包括服务器100自身配置的缓存模式和复制的各客户端200、300.....N请求创建的缓存模式。服务器100响应各客户端200、300.....N的请求创建指令时,可为缓存模式库103增加新的缓存模式,以更新缓存模式库103,更新的缓存模式可提供给其它客户端。
如图2和图3所示,在本发明的一个实施例中,包括位于服务器100中的线程池101、缓存模式管理器102和缓存模式库103,其中,线程池101中包括多个线程,如线程1、线程2、线程2.....线程n;缓存模式管理器102包括缓存模式选择模块1021,用于接收线程发送的客户端请求配置指令和客户端200的配置信息,并根据客户端200的配置信息从缓存模式库103中选择适合客户端200的缓存模式提供给客户端200;缓存模式库103中存储了一些缓存模式,如缓存模式1、缓存模式2、缓存模式3......缓存模式n。
在步骤S301中,客户端200与服务器100建立连接,客户端200向服务器100发送请求配置指令,同时将自身的配置信息发送给服务器100,服务器100选择空闲的工作线程2接收客户端请求配置指令和配置信息,并将请求指令和配置信息提供给缓存模式管理器102。
在步骤S302中,缓存模式选择模块1021根据客户端200的配置信息,在缓存模式库103中选择适合客户端200的缓存模式提供给客户端200,例如,选择单链表数据存储结构提供给客户端200。这时,服务器100和客户端200具有了相匹配的缓存模式,服务器100与客户端200利用相同的缓存模式进行数据交互。
需说明的是,客户端200发送请求配置指令时,与其自身是否配置有缓存模式无关,若客户端200已配置了缓存模式,其还可以向服务器100请求为其配置合适的缓存模式;若客户端200自身未配置缓存模式,则客户端200需要服务器100为其配置合适的缓存模式。因此,能动态改变客户端200的数据存储结构,并且数据存储结构可根据客户端200的机器配置做适应性的变化。
如图4和图5所示,在本发明的一个实施例中,包括位于服务器100中的线程池101、缓存模式管理器102和缓存模式库103,其中,线程池101中包括多个线程,如线程1、线程2、线程2.....线程n;缓存模式管理器102包括缓存模式生成模块1022,用于接收线程发送的客户端请求创建指令和缓存模式,并根据客户端200发送的缓存模式,在缓存模式库103中创建新的缓存模式;缓存模式库103中存储了一些缓存模式,如缓存模式1、缓存模式2、缓存模式3......缓存模式n。
在步骤S501中,客户端300与服务器100建立连接,客户端300向服务器100发送请求创建指令,这里的客户端300自身配置有缓存模式,例如,单链表数据存储结构,当客户端300与服务器100建立连接时,客户端300将自身具有的缓存模式发送给服务器100并请求创建缓存模式时。服务器100选择空闲的工作线程2响应客户端300发送的请求创建指令,并将客户端300发送的缓存模式提供给缓存模式管理器102。
在步骤S502中,缓存模式管理器102查询缓存模式库103中是否存在客户端300的缓存模式,具体为,缓存模式生成模块1022查询缓存模式库103中是否存在客户端300发送的缓存模式。
在步骤S503中,若缓存模式库103中不存在客户端300的缓存模式,缓存模式生成模块1022则复制客户端300的缓存模式,并存储在缓存模式库103中。若存在,则不需创建,服务器100与客户端300即可利用相同的缓存模式进行数据交互。
在步骤S504中,服务器100创建缓存模式成功后,缓存模式管理器102通知客户端300创建缓存模式成功,服务器100即可通过空闲的工作线程为客户端300提供服务。
由于服务器100可根据客户端300的缓存模式对缓存模式库103进行更新,更新后的缓存模式库103包括服务器100自身配置有的缓存模式,还包括复制的客户端300的缓存模式,这样,使得缓存模式库103中的缓存模式变得丰富,同时更新的缓存模式还可提供给其它客户端,因此能够做到服务器100与客户端200、300......N的缓存模式自适应变化,从而提高了系统的效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1、一种用于数据交互的缓存模式自适应系统,其特征在于,所述系统包括位于服务器中的缓存模式库和缓存模式管理器;
所述缓存模式库用于存储至少一个缓存模式;
所述缓存模式管理器包括缓存模式选择模块,所述缓存模式选择模块接收线程发送的客户端请求配置指令,并根据所述客户端发送的配置信息,在所述缓存模式库中选择适合所述客户端的缓存模式提供给所述客户端。
2、根据权利要求1所述的用于数据交互的缓存模式自适应系统,其特征在于,所述缓存模式管理器还包括缓存模式生成模块,所述缓存模式生成模块接收线程发送的客户端请求创建指令,并根据所述客户端发送的缓存模式,在所述缓存模式库中创建新的缓存模式。
3、根据权利要求2所述的用于数据交互的缓存模式自适应系统,其特征在于,所述缓存模式生成模块进一步用于,当接收所述客户端的请求创建指令时,查询所述缓存模式库中是否存在所述客户端发送的缓存模式,若不存在,则复制所述客户端发送的缓存模式,并存储在所述缓存模式库中。
4、根据权利要求1或2所述的用于数据交互的缓存模式自适应系统,其特征在于,所述系统还包括线程池,所述线程池用于响应客户端发送的请求配置指令或请求创建指令,在创建缓存模式成功后通知所述客户端,或在所述缓存模式选择模块选择到适合所述客户端的缓存模式后,提供缓存模式给所述客户端。
5、一种用于数据交互的缓存模式自适应方法,其特征在于,所述方法包括以下步骤:
A、服务器通过空闲的线程响应客户端的请求配置指令,并接收所述客户端发送的配置信息;
B、所述服务器根据所述客户端发送的配置信息,在所述服务器中的缓存模式库中选择适合所述客户端的缓存模式提供给所述客户端。
6、根据权利要求5所述的用于数据交互的缓存模式自适应方法,其特征在于,所述缓存模式库中存储的缓存模式包括服务器自身配置的缓存模式,以及服务器通过空闲的线程响应所述客户端的请求创建指令,并接收所述客户端发送的缓存模式,在所述缓存模式库中复制的所述客户端发送的缓存模式。
7、根据权利要求6所述的用于数据交互的缓存模式自适应方法,其特征在于,所述方法还包括步骤:所述服务器创建新的缓存模式后,通知所述客户端创建缓存模式成功。
8、根据权利要求5至7中任意一项所述的用于数据交互的缓存模式自适应方法,其特征在于,所述方法还包括步骤C:所述客户端收到缓存模式后,与所述服务器通过相同的缓存模式进行数据交互。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810067981A CN101616053A (zh) | 2008-06-23 | 2008-06-23 | 一种用于数据交互的缓存模式自适应系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810067981A CN101616053A (zh) | 2008-06-23 | 2008-06-23 | 一种用于数据交互的缓存模式自适应系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101616053A true CN101616053A (zh) | 2009-12-30 |
Family
ID=41495476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810067981A Pending CN101616053A (zh) | 2008-06-23 | 2008-06-23 | 一种用于数据交互的缓存模式自适应系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101616053A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424119A (zh) * | 2013-08-26 | 2015-03-18 | 联想(北京)有限公司 | 存储空间配置方法和装置 |
CN104852812A (zh) * | 2015-04-03 | 2015-08-19 | 上海航天测控通信研究所 | 1553b总线远置单元自适应收发数据方法 |
-
2008
- 2008-06-23 CN CN200810067981A patent/CN101616053A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424119A (zh) * | 2013-08-26 | 2015-03-18 | 联想(北京)有限公司 | 存储空间配置方法和装置 |
CN104424119B (zh) * | 2013-08-26 | 2018-07-06 | 联想(北京)有限公司 | 存储空间配置方法和装置 |
CN104852812A (zh) * | 2015-04-03 | 2015-08-19 | 上海航天测控通信研究所 | 1553b总线远置单元自适应收发数据方法 |
CN104852812B (zh) * | 2015-04-03 | 2018-08-07 | 上海航天电子通讯设备研究所 | 1553b总线远置单元自适应收发数据方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11349940B2 (en) | Server side data cache system | |
US11647081B2 (en) | Method and system for reducing connections to a database | |
CN105245912B (zh) | 一种缓存视频数据及读取视频数据的方法及装置 | |
JP4386932B2 (ja) | ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法 | |
CN101388824B (zh) | 一种机群系统中分片存储模式下文件读取的方法及系统 | |
CN103309818B (zh) | 存储数据的方法及装置 | |
CN100375093C (zh) | 多线程元数据的处理方法 | |
US20140006687A1 (en) | Data Cache Apparatus, Data Storage System and Method | |
CN104202423B (zh) | 一种通过软件架构扩展缓存的系统 | |
CN102591970A (zh) | 一种分布式键-值查询方法和查询引擎系统 | |
WO2019085769A1 (zh) | 一种数据分层存储、分层查询方法及装置 | |
CN103345451B (zh) | 一种在多核处理器中缓冲数据的方法 | |
CN102137139A (zh) | 缓存替换策略的选择方法、装置、代理服务器和系统 | |
CN104050250A (zh) | 一种分布式键-值查询方法和查询引擎系统 | |
CN104202424B (zh) | 一种使用软件架构扩展缓存的方法 | |
CN103544285A (zh) | 一种数据加载方法及装置 | |
CN103312624A (zh) | 一种消息队列服务系统和方法 | |
CN105335170A (zh) | 分布式系统及数据增量更新方法 | |
CN102474531A (zh) | 地址服务器 | |
CN105938458A (zh) | 软件定义的异构混合内存管理方法 | |
CN102546674A (zh) | 一种基于网络存储装置的目录树缓存系统及方法 | |
US20070061509A1 (en) | Power management in a distributed file system | |
CN105138473A (zh) | 管理高速缓冲存储器的系统和方法 | |
CN104427186A (zh) | 通信装置及其定制方法 | |
CN104035925A (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 | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 518102 Guangdong Province, Baoan District Xixiang street Shenzhen city building on the south side of Tian Yi Lu Bao Phoenix Gang first industrial zone A building 01-04 layer (East) Applicant after: Shenzhen Gospell Smarthome Electronic Co., Ltd. Address before: 518057, 5 West Wing, building 2, Granville new software park, South District, Nanshan District hi tech Zone, Guangdong, Shenzhen Applicant before: Shenzhen Gospell Smarthome Electronic Co., Ltd. |
|
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20091230 |