一种提高分布式缓存的命中率并减少固态硬盘磨损的方法技术

技术编号:11864200 阅读:75 留言:0更新日期:2015-08-12 13:37
本发明专利技术公开了一种提高分布式缓存的命中率并减少固态硬盘磨损的方法,结合缓存数据分布特性和固态硬盘特性优化缓存性能并降低成本。它能根据应用场景分配内存缓存区并将SSD划分为连续分布的与内存缓存区等大的Cage,内存缓存区缓存新数据,内存缓存区的数据达到上限时将内存缓存区所有数据写入Cage,擦除内存缓存区进行新的数据缓存。替换算法通过分析内存缓存区中的数据的访问频度分布,设定Cage中替换算法参数,替换算法会根据访问情况对缓存数据的替换优先级进行调整以区分出热门数据。当SSD的空闲空间不足时,替换算法会对Cage进行顺序擦除,擦除Cage时保留热门数据以提高命中率,降低了带宽消耗,顺序的批量擦写能有效降低SSD的写放大。

【技术实现步骤摘要】

本专利技术属于云计算环境下分布式缓存性能优化领域,具体涉及,用于结合用户访问行为和硬件特性,实现高命中率以及低SSD磨损的缓存机制。
技术介绍
云计算环境下,为了应对海量数据与用户请求带来的挑战,解决传统数据库面临的大规模数据访问瓶颈,分布式缓存技术被引入,为用户提供高性能、高可用、可伸缩的数据缓存服务。企业使用高速内存作为数据对象的存储介质,数据以key/value形式存储。固态硬盘(Solid State Drive,SSD)是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(包括FLASH芯片和DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘完全相同,在产品外形和尺寸上也完全与普通硬盘一致。固态硬盘具有传统机械硬盘不具备的快速读写、质量轻、能耗低以及体积小等特点。但其价格仍较为昂贵,容量较低,一旦硬件损坏,数据较难恢复,并且固态硬盘的耐用性(寿命)相对较短。由于固态硬盘闪存的擦写次数有限,34nm的MLC闪存芯片寿命约是5000次P/E,而25nm的寿命约是3000次P/E。SSD固件算法的优化指标之一是提供更少的不必要写入量。缓存的性能还体现在替换算法效率上,优化替换算法的目的是提高缓存的命中率和比特命中率。影响算法效率的因素有缓存大小、缓存数据大小、缓存数据不命中开销、时间局部性以及长尾效应等。目前商业系统通常使用FIFO替换策略来对SSD缓存服务器中的内容进行更新,然而,通过对缓存内容的访问情况进行分析发现FIFO策略会降低访问命中率,导致缓存服务器需要更多的请求后台数据中心存储,加大带宽需求,增大了后台数据中心的I/O压力。采用LRU等结合更多优化因素的替换策略能够有效的提高缓存命中率以及比特命中率。但是,SSD天生的缺陷一一写放大,决定了 FIFO替换策略能够将写放大降到最低,其它的替换策略例如LRU、LFU都会造成严重的写放大,缩短了 SSD的使用寿命。企业从成本上考虑,FIFO能延长SSD的使用寿命,减少SSD的购买,尽管FIFO会使命中率降低,现有的缓存系统依然使用FIFO替换策略。
技术实现思路
基于以上原因,本专利技术提出了一个结合数据访问特性和SSD特性的缓存替换算法,它利用数据访问的时间局部性以及访问热度特性,实时动态调整缓存数据的替换优先级,在降低SSD与放大的同时尽可能提尚访冋命中率。为了实现上述目的,本专利技术提供了,包括如下步骤:(I)进行缓存系统初始化,设定内存缓存区大小并分配内存空间,按照内存缓冲区大小将SSD按物理地址顺序且等量地划分为X个Cage,其中所述缓存系统包括内存缓存区和SSD缓存区;(2)缓存系统接收并处理用户访问请求,在缓存系统中查询请求数据是否已缓存,如果请求数据在缓存系统中有副本,则将数据返回给用户;如果缓存系统中没有对应的请求数据,则转步骤(3);(3)如果请求数据不在缓存系统中,缓存系统需要从数据中心获取请求数据并缓存到缓存系统中;(4)当请求数据在缓存系统中命中时,缓存数据的冷热程度会改变,需要对已缓存的数据优先级队列进行调整;(5)当SSD缓存空间满,没有空闲Cage,需要擦除Cage以保存新数据,并保留要被擦除的Cage中热门数据。本专利技术方法与现有技术相比,具有以下有益效果:(I)相比广泛使用的FIFO替换算法,本专利技术通过保留热门数据,避免热门数据再次访问时的不命中,提高缓存的命中率,降低缓存系统的带宽开销。(2)相比LRU、LFU等算法,本专利技术利用顺序写的特性降低了数据擦除时的写放大,降低SSD的磨损。(3)本专利技术具有良好的扩展性和维护性,对系统扩容时不会增加额外的开销,SSD故障失效时更换新SSD不会影响系统运行。【附图说明】图1为本专利技术提高分布式缓存的命中率并减少固态硬盘磨损的方法流程图;图2为本专利技术的缓存替换算法的原理图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本专利技术提出了一种动态调节的缓存替换算法,它能根据应用场景分配内存缓存区大小并将SSD划分为连续分布的与内存缓存区等大的Cage,内存缓存区的数据达到上限时将内缓存区数据写入Cage。替换算法通过分析内存缓存区中的缓存数据的访问频度分布,设定写入数据的Cage替换算法层数k并将数据按访问频度优先排序,根据访问情况对缓存数据的替换优先级进行调整,区分出热门数据。在擦除Cage时,保留热门数据避免热门数据再次被访问时的不命中,提高缓存的命中率,减少缓存服务器与后台数据中心的数据交换,降低了带宽消耗。当SSD的空闲空间不足时,替换算法会选择最老的Cage进行擦除,Cage的擦写操作是顺序的,顺序的批量擦写能有效降低SSD的写放大。如图1所示,本专利技术提高分布式缓存的命中率并减少固态硬盘磨损的方法,具体包括如下步骤:(I)进行缓存系统初始化,设定内存缓存区大小并分配内存空间,按照内存缓冲区大小将SSD按物理地址顺序且等量地划分为X个Cage,其中所述缓存系统包括内存缓存区和SSD缓存区。其主要包括如下几个子步骤:(1-1)内存缓存区分配。根据设定的内存缓存区大小,划分一部分内存区域用来存储缓存数据,统计内存缓存区中数据的大小、数量、访问频度。内存缓存区保存的数据分两种:一种是将缓存系统未缓存的数据,从数据中心获取并缓存到内存缓存区;另一种是在Cage被擦除时,将Cage中的热门数据写到内存缓存区。(1-2)如图2,将SSD划分为X个大小相等的Cage,按照顺序将每个Cage被标记为F_0、F_1、F_2、……、F_(X-1),其中Cage的擦写是顺序进行的。当内存缓存区中的数据总量达到内存缓存区容量上限,执行步骤(5)。(2)缓存系统接收并处理用户访问请求,在缓存系统中查询请求数据是否已缓存,如果请求数据在缓存系统中有副本,则将数据返回给用户;如果缓存系统中没有对应的请求数据,则转步骤(3);具体地:(2-1)如果在缓存系统中有请求数据的副本,则将数据返回给用户。并且如果请求数据在内存缓存区中,更新内存缓存区中的访问频度记录,如果请求的数据在SSD中,转到步骤(4)更新缓存数据的替换队列;(2-2)如果缓存系统中没有对应的请求数据,或者缓存的请求数据因超时或者原始数据被修改等原因而失效,执行步骤(3)从数据中心获取请求数据并缓存到缓存系统中。(3)如果请求数据不在缓存系统中,缓存系统需要从数据中心获取请求数据并缓存到缓存系统中,处理流程如下:(3-1)查询内存缓存区中的数据是否达到了内存缓存区容量上限,如果没有达到上限,直接从数据中心获取请求数据并存入内存缓存区,并更新内存缓存区中数据的大小、数量和访问频度记录,将请求数据返回给用户。(3-2)当内存缓存区中的数据达到了内存缓存区的容量上限,需要将内存缓存区中的数据写入SSD。如果上一个被写的Cage为F_C,此时要将内存缓存区数据写入编号为F_的Cage。如果编号为F_的Cage为空,直接将内存缓存区数据写入该Cage,并清空内存缓存区。如果编号本文档来自技高网
...
一种提高分布式缓存的命中率并减少固态硬盘磨损的方法

【技术保护点】
一种提高分布式缓存的命中率并减少固态硬盘磨损的方法,其特征在于,所述方法包括如下步骤:(1)进行缓存系统初始化,设定内存缓存区大小并分配内存空间,按照内存缓冲区大小将SSD按物理地址顺序且等量地划分为X个Cage,其中所述缓存系统包括内存缓存区和SSD缓存区;(2)缓存系统接收并处理用户访问请求,在缓存系统中查询请求数据是否已缓存,如果请求数据在缓存系统中有副本,则将数据返回给用户;如果缓存系统中没有对应的请求数据,则转步骤(3);(3)如果请求数据不在缓存系统中,缓存系统需要从数据中心获取请求数据并缓存到缓存系统中;(4)当请求数据在缓存系统中命中时,缓存数据的冷热程度会改变,需要对已缓存的数据优先级队列进行调整;(5)当SSD缓存空间满,没有空闲Cage,需要擦除Cage以保存新数据,并保留要被擦除的Cage中热门数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:金海廖小飞李渠
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1