三种基本类型的缓存:绕写式(write-around),直写式(write-through)和回写式(write-back)。

绕写式(write-around)缓存意味着所有数据首先被写入到硬盘区,当它成为合格的后,再基于读操作将它复制(注意不是移动)到闪存区。这意味着数据总是驻留在硬盘层,通常由RAID或镜像功能进行数据保护。其结果是,缓存区的闪存并不需要像上述分层模型中所要求的高可靠性。此外,由于所有数据首先被写入硬盘,闪存的使用寿命应该会延长。只有真正值得闪存“缓存”的数据才会被写到闪存。

需要注意的是,虽然闪存区的故障并不意味着数据丢失,却意味着性能损失,因为所有的后续I / O都必须从硬盘区发起。已经习惯了闪存性能的用户可能会认为性能的下降和宕机一样糟糕。

绕写式缓存技术也意味着所有数据在升级到闪存区之前都需要确保合格。所以在这个模型中,写操作将会一直缓慢,并直到有足够的I / O访问该数据以证明它确实值得复制到闪存中,这时闪存的高性能才会反映出来。最后,数据复制过程需要数据所在的存储控制器进行处理,以及I / O带宽,这可能会造成一些不可预测的系统问题,因为数据被复制到了闪存。

直写式高速缓存(write-through)试图解决一些绕写式缓存面对的挑战。在该模型中,所有写操作都被送到闪存和硬盘层。这样做的结果是,数据冗余地存在于两个层次。该技术确保最活跃的数据预先放置到闪存之上,所以就没有必要再审核数据升级资格并进行复制。写操作性能仍然依赖于硬盘区,因为写确认必须出自该层。此外,闪存耐用性会减小,因为现在所有数据都会存到闪存,而不只是那些获得升级资格的。

回写式高速缓存(write-back)通过在数据写入闪存区后即回复写确认,从而提高了写操作性能。这些数据将会在后来存储I / O不太繁忙的时候再写入到硬盘层。回写式缓存的风险是在数据被写入硬盘之前闪存发生故障。此外,在像VMware那样的集群环境中,在进行虚拟机迁移时,需要格外小心确保闪存区在迁移之前必须清空。

和分层机制一样,回写式缓存对闪存区高可用性的要求也愈加严格,因为有时候闪存里容纳的是数据的唯一副本。

zz fromhttp://www.searchstorage.com.cn/showcontent_88537.htm

zz存储系统中缓存的三种类型的更多相关文章

  1. C++ Primer学习笔记(三) C++中函数是一种类型!!!

    C++中函数是一种类型!C++中函数是一种类型!C++中函数是一种类型! 函数名就是变量!函数名就是变量!函数名就是变量! (---20160618最新消息,函数名不是变量名...囧) (---201 ...

  2. 云计算服务的三种类型(SaaS、PaaS、IaaS)

    云计算可以帮助企业降低IT方面的成本和复杂性,并获得他们蓬勃发展所需的灵活性与敏捷性.但是,规划出通往云的明确路径并非易事.毕竟用户需要看透与云相关的市场大肆宣传,然后理解并分析不同种类的云计算模式的 ...

  3. hibernate(二)一级缓存和三种状态解析

    序言 前一篇文章知道了什么是hibernate,并且创建了第一个hibernate工程,今天就来先谈谈hibernate的一级缓存和它的三种状态,先要对着两个有一个深刻的了解,才能对后面我要讲解的一对 ...

  4. 链路层三种类型的MAC地址

    若需要转载,请注明出处. 我们知道,链路层都是以MAC地址来进行通信双方的地址标识的,如下图:在应用中根据接收方的多寡来进行划分,可分为以下三种: 单播(Unicast) 多播(Multicast) ...

  5. Hibernate学习(二)———— 一级缓存和三种状态解析

    一.一级缓存和快照 什么是一级缓存呢? 很简单,每次hibernate跟数据库打交道时,都是通过session来对要操作的对象取得关联,然后在进行操作,那么具体的过程是什么样的呢? 1.首先sessi ...

  6. c++中new的三种用法详细解析

    转载至: http://www.jb51.net/article/41524.htm 以下的是对c++中new的三种使用方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助. 一. ...

  7. 缓慢变化维 (Slowly Changing Dimension) 常见的三种类型及原型设计(转)

    开篇介绍 在从 OLTP 业务数据库向 DW 数据仓库抽取数据的过程中,特别是第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓库 ...

  8. ASP.NET 设计模式分为三种类型

    设计模式分为三种类型,共23类.  一.创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模式.原型模式.      二.结构型模式:适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代 ...

  9. hibernate - 一级缓存和三种状态解析

    转载自:http://www.cnblogs.com/whgk/p/6103038.html 一.一级缓存和快照 什么是一级缓存呢? 很简单,每次hibernate跟数据库打交道时,都是通过sessi ...

随机推荐

  1. POJ3254 - Corn Fields(状态压缩DP)

    题目大意 给定一个N*M大小的土地,土地有肥沃和贫瘠之分(每个单位土地用0,1来表示贫瘠和肥沃),要求你在肥沃的单位土地上种玉米,如果在某个单位土地上种了玉米,那么与它相邻的四个单位土地是不允许种玉米 ...

  2. drag and drop

    <!DOCTYPE HTML> <html> <head> <script type="text/javascript"> func ...

  3. 转载MVC Html.AntiForgeryToken() 防止CSRF攻击

    MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site request forgery)攻击的一个措施,它跟XSS(XSS又叫CSS:Cross ...

  4. HDU 2222 Keywords Search(AC自动机模板题)

    学习AC自动机请戳这里:大神blog........ 自动机的模板: #include <iostream> #include <algorithm> #include < ...

  5. ServletContext1

    ---------------ConfigServlet.java----------- protected void doGet(HttpServletRequest request, HttpSe ...

  6. 英语阅读积累<一>

    Passage 1.Woodpecker    惹treat or trick There are many apple trees in a garden.  They’re good friend ...

  7. class ResultServletContextListener implements ServletContextListener

    package com.management.spring; import java.io.BufferedReader; import java.io.IOException; import jav ...

  8. Genymotion中文手册

    目录1.概述 22.特点 22.1最擅长于虚拟Android 22.2高可控性 22.3管理你的设备 22.4从Eclipse中开启虚拟设备 33.要求 33.1操作系统要求 33.2系统硬件要求 3 ...

  9. Scribefire发CSDN博客

    历史 在非常久非常久曾经,CSDN是支持外部工具来写文章的,但是在还有一个非常久非常久曾经就不行了. 突然看到CSDN有能够用外部工具来写博客了(CSDN的公告),一直以来都纠结这个问题,CSDN的编 ...

  10. Redis的Time Event与File Event的微妙关系

    redis里设计了两类事件,一类是file event,一类是time event. 其中file event主要为网络事件而设计,而time event为一些后台事件设计. 在两类事件的管理设计上, ...