一种高效利用存储空间的自适应自组织塔式缓存方法

文档序号:6384166阅读:174来源:国知局
专利名称:一种高效利用存储空间的自适应自组织塔式缓存方法
技术领域
本发明属于计算机存储技术领域,涉及一种缓存方法,具体涉及一种合理分配和高效利用存储空间的自适应自组织塔式缓存方法。
背景技术
对于流行的异构系统而言,缓存是缓解客户端和服务端速度差异的一种普遍采用的技术,如图1所示,其原理就是把从数据中心获取的数据发给客户端的同时,把它在服务端(或专门的缓存服务上)的内存中缓存起来,当接收到符合特征的请求后,直接从缓存中取出数据返回给客户端,避免再次进行检索,以高速地响应用户的请求。但是单一的缓存不能很好地利用内存空间。以缓存数据列表为例,假设缓存有100M空间,缓存100个列表数据,如果列表数据平均大于1M,显然会造成空间不足的问题;如果列表数据平均小于1M,则缓存空间没有充分利用。这种情况下,通常的做法是不指定能缓存数据的个数,按数据的大小来缓存数据,这为缓存的管理带来难度。在存储领域,多级缓存也是一种成熟的技术,它主要是利用不同的物理介质的速度差异特性而构建,将使用最频繁的数据或指令存储在最快的缓存中,以此来获取系统整体响应速度的提升。另一种是基于不同的数据而构建不同的缓存,以方便管理,如发明专利“基于数据内容的三维空间数据自适应多级缓存系统”(专利号200910063371. 3)所述。但因数据内容大小不一、尺寸难以估计,现有的多级缓存方法并不能充分利用存储空间。

发明内容
本发明的目的在于针对上述问题,提出一种高效利用存储空间的自适应自组织塔式缓存方法,可以自动根据数据自身的尺寸选择合适的缓存,并通过自动调节缓存的容量来最大化缓存的命中率,具有自适应性和自组织性。本发明采用的是多级缓存,多级缓存是指按待存数据的尺寸为阀值来分级,各级缓存只能保存尺寸在一定范围内的数据,缓存的层级(缓存的个数)没有限制,缓存数据的内容不加区分;这样使有限的空间能缓存更多的数据,达到空间利用的最大化。具体来说,本发明采用的技术方案是—种自适应自组织塔式缓存方法,其步骤包括I)在缓存服务器上建立以数据尺寸为阀值的多级缓存容器,各级缓存容器串联成一个数组,构成塔式缓存结构;2)所述缓存服务器从数据中心接收数据,根据接收的数据的大小自动选择合适的缓存容器进行存储;3)在保持存储空间容量总量不变的前提下,根据各级缓存容器在指定时间段内的命中率动态调节各级缓存容器的容量值,使命中率越高的缓存容器的容量越大。进一步地,本发明可以根据缓存的点击率来设定各级缓存容器的访问优先级,点击率越高优先级越高,这样在访问缓存数据时,就可以按优先级为序来遍历各级缓存容器,从概率上缩短在缓存中查找的时间,使查询缓存的效率最大化。如果缓存的总容量很大,缓存的效率成瓶颈时,可以考虑运用此改进方案。上面所描述的缓存结构可以看成是由数据的尺寸为阀值的一维结构对外提供统一的数据获取接口,隐藏数据存储实现细节。进一步的,本发明可以在以数据尺寸为阀值的多级缓存容器基础上构建N维缓存结构,其中N > 2,并对外隐藏数据存储的细节,提供统一的访问接口。比如可以在此基础上构建二维的结构,如将从数据中心获取数据的查询时间作为另一个阀值构建二维结构,查询时间越长的数据在缓存中保留的时间也越长。同理可以同样的原理构建三维,四维甚至更多维的结构。本发明所述的塔式是指各级缓存的容量按命中率成比例分配,命中率越高,缓存的数据个数越多。本发明所述的自适应有三个方面的含义一是缓存数据时,自动根据数据自身的尺寸选择合适的缓存,保证一个新数据只能进一个缓存;二是当缓存的容量达到上限时,自动将最近最少访问的数据清除出缓存;三是从缓存中获取数据时,自动判断数据保存的位置(数据保存在哪一级缓存中),提供统一的访问接口,对用户隐藏细节。本发明所述的自组织是指各级缓存的容量可以动态进行调节,根据实时采集到的命中率,在一定的触发条件下,保证缓存空间总量不变的前提下,使各级缓存容量调节到最佳状态,以使整个缓存有最大的命中率。本发明的的自适应自组织塔式缓存方法,可以在同质存储介质、同质数据的前提下,自动根据数据自身的尺寸选择合适的缓存,并通过自动调节缓存的容量来最大化缓存的命中率,具有自适应性自组织性,对外提供统一的访问接口,可以实现对存储空间的高效利用。


图1是基于缓存技术的数据调用示意图;图2是实施例中塔式缓存结构示意图;图3是实施例中将从数据中心获取的数据添加到缓存的流程图;图4是实施例中从缓存中获取数据的流程图;图5是实施例中调整各级缓存容量大小的流程图。
具体实施例方式下面通过具体实施例,并配合附图,对本发明做进一步的说明。图2是本发明的塔式缓存的结构示意图,将大小不等的数据按其大小分别存放在对应的缓存中,对外提供统一的访问接口,每一级缓存的容量可以自动调节。塔式缓存数据结构由一系列相互关联的缓存容器构成,每一个容器能容纳的数据的尺寸,以及数据的个数构成塔状。可以在配置文件中设定各级缓存容器的存储策略包括a)缓存容器(Container):存储数据的容器;b)存储层级(Level):结构中包含的缓存容器的个数;c)容器阀值(Limit):每一级容器能存储数据大小的上限和下限容器阀值上界(LimitUp):每一级容器能存储数据大小的上限,同时是下一级缓存的下界;容器阀值下界(LimitDown):每一级容器能存储数据大小的下限,同时是上一级缓存的上界;d)容器容量(Size):每一级容器能存储数据的个数。上述缓存结构是一种自适应的存储结构。当缓存服务器从数据中心收到新数据后,根据数据的大小自动选择合适的缓存容器进行存储。对外提供服务的方式是根据查询特征值(查询条件),在各级缓存中查找,如果有,则命中,返回给用户,同时把该特征值移动到队尾;如果各级缓存中都没有查到,则从数据中心上提取,返回给调用方,同时把数据保存在相应大小的缓存容器中,供后续的查询使用。上述缓存结构可以根据可利用的存储空间的大小(Capacity)进行精确的容量规划,既不浪费空间,又不至于造成内存漏洞等问题发生。其存储空间占用公式为:
权利要求
1.一种自适应自组织塔式缓存方法,其步骤包括: 1)在缓存服务器上建立以数据尺寸为阀值的多级缓存容器,各级缓存容器串联成一个数组,构成塔式缓存结构; 2)所述缓存服务器从数据中心接收数据,根据接收的数据的大小自动选择合适的缓存容器进行存储; 3)在保持存储空间容量总量不变的前提下,根据各级缓存容器在指定时间段内的命中率动态调节各级缓存容器的容量值,使命中率越高的缓存容器的容量越大。
2.如权利要求1所述的方法,其特征在于:根据缓存点击率来设定各级缓存容器的访问优先级,点击率越高则优先级越高。
3.如权利要求1所述的方法,其特征在于:所述多级缓存容器对外提供统一的数据获取接口,并隐藏数据存储实现细节。
4.如权利要求1所述的方法,其特征在于:每级缓存容器含有一个用于保存数据的键值对的数据映射,以及一个数据特征值队列。
5.如权利要求4所述的方法,其特征在于:所述数据特征值队列采用LRU算法管理缓存数据。
6.如权利要求1所述的方法,其特征在于,步骤3)所述动态调节各级缓存容器的容量值的计算公式为:
7.如权利要求1所述的方法,其特征在于:在以数据尺寸为阀值的所述多级缓存容器基础上构建N维缓存结构,其中N ≥2。
8.如权利要求7所述的方法,其特征在于:在以数据尺寸为阀值的所述多级缓存容器基础上,将从数据中心获取数据的查询时间作为另一个阀值构建二维缓存结构,其中查询时间越长的数据在缓存中保留的时间越长。
9.如权利要求1所述的方法,其特征在于:在配置文件中设定各级缓存容器的存储层级、容器阀值和容器容量。
10.如权利要求1所述的方法,其特征在于:在配置文件中配置是否启动调整容器容量功能以及如何触动调整容器容量功能,以实现容量调整的自组织。
全文摘要
本发明涉及一种高效利用存储空间的自适应自组织塔式缓存方法,其步骤包括在缓存服务器上建立以数据尺寸为阀值的多级缓存容器,各级缓存容器串联成一个数组,构成塔式缓存结构;所述缓存服务器从数据中心接收数据,根据接收的数据的大小自动选择合适的缓存容器进行存储;在保持存储空间容量总量不变的前提下,根据各级缓存容器在指定时间段内的命中率动态调节各级缓存容器的容量值,使命中率越高的缓存容器的容量越大。本发明可以自动根据数据自身的尺寸选择合适的缓存,并通过自动调节缓存的容量来最大化缓存的命中率,具有自适应性和自组织性。
文档编号G06F12/08GK103077125SQ20121054005
公开日2013年5月1日 申请日期2012年12月13日 优先权日2012年12月13日
发明者郭俸明 申请人:北京锐安科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1