Finding a needle in Haystack: Facebook’s photo storage——论文泛读

OSDI 2010 Paper 分布式元数据论文阅读笔记整理

问题

到2010年为止,用户已经在Facebook上传了超过650亿张照片,对于每个上传的照片,Facebook生成并存储四个不同大小的图像,导致目前存储了超过2600亿张图片,相当于超过20PB的数据。用户每周上传10亿张新照片(~60TB),Facebook在峰值时每秒提供超过100万张图片。庞大的数据量为图片存储提出了新的挑战。

挑战

在Facebook图片存储中,数据只写一次,经常读取,从不修改,很少删除。基于POSIX的文件系统的缺点是每个目录和文件的元数据,读取文件时需要先访问元数据,导致元数据成为访问瓶颈。对于利用NFS上的网络连接存储设备,由于元数据查找,读取一张图片需要几个磁盘操作,导致额外成本和吞吐量限制。

本文方法

本文描述了Haystack,为Facebook的照片应用程序优化的对象存储系统,成本更低、性能更高。

  • 高吞吐量和低延迟。大幅减少在磁盘上查找照片所需的每张照片的元数据,将所有元数据保存在主存储器中,每次读取最多需要一个磁盘操作来实现高吞吐量和低延迟。

  • 故障容忍。在不同地理位置复制每张照片,根据需要复制数据以获得冗余,从而容忍故障。

  • 成本效率。考虑每TB可用存储的成本和对每TB可用存储器的标准化读取率。与NAS设备上的等效TB相比,每个可用TB的成本降低了约28%,每秒处理的读取量增加了约4倍。

三大组件

目录服务器:元数据服务器

  • 维护逻辑卷到物理卷的映射关系

  • 维护照片ID到逻辑卷的映射

  • 负载均衡:在逻辑卷之间完成写操作的负载均衡,在物理卷里完成读操作的负载均衡

  • 决定用户请求是发送给缓存还是CDN

  • 当一个节点故障或者运维操作,或者磁盘空间满,将逻辑卷设为只读状态

存储服务器:数据服务器,大量的数据服务器存储数据

  • 以物理卷的形式保存数据,每个物理卷100GB,物理卷即一个物理文件

  • 不同存储服务器上的多个物理卷组成一个逻辑卷,形成副本

缓存

  • 主要通过缓存系统响应用户请求

  • Web服务器请求目录服务器时,生成http://<CDN>/<Cache>/<Machine>/<Logical Volume, Photo>格式的URL,Web服务器依次请求各组件,直到获取数据

写流程

  • Web服务器请求目录服务器获取可写的逻辑卷

  • 逻辑卷中的所有物理卷都追加完成,才算追加成功

  • 追加成功后所有物理卷中都有该文件,但偏移可能不同,主要是因为存在多客户端的并发追加写

  • 写操作并没有更新缓存

物理卷存储格式

  • 每个Photo称之为一个Needle

  • 每个Needle的元数据约20字节,常驻内存,但在磁盘上有一份持久化的索引

  • 数据删除并不真的删除,而是增加一条删除日志

  • 周期定做Compaction,回收空间

总结

针对Facebook海量照片存储,访问模式为数据只写一次,经常读取,从不修改,很少删除。因此设计了Haystack,对象存储系统。(1)大幅减少在磁盘上查找照片所需的每张照片的元数据(20字节),将所有元数据保存在主存储器中,每次读取最多需要一个磁盘操作来实现高吞吐量和低延迟。(2)查询图片时,目录服务器生成http://<CDN>/<Cache>/<Machine>/<Logical Volume, Photo>格式的URL,依次请求各个组件获取数据。

相关推荐
m0_650108249 小时前
CenterPoint:基于中心点的 3D 目标检测与跟踪框架
论文阅读·自动驾驶·centerpoint·3d目标检测与跟踪·激光雷达点云·中心点3d目标表示
m0_6501082412 小时前
PointPillars:激光雷达点云 3D 目标检测的高效编码器方案
论文阅读·自动驾驶·机器人导航·激光雷达点云检测·激光雷达单模态bev·bev目标检测
xieyan081112 小时前
论文阅读_FinRL-DeepSeek:大语言模型赋能的风险敏感强化学习交易代理
论文阅读·人工智能·语言模型
飞Link13 小时前
【论文笔记】《Improving action segmentation via explicit similarity measurement》
论文阅读·深度学习·算法·计算机视觉
吃吃今天努力学习了吗13 小时前
【论文阅读】Gaussian Grouping: Segment and Edit Anything in 3D Scenes
论文阅读·计算机视觉·3d·3dgs·三维分割
有Li13 小时前
基于深度学习的数字切片扫描仪无标记虚拟染色与人体组织分类|文献速递-文献分享
论文阅读·人工智能·深度学习·分类·医学生
询问QQ:4877392781 天前
三菱Q系列PLC大型自动化生产线程序案例分享
论文阅读
檐下翻书1731 天前
集团组织架构图在线设计 多部门协作编辑工具
大数据·论文阅读·人工智能·物联网·架构·流程图·论文笔记
Charlene Fung1 天前
如何使用 Markdown 生成带参考文献的 PDF
论文阅读·pdf·markdown
张较瘦_2 天前
[论文阅读] AI | 告别“被动救火”:POLARIS让系统学会“主动预判+自我进化”
论文阅读·人工智能