基于Alluxio内存文件系统的缓存策略

Alluxio是一种基于内存的分布式文件系统,支持不同的缓存替换策略,来替换内存中的文件快。Alluxio中的文件时以文件块形式组织,其中文件通过自己实现的inode数据结构记录文件属性并索引。

下面首先介绍几种不同的缓存策略,这些缓存策略被广泛的应用在web,数据库,文件系统中。

1 基于访问频率的缓存策略

这种缓存策略是根据缓存单位的(在Alluxio中是文件块Block)访问频率来进行缓存调度,最常用的策略是LFU(Least Frequently Used)策略。该策略每次淘汰访问频率最低的缓存单位。但是如果一个文件块很早时被经常访问,但最近一段时间访问频率很低,那总访问频率依然很高,无法被淘汰。LIRS( Low Inter-Reference Set)策略淘汰具有最长访问间隔的单位,当缓存单位被访问时,会更新访问间隔,一般最近被频繁访问的文件块都具有较短的访问间隔。2Q与 LRU-2策略每次淘汰倒数第二次被访问的时间距离现在最久的缓存项。这些基于访问频率的缓存策略都考虑了访问时间对访问频率的影响,但这些策略对时间局部性良好的访问次序,效果不是很好。

2 基于访问时间的缓存策略

下面考虑访问时间对缓存策略考量的影响,这种缓存策略是考虑或主要考虑缓存单元的访问时间,被广泛使用的策略是LRU缓存策略,这种策略淘汰最久没被访问的缓存块。FIFO淘汰按先进先出策略淘汰,MRU则淘汰最近被访问的文件块。这些缓存策略未考虑访问频率的影响,所以效果也不是很好。

3 对访问时间和访问频率共同考虑的访问策略

LRFU( Least Recently Frequently Used)每次淘汰具有最小 CRF( Combined Recency and Frequency)值的缓存项,CRF值同时考虑了访问时间和访问频率,ARC( Adaptive Replacement Cache)使用了两个队列,其中一个队列管理访问顺序,另一个队列管理访问频率,队列大小可以自适应调整。但是,这两种策略在针对循环访问时,效果远差于MRU 与 LIRS。(未完)

时间: 2024-10-12 07:11:23

基于Alluxio内存文件系统的缓存策略的相关文章

分布式内存文件系统Alluxio实战

前言         Alluxio是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存在Alluxio里的文件.把Alluxio是架构在最底层的分布式文件存储和上层的各种计算框架之间的一种中间件,其前身为Tachyon. Alluxio起源于Alluxio公司创始人李浩源读博期间在 UC Berkeley AMPLab实验室的博士课题.自从Alluxio的第一个开源版本发布之后,项目发展迅猛.社区贡献者人数已经迅速增加到200多个,这200多人来自50多家公司,其中不乏国际巨头,例如

网络图片的获取以及二级缓存策略(Volley框架+内存LruCache+磁盘DiskLruCache)

在开发安卓应用中避免不了要使用到网络图片,获取网络图片很简单,但是需要付出一定的代价——流量.对于少数的图片而言问题不大,但如果手机应用中包含大量的图片,这势必会耗费用户的一定流量,如果我们不加以处理,每次打开应用都去网络获取图片,那么用户可就不乐意了,这里的处理就是指今天要讲的缓存策略(缓存层分为三层:内存层,磁盘层,网络层). 关于缓存层的工作,当我们第一次打开应用获取图片时,先到网络去下载图片,然后依次存入内存缓存,磁盘缓存,当我们再一次需要用到刚才下载的这张图片时,就不需要再重复的到网络

基于Java LinkedList,实现Android大数据缓存策略

import java.util.HashMap; import java.util.LinkedList; /* * 基于Java LinkedList,实现Android大数据缓存策略 * 作者:Zhang Phil * 原文出处:http://blog.csdn.net/zhangphil * * 实现原理:原理的模型认为:在LinkedList的头部元素是最旧的缓存数据,在LinkedList的尾部是最新的缓存数据. * 在一个LinkedList(类型C的链表)维护一个存储堆栈,添加元

【腾讯Bugly干货分享】彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法

本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/qOMO0LIdA47j3RjhbCWUEQ 作者:李志刚 导语 Http 缓存机制作为 web 性能优化的重要手段,对从事 Web 开发的小伙伴们来说是必须要掌握的知识,但最近我遇到了几个缓存头设置相关的题目,发现有好几道题答错了,有的甚至在知道了正确答案后依然不明白其原因,可谓相当的郁闷呢!!为了确认下是否只是自己理解不深,我特意请教了其他几位小伙

彻底弄懂 HTTP 缓存机制 —— 基于缓存策略三要素分解法

导语 Http 缓存机制作为 web 性能优化的重要手段,对从事 Web 开发的小伙伴们来说是必须要掌握的知识,但最近我遇到了几个缓存头设置相关的题目,发现有好几道题答错了,有的甚至在知道了正确答案后依然不明白其原因,可谓相当的郁闷呢!!为了确认下是否只是自己理解不深,我特意请教了其他几位小伙伴,发现情况也或多或少和我类似. 为了不给大家卖关子,下面我贴出2道题,大家可以尝试解答下: 以下为 page.html 内容: <!DOCTYPE html><html xmlns="h

android bitmap的缓存策略

在这篇文章中: lrucache disklrucache 缓存策略对比与总结 不论是android还是ios设备,流量对于用户而言都是宝贵的.在没有wifi的场景下,如果加载批量的图片消耗用户过多流量,被其知晓,又要被念叨一波~ 如何避免消耗过多的流量呢?当程序第一次从网络加载图片后,就将其缓存到移动设备上,这样再次使用这个图片时,就不用再次从网络上下载为用户节省了流量. 目前常用的一种缓存算法是lru(least recently used),它的核心思想是当缓存满了,会优先淘汰近期最少使用

分布式内存文件系统:Tachyon

Tachyon是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存储在Tachyon里的文件.Tachyon是架构在最底层的分布式文件系统和上层的各种计算框架之间的一种中间件,其主要职责是将那些不需要落地到DFS里的文件,落地到分布式内存文件系统中,来达到共享内存,从而提高效率,减少内存冗余,减少GC时间等. Tachyon架构 Tachyon的架构是传统的Master-Slave架构,这里和Hadoop类似,TachyonMaster里WorkflowManager是 Master进

本地应用缓存算法和缓存策略的介绍

特别声明:该文章是 本人在网上搜索到的一些资料,稍作整理而成的,还望大家不要误会,具体出自于那本人也已经忘记.还请大家不要误会!!!   通过设计良好的数据分块.预取.替换.更新等算法来提高对缓存内容的命中率和一致性. 1)数据分块      Memcached默认情况下采用了名为Slab Allocator的机制分配.管理内存.在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和free来进行的.但是,这种方式会导致内存碎片,加重操作系统内存管理器的负担,最坏的情况下,会导致操

Web开发基本准则-55实录-缓存策略

郑昀 创建于2013年2月 郑昀 最后更新于2013年10月26日 提纲: Web访问安全 缓存策略 存储介质连接池 业务降级 并发请求的处理 关键词: 会话串号,Cache-Control头域,缓存穿透,缓存集体失效,缓存重建,缓存雪崩,缓存永不过期,缓存计数器, 二,缓存策略 这里的“缓存”概念不只限于服务器端的“缓存”. 2.1.防会话串号 如果你收到一个投诉,说访问“我的个人中心”页面时进入其他人的帐号,至少订单列表上显示的不是自己的.此时,技术支持人员可以提三个问题,第一,对页面上显示