Flashcache是Facebook技术团队的又一力作,最初是为加速MySQL设计的。Flashcache是在Linux层面的,所以任何受磁盘IO困绕的软件或应用都可以方便的使用之。

1. Why Flashcache

随着时间的流逝,网站上的数据一直在不停的积累。如果你经营的只是一个博客的话,这不会是问题,因为10G的空间,大概就够你写一辈子了(如果放在硬盘上,其实一辈子很短)。如果你恰巧在一个快速增长的公司,数据会越来越多,从MB,到GB,再到TB。

如果将这些数据全部放在大容量的SATA、SAS盘上时,会发现性能(响应时间)不够;如果全放在SSD上时,又会发现成本很高。即使公司能够大气 到都放到SSD上,你会发现1TB的数据里面可能只有200G是经常被访问的,300G可能偶尔被访问到,最后剩下的500G可能已经成为历史数据了,几 乎不被访问到,如果全部都放在SSD上有略有浪费。于是就有了Flashcache。

Flashcache一个非常不错的软件(准确的说是一个Linux的模块),可以动态加载。Flashcache通过在文件系统(VFS)和设备 驱动之间新增了一次缓存层,来实现对热门的缓存。Flashcache是另一种缓存,一般用SSD作为介质的缓存(一般的缓存用的是内存),通过将传统硬 盘上的热门数据缓存到SSD上,然后利用SSD优秀的读性能,来加速系统。这个方法较之内存缓存,没有内存快,但是空间可以比内存大很多。

本文是一个关于Flashcache的初步介绍。

2. 谁适合用Flashcache

数据量很大(例如4TB),热门数据也很大(800GB),不必要或者不舍得全部买内存来缓存。

3. 谁不适合用Flashcache

数据量不大的话,一般Flashcache就没什么用武之地了,内存就可以帮你解决问题了;

不差钱,买内存呗;

另外Flashcache的加入也使得系统的复杂度增加了一层,如果你坚持KISS原则(Keep it simple, Stupid!),也可以弃用之。

4. 基本原理图

上图中,Flashcache将普通的SAS盘(/dev/sda)和一个高速的SSD(/dev/sdb)虚拟成一个带缓存的块设备(/dev/mapper/cachedev)。后续还将会有更多关于Flashcache相关的文章出现,敬请期待。

5. Flashcache是否只是一个过渡产品

对于当前,PCI接口的SSD价格还十分昂贵,而随着时间的推移,价格会降;另外,根据摩尔定律,未来会有更快的设备出现,所以Flashcache是一个“持久的”产品,还只是一个过渡软件,这并不好说。

Facebook数据库工具Flashcache初探的更多相关文章

  1. MySQL数据库工具类之——DataTable批量加入MySQL数据库(Net版)

    MySQL数据库工具类之——DataTable批量加入数据库(Net版),MySqlDbHelper通用类希望能对大家有用,代码如下: using MySql.Data.MySqlClient; us ...

  2. 分享一个数据库工具DTOOLS

    整理电脑的时候发现一个好的工具——DTOOLS,他是我在09年左右写的一个数据库工具. 可以干什么呢? 我罗列一下: 1.全面的展示数据库字段情况 2. 迅速切换,展示数据库记录情况,不输语句,即点即 ...

  3. MinerDB.java 数据库工具类

    MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...

  4. 跨平台数据库工具Azure Data Studio

    Azure Data Studio是一种跨平台数据库工具,适用于在Windows,MacOS和Linux上使用Microsoft系列内部部署和云数据平台的数据专业人员.Azure Data Studi ...

  5. [原创]Studio 3T mogodb数据库工具使用介绍

    [原创]Studio 3T  mogodb数据库工具使用介绍 1 Studio 3T 简介 Studio 3T是一款功能强大的mangodb工具,主要为用户提供网页设计.代码输入.编程管理.数据库编辑 ...

  6. 数据库工具链接阿里云MySQL数据库

    数据库工具:Toad for MySQL ssh工具:XShell 5 跳板机配置: 配置通道: 源主机:数据库工具链接的地址: 侦听接口:数据库工具侦听接口: 目标主机:数据库阿里云地址: 目标端口 ...

  7. JDBC中 mysql数据库的连接工具类 Java登录 及增删改查 整理 附带:Navicat Premium 11.0.12中文破解版.zip(下载)mysql数据库工具

    先写一个工具类,有实现MySQL数据库连接的方法,和关闭数据库连接.关闭ResultSet  结果集.关闭PreparedStatement 的方法.代码如下: package com.swift; ...

  8. 数据库工具DbVisualize安装、破解教程,亲测可用

    之前工作中遇到生产环境不允许导入Oracle的dmp文件,只能导入sql脚本,但是表中存在clob字段,直接用plsql工具无法导出clob字段,用了下dbvisualizer可以直接导出,亲测可用. ...

  9. 使用Navicat或者其他数据库工具连接阿里云EDS(数据库服务器)实例过程详解

    使用Navicat或者其他数据库工具连接阿里云EDS(数据库服务器)实例过程详解 背景:这几天从阿里云上面购买了云服务器,最垃圾的那种,还送oss和EDS数据库服务器,只不过EDS数据库服务器只有一个 ...

随机推荐

  1. Spring Boot整合JPA、Redis和Swagger2

    好久没有总结了,最近也一直在学习.今天就把spring boot与其它技术的整合做个小总结,主要是jpa.redis和swagger2.公司里有用到这些,整合起来也很简单. 首先,新建一个Spring ...

  2. JavaScript闭包与变量的经典问题

    许多人第一次接触闭包大概都是从高程里这段代码开始的: function createFunctions() { var result = new Array(); for(var i=0; i< ...

  3. jquery跨域请求事例

    //js发送跨域请求部分var requesturl = 'url'; $.ajax({ type:'GET', url:requesturl, data:{'qNum':num}, dataType ...

  4. 解决Linux中文显示乱码的问题

    1.直接执行 export LC_ALL=zh_CN.UTF8 #linux服务器中文显示乱码,但配置文件设置是中文的.解决办法 2.修改文件 修改/etc/sysconfig/i18n文件,确认信息 ...

  5. js 格式化时间,可定义格式

    var format = function (time, format) { var t = new Date(time); var tf = function (i) { return (i < ...

  6. 在windows下使用Cygwin模拟unix环境 并安装apt-cyg svn等插件

    在windows下使用Cygwin模拟unix环境,并安装apt-cyg,svn等工具 一.Cygwin的安装 1. 下载Cygwin,这个可以到这里下载 ,至于使用32位的还是64位的版本可以根据自 ...

  7. Ionic实战五:ionic图表源码基于highcharts

    ionic图表demo基于Highcharts,highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表.HighCha ...

  8. 谷歌pagerank算法简介

    在这篇博客中我们讨论一下谷歌pagerank算法.这是参考的原博客连接:http://blog.jobbole.com/71431/ PageRank的Page可是认为是网页,表示网页排名,也可以认为 ...

  9. 详谈 Spring 中的 IOC 和 AOP

    这篇文章主要讲 Spring 中的几个点,Spring 中的 IOC,AOP,下一篇说说 Spring 中的事务操作,注解和 XML 配置. Spring 简介 Spring 是一个开源的轻量级的企业 ...

  10. C++ 几种经典的垃圾回收算法

    之前遇到了一篇好文(https://blog.csdn.net/wallwind/article/details/6889917)准备学习一下的,课程繁忙就忘记了,今日得闲,特来补一下. 自己写一遍加 ...