mutilevel cache management based on application hints

mutilevel cache management based on application hints

ID:22446674

大小:282.59 KB

页数:13页

时间:2018-10-29

mutilevel cache management based on application hints_第1页
mutilevel cache management based on application hints_第2页
mutilevel cache management based on application hints_第3页
mutilevel cache management based on application hints_第4页
mutilevel cache management based on application hints_第5页
资源描述:

《mutilevel cache management based on application hints》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于应用提示的多级cache管理摘要多级缓存在许多存储配置中是很常见的,它给缓存管理带来了新的挑战。一些现有的cache替换策略旨在在缺少时间局部性的情况下提高cache命中率,而其余替换策略旨在避免多个cache间的数据复制。另外的策略使用应用程序提示,它是一个已被证实能够显著提高cache利用率的方法,但这个方法只在多级cache层次结构的最高层中有效。我们主要的贡献是为多层次cache提出了一个全局的、非集中化的、动态的以及消息灵通的管理策略。Karma这个cache管理策略是针对例如数据库等应用提出的,它能很容易地提供提示。这些提示促进Karma在所有的cac

2、he层次上作出明智的分配和替换决定,同时保留独家缓存并且适应在存储模式上的变化。这种综合解决方案在利用总cache资源方面明显优于其他方法。为了说明Karma的重要性,我们拿它与LRU、2Q、ARC、MultiQ、LRU-SP以及在数据库和Zipf跟踪路径上应用的Demote策略相比较。为了完整的评估Karma的性能,我们另外定义了每个策略的扩展使其工作在一个分层次的缓存中。除了在非常小的缓存中外,Karma比其它策略表现出更显著的改善。例如,在一个TPC-H查询排列中,Karma比纯LRU平均提高了85%的性能。缓冲器cache常用于服务器中以减少缓慢磁盘访问和网络

3、消息传递的次数。这些缓冲器cache形成了一个多层次的cache层次机构。在这样一个层次结构中,第二级cache与第一级的cache具有不同的访问模式,因为对第二级cache的方位实际上就是第一级cahce的失效。因此,常用的cache替换算法例如LRU(最近最少使用)很好的适用于第一级cache中,但不一定能很好的适用在第二级cache中。这个论文研究了多个方法以有效地管理二级cache。1介绍cache替换策略在cache满的情况下决定哪个块是最佳的替换块。LRU是最常用的在线替换策略。纯LRU没有频率的概念,它使缓存容易受到来自循环或顺序访问模式的污染。各种各样

4、的LRU变体,例如LRU-K、2Q、LRFU、LRIS和ARC,它们都试图解释频率和时间局部性。一种不同的方法是用最适合各个访问模式的替换策略来管理每个访问模式。这种方法是有可能的,例如通过对访问模式的自动分类来实现。在消息灵通的缓存中,替换决定都基于应用本身透露的提示。虽然消息灵通的缓存对任意应用来说存在缺点,但这些缺点在数据库系统中能得到解决。文件系统也可以从各种文件属性中获得其访问模式,例如文件扩展名或访问文件的应用程序。这个可扩展的文件系统提供了一种让用户对文件和系统进行分类的接口以获得文件的属性。现代工具依据文件和存储系统提供了文件访问模式的自动分类。尽管消

5、息灵通的缓存具有上述已被证实的优点,但它仅在高层cache中被采用。上述方法都是将努力实现最大cache命中率作为最大限度地提高整体性能的一种手段。但是,在现代系统中,服务器和存储控制器通常有很重要的cache,因此多级缓存分层结构就形成了。在一个多级缓存分层结构中,简单地提高任意层单独cache的命中率不一定会最大限度地提高系统整体性能。因此,对多级缓存分层结构来说,我们希望最小限度的减少加权I/O成本,这种加权I/O成本需要考虑在缓存间的所有数据传输以及访问每层缓存在成本上的差异。多级缓存分层结构在cache替换中主要涉及到以下三个问题。第一个问题是在高层缓存中,

6、引用局部性的隐藏。第二个问题是:在资料冗余中块被保存在多个cache层次中。第三个问题是:缺乏低层cache块的属性信息,例如它们的文件、发出I/O请求的应用程序等属性。对较低层次cache的访问就是对较高层次cache的访问失效。因此,这些访问都具有弱时间局部性的特点。由于LRU是基于引用局部性的,所以它在第二级cache中的效率会降低。MultiQ、FBR、ARC及CAR等策略通过考虑近因和频率的访问来试图解决该问题。例如MultiQ采用多个生命期递增的LRU队列。ARC和它的近似方法CAR的区别在于那些是访问了一次还是访问不止一次的块。假定高层cache由LRU

7、管理,上述策略都没有将cache分层结构作为一个整体处理,而是独立地管理各层cache。在独家缓存中,一个数据块每次只能被缓存在至多一个缓存层次中。一种方法是利用降级操作。当高层cache读取低层cache中的数据块时,低层cache就将该块从它的缓存中删除。当高层cache替换掉缓存中的一个未经修改的块时,利用DEMOTE操作将这个块送到低层cache中。低层cache努力为这个被降级的块找到一个位置,如果有必要的话还要替换掉另一个块。我们提出Karma,它是一个管理试图一致解决上述问题的多级cache系统的新方法。Karma协同管理所有的cach

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。