CN112799978B - 缓存设计管理方法、装置、设备和计算机可读存储介质 - Google Patents
缓存设计管理方法、装置、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN112799978B CN112799978B CN202110078009.4A CN202110078009A CN112799978B CN 112799978 B CN112799978 B CN 112799978B CN 202110078009 A CN202110078009 A CN 202110078009A CN 112799978 B CN112799978 B CN 112799978B
- Authority
- CN
- China
- Prior art keywords
- cache
- target application
- application process
- caches
- hash
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0853—Cache with multiport tag or data arrays
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及计算机网络领域,提供了缓存设计管理方法、装置、设备和计算机可读存储介质,以对出现问题的缓存精确定位,避免中心节点崩溃带来的系统整体坍塌。所述方法包括:基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号;按照预设周期,获取根据目标应用进程的进程号创建至目标应用进程上各个缓存的在线状况;根据目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至目标应用进程上的缓存进行管理。本申请的技术方案一方面可以按照映射关系迅速定位到出现问题的缓存所在的应用进程,另一方面可以避免现有技术那样一个中心节点崩溃导致整个系统坍塌的风险。
Description
技术领域
本发明涉及计算机网络领域,特别涉及一种缓存设计管理方法、装置、设备和计算机可读存储介质。
背景技术
在游戏或者app等业务系统的服务器设计中,为了实现越来越大的并发需求,服务器需要使用多进程来实现分布式系统。多进程服务器的各个进程可以部署在不同的机器上,以提供高性能、高可用和可扩展的应用服务。在大并发的服务器中,往往会使用多个缓存作为多个应用进程和数据库之间的中间层,以缓解数据库的读写压力。
对于多进程的服务器,现有的缓存设计管理方法,主要是随机将多个缓存创建在不同的应用进程中,并通过一个中心节点对这些应用进程或应用进程上的缓存进行管理。当访问缓存时,是通过先访问该中心节点,进而获取缓存的位置,再去对应的应用进程中操作缓存。
然而,上述现有的缓存设计管理方法将会带来某个缓存出问题时很难定位出缓存的位置,而采用中心节点管理时,其可用性较低,即一旦出现问题,则影响整个系统。
发明内容
本申请提供一种缓存设计管理方法、装置、设备和计算机可读存储介质,以对出现问题的缓存精确定位,避免中心节点崩溃带来的系统整体坍塌。
一方面,本申请提供了一种缓存设计管理方法,包括:
基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号,所述目标应用进程为所述任意一个缓存将要创建到的应用进程;
按照预设周期,获取根据所述目标应用进程的进程号创建至所述目标应用进程上各个缓存的在线状况;
根据所述目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至所述目标应用进程上的缓存进行管理。
可选地,所述基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号,包括:按照冲突最小化原则,确定最优哈希函数;以所述任意一个缓存的标识BID为关键字,使用所述最优哈希函数将所述标识BID映射为哈希值Hbid;采用预设函数,将所述哈希值Hbid映射为所述目标应用进程的进程号。
可选地,所述按照冲突最小化原则,确定最优哈希函数,包括:使用当前候选哈希函数对所述标识BID进行哈希;解码所述当前候选哈希函数哈希的结果;若将所述解码的结果进行累加时出现本位基数满额,则使用下一候选哈希函数置换当前候选哈希函数继续对所述标识BID进行哈希和解码哈希的结果,直至对解码的结果进行累加时不再出现本位基数满额,则选择所述本位不再出现本位基数满额所对应候选哈希函数作为所述最优哈希函数。
可选地,所述按照冲突最小化原则,确定最优哈希函数,包括:从候选哈希函数集中任意选择一个哈希函数Hs;使用所述任意选择的哈希函数Hs对所述标识BID进行哈希运算,得到精简关键值;若哈希桶中存在所述精简关键值,则将再次从所述候选哈希函数集中选择一哈希函数对所述标识BID进行哈希运算,直至所述哈希桶中不存在所述精简关键值时为止;将对所述标识BID进行哈希运算,所述哈希桶中不存在所述精简关键值时对应的哈希函数选择为所述最优哈希函数。
可选地,所述按照预设周期,获取根据所述目标应用进程的进程号创建至所述目标应用进程上各个缓存的在线状况,包括:每间隔所述预设周期,统计所述目标应用进程上在线的缓存数量。
可选地,所述目标应用进程上各个缓存的在线状况包括所述在线的缓存数量是否超过所述目标应用进程能够容忍的第一上限和第二上限,所述根据所述目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至所述目标应用进程上的缓存进行管理,包括:确定在线的缓存数量是否超过所述目标应用进程能够容忍的第一上限和第二上限;若所述在线的缓存数量超过所述第一上限且未超过所述第二上限,则基于所述缓存淘汰算法,从所述目标应用进程剔除第一数量的缓存;若所述在线的缓存数量超过所述第二上限,则基于所述缓存淘汰算法,从所述目标应用进程剔除第二数量的缓存。
可选地,所述基于所述缓存淘汰算法,从所述目标应用进程剔除第一数量或第二数量的缓存,包括:统计对所述目标应用进程上各个缓存的存取信息,获取所述各个缓存的存取统计结果;根据所述各个缓存的存取统计结果,确定对所述目标应用进程上各个缓存的存取模式由第一存取模式变化为第二存取模式;将所述第一存取模式对应的第一缓存淘汰算法切换为所述第二存取模式对应的第二缓存淘汰算法;使用所述第二缓存淘汰算法从所述目标应用进程剔除第一数量或第二数量的缓存。
可选地,所述基于所述缓存淘汰算法,从所述目标应用进程剔除第一数量或第二数量的缓存之前,所述方法还包括:对所述目标应用进程上的缓存分类为最近最少使用LRU缓存和最不常使用LFU缓存;创建与所述LRU缓存对应的LRU淘汰数据列表以及与所述LFU缓存对应的LFU淘汰数据列表;当所述LRU缓存中存在存取频度大于频度阈值的数据时,将所述存取频度大于频度阈值的数据从所述LRU缓存中转移至所述LFU缓存;当所述LRU淘汰数据列表的命准次数达到第一命准阈值时,增加所述LRU缓存的容量,减小所述LFU缓存的容量;以及当所述LFU淘汰数据列表的命准次数达到第二命准阈值时,增加所述LFU缓存的容量,减小所述LRU缓存的容量。
另一方面,本申请提供了一种缓存设计管理装置,包括:
映射模块,用于基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号,所述目标应用进程为所述任意一个缓存将要创建到的应用进程;
获取模块,用于按照预设周期,获取根据所述目标应用进程的进程号创建至所述目标应用进程上各个缓存的在线状况;
缓存管理模块,用于根据所述目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至所述目标应用进程上的缓存进行管理。
第三方面,本申请提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的缓存设计管理方法中的步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的缓存设计管理方法中的步骤。
从上述本申请提供的技术方案可知,一方面,由于缓存是按照其标识映射到目标应用进程的进程号,在所映射到的进程号对应目标应用进程上创建,因此,一旦缓存出现问题,可以按照映射关系迅速定位到该缓存所在的应用进程;另一方面,缓存可以创建到按照选定的函数所映射到的任何一个应用进程上,每个应用进程是独立、平等的关系,即相对于现有技术的中心节点管理方式,本申请的技术方案相当于去中心化,因此,即使一个缓存和/或该缓存所在的应用进程出现问题,只对该缓存和/或该缓存所在的应用进程产生影响,不会殃及其他缓存和/或应用进程,从而可以避免现有技术那样一个中心节点崩溃导致整个系统坍塌的风险。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的缓存设计管理方法的流程图;
图2是本申请实施例提供的将6个缓存的标识映射至3个进程号的示意图;
图3是本申请实施例提供的基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号的示意图;
图4是本申请实施例提供的缓存设计管理装置的结构示意图;
图5是本申请另一实施例提供的缓存设计管理装置的结构示意图;
图6是本申请实施例提供的设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。
在本说明书中,为了便于描述,附图中所示的各个部分的尺寸并不是按照实际的比例关系绘制的。
本申请提出了一种缓存设计管理方法,如附图1所示,主要包括步骤S101至S103,详述如下:
步骤S101:基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号,其中,目标应用进程为该任意一个缓存将要创建到的应用进程。
在本申请实施例中,缓存的标识用于唯一确定该缓存,缓存的标识可以是缓存的名称、编号等,而目标应用进程的进程号也与缓存的标识类似,用于唯一确定该目标应用进程。目标应用进程即按照选定函数的映射关系,多个缓存中任意一个缓存的标识BID映射到并且要在其上创建该任意一个缓存的应用进程。作为本申请一个实施例,基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号可通过步骤S1021至步骤S1023实现,说明如下:
步骤S1021:按照最小化哈希冲突的原则,确定最优哈希函数。
哈希函数是哈希算法(又称散列法、杂凑法以及关键字地址计算法等)中使用到的函数,相应的表称为哈希表。哈希算法的基本思想是先在元素的关键字K和元素的位置P之间建立一个对应关系h,使得P=h(K),其中,h为哈希函数。创建哈希表时,将关键字K的元素直接存入地址为h(K)的单元,查找关键字K的元素时利用哈希函数计算出该元素的存储位置P=h(K)。当关键字集合很大时,关键字不同的元素可能会映射到哈希表的同一地址上,即K1不等于K2时,h(K1)=h(K2),这种现象称为哈希冲突。实际应用中,哈希冲突很难避免,一般是通过改进哈希函数的性能来减小这种冲突的概率。在本申请实施例中,是按照最小化哈希冲突的原则,确定最优哈希函数,以减小哈希冲突的概率。
具体地,在本申请一个实施例中,按照最小化哈希冲突的原则,确定最优哈希函数可以是:使用当前候选哈希函数对标识BID进行哈希;解码当前候选哈希函数哈希的结果;若将解码的结果进行累加时出现本位基数满额,则使用下一候选哈希函数置换当前候选哈希函数继续对标识BID进行哈希和解码哈希的结果,直至对解码的结果进行累加时不再出现本位基数满额,则选择本位不再出现本位基数满额所对应候选哈希函数作为最优哈希函数。
上述实施例是通过对候选哈希函数进行筛选,使用候选哈希函数对任意一个缓存的标识BID进行哈希,将哈希的结果进行解码。如果有哈希的结果相同,解码的结果相累加时,必然出现本位基数满额(例如,对于二进制数,“2”即为基数,当某位上两个“1”相加时,就会出现本位的基数满额;又如,对于十进制数,“10”即为基数,当某位上两个数相加,其和为10时,就会出现本位的基数满额),因此,若在解码的结果累加出现本位基数满额,则可以判断使用该候选哈希函数进行哈希会出现冲突,反之,若在解码的结果累加没有出现本位基数满额,则可以判断使用该候选哈希函数进行哈希不会出现冲突,可选择该候选哈希函数进行后续操作,因此使用本申请实施例提供的这种选择哈希函数的方法可以避免出现哈希冲突。举例而言,有两个缓存的标识:缓存的标识1=0x0110,缓存的标识2=0x0011,第一个候选哈希函数为H1=h1(k)=0x1000×k,其中,符号“×”表示相“与”,第一个候选哈希函数表示将使用二进制数0x1000对关键字k进行“与”操作。当使用第一个候选哈希函数H1对缓存的标识1即0x0110、缓存的标识2即0x0011进行哈希时,获得的结果均为“0”,对“0”进行3位到8位解码,也即3/8译码之后,结果均为“00000001”,对这两个解码的结果累加即会出现本位基数满额,则可以判断第一个候选哈希函数为最终哈希函数会产生哈希冲突,因此,应当继续使用下一个候选哈希函数进行哈希。若下一个候选哈希函数为H2=h2(k)=0x0001×k,该候选哈希函数表示将使用二进制数0x0x0001对关键字k进行“与”操作,具体地,当使用候选哈希函数H2分别对缓存的标识1即0x0110和缓存的标识2即0x0011进行哈希时,则获得的结果分别为“0”和“1”,进行3位到8位解码后,结果分别为“00000001”和“00000010”。由于“1”在不同的位上,“00000001”和“00000010”累加时不会出现本位基数满额,此时可以判断使用“0x0010”作为哈希函数不会出现冲突,可选择“候选哈希函数H2为作为最优哈希函数进行后续操作。
在本申请另一实施例中,按照最小化哈希冲突的原则,确定最优哈希函数可以是:从候选哈希函数集中任意选择一个哈希函数Hs;使用任意选择的哈希函数Hs对任意一个缓存的标识BID进行哈希运算,得到精简关键值;若哈希桶中存在该精简关键值,则将再次从候选哈希函数集中选择一哈希函数对标识BID进行哈希运算,直至哈希桶中不存在从候选哈希函数集中选择的哈希函数对标识BID进行哈希运算得到的精简关键值时为止;将对标识BID进行哈希运算、哈希桶中不存在所述精简关键值时对应的哈希函数选择为最优哈希函数。本实施例中,对于不同的哈希桶,可以采用不同的哈希函数生成精简关键值,从而使得生成精简关键值所需的哈希函数可以在多个哈希函数中选择一个最优哈希函数,从而降低了哈希冲突的概率。
步骤S1022:以任意一个缓存的标识BID为关键字,使用最优哈希函数将标识BID映射为哈希值Hbid。
假设经步骤S1021,确定的最优哈希函数使用Ho表示,则以任意一个缓存的标识BID为关键字,使用最优哈希函数将标识BID映射为哈希值Hbid即为Hbid=Ho(BID)。
步骤S1023:采用预设函数,将哈希值Hbid映射为目标应用进程的进程号。
在本申请实施例中,使用上述步骤1023确定的最优哈希函数,可以将任意一个缓存的标识BID映射为一个整数。至于预设函数,其可以是对哈希值Hbid取余,取余的结果为目标应用进程的进程号,即,将在该进程号对应的目标应用进程上创建标识为BID的缓存。
需要说明的是,尽管由最优哈希函数对任意一个缓存的标识BID进行哈希云算时所得哈希值Hbid是唯一的,然而,采用预设函数,不同的哈希值Hbid可能映射为同一进程号,即,使用预设函数对不同的哈希值Hbid取余,其结果可能是相同的,这意味着不同的缓存可以创建在相同的应用进程上,即不同的缓存对应于同一目标应用进程,如图2所示,是6个缓存的标识(图中使用缓存标识1、缓存标识2、…、缓存标识6表示)映射至3个目标应用进程的进程号的示意图,其中,缓存标识1和缓存标识4映射至进程号P1,缓存标识2和缓存标识5映射至进程号P2,缓存标识3和缓存标识6映射至进程号P3。
图3是基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号的示意图,其主要是先将n个缓存的标识(图中使用缓存标识1、缓存标识2、…缓存标识i、缓存标识n表示)通过最优哈希函数映射为对应的n个哈希值,再使用预设函数对这n个哈希值进行映射,使得将n个缓存的标识缓存最终映射为m个目标应用进程的进程号。
步骤S102:按照预设周期,获取根据目标应用进程的进程号创建至目标应用进程上各个缓存的在线状况。
具体而言,可以在各个应用进程运行一个预设周期后,每间隔预设周期,统计任意一个缓存所创建到的目标应用进程上在线的缓存数量。
步骤S103:根据目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至目标应用进程上的缓存进行管理。
在本申请实施例中,目标应用进程上各个缓存的在线状况包括在线的缓存数量是否超过目标应用进程能够容忍的第一上限和第二上限。可以通过压力测试等方式,估算出一个目标应用进程最多可容忍多少数量的缓存在线,将这个数量作为该目标应用进程能够容忍的第二上限,至于第一上限,可以比第二上限小,或者,第一上限是第二上限的某个较小比例,例如,通过压力测试等方式,将一个目标应用进程能够容忍在线的缓存数量即第二上限设置为50万,将第一上限设置为10万,等等。
如前所述,不同的缓存标识可能映射至同一进程号,即,同一目标应用进程上可以创建多个不同的缓存;另一方面,不同的业务场景,对缓存的需求可能不同,例如,一个应用进程上,可能某些缓存在最近一段时间内使用得较少,另一些缓存在最近一段时间内使用得较多,或者,某些缓存使用最少,另一些缓存使用最多,等等。因此,需要一个机制对这些缓存进行管理,即,可以根据目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至目标应用进程上的缓存进行管理。具体而言,作为本申请一个实施例,根据目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至目标应用进程上的缓存进行管理可以通过步骤S1031至步骤S1033实现,说明如下:
步骤S1031:确定目标应用进程在线的缓存数量是否超过该目标应用进程能够容忍的第一上限和第二上限。
由于目标应用进程不同的在线的缓存数量,会有不同的缓存淘汰策略,例如,若目标应用进程上在线的缓存数量较大,则需要从该目标应用进程上剔除较多的在线缓存,反之,若目标应用进程上在线的缓存数量较少,则只需要从该目标应用进程上剔除较少的在线缓存。因此,在基于缓存淘汰算法对创建至目标应用进程上的缓存进行管理时,首先需要确定目标应用进程在线的缓存数量是否超过该目标应用进程能够容忍的第一上限和第二上限。
步骤S1032:若目标应用进程在线的缓存数量超过第一上限且未超过第二上限,则基于缓存淘汰算法,从目标应用进程剔除第一数量的缓存。
例如,对于上述举例的第一上限设置为10万,第二上限设置为50万,若目标应用进程在线的缓存数量超过10万且未超过50万,则基于缓存淘汰算法,从目标应用进程剔除第一数量,例如1000个缓存。
步骤S1033:若目标应用进程在线的缓存数量超过第二上限,则基于缓存淘汰算法,从目标应用进程剔除第二数量的缓存。
若目标应用进程在线的缓存数量超过第二上限,则由于在线缓存数量太多,可以从目标应用进程剔除第二数量的缓存,其中,第二数量一般大于第一数量,例如,此处的第二数量可以等于该目标应用进程当前在线的缓存数量减去第二上限后,再附加一个数量y,即,若该目标应用进程当前在线的缓存数量使用C表示,第二上限使用L表示,则第二数量=C-L+y。
考虑到现有的缓存淘汰算法,例如,最近最少使用(Least Recently Used,LRU)淘汰算法、最近最不频繁使用(Least Frequently Used,LFU)淘汰算法和最近最多使用(MostRecently Used,MRU)淘汰算法等具有一定的局限性,例如,LRU淘汰算法在周期性访问时,热点可能会由于时间局部性而提前淘汰,LFU淘汰算法在存取模式改变时,需要更长的时间来适用新的模式,而MRU淘汰算法只适合顺序存取场景,等等,在本申请实施例中,基于缓存淘汰算法,从目标应用进程剔除第一数量或第二数量的缓存可以通过步骤S’1031至步骤S’1034实现,说明如下:
步骤S’1031:统计对目标应用进程上各个缓存的存取信息,获取各个缓存的存取统计结果。
在本申请实施例中,目标应用进程上各个缓存的存取信息包括对目标应用进程上各个缓存的存取类型、存取次数和存取时间等。
步骤S’1032:根据各个缓存的存取统计结果,确定对目标应用进程上各个缓存的存取模式由第一存取模式变化为第二存取模式。
步骤S’1033:将第一存取模式对应的第一缓存淘汰算法切换为第二存取模式对应的第二缓存淘汰算法。
具体地,例如,当对目标应用进程上各个缓存的存取模式由第一存取模式变化为第二存取模式是由随机存取模式变化为顺序存取模式时,将第一存取模式对应的第一缓存淘汰算法切换为第二存取模式对应的第二缓存淘汰算法可以是:将最近最少使用LRU淘汰算法切换为最近最多使用MRU淘汰算法;再如,当对目标应用进程上各个缓存的存取模式由第一存取模式变化为第二存取模式是由聚类存取模式变化为顺序存取模式时,将第一存取模式对应的第一缓存淘汰算法切换为第二存取模式对应的第二缓存淘汰算法可以是:将最近最不频繁使用LFU淘汰算法切换为最近最多使用MRU淘汰算法;又如,当对目标应用进程上各个缓存的存取模式由第一存取模式变化为第二存取模式是由其他存取模式变化为顺序访问模式时,将第一存取模式对应的第一缓存淘汰算法切换为第二存取模式对应的第二缓存淘汰算法可以是:将自适应缓存ARC淘汰算法切换为最近最多使用MRU淘汰算法,等等。
步骤S’1034:使用第二缓存淘汰算法从目标应用进程剔除第一数量或第二数量的缓存。
上述实施例中,根据各个缓存的存取统计结果,确定对目标应用进程上各个缓存的存取模式由第一存取模式变化为第二存取模式,实现了根据对目标应用进程上各个缓存的存取模式,匹配合适的缓存淘汰算法,进而摆脱场景局限性,保证了缓存的运行效率。
在本申请实施例中,基于缓存淘汰算法,从目标应用进程剔除第一数量或第二数量的缓存之前,还可以通过如下步骤S401至步骤S405,进一步提高缓存命准率,优化缓存效果,说明如下:
步骤S401:对目标应用进程上的缓存分类为最近最少使用LRU缓存和最不常使用LFU缓存。
由于最近最少使用LRU淘汰算法和最不常使用LFU淘汰算法是最常见的两种缓存淘汰算法,因此,可以目标应用进程上的缓存分类为最近最少使用LRU缓存和最不常使用LFU缓存,针对这两种类型的缓存,采用不同的缓存管理策略。
步骤S402:创建与LRU缓存对应的LRU淘汰数据列表以及与LFU缓存对应的LFU淘汰数据列表。
本申请实施例中,与LRU缓存对应的LRU淘汰数据列表以及与LFU缓存对应的LFU淘汰数据列表,分别用于记录从LRU缓存中淘汰的数据的索引以及从LFU缓存中淘汰的数据的索引,以便后续流程中根据被淘汰的数据的命准情况调整LRU缓存和LFU缓存的容量大小。
步骤S403:当LRU缓存中存在存取频度大于频度阈值的数据时,将存取频度大于频度阈值的数据从LRU缓存中转移至LFU缓存。
即使是LRU缓存,其中也存在一些存取频度较大的数据,直接将LRU缓存整体剔除,不是最佳的缓存管理策略,因此,在本申请实施例中,当LRU缓存中存在存取频度大于频度阈值的数据时,将存取频度大于频度阈值的数据从LRU缓存中转移至LFU缓存。
步骤S404:当LRU淘汰数据列表的命准次数达到第一命准阈值时,增加LRU缓存的容量,减小LFU缓存的容量。
当LRU淘汰数据列表的命准次数达到第一命准阈值时,说明相对于LFU缓存的访问需求,业务场景对LRU缓存的存取需求更大,此时,应当增加LRU缓存的容量,减小LFU缓存的容量。
步骤S405:当LFU淘汰数据列表的命准次数达到第二命准阈值时,增加LFU缓存的容量,减小LRU缓存的容量。
与前述步骤S404的实施例相反,当LFU淘汰数据列表的命准次数达到第二命准阈值时,说明相对于LRU缓存的访问需求,业务场景对LFU缓存的存取需求更大,此时,应当增加LFU缓存的容量,减小LRU缓存的容量。
从上述附图1示例的缓存设计管理方法可知,一方面,由于缓存是按照其标识映射到目标应用进程的进程号,在所映射到的进程号对应目标应用进程上创建,因此,一旦缓存出现问题,可以按照映射关系迅速定位到该缓存所在的应用进程;另一方面,缓存可以创建到按照选定的函数所映射到的任何一个应用进程上,每个应用进程是独立、平等的关系,即相对于现有技术的中心节点管理方式,本申请的技术方案相当于去中心化,因此,即使一个缓存和/或该缓存所在的应用进程出现问题,只对该缓存和/或该缓存所在的应用进程产生影响,不会殃及其他缓存和/或应用进程,从而可以避免现有技术那样一个中心节点崩溃导致整个系统坍塌的风险。
请参阅附图4,是本申请实施例提供的一种缓存设计管理装置,该装置可以包括映射模块401、获取模块402和缓存管理模块403,详述如下:
映射模块401,用于基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号,其中,目标应用进程为任意一个缓存将要创建到的应用进程;
获取模块402,用于按照预设周期,获取根据目标应用进程的进程号创建至目标应用进程上各个缓存的在线状况;
缓存管理模块403,用于根据目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至目标应用进程上的缓存进行管理。
可选地,上述附图4示例的装置中,映射模块401可包括哈希函数确定单元、第一映射单元和第二映射单元,其中:
哈希函数确定单元,用于按照冲突最小化原则,确定最优哈希函数;
第一映射单元,用于以任意一个缓存的标识BID为关键字,使用最优哈希函数将标识BID映射为哈希值Hbid;
第二映射单元,用于采用预设函数,将哈希值Hbid映射为目标应用进程的进程号。
可选地,上述哈希函数确定单元可包括第一哈希单元、解码单元和第一选择单元,其中:
第一哈希单元,用于使用当前候选哈希函数对任意一个缓存的标识BID进行哈希;
解码单元,用于解码当前候选哈希函数哈希的结果;
第一选择单元,用于若将解码的结果进行累加时出现本位基数满额,则使用下一候选哈希函数置换当前候选哈希函数继续对任意一个缓存的标识BID进行哈希和解码哈希的结果,直至对解码的结果进行累加时不再出现本位基数满额,则选择本位不再出现本位基数满额所对应候选哈希函数作为最优哈希函数。
可选地,上述哈希函数确定单元可包括第二选择单元、第二哈希单元、第三哈希单元和第三选择单元,其中:
第二选择单元,用于从候选哈希函数集中任意选择一个哈希函数Hs;
第二哈希单元,用于使用任意选择的哈希函数Hs对任意一个缓存的标识BID进行哈希运算,得到精简关键值;
第三哈希单元,用于若哈希桶中存在精简关键值,则再次从候选哈希函数集中选择一哈希函数对任意一个缓存的标识BID进行哈希运算,直至哈希桶中不存在精简关键值时为止;
第三选择单元,用于将对任意一个缓存的标识BID进行哈希运算,哈希桶中不存在精简关键值时对应的哈希函数选择为最优哈希函数。
可选地,上述附图4示例的装置中,获取模块402具体用于每间隔预设周期,统计目标应用进程上在线的缓存数量。
可选地,上述附图4示例的装置中,目标应用进程上各个缓存的在线状况包括目标应用进程在线的缓存数量是否超过目标应用进程能够容忍的第一上限和第二上限,缓存管理模块403可包括上限确定单元、第一缓存剔除单元和第二缓存剔除单元,其中:
上限确定单元,用于确定目标应用进程在线的缓存数量是否超过目标应用进程能够容忍的第一上限和第二上限;
第一缓存剔除单元,用于若目标应用进程在线的缓存数量超过第一上限且未超过第二上限,则基于缓存淘汰算法,从目标应用进程剔除第一数量的缓存;
第二缓存剔除单元,用于若目标应用进程在线的缓存数量超过第二上限,则基于缓存淘汰算法,从目标应用进程剔除第二数量的缓存。
可选地,上述第一缓存剔除单元或第二缓存剔除单元可包括统计单元、存取模式确定单元、切换单元和第三缓存剔除单元,其中:
统计单元,用于统计对目标应用进程上各个缓存的存取信息,获取各个缓存的存取统计结果;
存取模式确定单元,用于根据各个缓存的存取统计结果,确定对目标应用进程上各个缓存的存取模式由第一存取模式变化为第二存取模式;
切换单元,用于将第一存取模式对应的第一缓存淘汰算法切换为第二存取模式对应的第二缓存淘汰算法;
第三缓存剔除单元,用于使用第二缓存淘汰算法从目标应用进程剔除第一数量或第二数量的缓存。
可选地,上述附图4示例的装置还可以包括分类模块501、列表创建模块502、数据转移模块503、第一容量增加模块504和第二容量增加模块505,如图5所示本申请另一实施例提供的缓存设计管理装置,其中:
分类模块501,用于第一缓存剔除单元或第二缓存剔除单元基于缓存淘汰算法,从目标应用进程剔除第一数量或第二数量的缓存之前,对目标应用进程上的缓存分类为最近最少使用LRU缓存和最不常使用LFU缓存;
列表创建模块502,用于创建与LRU缓存对应的LRU淘汰数据列表以及与LFU缓存对应的LFU淘汰数据列表;
数据转移模块503,用于当LRU缓存中存在存取频度大于频度阈值的数据时,将存取频度大于频度阈值的数据从LRU缓存中转移至LFU缓存;
第一容量增加模块504,用于当LRU淘汰数据列表的命准次数达到第一命准阈值时,增加LRU缓存的容量,减小LFU缓存的容量;
第二容量增加模块505,用于当LFU淘汰数据列表的命准次数达到第二命准阈值时,增加LFU缓存的容量,减小LRU缓存的容量。
从以上技术方案的描述中可以看出,一方面,由于缓存是按照其标识映射到目标应用进程的进程号,在所映射到的进程号对应目标应用进程上创建,因此,一旦缓存出现问题,可以按照映射关系迅速定位到该缓存所在的应用进程;另一方面,缓存可以创建到按照选定的函数所映射到的任何一个应用进程上,每个应用进程是独立、平等的关系,即相对于现有技术的中心节点管理方式,本申请的技术方案相当于去中心化,因此,即使一个缓存和/或该缓存所在的应用进程出现问题,只对该缓存和/或该缓存所在的应用进程产生影响,不会殃及其他缓存和/或应用进程,从而可以避免现有技术那样一个中心节点崩溃导致整个系统坍塌的风险。
图6是本申请一实施例提供的计算机设备的结构示意图。如图6所示,该实施例的计算机设备6主要包括:处理器60、存储器61以及存储在存储器61中并可在处理器60上运行的计算机程序62,例如缓存设计管理方法的程序。处理器60执行计算机程序62时实现上述缓存设计管理方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,处理器60执行计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图4所示映射模块401、获取模块402和缓存管理模块403的功能。
示例性地,缓存设计管理方法的计算机程序62主要包括:基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号,其中,目标应用进程为任意一个缓存将要创建到的应用进程;按照预设周期,获取根据目标应用进程的进程号创建至目标应用进程上各个缓存的在线状况;根据目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至目标应用进程上的缓存进行管理。计算机程序62可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器61中,并由处理器60执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序62在计算机设备6中的执行过程。例如,计算机程序62可以被分割成映射模块401、获取模块402和缓存管理模块403(虚拟装置中的模块)的功能,各模块具体功能如下:映射模块401,用于基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号,其中,目标应用进程为任意一个缓存将要创建到的应用进程;获取模块402,用于按照预设周期,获取根据目标应用进程的进程号创建至目标应用进程上各个缓存的在线状况;缓存管理模块403,用于根据目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至目标应用进程上的缓存进行管理。
计算机设备6可包括但不仅限于处理器60、存储器61。本领域技术人员可以理解,图6仅仅是计算机设备6的示例,并不构成对计算机设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算计算机设备还可以包括输入输出计算机设备、网络接入计算机设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器61可以是计算机设备6的内部存储单元,例如计算机设备6的硬盘或内存。存储器61也可以是计算机设备6的外部存储计算机设备,例如计算机设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器61还可以既包括计算机设备6的内部存储单元也包括外部存储计算机设备。存储器61用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即,将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非临时性计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,缓存设计管理方法的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤,即,基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号,其中,目标应用进程为任意一个缓存将要创建到的应用进程;按照预设周期,获取根据目标应用进程的进程号创建至目标应用进程上各个缓存的在线状况;根据目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至目标应用进程上的缓存进行管理。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。非临时性计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读内存(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,非临时性计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,非临时性计算机可读介质不包括电载波信号和电信信号。以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种缓存设计管理方法,其特征在于,所述方法包括:
基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号,所述目标应用进程为所述任意一个缓存将要创建到的应用进程;
在所述进程号对应的目标应用进程上创建标识BID的缓存;
按照预设周期,获取根据所述目标应用进程的进程号创建至所述目标应用进程上各个缓存的在线状况;
根据所述目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至所述目标应用进程上的缓存进行管理。
2.如权利要求1所述缓存设计管理方法,其特征在于,所述基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号,包括:
按照冲突最小化原则,确定最优哈希函数;
以所述任意一个缓存的标识BID为关键字,使用所述最优哈希函数将所述标识BID映射为哈希值Hbid;
采用预设函数,将所述哈希值Hbid映射为所述目标应用进程的进程号。
3.如权利要求2所述缓存设计管理方法,其特征在于,所述按照冲突最小化原则,确定最优哈希函数,包括:
使用当前候选哈希函数对所述标识BID进行哈希;
解码所述当前候选哈希函数哈希的结果;
若将所述解码的结果进行累加时出现本位基数满额,则使用下一候选哈希函数置换当前候选哈希函数继续对所述标识BID进行哈希和解码哈希的结果,直至对解码的结果进行累加时不再出现本位基数满额,则选择所述本位不再出现本位基数满额所对应候选哈希函数作为所述最优哈希函数。
4.如权利要求2所述缓存设计管理方法,其特征在于,所述按照冲突最小化原则,确定最优哈希函数,包括:
从候选哈希函数集中任意选择一个哈希函数Hs;
使用所述任意选择的哈希函数Hs对所述标识BID进行哈希运算,得到精简关键值;
若哈希桶中存在所述精简关键值,则再次从所述候选哈希函数集中选择一哈希函数对所述标识BID进行哈希运算,直至所述哈希桶中不存在所述精简关键值时为止;
将对所述标识BID进行哈希运算,所述哈希桶中不存在所述精简关键值时对应的哈希函数选择为所述最优哈希函数。
5.如权利要求1所述缓存设计管理方法,其特征在于,所述按照预设周期,获取根据所述目标应用进程的进程号创建至所述目标应用进程上各个缓存的在线状况,包括:
每间隔所述预设周期,统计所述目标应用进程上在线的缓存数量。
6.如权利要求1所述缓存设计管理方法,其特征在于,所述目标应用进程上各个缓存的在线状况包括所述在线的缓存数量是否超过所述目标应用进程能够容忍的第一上限和第二上限,所述根据所述目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至所述目标应用进程上的缓存进行管理,包括:
确定在线的缓存数量是否超过所述目标应用进程能够容忍的第一上限和第二上限;
若所述在线的缓存数量超过所述第一上限且未超过所述第二上限,则基于所述缓存淘汰算法,从所述目标应用进程剔除第一数量的缓存;
若所述在线的缓存数量超过所述第二上限,则基于所述缓存淘汰算法,从所述目标应用进程剔除第二数量的缓存。
7.如权利要求6所述缓存设计管理方法,其特征在于,所述基于所述缓存淘汰算法,从所述目标应用进程剔除第一数量或第二数量的缓存,包括:
统计对所述目标应用进程上各个缓存的存取信息,获取所述各个缓存的存取统计结果;
根据所述各个缓存的存取统计结果,确定对所述目标应用进程上各个缓存的存取模式由第一存取模式变化为第二存取模式;
将所述第一存取模式对应的第一缓存淘汰算法切换为所述第二存取模式对应的第二缓存淘汰算法;
使用所述第二缓存淘汰算法从所述目标应用进程剔除第一数量或第二数量的缓存。
8.如权利要求6所述缓存设计管理方法,其特征在于,所述基于所述缓存淘汰算法,从所述目标应用进程剔除第一数量或第二数量的缓存之前,所述方法还包括:
对所述目标应用进程上的缓存分类为最近最少使用LRU缓存和最不常使用LFU缓存;
创建与所述LRU缓存对应的LRU淘汰数据列表以及与所述LFU缓存对应的LFU淘汰数据列表;
当所述LRU缓存中存在存取频度大于频度阈值的数据时,将所述存取频度大于频度阈值的数据从所述LRU缓存中转移至所述LFU缓存;
当所述LRU淘汰数据列表的命准次数达到第一命准阈值时,增加所述LRU缓存的容量,减小所述LFU缓存的容量;以及
当所述LFU淘汰数据列表的命准次数达到第二命准阈值时,增加所述LFU缓存的容量,减小所述LRU缓存的容量。
9.一种缓存设计管理装置,其特征在于,所述装置包括:
映射模块,用于基于选定的函数,将多个缓存中任意一个缓存的标识BID映射为目标应用进程的进程号,所述目标应用进程为所述任意一个缓存将要创建到的应用进程;
在所述进程号对应的目标应用进程上创建标识BID的缓存;
获取模块,用于按照预设周期,获取根据所述目标应用进程的进程号创建至所述目标应用进程上各个缓存的在线状况;
缓存管理模块,用于根据所述目标应用进程上各个缓存的在线状况,基于缓存淘汰算法对创建至所述目标应用进程上的缓存进行管理。
10.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任意一项所述缓存设计管理方法的步骤。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任意一项所述缓存设计管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110078009.4A CN112799978B (zh) | 2021-01-20 | 2021-01-20 | 缓存设计管理方法、装置、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110078009.4A CN112799978B (zh) | 2021-01-20 | 2021-01-20 | 缓存设计管理方法、装置、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112799978A CN112799978A (zh) | 2021-05-14 |
CN112799978B true CN112799978B (zh) | 2023-03-21 |
Family
ID=75810828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110078009.4A Active CN112799978B (zh) | 2021-01-20 | 2021-01-20 | 缓存设计管理方法、装置、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112799978B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018121455A1 (zh) * | 2016-12-29 | 2018-07-05 | 华为技术有限公司 | 一种缓存数据处理方法、装置和存储控制器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6243762B1 (en) * | 1994-08-08 | 2001-06-05 | Mercury Computer Systems, Inc. | Methods and apparatus for data access and program generation on a multiprocessing computer |
US20070028051A1 (en) * | 2005-08-01 | 2007-02-01 | Arm Limited | Time and power reduction in cache accesses |
CN105955971B (zh) * | 2015-11-30 | 2019-09-17 | 中国银联股份有限公司 | 一种键值缓存的实现方法及装置 |
CN108769111B (zh) * | 2018-04-17 | 2020-01-24 | 平安科技(深圳)有限公司 | 一种服务器连接方法、计算机可读存储介质及终端设备 |
CN111274310A (zh) * | 2018-12-05 | 2020-06-12 | 中国移动通信集团山东有限公司 | 一种分布式数据缓存方法及系统 |
-
2021
- 2021-01-20 CN CN202110078009.4A patent/CN112799978B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018121455A1 (zh) * | 2016-12-29 | 2018-07-05 | 华为技术有限公司 | 一种缓存数据处理方法、装置和存储控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN112799978A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255958B (zh) | 数据查询方法、装置和存储介质 | |
JP7046172B2 (ja) | シャード・データベースのシャード・テーブルにレコードを記憶するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、シャード・データベースのシャード・テーブルからレコードを検索するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、ならびにシャード・データベースを記憶するためのシステム | |
TWI684099B (zh) | 剖析快取替代 | |
EP3089039B1 (en) | Cache management method and device | |
CN108829344A (zh) | 数据存储方法、装置及存储介质 | |
CN109977129A (zh) | 多级数据缓存方法及设备 | |
CN112799584B (zh) | 一种数据存储方法及装置 | |
CN109725825A (zh) | 用于管理缓存的方法、设备和计算机程序产品 | |
US10585807B2 (en) | Balanced cache for recently frequently used data | |
US11593268B2 (en) | Method, electronic device and computer program product for managing cache | |
CN111506604A (zh) | 访问数据的方法、装置和计算机程序产品 | |
CN108984103A (zh) | 用于去重的方法和设备 | |
CN110290228B (zh) | 一种互联网协议ip地址分配方法及装置 | |
US11093389B2 (en) | Method, apparatus, and computer program product for managing storage system | |
CN112835740A (zh) | 用于管理数据备份的方法、电子设备和计算机程序产品 | |
CN112799978B (zh) | 缓存设计管理方法、装置、设备和计算机可读存储介质 | |
CN107861819B (zh) | 一种缓存组负载均衡的方法、装置和计算机可读存储介质 | |
CN112269665B (zh) | 内存的处理方法和装置、电子设备和存储介质 | |
CN110658999B (zh) | 一种信息更新方法、装置、设备及计算机可读存储介质 | |
CN114764416A (zh) | 数据缓存方法、装置、设备及计算机可读存储介质 | |
CN113010454A (zh) | 数据读写方法、装置、终端及存储介质 | |
CN113032156B (zh) | 内存分配方法和装置、电子设备和存储介质 | |
CN111125011A (zh) | 一种文件处理方法、系统及相关设备 | |
CN110825521A (zh) | 一种内存使用管理方法、装置及存储介质 | |
EP4261712A1 (en) | Data elimination method and apparatus, cache node, and cache system |
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 |