Facebook照片缓存分析

今天听了一个学术报告,报告的名称是《Facebook照片缓存分析》,报告人是黄琦,来自于美国康奈尔大学。

据听说,目前facebook总共有2500亿照片,提供缓存的机器达几千台,提供存储的机器达1万2千台左右。

缓存在系统中的重要性不言而喻,访问存储在磁盘上的数据速度慢,且耗费很大的带宽。

在设计缓存系统的时候,要注意几点:1)延时 2)命中率 3)带宽。

                                                    

                                         图1:facebook照片缓存系统整体架构图

上图1为facebook的照片缓存系统的整体架构图,可以看出,facebook使用的是多级缓存策略,每一级缓存完成的功能不一样,下文还会详细的分析。

下面我们看一下多级缓存是如何设计的,如下图2所示,


从图上可以看出,缓存总共分为3级:

1:浏览器缓存,能够响应大约65.5%的请求

2:边际缓存,能够响应大约19.43%的请求,边际缓存是分布在美国东中西岸10个地域,总共的缓存大小为100TB。

3:原缓存,能够响应大约4.79%的请求,分布于facebook在美国的4个数据中心。

上述三级缓存总共能响应大约89.72%的请求,说明facebook的缓存设计已经非常成功。在89.72%基础之上在进行提高已经是很具有挑战性的工作。

为了进一步提高缓存的命中率,黄琦提出了两点验证有效的解决方案:

1:S4LRU缓存算法,从图2中可以看出在10个边际缓存中采用的缓存策略是先进先出的模式(FIFO),这是一种极为简单的缓存算法。具体的实现是flashcache(flashcache源码)。通过改进缓存算法,能够提高命中率。S4LRU缓存算法是LRU和LFU两种算法的结合,共分4段,属于分段缓存中的一种。

2:协同缓存,协同缓存以前一直不被认可,主要原因是由于延时、带宽等限制。由于网络日益发展,情况变化了。协同缓存可以通过“一致性哈希”等技术进行实现。


=====================================总结===========================================

黄琦的实验是基于facebook上的数据所做,从2500亿照片中采用object-based 策略收集140万照片进行实验,平台对于一个工作的成功与否具有重要意义。同时,当他面对google和facebook实习的时候,选择了facebook,据他所言,google花钱养着一批无事可干的工程师。平台和选择对于一个人是何等的重要。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值