CN101609432A - 共享缓存管理系统及方法 - Google Patents
共享缓存管理系统及方法 Download PDFInfo
- Publication number
- CN101609432A CN101609432A CNA2009100882928A CN200910088292A CN101609432A CN 101609432 A CN101609432 A CN 101609432A CN A2009100882928 A CNA2009100882928 A CN A2009100882928A CN 200910088292 A CN200910088292 A CN 200910088292A CN 101609432 A CN101609432 A CN 101609432A
- Authority
- CN
- China
- Prior art keywords
- cache
- partitions
- buffer memory
- blocks
- cache partitions
- 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 13
- 238000005192 partition Methods 0.000 claims abstract description 203
- 238000007726 management method Methods 0.000 claims description 49
- 238000000151 deposition Methods 0.000 abstract 1
- 230000015572 biosynthetic process Effects 0.000 description 12
- 238000011084 recovery Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000004069 differentiation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种共享缓存管理系统及方法,所述系统包括缓存分区管理模块、缓存分配模块和多个缓存分区;缓存分区,具有缓存空间,用于同应用关联,在存分区对应的应用的负载特征,为每个缓存分区分配对应的缓存替换算法;所述缓存空间中承载所述应用当前访问的数据;缓存分区管理模块,用于根据缓存分配模块,用于以共享缓存池的方式管理所有空闲缓存资源,运用缓存分区对应的缓存替换算法对所述缓存分区的缓存空间进行管理。本发明能够根据应用的负载特征为应用分配对应的缓存替换算法,进而高效使用缓存资源。
Description
技术领域
本发明涉及信息技术领域,特别涉及共享缓存管理系统及方法。
背景技术
缓存是决定存储系统性能的重要因素之一,它利用I/O负载中普遍存在的时空局部性来降低慢速磁盘I/O对系统性能的影响。在网络存储应用模式下,存储系统作为一种共享资源需要同时向多种应用提供存储服务,不同类型的应用通常具有不同的负载特征和性能需求,因而要求存储系统中的缓存管理子系统能够相应提供应用级的缓存管理功能。
具体来说,一方面缓存管理系统能够通过多应用间的缓存资源来达成某种既定系统优化标,该系统优化目标包括:系统整体性能最优、缓存服务质量保证以及基于缓存过滤效应的节能存储和负载均衡等;另一方面,系统要能够根据应用负载特征为应用配置适合的缓存替换算法以优化分配缓存资源的利用率。
现有技术中的缓存管理系统不能有效的支持网络存储这种多应用共享使用模式。以Linux操作系统中的缓存分区管理模块(Linux-MM)为例,它采用基于单一固定的全局缓存替换算法的方式来管理系统中的缓存资源,其缺点在于:(1)不能支持应用级的缓存管理语义,因而无法有效的支持存储系统某种特定的系统优化目标;(2)因为缓存替换算法的性能取决于应用的负载特征,不同的应用往往具有各自不同的负载类型,单一固定的缓存替换算法不能高效使用为应用所分配的缓存资源。
发明内容
为解决上述问题,本发明提供共享缓存管理系统及方法,能够根据应用的负载特征为应用分配对应的缓存替换算法,进而高效使用缓存资源。
本发明公开共享缓存管理系统,所述系统包括缓存分区管理模块、缓存分配模块和多个缓存分区;
所述缓存分区,具有缓存空间,用于同应用关联,在所述缓存空间中承载所述应用当前访问的数据;
所述缓存分区管理模块,用于根据缓存分区对应的应用的负载特征,为每个缓存分区分配对应的缓存替换算法;
所述缓存分配模块,用于以共享缓存池的方式管理所有空闲缓存资源,运用缓存分区对应的缓存替换算法对所述缓存分区的缓存空间进行管理。
所述缓存分配模块对所述缓存分区的缓存空间进行的管理包括:向所述缓存分区分配缓存块和从所述缓存分区回收缓存块。
所述缓存分配模块在向所述缓存分区分配缓存块时进一步用于从所述共享缓存池中为所述缓存分区分配新的缓存块,运用所述缓存分区对应的缓存替换算法将所述新的缓存块添加到所述缓存分区中。
所述缓存分配模块在从所述缓存分区回收缓存块时进一步用于根据缓存分配策略确定被回收的缓存分区以及每个所述缓存分区被回收的缓存块的数量;运用所述缓存分区对应的缓存替换算法从所述缓存分区替换出所述数量的缓存块,将所述缓存块重新置于所述共享缓存池。
所述缓存分配模块还用于在所述共享缓存池的缓存空间小于预设的低临界值时,从所述缓存分区回收缓存块,以使共享缓存池的缓存空间在预设的高临界值和所述低临界值之间。
所述缓存分区管理模块还用于当从所述应用对应的缓存空间查找到应用访问的数据块对应的缓存块时,通过所述缓存分区对应的缓存替换算法更新所述缓存块在所述缓存分区的状态。
本发明还公开了共享缓存管理方法,所述方法包括:
步骤1,多个缓存分区分别同应用关联,在所述缓存空间中承载所述应用当前访问的数据;
步骤2,根据缓存分区对应的应用的负载特征,为每个缓存分区分配对应的缓存替换算法;
步骤3,以共享缓存池的方式管理所有空闲缓存资源,运用缓存分区对应的缓存替换算法对所述缓存分区的缓存空间进行管理。
所述对所述缓存分区的缓存空间进行的管理包括:向所述缓存分区分配缓存块和从所述缓存分区回收缓存块。
所述步骤3中向所述缓存分区分配缓存块进一步为,
步骤91,从所述共享缓存池中为所述缓存分区分配新的缓存块,运用所述缓存分区对应的缓存替换算法将所述新的缓存块添加到所述缓存分区中。
所述步骤3中从所述缓存分区回收缓存块进一步为,
步骤101,根据缓存分配策略确定被回收的缓存分区以及每个所述缓存分区被回收的缓存块的数量;
步骤102,运用所述缓存分区对应的缓存替换算法从所述缓存分区替换出所述数量的缓存块,将所述缓存块重新置于所述共享缓存池。
所述步骤3还包括,
步骤111,在所述共享缓存池的缓存空间小于预设的低临界值时,从所述缓存分区回收缓存块,以使共享缓存池的缓存空间在预设的高临界值和所述低临界值之间。
所述步骤2后还包括,
步骤121,当从所述应用对应的缓存空间查找到应用访问的数据块对应的缓存块时,通过所述缓存分区对应的缓存替换算法更新所述缓存块在所述缓存分区的状态。
本发明的有益效果在于,本发明基于应用的缓存分区自治能够针对具体应用的性能进行优化,自治指本发明中的各缓存分区的缓存空间相互独立且能够根据对应的应用的负载特征采用缓存替换算法进行管理;本发明按需分配与区分回收相结合的缓存分配能够实现基于缓存分配策略的应用级缓存管理语义,区分回收是指本发明从不同缓存分区的缓存空间中回收不等量的缓存资源,且缓存回收方案取决于缓存分配策略,由于采用对缓存资源的区分回收,缓存分配策略能够对各缓存分区的缓存空间大小进行动态调节,进而实现应用级缓存管理语义。
附图说明
图1是本发明的共享缓存管理系统的结构图;
图2是本发明的共享缓存管理系统具体实施方式示意图;
图3是本发明实施例缓存分区添加和更新的示意图;
图4是是本发明实施例缓存分配的示意图;
图5是本发明的共享缓存管理方法流程图。
具体实施方式
下面结合附图,对本发明做进一步的详细描述。
本发明的共享缓存管理系统的结构如图1所示。
系统包括缓存分区管理模块200、缓存分配模块300和多个缓存分区100。
缓存分区100,具有缓存空间,用于同应用关联,在该缓存空间中承载所述应用当前访问的数据。
缓存分区管理模块200,用于根据缓存分区100对应的应用的负载特征,为每个缓存分区100分配对应的缓存替换算法。
在较佳的方案中,缓存分区管理模块200还用于当从应用对应的缓存分区100中查找到应用访问的数据块对应的缓存块时,通过该缓存分区100对应的缓存替换算法更新该缓存块在该缓存分区100的状态。
缓存分配模块300,用于以共享缓存池的方式管理所有空闲缓存资源,运用缓存分区100对应的缓存替换算法对该缓存分区100的缓存空间进行管理。
缓存分配模块300对缓存分区100的缓存空间进行的管理包括:向该缓存分区100分配缓存块和从该缓存分区100回收缓存块。
缓存分配模块300在向缓存分区100分配缓存块时进一步用于从共享缓存池中为该缓存分区100分配新的缓存块,运用该缓存分区100对应的缓存替换算法将该新的缓存块添加到该缓存分区100中。
缓存分配模块300在从缓存分区100回收缓存块时进一步用于根据缓存分配策略确定被回收的缓存分区100以及每个被回收的缓存分区100被回收的缓存块的数量;运用每个被回收的缓存分区100对应的缓存替换算法从该缓存分区100替换出所述数量的缓存块,将该缓存块重新置于共享缓存池。
在较佳的方案中,缓存分配模块300还用于在共享缓存池的缓存空间小于预设的低临界值时,从缓存分区100回收缓存块,以使共享缓存池的缓存空间在预设的高临界值和所述低临界值之间。
本发明系统的一个具体实施方式如图2所示。
系统由缓存分区100、缓存分区管理模块200和缓存分配模块300组成。图2中,I表示缓存空间管理接口,II表示缓存资源分配接口,III表示缓存资源释放接口。
缓存分区100,直接与具体应用关联,每个缓存分区100具有自己独立的缓存空间并为应用提供相应的缓存服务,其中缓存空间中承载着应用当前访问的活跃数据。
缓存分区管理模块200,通过缓存空间管理接口为各缓存分区100中的缓存空间提供基于不同替换算法的缓存管理服务,根据每个缓存分区100具体的应用负载特征选择对应的缓存替换算法,从而提高缓存空间的利用率。
缓存分配模块300,以共享缓存池的方式统一管理系统中的空闲缓存资源,通过缓存资源分配接口为各缓存分区100的缓存空间提供缓存资源。
具体而言,应用在读写缓存分区100的缓存空间过程中按需从共享缓存池中申请缓存资源,新分配的缓存块由该缓存分区100对应的缓存替换算法加入到缓存空间中;当共享缓存池中的空闲缓存资源不足时,缓存分配模块300进行系统缓存资源回收,缓存分配策略决定被回收缓存资源的缓存空间和数量,而缓存分区100对应的缓存替换算法则具体决定应从缓存分区100中替换出的缓存块,该些被回收的缓存资源又通过缓存资源释放接口被重新置于共享缓存池中。
缓存分区100将应用与下层物理存储介质相关联,在两者I/O路径间为应用提供所需的缓存服务以加速应用的I/O性能。
具体来说,缓存分区100通过以下四类功能访问接口来实现缓存服务:
应用I/O接口,处理来自应用的I/O读写请求;
存储I/O接口,向物理存储介质发起I/O读写请求,以更新新加入缓存空间的数据块或同步缓存空间中修改过的数据块;
缓存空间管理接口,向缓存分区管理模块200申请基于某种替换策略的缓存空间管理功能;如向缓存分区100中加入新分配的缓存块,更新缓存分区100中读写命中缓存块的状态,以及从缓存分区100中回收缓存块;其中缓存块的加入/更新操作由I/O线程发起,而缓存块的回收操作则由缓存分区100的缓存资源回收线程发起。
缓存资源分配/释放接口,同缓存分配模块300进行交互以分配和释放空闲缓存资源。
缓存分区100是本发明的核心枢纽所在,它将应用、存储介质、缓存分区管理模块200和缓存分配模块300四种功能实体有机结合在一起。
现有技术中,缓存替换算法包括LFU、LRU、FBR、LRU-K、LRFU、2Q、ARC、LIRS、MQ等多种,但是,没有一种缓存替换算法能够高效的适用于各种类型的应用,现有技术中的缓存替换算法只能是以牺牲对特定应用优化为代价的。
本发明中缓存分区管理模块200根据缓存分区100对应的应用的负载特征,为每个缓存分区100分配对应的缓存替换算法,其中缓存替换算法为现有技术中的一种缓存替换算法。缓存分区管理模块200根据缓存分区100自身的负载特征从公知的缓存替换算法中选择适合于该应用的一种缓存替换算法,作为该应用对应的缓存替换算法。
例如,算法LFU对应于应用负载特征为二级缓存的缓存分区;算法LRU对应于应用负载特征为PC(个人计算机)负载的缓存分区;算法2Q对于应用负载特征为数据库负载,例如MySQL,的缓存分区。
当系统回收缓存资源时,缓存替换算法还负责决定应从缓存分区中具体回收哪些缓存块。为了提高缓存资源的利用率,缓存替换算法每次从缓存分区中选择替换它认为最没有价值的缓存块,不同的缓存替换算法有各自不同的缓存块评价标准,评价标准包括数据访问热度、数据访问频度、失效开销以及数据访问模式等。应用的I/O性能取决于缓存替换算法的效率,而缓存替换算法的效率又取决于应用的负载特征。本发明的系统采用的应用级分区自治机制通过为不同应用配置各自适合的缓存替换算法来实现对具体应用的优化,该特点适合于网络存储系统中多种负载类型不同的应用共享存储。
缓存分配模块300以共享缓存池的方式统一管理系统中的空闲缓存资源。当系统处于初始状态时,共享缓存池中存放了系统中所有的缓存资源;随着系统的运行,各应用按需从共享缓存池中分配缓存资源;当共享缓存池中空闲缓存块数第一次不足预设的低临界值后,缓存分配模块300相应发起第一轮的缓存回收操作,至此系统进入了饱和状态。
在系统进入饱和状态后,进行周期性的缓存资源回收,能够使得缓存池中的空闲缓存块数始终保持在高临界值和低临值之间。作用在于:能够避免I/O线程在读写缓存时因没有空闲缓存资源而被迫挂起等待,称之为缓存分配阻塞;配合缓存分配策略实现应用级的缓存管理语义。
缓存分配策略决定了缓存回收方案,它在按需分配的基础上通过基于缓存分配策略的区分缓存资源回收来控制各缓存分区100的缓存空间大小的动态调节,只有分配的缓存块数超过其被回收块数的缓存分区100的缓存空间才能得以扩张。在给定缓存替换算法的条件下,缓存空间的大小决定了应用的性能,因此本系统所采用的按需分配和区分回收相结合的缓存分配机制可以有效实现应用级的缓存管理。
实施例
以下以一个具体应用为例,其对应的缓存替换算法为2Q,对本发明的系统进行详细说明。
2Q是现有技术中一种适合负数据库负载的高效缓存替换算法。在2Q算法中,q1队列是用于识别负载中的活跃数据,q1队列是按照FIFO方式进行管理,一旦数据访问在q1队列中命中则相应将缓存数据迁移至qm队列;qm队列是以LRU方式管理当前负载中识别出的活跃数据,此处非活跃数据是指相邻访问间距较大或者仅访问一次的数据块,活跃数据是频繁多次访问且相邻访问间距相对较小的数据。由于q1队列在功能上只是为了能够快速区分出负载中的非活跃数据,为了降低q1队列所占缓存容量比例,q1队列被划分为q1.in和q1.out两部分,其中前者q1.in队列在缓存中,q1.out队列只是记录数据块ID而并不保存数据内容本身,q1.in队列长度限制通常设为缓存总容量的很小一部分,如1/10。
实施例中缓存分区添加和更新如图3所示。此时应用需要读取存储介质中数据块表示为N。
步骤S301,应用的I/O线程首先通过应用I/O接口在缓存分区100中查找数据块N,如果数据块N当前不在缓存分区100的缓存空间中,则执行步骤S304,进行缓存失效处理;否则,执行步骤S302。
步骤S302,数据块N在缓存分区100的缓存空间中命中且对应于缓存空间中的缓存块n,I/O线程通过2Q算法更新缓存块n在缓存空间中的状态,执行步骤S303。
步骤S303,缓存分区100的缓存空间中各缓存块间的状态关系是按照2Q算法逻辑进行组织维护的,如果缓存块n当前在qm链表中,则该缓存块n被移至qm链表头;否则不做处理;在完成缓存块的状态更新后,I/O线程执行步骤S308读取缓存数据。
步骤S304,由于数据块N不在缓存分区100的缓存空间中,I/O线程首先从缓存分配模块300为N分配新的缓存块n,执行步骤S305。
步骤S305,I/O线程通过存储I/O接口从物理存储介质中读取数据块N的内容并更新至新分配的缓存块n。
步骤S306,I/O线程通过2Q算法将更新后的缓存块n,加入缓存分区100的缓存空间中。
步骤S307,如果数据块N记录在q1.out队列中,相应的缓存块n,被置于q2链表头,否则被置于q1.in队列首。
步骤S308,I/O线程从缓存块n中读取数据块N的内容。
在上面例子中,给出了缓存替换算法在I/O操作中对缓存空间的管理,即缓存块的更新(步骤S302和S303)和加入(步骤S306和步骤S307)两种操作。
实施例中缓存分配如图4所示。系统中包括两个缓存分区100,对应的缓存替换算法为2Q和LRU。
步骤S401,I/O线程通过缓存分配接口从共享缓存池中申请空闲缓存块。
步骤S402,在当前缓存池中的空闲资源不足低临界值(lowmark_nr)时,I/O线程唤醒系统资源回收线程(swapd)进行新一轮的缓存回收操作。
步骤S403,swapd线程首先根据当前共享缓存池中所剩缓存块的数量,表示为free_nr,计算本轮所需回收的缓存块的数量。
一个具体计算方法为回收的缓存块数量,表示为target_nr,target_nr=highmark_nr-free_nr,highmark_nr为高临界值。但是,本发明中确定回收的缓存块的数量的方法不限于此。
所述当系统进入饱和状态后,共享缓存池中的空闲缓存资源始终限制在高临界值和低临界值之间,基于高临界值和低临界值的批量缓存资源回收可以避免因频繁触发swapd线程而导致高开销低效率的缓存回收操作。swapd线程接着通过缓存回收策略来决定缓存回收方案。
步骤S404,缓存分配策略根据当前系统负载以及各缓存分区100所占缓存资源比例以及缓存分配策略所基于的缓存区分服务语义来决定应如何调整各缓存分区100缓存空间的大小,并相应将这target_nr个回收缓存块分配至不同的缓存分区100从而生成新一轮的缓存回收方案。
例如,一种能够提供保证相对优先级缓存区分服务语义的全局缓存分配策略WT-GAP(weight-based global cache allocation policy),该策略使能系统为共享存储的各应用提供基于权重的动态缓存区分服务。具体而言,权重相对更高的应用在系统运行过程可以获得优于权重相对较低应用的缓存服务,这里缓存服务的优劣以应用实际分配所得缓存容量来衡量。
WT-GAP策略为每个缓存分区定义一个静态优先级(prio),其取值范围为[1,8],根据应用的重要性或缓存效用等因素相应配置应用优先级。WT-GAP策略在系统资源回收时,根据每个缓存分区的优先级、当前缓存资源占有率以及最近负载强度三种因素在线计算该缓存分区的资源回收友好值(nice),并根据上述动态计算得到的nice值按比例从各缓存分区中回收一定数量的空闲缓存资源,其中当前nice值越高的缓存分区所回收的缓存资源就越多。原则上,优先级越高的应用在系统运行过中所拥有的缓存资源就越多。
下面给出了WT-GAP策略的算法流程,
步骤4041,更新当前WT-GAP策略管理域内每个缓存分区的回收nice值,将nice值非0的缓存分区加入资源回收链表(rlc_list)并统计回收链表中缓存分区的nice值得累加和(tot_nice);
步骤4042,从回收链表中找出那些可回收资源不足的缓存分区,其判断依据为分区中的缓存容量是否小于其按nice值比例回收数,对于那些资源不足的缓存分区,标记回收其当前所有的缓存资源。并相应更新tot_nice值和步骤S403中target_nr,最后将该缓存分区从回收链表中删除;
步骤4043,对于每一个在回收链表中的缓存分区,按比例标记所需回收的缓存资源数。
步骤S405,swapd线程同时唤醒所有需要进行回收的缓存分区100的分区缓存回收线程(reapd),reapd完成对单个缓存分区100的资源回收。
步骤S406,每个reapd线程通过缓存空间管理接口向缓存替换算法提出缓存块回收申请。
步骤S407,缓存替换算法相应从缓存分区100的缓存空间中替换出指定数目的缓存块并通过缓存资源释放接口将被替换的缓存块重新置于共享缓存池中。
步骤S408,当所有唤醒的reapd线程都完成缓存回收操作后,swapd线程检查当前空闲缓存块数是否高于低临界值,如果高于则终止本轮回收操作;否则跳回至步骤S403开始新一轮的回收操作。
由上可知,本系统所采用的缓存分配不仅可以避免系统空闲缓存资源的闲置,同时其所采用的异步回收操作可以有效避免缓存分配阻塞,在上述实施例中,I/O线程在步骤S402步唤醒swapd线程后继续从共享缓存池中获取资源,由于只有空闲缓存块为零时,I/O线程才被挂起等待,而通常缓存回收操作相对于I/O操作要快很多,因此上述情况只有在极端情况下才会发生。此外,本发明的系统将缓存分配策略与缓存回收策略相分离,不同的缓存分配策略能够实现不同的缓存管理语义,如应用服务质量保证、应用间的负载均衡、应用优先级等。从而使能本系统可以灵活配置不同的缓存分配策略以满足存储系统具体应用场景的需求。
本发明的共享缓存管理方法流程如图5所示。
步骤S510,多个缓存分区分别同应用关联,在所述缓存空间中承载所述应用当前访问的数据。
步骤S520,根据缓存分区对应的应用的负载特征,为每个缓存分区分配对应的缓存替换算法。
步骤S530,以共享缓存池的方式管理所有空闲缓存资源,运用缓存分区对应的缓存替换算法对所述缓存分区的缓存空间进行管理。
一较佳的实施方式
所述对所述缓存分区的缓存空间进行的管理包括:向所述缓存分区分配缓存块和从所述缓存分区回收缓存块。
其中,向所述缓存分区分配缓存块进一步为从所述共享缓存池中为所述缓存分区分配新的缓存块,运用所述缓存分区对应的缓存替换算法将所述新的缓存块添加到所述缓存分区中。
其中,从所述缓存分区回收缓存块进一步为根据缓存分配策略确定被回收的缓存分区以及每个所述缓存分区被回收的缓存块的数量;运用所述缓存分区对应的缓存替换算法从所述缓存分区替换出所述数量的缓存块,将所述缓存块重新置于所述共享缓存池。
一较佳的实施方式
所述步骤S530还包括,
步骤111,在所述共享缓存池的缓存空间小于预设的低临界值时,从所述缓存分区回收缓存块,以使共享缓存池的缓存空间在预设的高临界值和所述低临界值之间。
一较佳的实施方式
所述步骤S520后还包括,
步骤121,当从所述应用对应的缓存空间查找到应用访问的数据块对应的缓存块时,通过所述缓存分区对应的缓存替换算法更新所述缓存块在所述缓存分区的状态。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。
Claims (12)
1.一种共享缓存管理系统,其特征在于,所述系统包括缓存分区管理模块、缓存分配模块和多个缓存分区;
所述缓存分区,具有缓存空间,用于同应用关联,在所述缓存空间中承载所述应用当前访问的数据;
所述缓存分区管理模块,用于根据缓存分区对应的应用的负载特征,为每个缓存分区分配对应的缓存替换算法;
所述缓存分配模块,用于以共享缓存池的方式管理所有空闲缓存资源,运用缓存分区对应的缓存替换算法对所述缓存分区的缓存空间进行管理。
2.如权利要求1所述的共享缓存管理系统,其特征在于,
所述缓存分配模块对所述缓存分区的缓存空间进行的管理包括:向所述缓存分区分配缓存块和从所述缓存分区回收缓存块。
3.如权利要求2所述的共享缓存管理系统,其特征在于,
所述缓存分配模块在向所述缓存分区分配缓存块时进一步用于从所述共享缓存池中为所述缓存分区分配新的缓存块,运用所述缓存分区对应的缓存替换算法将所述新的缓存块添加到所述缓存分区中。
4.如权利要求2所述的共享缓存管理系统,其特征在于,
所述缓存分配模块在从所述缓存分区回收缓存块时进一步用于根据缓存分配策略确定被回收的缓存分区以及每个所述缓存分区被回收的缓存块的数量;运用所述缓存分区对应的缓存替换算法从所述缓存分区替换出所述数量的缓存块,将所述缓存块重新置于所述共享缓存池。
5.如权利要求4所述的共享缓存管理系统,其特征在于,
所述缓存分配模块还用于在所述共享缓存池的缓存空间小于预设的低临界值时,从所述缓存分区回收缓存块,以使共享缓存池的缓存空间在预设的高临界值和所述低临界值之间。
6.如权利要求2所述的共享缓存管理系统,其特征在于,
所述缓存分区管理模块还用于当从所述应用对应的缓存空间查找到应用访问的数据块对应的缓存块时,通过所述缓存分区对应的缓存替换算法更新所述缓存块在所述缓存分区的状态。
7.一种共享缓存管理方法,其特征在于,所述方法包括:
步骤1,多个缓存分区分别同应用关联,在所述缓存空间中承载所述应用当前访问的数据;
步骤2,根据缓存分区对应的应用的负载特征,为每个缓存分区分配对应的缓存替换算法;
步骤3,以共享缓存池的方式管理所有空闲缓存资源,运用缓存分区对应的缓存替换算法对所述缓存分区的缓存空间进行管理。
8.如权利要求7所述的共享缓存管理方法,其特征在于,
所述对所述缓存分区的缓存空间进行的管理包括:向所述缓存分区分配缓存块和从所述缓存分区回收缓存块。
9.如权利要求8所述的共享缓存管理方法,其特征在于,
所述步骤3中向所述缓存分区分配缓存块进一步为,
步骤91,从所述共享缓存池中为所述缓存分区分配新的缓存块,运用所述缓存分区对应的缓存替换算法将所述新的缓存块添加到所述缓存分区中。
10.如权利要求8所述的共享缓存管理方法,其特征在于,
所述步骤3中从所述缓存分区回收缓存块进一步为,
步骤101,根据缓存分配策略确定被回收的缓存分区以及每个所述缓存分区被回收的缓存块的数量;
步骤102,运用所述缓存分区对应的缓存替换算法从所述缓存分区替换出所述数量的缓存块,将所述缓存块重新置于所述共享缓存池。
11.如权利要求10所述的共享缓存管理方法,其特征在于,
所述步骤3还包括,
步骤111,在所述共享缓存池的缓存空间小于预设的低临界值时,从所述缓存分区回收缓存块,以使共享缓存池的缓存空间在预设的高临界值和所述低临界值之间。
12.如权利要求9所述的共享缓存管理方法,其特征在于,
所述步骤2后还包括,
步骤121,当从所述应用对应的缓存空间查找到应用访问的数据块对应的缓存块时,通过所述缓存分区对应的缓存替换算法更新所述缓存块在所述缓存分区的状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100882928A CN101609432B (zh) | 2009-07-13 | 2009-07-13 | 共享缓存管理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100882928A CN101609432B (zh) | 2009-07-13 | 2009-07-13 | 共享缓存管理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101609432A true CN101609432A (zh) | 2009-12-23 |
CN101609432B CN101609432B (zh) | 2011-04-13 |
Family
ID=41483191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100882928A Expired - Fee Related CN101609432B (zh) | 2009-07-13 | 2009-07-13 | 共享缓存管理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101609432B (zh) |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853238A (zh) * | 2010-06-01 | 2010-10-06 | 华为技术有限公司 | 通信处理器间消息通信方法和系统 |
CN101866322A (zh) * | 2010-06-13 | 2010-10-20 | 北京北大众志微系统科技有限责任公司 | 一种高速缓存管理策略的调整方法及系统 |
CN101894078A (zh) * | 2010-06-13 | 2010-11-24 | 北京北大众志微系统科技有限责任公司 | 一种高速缓存管理策略的调整方法及系统 |
CN102063386A (zh) * | 2010-12-17 | 2011-05-18 | 曙光信息产业(北京)有限公司 | 一种单载体多目标的缓存系统的缓存管理方法 |
CN102207830A (zh) * | 2011-05-27 | 2011-10-05 | 杭州宏杉科技有限公司 | 一种缓存动态分配管理方法及装置 |
CN102262512A (zh) * | 2011-07-21 | 2011-11-30 | 浪潮(北京)电子信息产业有限公司 | 一种实现磁盘阵列缓存分区管理的系统、装置及方法 |
CN102508619A (zh) * | 2011-11-21 | 2012-06-20 | 成都市华为赛门铁克科技有限公司 | 存储系统服务质量控制方法、系统和存储系统 |
WO2012089144A1 (zh) * | 2010-12-30 | 2012-07-05 | 成都市华为赛门铁克科技有限公司 | 一种缓存分配方法及装置 |
CN103246616A (zh) * | 2013-05-24 | 2013-08-14 | 浪潮电子信息产业股份有限公司 | 一种长短周期访问频度的全局共享缓存替换方法 |
CN103279429A (zh) * | 2013-05-24 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种应用感知的分布式全局共享缓存分区方法 |
CN103488638A (zh) * | 2012-06-11 | 2014-01-01 | 北京大学 | 一种结果缓存替换的优化方法 |
CN103634231A (zh) * | 2013-12-02 | 2014-03-12 | 江苏大学 | 一种基于内容流行度的ccn缓存分区置换方法 |
CN103699497A (zh) * | 2013-12-19 | 2014-04-02 | 京信通信系统(中国)有限公司 | 一种缓存分配方法及装置 |
CN103927261A (zh) * | 2013-01-15 | 2014-07-16 | 国际商业机器公司 | 用于精简供应存储的高效分配和回收的方法和系统 |
WO2014173356A1 (zh) * | 2013-08-26 | 2014-10-30 | 中兴通讯股份有限公司 | 缓存空间分配控制方法、装置及计算机存储介质 |
CN104272278A (zh) * | 2012-05-08 | 2015-01-07 | 高通股份有限公司 | 多线程处理器中的共享经分割高速缓冲存储器中的每线程高速缓冲存储器行分配机制 |
CN104516828A (zh) * | 2013-09-27 | 2015-04-15 | 伊姆西公司 | 用于移除缓存数据的方法和设备 |
CN106649139A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇虎科技有限公司 | 一种基于多个缓存的数据淘汰方法及装置 |
CN106681830A (zh) * | 2016-12-21 | 2017-05-17 | 深圳先进技术研究院 | 一种任务缓存空间监测方法和装置 |
CN106843753A (zh) * | 2016-12-30 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种分布式存储中协议使用缓存的方法及装置 |
CN106940660A (zh) * | 2016-01-05 | 2017-07-11 | 阿里巴巴集团控股有限公司 | 缓存的实现的方法和装置 |
CN107704401A (zh) * | 2017-11-02 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种存储系统中缓存数据的置换方法、系统及存储系统 |
CN107977189A (zh) * | 2010-09-23 | 2018-05-01 | 马维尔以色列(M.I.S.L.)有限公司 | 低等待时间先进先出(fifo)缓存 |
CN108009245A (zh) * | 2017-11-30 | 2018-05-08 | 平安养老保险股份有限公司 | 产品价值获取方法、装置、计算机设备及存储介质 |
CN108959570A (zh) * | 2018-07-04 | 2018-12-07 | 广东优世联合控股集团股份有限公司 | 针对大规模分布式系统的基于数据温度的数据更新方法 |
CN108984323A (zh) * | 2018-07-13 | 2018-12-11 | 上海联影医疗科技有限公司 | 一种共享存储空间的调度方法及系统 |
CN109324761A (zh) * | 2018-10-09 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种数据缓存方法、装置、设备及存储介质 |
CN110557432A (zh) * | 2019-07-26 | 2019-12-10 | 苏州浪潮智能科技有限公司 | 一种缓存池均衡优化方法、系统、终端及存储介质 |
US10805421B2 (en) * | 2018-04-03 | 2020-10-13 | Citrix Systems, Inc. | Data caching for cloud services |
CN112597075A (zh) * | 2020-12-28 | 2021-04-02 | 海光信息技术股份有限公司 | 用于路由器的缓存分配方法、片上网络及电子设备 |
CN112889038A (zh) * | 2019-02-13 | 2021-06-01 | 谷歌有限责任公司 | 系统级缓存 |
CN114489551A (zh) * | 2022-02-09 | 2022-05-13 | 广东乐心医疗电子股份有限公司 | 数据显示方法、装置及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1209714C (zh) * | 2002-03-12 | 2005-07-06 | 中国科学院计算技术研究所 | 基于网络存储和可扩展体系结构的服务器系统及方法 |
-
2009
- 2009-07-13 CN CN2009100882928A patent/CN101609432B/zh not_active Expired - Fee Related
Cited By (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853238A (zh) * | 2010-06-01 | 2010-10-06 | 华为技术有限公司 | 通信处理器间消息通信方法和系统 |
CN101866322A (zh) * | 2010-06-13 | 2010-10-20 | 北京北大众志微系统科技有限责任公司 | 一种高速缓存管理策略的调整方法及系统 |
CN101894078A (zh) * | 2010-06-13 | 2010-11-24 | 北京北大众志微系统科技有限责任公司 | 一种高速缓存管理策略的调整方法及系统 |
CN107977189A (zh) * | 2010-09-23 | 2018-05-01 | 马维尔以色列(M.I.S.L.)有限公司 | 低等待时间先进先出(fifo)缓存 |
CN102063386A (zh) * | 2010-12-17 | 2011-05-18 | 曙光信息产业(北京)有限公司 | 一种单载体多目标的缓存系统的缓存管理方法 |
CN102063386B (zh) * | 2010-12-17 | 2014-07-23 | 曙光信息产业(北京)有限公司 | 一种单载体多目标的缓存系统的缓存管理方法 |
WO2012089144A1 (zh) * | 2010-12-30 | 2012-07-05 | 成都市华为赛门铁克科技有限公司 | 一种缓存分配方法及装置 |
CN102207830A (zh) * | 2011-05-27 | 2011-10-05 | 杭州宏杉科技有限公司 | 一种缓存动态分配管理方法及装置 |
CN102207830B (zh) * | 2011-05-27 | 2013-06-12 | 杭州宏杉科技有限公司 | 一种缓存动态分配管理方法及装置 |
CN102262512A (zh) * | 2011-07-21 | 2011-11-30 | 浪潮(北京)电子信息产业有限公司 | 一种实现磁盘阵列缓存分区管理的系统、装置及方法 |
WO2013075560A1 (zh) * | 2011-11-21 | 2013-05-30 | 华为数字技术(成都)有限公司 | 存储系统服务质量控制方法、系统和存储系统 |
CN102508619A (zh) * | 2011-11-21 | 2012-06-20 | 成都市华为赛门铁克科技有限公司 | 存储系统服务质量控制方法、系统和存储系统 |
US8909868B2 (en) | 2011-11-21 | 2014-12-09 | Huawei Technologies Co., Ltd. | Quality of service control method for storage system |
CN102508619B (zh) * | 2011-11-21 | 2014-09-17 | 华为数字技术(成都)有限公司 | 存储系统服务质量控制方法、系统和存储系统 |
US9824013B2 (en) | 2012-05-08 | 2017-11-21 | Qualcomm Incorporated | Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors |
CN104272278A (zh) * | 2012-05-08 | 2015-01-07 | 高通股份有限公司 | 多线程处理器中的共享经分割高速缓冲存储器中的每线程高速缓冲存储器行分配机制 |
CN104272278B (zh) * | 2012-05-08 | 2017-05-24 | 高通股份有限公司 | 用于更新共享高速缓冲存储器的方法和多线程处理系统 |
CN103488638A (zh) * | 2012-06-11 | 2014-01-01 | 北京大学 | 一种结果缓存替换的优化方法 |
CN103488638B (zh) * | 2012-06-11 | 2016-12-07 | 北京大学 | 一种结果缓存替换的优化方法 |
CN103927261A (zh) * | 2013-01-15 | 2014-07-16 | 国际商业机器公司 | 用于精简供应存储的高效分配和回收的方法和系统 |
US9454473B2 (en) | 2013-01-15 | 2016-09-27 | International Business Machines Corporation | Efficient allocation and reclamation of thin-provisioned storage |
CN103927261B (zh) * | 2013-01-15 | 2017-01-04 | 国际商业机器公司 | 用于精简供应存储的高效分配和回收的方法和系统 |
CN103246616B (zh) * | 2013-05-24 | 2017-09-26 | 浪潮电子信息产业股份有限公司 | 一种长短周期访问频度的全局共享缓存替换方法 |
CN103279429A (zh) * | 2013-05-24 | 2013-09-04 | 浪潮电子信息产业股份有限公司 | 一种应用感知的分布式全局共享缓存分区方法 |
CN103246616A (zh) * | 2013-05-24 | 2013-08-14 | 浪潮电子信息产业股份有限公司 | 一种长短周期访问频度的全局共享缓存替换方法 |
WO2014173356A1 (zh) * | 2013-08-26 | 2014-10-30 | 中兴通讯股份有限公司 | 缓存空间分配控制方法、装置及计算机存储介质 |
CN104516828A (zh) * | 2013-09-27 | 2015-04-15 | 伊姆西公司 | 用于移除缓存数据的方法和设备 |
CN104516828B (zh) * | 2013-09-27 | 2018-01-09 | 伊姆西公司 | 用于移除缓存数据的方法和设备 |
CN103634231A (zh) * | 2013-12-02 | 2014-03-12 | 江苏大学 | 一种基于内容流行度的ccn缓存分区置换方法 |
CN103699497A (zh) * | 2013-12-19 | 2014-04-02 | 京信通信系统(中国)有限公司 | 一种缓存分配方法及装置 |
CN106940660A (zh) * | 2016-01-05 | 2017-07-11 | 阿里巴巴集团控股有限公司 | 缓存的实现的方法和装置 |
CN106681830A (zh) * | 2016-12-21 | 2017-05-17 | 深圳先进技术研究院 | 一种任务缓存空间监测方法和装置 |
CN106681830B (zh) * | 2016-12-21 | 2019-11-29 | 深圳先进技术研究院 | 一种任务缓存空间监测方法和装置 |
CN106649139A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇虎科技有限公司 | 一种基于多个缓存的数据淘汰方法及装置 |
CN106649139B (zh) * | 2016-12-29 | 2020-01-10 | 北京奇虎科技有限公司 | 一种基于多个缓存的数据淘汰方法及装置 |
CN106843753A (zh) * | 2016-12-30 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种分布式存储中协议使用缓存的方法及装置 |
CN107704401A (zh) * | 2017-11-02 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种存储系统中缓存数据的置换方法、系统及存储系统 |
CN108009245B (zh) * | 2017-11-30 | 2021-02-26 | 平安养老保险股份有限公司 | 产品价值获取方法、装置、计算机设备及存储介质 |
CN108009245A (zh) * | 2017-11-30 | 2018-05-08 | 平安养老保险股份有限公司 | 产品价值获取方法、装置、计算机设备及存储介质 |
US11716406B2 (en) | 2018-04-03 | 2023-08-01 | Citrix Systems, Inc. | Data caching for cloud services |
US11356531B2 (en) | 2018-04-03 | 2022-06-07 | Citrix Systems, Inc. | Data caching for cloud services |
US10805421B2 (en) * | 2018-04-03 | 2020-10-13 | Citrix Systems, Inc. | Data caching for cloud services |
CN108959570A (zh) * | 2018-07-04 | 2018-12-07 | 广东优世联合控股集团股份有限公司 | 针对大规模分布式系统的基于数据温度的数据更新方法 |
CN108984323A (zh) * | 2018-07-13 | 2018-12-11 | 上海联影医疗科技有限公司 | 一种共享存储空间的调度方法及系统 |
CN108984323B (zh) * | 2018-07-13 | 2022-04-01 | 上海联影医疗科技股份有限公司 | 一种共享存储空间的调度方法及系统 |
CN109324761A (zh) * | 2018-10-09 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种数据缓存方法、装置、设备及存储介质 |
CN112889038A (zh) * | 2019-02-13 | 2021-06-01 | 谷歌有限责任公司 | 系统级缓存 |
CN112889038B (zh) * | 2019-02-13 | 2024-03-15 | 谷歌有限责任公司 | 用于分配缓存资源的方法和系统 |
CN110557432B (zh) * | 2019-07-26 | 2022-04-26 | 苏州浪潮智能科技有限公司 | 一种缓存池均衡优化方法、系统、终端及存储介质 |
CN110557432A (zh) * | 2019-07-26 | 2019-12-10 | 苏州浪潮智能科技有限公司 | 一种缓存池均衡优化方法、系统、终端及存储介质 |
CN112597075A (zh) * | 2020-12-28 | 2021-04-02 | 海光信息技术股份有限公司 | 用于路由器的缓存分配方法、片上网络及电子设备 |
CN112597075B (zh) * | 2020-12-28 | 2023-02-17 | 成都海光集成电路设计有限公司 | 用于路由器的缓存分配方法、片上网络及电子设备 |
CN114489551A (zh) * | 2022-02-09 | 2022-05-13 | 广东乐心医疗电子股份有限公司 | 数据显示方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101609432B (zh) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101609432B (zh) | 共享缓存管理系统及方法 | |
CN104915151B (zh) | 多虚拟机系统中一种主动共享的内存超量分配方法 | |
CN110134514B (zh) | 基于异构内存的可扩展内存对象存储系统 | |
CN100399301C (zh) | 大容量存储设备和用于动态管理大容量存储设备的方法 | |
CN107193646B (zh) | 一种基于混合主存架构的高效动态页面调度方法 | |
JP4209906B2 (ja) | 低消費電力メモリ管理方法及びその方法を用いた計算機 | |
CN105095094B (zh) | 内存管理方法和设备 | |
US8307369B2 (en) | Power control method for virtual machine and virtual computer system | |
CN103067425B (zh) | 虚拟机创建方法、虚拟机管理系统及相关设备 | |
CN110058822B (zh) | 一种磁盘阵列横向拓展方法 | |
TWI509519B (zh) | 維持公平和秩序的資源管理子系統 | |
CN110058932A (zh) | 一种用于数据流驱动计算的存储方法和存储系统 | |
WO2019085769A1 (zh) | 一种数据分层存储、分层查询方法及装置 | |
Zhou et al. | Mocgraph: Scalable distributed graph processing using message online computing | |
CN101373445B (zh) | 一种内存调度方法及装置 | |
CN103095805A (zh) | 一种对数据进行智能分层管理的云存储系统 | |
CN1147648A (zh) | 数据存储装置及存储方法 | |
JP2005196602A (ja) | 無共有型データベース管理システムにおけるシステム構成変更方法 | |
US7275072B2 (en) | Data processing system and method with data sharing for the same | |
CN113778662B (zh) | 内存回收方法及装置 | |
CN110968266B (zh) | 一种基于热度的存储管理方法及系统 | |
CN105630413B (zh) | 一种磁盘数据的同步回写方法 | |
CN103176845A (zh) | 一种虚拟机部署方法、系统和装置 | |
CN103095788A (zh) | 一种基于网络拓扑的云资源调度策略 | |
CN102262512A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110413 |
|
CF01 | Termination of patent right due to non-payment of annual fee |