CN102541759A - 缓存控制装置和缓存控制方法 - Google Patents
缓存控制装置和缓存控制方法 Download PDFInfo
- Publication number
- CN102541759A CN102541759A CN2011104479524A CN201110447952A CN102541759A CN 102541759 A CN102541759 A CN 102541759A CN 2011104479524 A CN2011104479524 A CN 2011104479524A CN 201110447952 A CN201110447952 A CN 201110447952A CN 102541759 A CN102541759 A CN 102541759A
- Authority
- CN
- China
- Prior art keywords
- buffer memory
- incident
- buffer
- source
- granularity
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种缓存控制装置和一种缓存控制方法,其中,缓存控制装置包括:缓存管理模块,将缓存划分为多层结构,其中,对于相邻的两层结构,每个上层结构包括多个下层结构;事件监听模块,监听来自所述缓存的外部的缓存事件,所述缓存管理模块根据所述缓存事件的粒度,选取所述缓存事件对应的结构并进行相应操作。在该技术方案中,通过设置多层缓存结构,可以根据缓存事件粒度的不同,到特定结构层中选取事件对应的缓存结构来进行操作,可以提高操作效率。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种缓存控制装置和一种缓存控制方法。
背景技术
在企业应用中,从数据库或其它类别数据源进行数据读取时,因读取位置涉及磁盘或需要远程传输,往往消耗时间较长造成读写效率的瓶颈,这是因为一方面,由于现有缓存没有合适的架构,无法在内存中合理缓存数据库或其它类别数据源的数据,难以提升读取效率,另一方面,一般缓存的接口比较单一,难以支持实际应用中多类数据源的数据缓存。
因此,需要一种新的管理缓存的技术方案,需要能够存储来自不同类型的数据源的数据,同时保证能够对缓存中进行高效率的读写操作。
发明内容
本发明所要解决的技术问题在于,提供一种新的管理缓存的技术方案,需要能够存储来自不同类型的数据源的数据,同时保证能够对缓存中进行高效率的读写操作。
有鉴于此,本发明提供一种缓存控制装置,包括:缓存管理模块,将缓存划分为多层结构,其中,对于相邻的两层结构,每个上层结构包括多个下层结构;事件监听模块,监听来自所述缓存的外部的缓存事件,所述缓存管理模块根据所述缓存事件的粒度,选取所述缓存事件对应的结构并进行相应操作。在该技术方案中,通过设置多层缓存结构,可以根据缓存事件粒度的不同,到特定结构层中选取事件对应的缓存结构来进行操作,可以提高操作效率。
在上述技术方案中,优选地,所述缓存管理模块还设置获取不同结构的接口,并通过获取所述结构的接口,选取所述结构并进行相应操作。在该技术方案中,接口可以实现对不同结构的直接调用,能有效保证对缓存结构的操作效率。
在上述技术方案中,优选地,所述缓存管理模块在选取不到所述缓存事件对应的结构时,将所述缓存事件发送到所述缓存的外部。
在上述技术方案中,优选地,所述缓存管理模块将缓存划分为多个源,并将每个源划分为多个片,将每个片划分为多个记录,在所述缓存事件的粒度为源级时,选取所述缓存事件对应的源并进行相应操作,在所述缓存事件的粒度为片级时,选取所述缓存事件对应的片并进行相应操作,在所述缓存事件的粒度为记录级时,选取所述缓存事件对应的记录并进行相应操作。在该技术方案中,源对应数据源,片对应缓存实例,记录对应不同数据,可以保证对现有的不同粒度的数据的有效管理。
在上述技术方案中,优选地,所述每个片支持的数据结构包括:键值结构、队列结构、列表结构和/或二维列表结构。在该技术方案中,支持不同数据结构的应用需求。
本发明还提供一种缓存控制方法,包括:步骤202,将缓存划分为多层结构,其中,对于相邻的两层结构,每个上层结构包括多个下层结构;步骤204,监听来自所述缓存的外部的缓存事件;步骤206,根据所述缓存事件的粒度,选取所述缓存事件对应的结构并进行相应操作。在该技术方案中,通过设置多层缓存结构,可以根据缓存事件粒度的不同,到特定结构层中选取事件对应的缓存结构来进行操作,可以提高操作效率。
在上述技术方案中,优选地,在所述步骤206之前,还包括:设置获取不同结构的接口;所述步骤206具体包括:通过获取所述结构的接口,选取所述结构并进行相应操作。在该技术方案中,接口可以实现对不同结构的直接调用,能有效保证对缓存结构的操作效率。
在上述技术方案中,优选地,所述步骤206还包括:在选取不到所述缓存事件对应的结构时,将所述缓存事件发送到所述缓存的外部。
在上述技术方案中,优选地,所述步骤202具体包括:将缓存划分为多个源,并将每个源划分为多个片,将每个片划分为多个记录;所述步骤206具体包括:在所述缓存事件的粒度为源级时,选取所述缓存事件对应的源并进行相应操作,在所述缓存事件的粒度为片级时,选取所述缓存事件对应的片并进行相应操作,在所述缓存事件的粒度为记录级时,选取所述缓存事件对应的记录并进行相应操作。在该技术方案中,源对应数据源,片对应缓存实例,记录对应不同数据,可以保证对现有的不同粒度的数据的有效管理。
在上述技术方案中,优选地,所述每个片支持的数据结构包括:键值结构、队列结构、列表结构和/或二维列表结构。在该技术方案中,支持不同数据结构的应用需求。
通过以上技术方案,可以实现一种缓存控制装置和一种缓存控制方法,需要能够存储来自不同类型的数据源的数据,同时保证能够对缓存中进行高效率的读写操作。
附图说明
图1是根据本发明的一个实施例的缓存控制装置的框图;
图2是根据本发明的一个实施例的缓存控制方法的流程图;
图3是根据本发明的一个实施例的缓存控制方法的原理示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图1是根据本发明的一个实施例的缓存控制装置的框图。
如图1所示,本发明提供一种缓存控制装置100,包括:缓存管理模块102,将缓存划分为多层结构,其中,对于相邻的两层结构,每个上层结构包括多个下层结构;事件监听模块104,监听来自所述缓存的外部的缓存事件,所述缓存管理模块102根据所述缓存事件的粒度,选取所述缓存事件对应的结构并进行相应操作。在该技术方案中,通过设置多层缓存结构,可以根据缓存事件粒度的不同,到特定结构层中选取事件对应的缓存结构来进行操作,可以提高操作效率。
在上述技术方案中,所述缓存管理模块102还设置获取不同结构的接口,并通过获取所述结构的接口,选取所述结构并进行相应操作。在该技术方案中,接口可以实现对不同结构的直接调用,能有效保证对缓存结构的操作效率。
在上述技术方案中,所述缓存管理模块102在选取不到所述缓存事件对应的结构时,将所述缓存事件发送到所述缓存的外部。
在上述技术方案中,所述缓存管理模块102将缓存划分为多个源,并将每个源划分为多个片,将每个片划分为多个记录,在所述缓存事件的粒度为源级时,选取所述缓存事件对应的源并进行相应操作,在所述缓存事件的粒度为片级时,选取所述缓存事件对应的片并进行相应操作,在所述缓存事件的粒度为记录级时,选取所述缓存事件对应的记录并进行相应操作。在该技术方案中,源对应数据源,片对应缓存实例,记录对应不同数据,可以保证对现有的不同粒度的数据的有效管理。
在上述技术方案中,所述每个片支持的数据结构包括:键值结构、队列结构、列表结构和/或二维列表结构。在该技术方案中,支持不同数据结构的应用需求。
图2是根据本发明的一个实施例的缓存控制方法的流程图。
如图2所示,本发明还提供一种缓存控制方法,包括:步骤202,将缓存划分为多层结构,其中,对于相邻的两层结构,每个上层结构包括多个下层结构;步骤204,监听来自所述缓存的外部的缓存事件;步骤206,根据所述缓存事件的粒度,选取所述缓存事件对应的结构并进行相应操作。在该技术方案中,通过设置多层缓存结构,可以根据缓存事件粒度的不同,到特定结构层中选取事件对应的缓存结构来进行操作,可以提高操作效率。
在上述技术方案中,在所述步骤206之前,还包括:设置获取不同结构的接口;所述步骤206具体包括:通过获取所述结构的接口,选取所述结构并进行相应操作。在该技术方案中,接口可以实现对不同结构的直接调用,能有效保证对缓存结构的操作效率。
在上述技术方案中,所述步骤206还包括:在选取不到所述缓存事件对应的结构时,将所述缓存事件发送到所述缓存的外部。
在上述技术方案中,所述步骤202具体包括:将缓存划分为多个源,并将每个源划分为多个片,将每个片划分为多个记录;所述步骤206具体包括:在所述缓存事件的粒度为源级时,选取所述缓存事件对应的源并进行相应操作,在所述缓存事件的粒度为片级时,选取所述缓存事件对应的片并进行相应操作,在所述缓存事件的粒度为记录级时,选取所述缓存事件对应的记录并进行相应操作。在该技术方案中,源对应数据源,片对应缓存实例,记录对应不同数据,可以保证对现有的不同粒度的数据的有效管理。
在上述技术方案中,所述每个片支持的数据结构包括:键值结构、队列结构、列表结构和/或二维列表结构。在该技术方案中,支持不同数据结构的应用需求。
通过本发明的一个实施例中的缓存控制方法,实现了如图3所示的缓存架构,具体包括:
1、缓存管理器:
A、提供缓存源的获取接口;
B、实时监听来自外部的缓存触发事件(如来自其它系统缓存清除事件);
C、判断缓存触发事件的级别(源级、片级、记录级),如果判断缓存事件级别为源级,则直接清理对应的缓存源,如果判断缓存级别(片级、记录级),则将事件分发到下级缓存结构或是外部系统。
2、源:
A、提供缓存中片的获取接口;
B、实时监听来自缓存管理器分发的缓存触发事件;
C、判断缓存触发事件的级别(片级、记录级),如果判断缓存事件级别为片级,则直接清理对应的缓存片,如果判断缓存级别为记录级,则将事件分发到下级缓存结构。
3、片:
A、支持不同类型的缓存片实现,具体包括键值结构(哈希、最近最常使用LRU)、队列结构(Queue)、列表结构(List)、表格结构(Table)四种;
B、提供缓存记录的获取接口;
C、实时监听来自缓存管理器分发的缓存触发事件,进行记录级别缓存清理。
4、记录:
A、是缓存数据的最小级别。
5、缓存触发事件分发监听层:
指缓存与其它系统或其它缓存的事件交互接口,主要功能完成缓存的同步触发操作。
6、缓存接口层:
指缓存的调用者进行数据缓存的应用开发接口,在源、片、记录等不同级别的缓存结构都有接口方法。
在本发明的另一个实施例中,以数据库缓存应用为具体实例,描述缓存管理器、源、片、记录及它们之间的关系,接口层的调用方式,及缓存触发事件工作机制。
具体定义如下
缓存管理器CacheManager,源CacheSource,片ICache(其继承分类包括键值结构IKeyValueCache、列表结构IListCache、队列结构IQueue、表格结构ITable),记录Object,缓存类别CacheType(枚举类型),缓存策略CacheStragy,缓存触发监听接口ICacheNotifyListener。
主要接口如下:
1、缓存管理器接口
获取源接口为CacheSource*source=CacheManager.GetSource(stringsourceName),其中sourceName是调用者指定的唯一源名称,比如数据库的名字;
如果是集群应用,需要为缓存管理器附加缓存触发分发监听接口,接口方式为CacheManager.EnableNotifyListener(bool bEnable);
获取缓存的生效或失效状态为CacheManager.Enable(bool bEnable);
获取缓存的生效或失效状态,但缓存在失效状态时,获取源为空指针,调用层需要做出逻辑判断,接口为CacheManager.IsEnable()。
2、源接口
这里以某个表格数据缓存为例,获取指定片的接口为ITable*tableCache=CacheSource.GetCache(string cacheName,CacheType.Table);
源还有内部的分发和监听事件接口,但不提供用户接口层调用。
3、片接口
针对不同类别的缓存片有相应的接口,这些接口方法基本与常见数据结构的接口方法一致,这里举例ITable缓存的接口方法:
缓存片清空数据接口为ITable.Clear();
缓存记录数的接口为ITable.Count;
增加缓存记录的接口为ITable.Add(Row*row);
删除某条记录的接口为ITable.RemoveAt(int index);
获取某条记录的接口为ITable.GetRowAt(int index);
获取一批记录的接口为ITable.GetRows(int startIndex,int count)。
本实施例的缓存控制方法实现了内部事件分发和监听机制,如果缓存管理器启用了缓存触发分发事件监听,缓存中的更新都会分发不同粒度事件到缓存管理器,缓存管理器将事件通过可靠的方式分发到集群中其它缓存的缓存触发分发事件监听接口(分发机制),缓存管理器监听到不同粒度级别触发事件,以及不同级别内部分发到源或片,由源或片进行不同级别缓存数据清理(触发机制)。以上分发事件和监听的对象都是简单消息,方法触发也是消耗为常量时间,因此效率非常高。
综上所述,可以实现一种缓存控制装置和一种缓存控制方法,设计出了缓存的分层结构(源、片、记录),其缓存架构能提供更为灵活、高效的缓存调用及管理接口,保证不同粒度级别(源、片、记录)缓存的高效读写操作,并提供多个缓存节点在不同粒度级别(源、片、记录)之间的缓存事件监听接口。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种缓存控制装置,其特征在于,包括:
缓存管理模块,将缓存划分为多层结构,其中,对于相邻的两层结构,每个上层结构包括多个下层结构;
事件监听模块,监听来自所述缓存的外部的缓存事件,所述缓存管理模块根据所述缓存事件的粒度,选取所述缓存事件对应的结构并进行相应操作。
2.根据权利要求1所述的缓存控制装置,其特征在于,所述缓存管理模块还设置获取不同结构的接口,并通过获取所述结构的接口,选取所述结构并进行相应操作。
3.根据权利要求1所述的缓存控制装置,其特征在于,所述缓存管理模块在选取不到所述缓存事件对应的结构时,将所述缓存事件发送到所述缓存的外部。
4.根据权利要求1至3中任一项所述的缓存控制装置,其特征在于,所述缓存管理模块将缓存划分为多个源,并将每个源划分为多个片,将每个片划分为多个记录,在所述缓存事件的粒度为源级时,选取所述缓存事件对应的源并进行相应操作,在所述缓存事件的粒度为片级时,选取所述缓存事件对应的片并进行相应操作,在所述缓存事件的粒度为记录级时,选取所述缓存事件对应的记录并进行相应操作。
5.根据权利要求1所述的缓存控制装置,其特征在于,所述每个片支持的数据结构包括:键值结构、队列结构、列表结构和/或二维列表结构。
6.一种缓存控制方法,其特征在于,包括:
步骤202,将缓存划分为多层结构,其中,对于相邻的两层结构,每个上层结构包括多个下层结构;
步骤204,监听来自所述缓存的外部的缓存事件;
步骤206,根据所述缓存事件的粒度,选取所述缓存事件对应的结构并进行相应操作。
7.根据权利要求6所述的缓存控制方法,其特征在于,在所述步骤206之前,还包括:设置获取不同结构的接口;
所述步骤206具体包括:通过获取所述结构的接口,选取所述结构并进行相应操作。
8.根据权利要求6所述的缓存控制方法,其特征在于,所述步骤206还包括:在选取不到所述缓存事件对应的结构时,将所述缓存事件发送到所述缓存的外部。
9.根据权利要求6至8中任一项所述的缓存控制方法,其特征在于,所述步骤202具体包括:将缓存划分为多个源,并将每个源划分为多个片,将每个片划分为多个记录;
所述步骤206具体包括:在所述缓存事件的粒度为源级时,选取所述缓存事件对应的源并进行相应操作,在所述缓存事件的粒度为片级时,选取所述缓存事件对应的片并进行相应操作,在所述缓存事件的粒度为记录级时,选取所述缓存事件对应的记录并进行相应操作。
10.根据权利要求9所述的缓存控制方法,其特征在于,所述每个片支持的数据结构包括:键值结构、队列结构、列表结构和/或二维列表结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110447952.4A CN102541759B (zh) | 2011-12-28 | 2011-12-28 | 缓存控制装置和缓存控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110447952.4A CN102541759B (zh) | 2011-12-28 | 2011-12-28 | 缓存控制装置和缓存控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102541759A true CN102541759A (zh) | 2012-07-04 |
CN102541759B CN102541759B (zh) | 2014-12-17 |
Family
ID=46348697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110447952.4A Active CN102541759B (zh) | 2011-12-28 | 2011-12-28 | 缓存控制装置和缓存控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102541759B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110766501A (zh) * | 2018-07-27 | 2020-02-07 | 北京京东尚科信息技术有限公司 | 数据嵌套存储方法、装置、电子设备及计算机可读介质 |
CN111488101A (zh) * | 2020-04-10 | 2020-08-04 | 得到(天津)文化传播有限公司 | 事件监听响应方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620779B1 (en) * | 2003-04-09 | 2009-11-17 | Klaiber Alexander C | System and method for handling direct memory accesses |
CN101916299A (zh) * | 2010-09-01 | 2010-12-15 | 中国地质大学(武汉) | 一种基于文件系统的三维空间数据存储管理方法 |
CN101981545A (zh) * | 2008-01-31 | 2011-02-23 | Bea系统公司 | 用于事务缓存的系统和方法 |
CN102073494A (zh) * | 2010-12-30 | 2011-05-25 | 用友软件股份有限公司 | 缓存数据管理方法和装置 |
CN102129469A (zh) * | 2011-03-23 | 2011-07-20 | 华中科技大学 | 一种面向虚拟实验的非结构化数据访问方法 |
-
2011
- 2011-12-28 CN CN201110447952.4A patent/CN102541759B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620779B1 (en) * | 2003-04-09 | 2009-11-17 | Klaiber Alexander C | System and method for handling direct memory accesses |
CN101981545A (zh) * | 2008-01-31 | 2011-02-23 | Bea系统公司 | 用于事务缓存的系统和方法 |
CN101916299A (zh) * | 2010-09-01 | 2010-12-15 | 中国地质大学(武汉) | 一种基于文件系统的三维空间数据存储管理方法 |
CN102073494A (zh) * | 2010-12-30 | 2011-05-25 | 用友软件股份有限公司 | 缓存数据管理方法和装置 |
CN102129469A (zh) * | 2011-03-23 | 2011-07-20 | 华中科技大学 | 一种面向虚拟实验的非结构化数据访问方法 |
Non-Patent Citations (1)
Title |
---|
陈蝉颖等: "缓存技术在移动数据库中的应用研究", 《计算机工程与设计》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110766501A (zh) * | 2018-07-27 | 2020-02-07 | 北京京东尚科信息技术有限公司 | 数据嵌套存储方法、装置、电子设备及计算机可读介质 |
CN110766501B (zh) * | 2018-07-27 | 2024-08-20 | 北京京东尚科信息技术有限公司 | 数据嵌套存储方法、装置、电子设备及计算机可读介质 |
CN111488101A (zh) * | 2020-04-10 | 2020-08-04 | 得到(天津)文化传播有限公司 | 事件监听响应方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102541759B (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868373B2 (en) | Method and apparatus for monitoring an in-memory computer system | |
CN106709003A (zh) | 基于Hadoop的海量日志数据处理方法 | |
US20110264704A1 (en) | Methods and Systems for Deleting Large Amounts of Data From a Multitenant Database | |
CN104881352A (zh) | 基于移动端的系统资源监控装置 | |
US10142195B1 (en) | Partitioned performance tracking core resource consumption independently | |
CN104598495A (zh) | 基于分布式文件系统的分级存储方法及系统 | |
CN110058932A (zh) | 一种用于数据流驱动计算的存储方法和存储系统 | |
CN103905533A (zh) | 基于云存储的分布式告警监控方法和系统 | |
CN109783512A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
US10148531B1 (en) | Partitioned performance: adaptive predicted impact | |
CN108268546B (zh) | 一种优化数据库的方法及装置 | |
CN104063293A (zh) | 一种数据备份方法及流计算系统 | |
CN101980207B (zh) | 一种数据库访问的实现方法和系统 | |
CN102163231A (zh) | 数据收集方法和装置 | |
CN106055274A (zh) | 一种数据存储方法、数据读取方法及电子设备 | |
CN106815342A (zh) | 一种分布式文件系统用户配额系统及方法 | |
CN101827120A (zh) | 一种集群存储方法及系统 | |
CN110389967A (zh) | 数据存储方法、装置、服务器及存储介质 | |
CN108920271A (zh) | 应用缓存清理方法、装置、存储介质和终端 | |
US10033620B1 (en) | Partitioned performance adaptive policies and leases | |
CN103488695A (zh) | 数据同步装置和数据同步方法 | |
US11489731B2 (en) | Techniques and architectures for efficient allocation of under-utilized resources | |
CN102541759B (zh) | 缓存控制装置和缓存控制方法 | |
US11829364B2 (en) | Making decisions for placing data in a multi-tenant cache | |
CN103268567B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |