zz存储系统中缓存的三种类型

三种基本类型的缓存:绕写式(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

时间: 2024-08-09 10:41:50

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

C++ 中的三种类型

C++中一共三种类型 1.C++内置类型,2.1节中讲到的int.double.bool等就是基本的内置类型(低级数据类型): 2.C++还定义了一个内容丰富的抽象数据类型标准库,其中重要的如string.vector,数组和指针等(更高级的抽象数据类型): 3.第三种就是自定义的类类型,前面说过C++ 设计的焦点就是使所定义的类类型的行为可以像内置类型一样自然.

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

C++中函数是一种类型!C++中函数是一种类型!C++中函数是一种类型! 函数名就是变量!函数名就是变量!函数名就是变量! 重要的事情要说三遍... 接 C++ Primer学习笔记(二) 类的构造函数 与类同名,且无返回类型. 同类的成员函数一样,也可以在类中声明,在类外定义. 格式: 类名(): 成员1(成员1初始化值), 成员2(成员2初始化值) { } 以上,冒号至大括号中间的部分,称为构造函数的初始化列表,用于调用类成员的构造函数来初始化. 没有在初始化列表中显式指定初始化的成员,将会

【浅墨Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&混合操作合辑

本系列文章由@浅墨_毛星云 出品,转载请注明出处.  文章链接:http://hpw123.net/a/C__/kongzhitaichengxu/2014/1222/164.html 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: [email protected] QQ交流群:330595914 更多文章尽在:http://www.hpw123.net 本文算是固定功能Shader的最后一篇,下一次更新应该就会开始讲解表面Shader,而

Android中常用的三种存储方法浅析

Android中常用的三种存储方法浅析 Android中数据存储有5种方式: [1]使用SharedPreferences存储数据 [2]文件存储数据 [3]SQLite数据库存储数据 [4]使用ContentProvider存储数据 [5]网络存储数据 在这里我只总结了三种我用到过的或即将可能用到的三种存储方法. 一.使用SharedPreferences存储数据 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置信息比如窗口状态,它的本质是基

Python中逗号的三种作用

最近研究python  遇到个逗号的问题 一直没弄明白 今天总算搞清楚了 1.逗号在参数传递中的使用: 这种情况不多说  没有什么不解的地方 就是形参或者实参传递的时候参数之间的逗号 例如def  abc(a,b)或者abc(1,2) 2.逗号在类型转化中的使用 主要是元组的转换 例如: >>> a=11>>> b=(a)>>> b11>>> b=(a,)>>> b(11,)>>> b=(a,22)

20151015_系统分析阶段分析类的三种类型

在系统分析阶段将分析类分为三种类型:实体类.界面类.控制类. 1.实体类 实体类主要是作为数据管理和业务逻辑处理层面上存在的类别: 它们主要在分析阶段区分 实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关 基本信息 上述给出的实体类的定义是比较抽象的.类具有继承和递归的特点,实体类可以在抽象类的基础上进一步定义具体的类 实体类是用于对必须存储的信息和相关行为建模的类.实体对象(实体类的实例)用于保存和更新一些现象的有关信息,

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

序言 前一篇文章知道了什么是hibernate,并且创建了第一个hibernate工程,今天就来先谈谈hibernate的一级缓存和它的三种状态,先要对着两个有一个深刻的了解,才能对后面我要讲解的一对多,一对一.多对多这种映射关系更好的理 --WH 一.一级缓存和快照 什么是一级缓存呢? 很简单,每次hibernate跟数据库打交道时,都是通过session来对要操作的对象取得关联,然后在进行操作,那么具体的过程是什么样的呢? 1.首先session将一个对象加入自己的管理范围内,其实也就是把该

备份的三种类型

完全备份:备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件:(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性).差异备份:差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件:(差异备份过程中,只备份有标记的那些选中的文件和文件夹.它不清除标记,既:备份后不标记为已备份文件,换言之,不清除存档属性).增量备份:增量备份是针对于上一次备份(无论是哪种备份),备份上一次备份后,所有发生变化的文件:(增量备份过程中,只备份有标记的选中的文

一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 挺怪的. 昨天互相想到, ms这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int8, 等于byte, Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64

一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 挺怪的. 昨天互相想到, ms这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int8, 等于byte, Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64, 等于long, 占8个字节. -9223372036854775808 9223372036854775807