CN114296635A - 缓存数据的缓存淘汰方法、装置、终端及存储介质 - Google Patents
缓存数据的缓存淘汰方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN114296635A CN114296635A CN202111472314.8A CN202111472314A CN114296635A CN 114296635 A CN114296635 A CN 114296635A CN 202111472314 A CN202111472314 A CN 202111472314A CN 114296635 A CN114296635 A CN 114296635A
- Authority
- CN
- China
- Prior art keywords
- cache
- index information
- target
- data
- module
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000008030 elimination Effects 0.000 title claims abstract description 35
- 238000003379 elimination reaction Methods 0.000 title claims abstract description 35
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种缓存数据的缓存淘汰方法、装置、终端及存储介质。方法包括:接收读请求,基于读请求和ARC算法,确定Bcache模块中的目标索引信息和目标缓存数据;基于目标索引信息中的数据类型,确定ARC算法的实际全局参数;基于实际全局参数和目标全局参数,对目标缓存数据中的缓存数据进行淘汰。本发明利用ARC算法记录缓存数据被访问频率,通过访问频率确定缓存数据的数据类型,并基于缓存数据的数据类型调整全局参数,以便在淘汰空间的时候,根据全局参数完成缓存数据的淘汰,不仅提高了缓存效率,还可有效保留被访问频率高的缓存数据。
Description
技术领域
本申请涉及缓存数据淘汰技术领域,具体而言,涉及一种缓存数据的缓存淘汰方法、装置、终端及存储介质。
背景技术
Bcache是Linux操作***下通用的块存储设备的缓存模块,Bcache可以使用一个块存储设备作为缓存盘(cache),另一个块存储设备作为数据盘(backing),组合成为一个新的块存储设备,比如:bcache0。
在Bcache中,当cache盘空闲空间不足,还有新的缓存数据需要缓存进入cache盘时,需要淘汰一部分已有的缓存数据,这时候需要使用到缓存淘汰算法。目前Bcache支持三种缓存淘汰算法:FIFO,Random和LRU。其中,FIFO不考虑数据可能被访问的概率,仅根据缓存数据的先后顺序进行淘汰;Random实现简单,不考虑数据的可能被访问的概率,通过随机方式淘汰缓存;LRU是一种比较主流的缓存淘汰算法,将最近最少访问的缓存数据淘汰。
但是,上述缓存数据的缓存淘汰方法均存在缓存效率低的问题。
发明内容
本申请的主要目的在于提供一种缓存数据的缓存淘汰方法、装置、终端及存储介质,以解决相关技术中存在的缓存效率低的问题。
为了实现上述目的,第一方面,本申请提供了一种缓存数据的缓存淘汰方法,包括:
接收读请求;
基于读请求和ARC算法,确定Bcache模块中的目标索引信息和目标缓存数据;
基于目标索引信息中的数据类型,确定ARC算法的实际全局参数;
基于实际全局参数和目标全局参数,对目标缓存数据中的缓存数据进行淘汰。
在一种可能的实现方式中,Bcache模块至少包括第一缓存模块和第二缓存模块;
基于读请求和ARC算法,确定Bcache模块中的目标索引信息和目标缓存数据,包括:
在第一缓存模块中查找读请求对应的第一索引信息;
若第一缓存模块中存在第一索引信息,基于第一索引信息确定目标索引信息和目标缓存数据;
若第一缓存模块中不存在第一索引信息,在第二缓存模块中查找读请求对应的第二索引信息,并基于第二索引信息确定目标索引信息和目标缓存数据。
在一种可能的实现方式中,若第一缓存模块中存在第一索引信息,基于第一索引信息确定目标索引信息和目标缓存数据,包括:
若第一缓存模块中存在第一索引信息,将第一索引信息中的数据类型从第一类型更新为第二类型,得到第三索引信息;
基于第三索引信息,确定第一缓存模块中的所有索引信息;
基于第三索引信息对应的缓存数据,确定第一缓存模块中的所有缓存数据;
分别将第一缓存模块中的所有索引信息和第一缓存模块中的所有缓存数据作为目标索引信息和目标缓存数据。
在一种可能的实现方式中,若第一缓存模块中不存在第一索引信息,在第二缓存模块中查找读请求对应的第二索引信息,并基于第二索引信息确定目标索引信息和目标缓存数据,包括:
若第一缓存模块中不存在第一索引信息,在第二缓存模块中查找第二索引信息;
若第二缓存模块中存在第二索引信息,将第二索引信息中的数据类型更新为第一类型或第二类型,得到第四索引信息;
将第四索引信息转移至第一缓存模块,并加载第四索引信息对应的缓存数据,以确定第一缓存模块中的所有索引信息和所有缓存数据;
分别将第一缓存模块中的所有索引信息和第一缓存模块中的所有缓存数据作为目标索引信息和目标缓存数据。
在一种可能的实现方式中,基于目标索引信息中的数据类型,确定ARC算法的实际全局参数,包括:
统计目标索引信息中的所有第一类型,得到第一类型数目;
统计目标索引信息中的所有第二类型,得到第二类型数目;
计算第一类型数目和第二类型数目的比,得到ARC算法的实际全局参数。
在一种可能的实现方式中,基于实际全局参数和目标全局参数,对目标缓存数据中的缓存数据进行淘汰,包括:
当实际全局参数大于目标全局参数,对目标缓存数据中的第一类型的缓存数据进行淘汰;
当实际全局参数小于目标全局参数,对目标缓存数据中的第二类型的缓存数据进行淘汰。
在一种可能的实现方式中,方法还包括:
若第二缓存模块中不存在第二索引信息,从数据模块中读取第二索引信息对应的缓存数据。
第二方面,本发明实施例提供了一种缓存数据的缓存淘汰装置,包括:
请求接收模块,用于接收读请求;
目标信息确定模块,用于基于读请求和ARC算法,确定Bcache模块中的目标索引信息和目标缓存数据;
参数确定模块,用于基于目标索引信息中的数据类型,确定ARC算法的实际全局参数;
数据淘汰模块,用于基于实际全局参数和目标全局参数,对目标缓存数据中的缓存数据进行淘汰。
第三方面,本发明实施例提供了一种终端,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上任一种缓存数据的缓存淘汰方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上任一种缓存数据的缓存淘汰方法的步骤。
本发明实施例提供了一种缓存数据的缓存淘汰方法、装置、终端及存储介质,包括:接收读请求,基于读请求和ARC算法,确定Bcache模块中的目标索引信息和目标缓存数据,再基于目标索引信息中的数据类型,确定ARC算法的实际全局参数,最后基于实际全局参数和目标全局参数,对目标缓存数据中的缓存数据进行淘汰。本发明利用ARC算法记录缓存数据被访问频率,通过访问频率确定缓存数据的数据类型,并基于缓存数据的数据类型调整全局参数,以便在淘汰空间的时候,根据全局参数完成缓存数据的淘汰,不仅提高了缓存效率,还可有效保留被访问频率高的缓存数据。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明实施例提供的LRU淘汰机制的实现流程图;
图2是本发明实施例提供的B+数的数据结构示意图;
图3是本发明实施例提供的一种缓存数据的缓存淘汰方法的实现流程图;
图4是本发明实施例提供的确定索引对应的缓存数据的数据类型的实现流程图;
图5是本发明实施例提供的ARC算法淘汰缓存数据的实现流程图;
图6是本发明实施例提供的一种缓存数据的缓存淘汰装置的结构示意图;
图7是本发明实施例提供的终端的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和C”、“包含A、B、C”是指A、B、C三者都包含,“包含A、B或C”是指包含A、B、C三者之一,“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。
应当理解,在本发明中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。A与B的匹配,是A与B的相似度大于或等于预设的阈值。
取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图通过具体实施例来进行说明。
目前,Bcache支持三种缓存淘汰算法:FIFO,Random和LRU。这三种缓存淘汰算法都有不足之处,具体地:FIFO会根据缓存数据的先后顺序进行淘汰,并没有考虑缓存数据可能被访问的概率,会造成高频缓存数据被不断淘汰的情况,缓存效率不高。Random实现简单,通过随机方式淘汰缓存,没有考虑缓存数据的可能被访问的概率,会造成高频缓存数据被不断淘汰的情况,缓存效率不高。
LRU是当前比较主流的缓存淘汰算法,将最近最少访问的缓存数据淘汰。利用LRU进行缓存数据淘汰具体实现方式如下:
如图1所示,当业务有读数据请求的时候,会先查找是否有请求对应的bkey,如果有,说明cache盘中有需要的缓存数据,将缓存数据从cache盘读出来返回给业务;如果没有,说明缓存数据在backing盘中,从backing盘中读出缓存数据,返回给业务。其中,Bcache缓存模块会在cache盘中通过bkey的数据结构存储元数据(bkey即为索引信息),bkey记录了cache盘中的空间与backing盘中的空间映射关系。所有的bkey通过一棵B+数的数据结构进行管理,如图2所示。
但是,LRU在某些场景下表现不佳,比如:数据模型中出现顺序扫描,而每次扫描的数据只会读一次,这样就造成以前的热数据被这次扫描的数据替换出去,导致这种场景下热数据缓存效率不高。其中,热数据是指被多次访问的数据。
为了解决LRU在应对数据扫描场景时存在缓存效率不高的问题,本发明为Bcache引入了一种新的缓存淘汰算法(ARC,Adaptive replacement cache),并基于ARC算法提出一种缓存数据的缓存淘汰方法。
在一个实施例中,如图3所示,提供了一种缓存数据的缓存淘汰方法,包括以下步骤:
步骤S101:接收读请求;
步骤S102:基于读请求和ARC算法,确定Bcache模块中的目标索引信息和目标缓存数据;
步骤S103:基于目标索引信息中的数据类型,确定ARC算法的实际全局参数;
步骤S104:基于实际全局参数和目标全局参数,对目标缓存数据中的缓存数据进行淘汰。
具体地,Bcache模块包括cache(缓存)盘和backing(数据)盘,引入ARC算法之后,除了记录当前正在使用的bkey之外,还需要记录被淘汰的bkey(称为ghost bkey),即将cache(缓存)盘分为第一缓存模块和第二缓存模块,其中,第一缓存模块用于存储当前正在使用的bkey对应的索引信息和缓存数据,而第二缓存模块用于存储被淘汰的bkey对应的索引信息,并不存储缓存数据。需要注意的是,本申请中的盘也可称作模块。
在一实施例中,当接收到读请求后,ARC算法会根据缓存数据访问模型,记录读请求对应的缓存数据的被访问频率,通过缓存数据的被访问频率可确定缓存数据的数据类型,并基于Bcache模块中的所有缓存数据(即目标缓存数据)的数据类型,自适应地调整ARC算法的全局参数,在淘汰空间的时候,根据全局参数完成缓存数据的淘汰。值得注意的是,如果访问中出现数据一次性扫描情况,ARC算法不会将一次性扫描数据替换多次访问的缓存数据,造成高频缓存数据被淘汰。
本发明实施例提供了一种缓存数据的缓存淘汰方法,包括:接收读请求,基于读请求和ARC算法,确定Bcache模块中的目标索引信息和目标缓存数据,再基于目标索引信息中的数据类型,确定ARC算法的实际全局参数,最后基于实际全局参数和目标全局参数,对目标缓存数据中的缓存数据进行淘汰。本发明利用ARC算法记录缓存数据被访问频率,通过访问频率确定缓存数据的数据类型,并基于缓存数据的数据类型调整全局参数,以便在淘汰空间的时候,根据全局参数完成缓存数据的淘汰,不仅提高了缓存效率,还可有效保留被访问频率高的缓存数据。
在一实施例中,步骤S102包括:
步骤S201:在第一缓存模块中查找读请求对应的第一索引信息;
步骤S202:若第一缓存模块中存在第一索引信息,基于第一索引信息确定目标索引信息和目标缓存数据。
具体的,若第一缓存模块中存在第一索引信息,将第一索引信息中的数据类型从第一类型更新为第二类型,得到第三索引信息;基于第三索引信息,确定第一缓存模块中的所有索引信息;基于第三索引信息对应的缓存数据,确定第一缓存模块中的所有缓存数据;分别将第一缓存模块中的所有索引信息和第一缓存模块中的所有缓存数据作为目标索引信息和目标缓存数据。
进一步地,确定目标索引信息和目标缓存数据的过程具体如下:首先查找第一缓存模块中是否存在读请求对应的索引信息(即第一索引信息),若第一缓存模块中存在第一索引信息,将第一索引信息对应的缓存数据的数据类型从第一类型修改为第二类型,即第一索引信息中的数据类型进行了更新,得到新的索引信息(即第三索引信息)。由于第一缓存模块中存储有索引信息和与索引信息对应的缓存数据,所以第一缓存模块中存储有第三索引信息和与第三索引信息对应的缓存数据。通过上述得到的第三索引信息和与第三索引信息对应的缓存数据,可确定第一缓存模块中的所有索引信息(即目标索引信息)和所有缓存数据(目标缓存数据)。
步骤S203:若第一缓存模块中不存在第一索引信息,在第二缓存模块中查找读请求对应的第二索引信息,并基于第二索引信息确定目标索引信息和目标缓存数据。
具体的,若第一缓存模块中不存在第一索引信息,在第二缓存模块中查找第二索引信息;若第二缓存模块中存在第二索引信息,将第二索引信息中的数据类型更新为第一类型或第二类型,得到第四索引信息;将第四索引信息转移至第一缓存模块,并加载第四索引信息对应的缓存数据,以确定第一缓存模块中的所有索引信息和所有缓存数据;分别将第一缓存模块中的所有索引信息和第一缓存模块中的所有缓存数据作为目标索引信息和目标缓存数据。
进一步地,确定目标索引信息和目标缓存数据的过程具体如下:在第一缓存模块中未查找到读请求对应的索引信息(为与上个实施例进行区分,读请求对应的索引信息在此实施例中称为第二索引信息),则继续查找第二缓存模块中是否存在第二索引信息,若第二缓存模块中存在第二索引信息,则将第二索引信息对应的缓存数据的数据类型更新为第一类型或第二类型,即第二索引信息中的数据类型进行了更新,得到新的索引信息(即第四索引信息)。由于第二缓存模块中仅存储有索引信息,并未存储索引信息对应的缓存数据,所以需将第四索引信息转移至第一缓存模块,并加载第四索引信息对应的缓存数据,即可确定第一缓存模块中的所有索引信息(即目标索引信息)和所有缓存数据(目标缓存数据)。
在通过上述两种方式确定第一缓存模块中的所有索引信息(即目标索引信息)和所有缓存数据(目标缓存数据)的过程中,第一类型用level1表示,第二类型用level2表示,值得注意的是,Bcache模块中所有的缓存数据的数据类型起始设置均为level1,当缓存数据被访问频率为多次时,将被范围多次的缓存数据的类型从level1修改为level2。
此外,若第二缓存模块中不存在第二索引信息,从数据模块中读取第二索引信息对应的缓存数据。
图4所示的流程图为确定索引信息对应的缓存数据的数据类型的一具体实施例,进一步的,当一个Bcache接收到一个读请求之后的流程具体如下:
1、在Bcache的btree(Bcache用来维护所有bkey的B+树,设置于第一缓存模块中)里面查找读请求对应的bkey;
2、判断是否找到读请求对应的bkey,如果找到,继续3;如果没有找到跳转到5;
3、将找到的bkey中的属性level(即缓存数据的数据类型)从level1修改为level2(每一个bkey有一个属性叫做level,初始化时设置为level1);
4、从cache的第一缓存模块中将读请求的缓存数据读出来,返回给请求者,读请求结束。
5、在Bcache的ghost btree(bcache用来维护所有ghost bkey的B+树,设置于第二缓存模块中)中查找读请求对应的bkey;
6、判断是否在ghost btree中找到对应的bkey,如果没找到,继续7;如果找到,跳转到8;
7、直接从backing盘中读取缓存数据返回给请求者。
8、判断找到的ghost bkey中的属性level,如果level为level1,继续9;如果level为level2,跳转到10;
9、增加目标全局参数arc_p,表示level1的bkey在淘汰后被访问到,我们需要增加level1类型的缓存数据在cache中的比率。
10、减小目标全局参数arc_p,表示level2的bkey在淘汰后被访问到,我们需要增加level2类型的缓存数据在cache中的比率。
当通过图4所示的流程确定了读请求对应的数据类型之后,还需要确定整个Bcache模块中的所有缓存数据的数据类型,本申请通过扫描的方式,来确定Bcache模块中除了读请求对应的缓存数据之外的缓存数据的数据类型。
在一实施例中,步骤S103包括:
步骤S301:统计目标索引信息中的所有第一类型,得到第一类型数目;
步骤S302:统计目标索引信息中的所有第二类型,得到第二类型数目;
步骤S303:计算第一类型数目和第二类型数目的比,得到ARC算法的实际全局参数。
具体的,在需要淘汰缓存数据的时候,需要统计第一缓存模块中的目标索引信息中的所有第一类型的数量(即第一类型数目)和第二类型的数量(即第二类型数目),并通过第一类型数目和第二类型数目的比值来确定实际全局参数P。
在一实施例中,步骤S104包括:
步骤S401:当实际全局参数大于目标全局参数,对目标缓存数据中的第一类型的缓存数据进行淘汰;
步骤S402:当实际全局参数小于目标全局参数,对目标缓存数据中的第二类型的缓存数据进行淘汰。
具体的,结合图5,对哪个类型的缓存数据进行淘汰,需要比较实际全局参数P和目标全局参数arc_p的大小。如果实际全局参数P大于目标全局参数arc_p,说明level1类型的数据比期望的多,那么淘汰level1类型的数据;如果实际全局参数P小于目标全局参数arc_p,说明level2类型的数据比期望的多,那么淘汰level2类型的数据。通过上述两种淘汰机制,使得实际全局参数P总体趋向于目标全局参数arc_p。其中,目标全局参数arc_p是根据缓存数据访问模型和ARC算法调整确定,具体调整方法参见图4中的步骤9和步骤10。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以下为本发明的装置实施例,对于其中未详尽描述的细节,可以参考上述对应的方法实施例。
图6示出了本发明实施例提供的一种缓存数据的缓存淘汰装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分,一种缓存数据的缓存淘汰装置包括请求接收模块61、数据类型确定模块62、参数确定模块63和数据淘汰模块64,具体如下:
请求接收模块61,用于接收读请求;
目标信息确定模块62,用于基于读请求和ARC算法,确定Bcache模块中的目标索引信息和目标缓存数据;
参数确定模块63,用于基于目标索引信息中的数据类型,确定ARC算法的实际全局参数;
数据淘汰模块64,用于基于实际全局参数和目标全局参数,对目标缓存数据中的缓存数据进行淘汰。
在一种可能的实现方式中,Bcache模块至少包括第一缓存模块和第二缓存模块;
目标信息确定模块62包括:
索引信息查找子模块,用于在第一缓存模块中查找读请求对应的第一索引信息;
第一目标信息确定子模块,用于若第一缓存模块中存在第一索引信息,基于第一索引信息确定目标索引信息和目标缓存数据;
第二目标信息确定子模块,用于若第一缓存模块中不存在第一索引信息,在第二缓存模块中查找读请求对应的第二索引信息,并基于第二索引信息确定目标索引信息和目标缓存数据。
在一种可能的实现方式中,第一目标信息确定子模块包括:
第一更新单元,用于若第一缓存模块中存在第一索引信息,将第一索引信息中的数据类型从第一类型更新为第二类型,得到第三索引信息;
第一索引信息确定单元,用于基于第三索引信息,确定第一缓存模块中的所有索引信息;
第一缓存数据确定单元,用于基于第三索引信息对应的缓存数据,确定第一缓存模块中的所有缓存数据;
第一目标信息确定单元,用于分别将第一缓存模块中的所有索引信息和第一缓存模块中的所有缓存数据作为目标索引信息和目标缓存数据。
在一种可能的实现方式中,第二目标信息确定子模块包括:
索引信息查找单元,用于若第一缓存模块中不存在第一索引信息,在第二缓存模块中查找第二索引信息;
第二更新单元,用于若第二缓存模块中存在第二索引信息,将第二索引信息中的数据类型更新为第一类型或第二类型,得到第四索引信息;
缓存数据加载单元,用于将第四索引信息转移至第一缓存模块,并加载第四索引信息对应的缓存数据,以确定第一缓存模块中的所有索引信息和所有缓存数据;
第二目标信息确定单元,用于分别将第一缓存模块中的所有索引信息和第一缓存模块中的所有缓存数据作为目标索引信息和目标缓存数据。
在一种可能的实现方式中,参数确定模块63包括:
第一统计子模块,用于统计目标索引信息中的所有第一类型的数量,得到第一类型数目;
第二统计子模块,用于统计目标索引信息中的所有第二类型的数量,得到第二类型数目;
参数确定子模块,用于计算第一类型数目和第二类型数目的比,得到ARC算法的实际全局参数。
在一种可能的实现方式中,数据淘汰模块64包括:
第一数据淘汰子模块,用于当实际全局参数大于目标全局参数,对目标缓存数据中的第一类型的缓存数据进行淘汰;
第二数据淘汰子模块,用于当实际全局参数小于目标全局参数,对目标缓存数据中的第二类型的缓存数据进行淘汰。
在一种可能的实现方式中,方法还包括:
缓存数据读取单元,用于若第二缓存模块中不存在第二索引信息,从数据模块中读取第二索引信息对应的缓存数据。
图7是本发明实施例提供的终端的示意图。如图7所示,该实施例的终端7包括:处理器70、存储器71以及存储在存储器71中并可在处理器70上运行的计算机程序72。处理器70执行计算机程序72时实现上述各个缓存数据的缓存淘汰方法实施例中的步骤,例如图3所示的步骤101至步骤104。或者,处理器70执行计算机程序72时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块/单元61至64的功能。
本发明还提供一种可读存储介质,可读存储介质中存储有计算机程序,计算机程序被处理器执行时用于实现上述的各种实施方式提供的方法。
其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(ApplicationSpecific Integrated Circuits,简称:ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
在上述设备的实施例中,应理解,处理器可以是中央处理单元(英文:CentralProcessing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignal Processor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种缓存数据的缓存淘汰方法,其特征在于,包括:
接收读请求;
基于所述读请求和ARC算法,确定Bcache模块中的目标索引信息和目标缓存数据;
基于所述目标索引信息中的数据类型,确定所述ARC算法的实际全局参数;
基于所述实际全局参数和目标全局参数,对所述目标缓存数据中的缓存数据进行淘汰。
2.如权利要求1所述的缓存数据的缓存淘汰方法,其特征在于,所述Bcache模块至少包括第一缓存模块和第二缓存模块;
所述基于所述读请求和ARC算法,确定Bcache模块中的目标索引信息和目标缓存数据,包括:
在所述第一缓存模块中查找所述读请求对应的第一索引信息;
若所述第一缓存模块中存在所述第一索引信息,基于所述第一索引信息确定所述目标索引信息和所述目标缓存数据;
若所述第一缓存模块中不存在所述第一索引信息,在所述第二缓存模块中查找所述读请求对应的第二索引信息,并基于所述第二索引信息确定所述目标索引信息和所述目标缓存数据。
3.如权利要求2所述的缓存数据的缓存淘汰方法,其特征在于,所若所述第一缓存模块中存在所述第一索引信息,基于所述第一索引信息确定所述目标索引信息和所述目标缓存数据,包括:
若所述第一缓存模块中存在所述第一索引信息,将所述第一索引信息中的数据类型从第一类型更新为第二类型,得到第三索引信息;
基于所述第三索引信息,确定所述第一缓存模块中的所有索引信息;
基于所述第三索引信息对应的缓存数据,确定所述第一缓存模块中的所有缓存数据;
分别将所述第一缓存模块中的所有索引信息和所述第一缓存模块中的所有缓存数据作为所述目标索引信息和所述目标缓存数据。
4.如权利要求2所述的缓存数据的缓存淘汰方法,其特征在于,所述若所述第一缓存模块中不存在所述第一索引信息,在所述第二缓存模块中查找所述读请求对应的第二索引信息,并基于所述第二索引信息确定所述目标索引信息和所述目标缓存数据,包括:
若所述第一缓存模块中不存在所述第一索引信息,在所述第二缓存模块中查找所述第二索引信息;
若所述第二缓存模块中存在所述第二索引信息,将所述第二索引信息中的数据类型更新为第一类型或第二类型,得到第四索引信息;
将所述第四索引信息转移至所述第一缓存模块,并加载所述第四索引信息对应的缓存数据,以确定所述第一缓存模块中的所有索引信息和所有缓存数据;
分别将所述第一缓存模块中的所有索引信息和所述第一缓存模块中的所有缓存数据作为所述目标索引信息和所述目标缓存数据。
5.如权利要求1-4中任一项所述的缓存数据的缓存淘汰方法,其特征在于,所述基于所述目标索引信息中的数据类型,确定所述ARC算法的实际全局参数,包括:
统计所述目标索引信息中的所有第一类型的数量,得到第一类型数目;
统计所述目标索引信息中的所有第二类型的数量,得到第二类型数目;
计算所述第一类型数目和所述第二类型数目的比,得到所述ARC算法的实际全局参数。
6.如权利要求5所述的缓存数据的缓存淘汰方法,其特征在于,所述基于所述实际全局参数和目标全局参数,对所述目标缓存数据中的缓存数据进行淘汰,包括:
当所述实际全局参数大于所述目标全局参数,对所述目标缓存数据中的第一类型的缓存数据进行淘汰;
当所述实际全局参数小于所述目标全局参数,对所述目标缓存数据中的第二类型的缓存数据进行淘汰。
7.如权利要求4所述的缓存数据的缓存淘汰方法,其特征在于,所述方法还包括:
若所述第二缓存模块中不存在所述第二索引信息,从数据模块中读取所述第二索引信息对应的缓存数据。
8.一种缓存数据的缓存淘汰装置,其特征在于,包括:
请求接收模块,用于接收读请求;
目标信息确定模块,用于基于所述读请求和ARC算法,确定Bcache模块中的目标索引信息和目标缓存数据;
参数确定模块,用于基于所述目标索引信息中的数据类型,确定所述ARC算法的实际全局参数;
数据淘汰模块,用于基于所述实际全局参数和目标全局参数,对所述目标缓存数据中的缓存数据进行淘汰。
9.一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述缓存数据的缓存淘汰方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行所述计算机程序时实现如权利要求1至7中任一项所述缓存数据的缓存淘汰方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111472314.8A CN114296635B (zh) | 2021-12-03 | 2021-12-03 | 缓存数据的缓存淘汰方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111472314.8A CN114296635B (zh) | 2021-12-03 | 2021-12-03 | 缓存数据的缓存淘汰方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114296635A true CN114296635A (zh) | 2022-04-08 |
CN114296635B CN114296635B (zh) | 2023-11-03 |
Family
ID=80965401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111472314.8A Active CN114296635B (zh) | 2021-12-03 | 2021-12-03 | 缓存数据的缓存淘汰方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114296635B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303586A (zh) * | 2022-12-09 | 2023-06-23 | 中电云数智科技有限公司 | 一种基于多级b+tree的元数据缓存淘汰方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0463967A2 (en) * | 1990-06-29 | 1992-01-02 | Digital Equipment Corporation | Cache set selection for high-performance processor |
US20040193803A1 (en) * | 2003-03-28 | 2004-09-30 | Kazuhiko Mogi | Cache management method for storage device |
US20140115241A1 (en) * | 2011-05-30 | 2014-04-24 | Qingsong Wei | Buffer management apparatus and method |
CN110502452A (zh) * | 2019-07-12 | 2019-11-26 | 华为技术有限公司 | 访问电子设备中的混合缓存的方法及装置 |
CN111240593A (zh) * | 2020-01-06 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种动态自适应调度的数据迁移方法、装置、设备和介质 |
CN111309650A (zh) * | 2020-02-11 | 2020-06-19 | 广州市百果园信息技术有限公司 | 缓存控制方法、装置、存储介质及设备 |
-
2021
- 2021-12-03 CN CN202111472314.8A patent/CN114296635B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0463967A2 (en) * | 1990-06-29 | 1992-01-02 | Digital Equipment Corporation | Cache set selection for high-performance processor |
US20040193803A1 (en) * | 2003-03-28 | 2004-09-30 | Kazuhiko Mogi | Cache management method for storage device |
US20140115241A1 (en) * | 2011-05-30 | 2014-04-24 | Qingsong Wei | Buffer management apparatus and method |
CN110502452A (zh) * | 2019-07-12 | 2019-11-26 | 华为技术有限公司 | 访问电子设备中的混合缓存的方法及装置 |
CN111240593A (zh) * | 2020-01-06 | 2020-06-05 | 苏州浪潮智能科技有限公司 | 一种动态自适应调度的数据迁移方法、装置、设备和介质 |
CN111309650A (zh) * | 2020-02-11 | 2020-06-19 | 广州市百果园信息技术有限公司 | 缓存控制方法、装置、存储介质及设备 |
Non-Patent Citations (1)
Title |
---|
范延芳 等: "基于多级队列缓存淘汰算法的处理器全数字仿真优化", 《计算机测量与控制》, vol. 26, no. 6, pages 180 - 183 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303586A (zh) * | 2022-12-09 | 2023-06-23 | 中电云数智科技有限公司 | 一种基于多级b+tree的元数据缓存淘汰方法 |
CN116303586B (zh) * | 2022-12-09 | 2024-01-30 | 中电云计算技术有限公司 | 一种基于多级b+tree的元数据缓存淘汰方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114296635B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853549B2 (en) | Index storage in shingled magnetic recording (SMR) storage system with non-shingled region | |
CN108763110B (zh) | 一种数据缓存方法及装置 | |
US20170371807A1 (en) | Cache data determining method and apparatus | |
EP3944556A1 (en) | Block data access method and apparatus, and block data storage method and apparatus | |
CN106649145B (zh) | 一种自适应更新缓存策略的方法及*** | |
EP4020153A1 (en) | Cache space management method and device | |
CN104156323B (zh) | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 | |
CN112559386B (zh) | 提升ssd性能的方法、装置、计算机设备及存储介质 | |
US20220164316A1 (en) | Deduplication method and apparatus | |
WO2021062982A1 (zh) | 管理hmb内存的方法、装置、计算机设备及存储介质 | |
CN112148690A (zh) | 一种文件缓存方法、文件访问请求处理方法及装置 | |
CN116897335A (zh) | 一种缓存替换方法和装置 | |
CN115495394A (zh) | 数据预取方法和数据预取装置 | |
CN107562806B (zh) | 混合内存文件***的自适应感知加速方法及*** | |
CN114296635A (zh) | 缓存数据的缓存淘汰方法、装置、终端及存储介质 | |
CN113094392A (zh) | 数据缓存的方法和装置 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
CN115934583B (zh) | 分级缓存方法、装置及*** | |
CN108984124B (zh) | 减少写放大的方法、装置、计算机设备及存储介质 | |
CN115878677A (zh) | 分布式多级缓存的数据处理方法和装置 | |
CN116028389A (zh) | 热点数据缓存方法、装置、设备及介质 | |
CN110658999B (zh) | 一种信息更新方法、装置、设备及计算机可读存储介质 | |
CN112882659A (zh) | 一种信息获得方法、装置、电子设备及存储介质 | |
CN110825652A (zh) | 淘汰磁盘块上的缓存数据的方法、装置及设备 | |
CN116467353B (zh) | 一种基于lru差异化的自适应调节的缓存方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |