浅谈Facebook图片存储系统HayStack概要

来源:it168  作者:张友东
2011/5/16 13:57:14
HayStack是Fackbook用于存储照片的系统,其存储照片的数量在千亿数量级,本文简要分析HayStack的设计与实现原理。

本文关键字: Facebook 图片 存储

Haystack Directory的主要功能如下:

1, 提供逻辑卷轴到物理卷轴的映射,为写请求分配图片id;

2, 提供负载均衡,为写操作选择逻辑卷轴,读操作选择物理卷轴;

3, 屏蔽CDN服务,可以选择某些图片请求直接走HayStack Cache;

4, 标记某些逻辑卷轴为read-only;

HayStack中的图片顺序的存放在物理卷中,获取图片在物理卷中的偏移即可读取图片,图片的存储结构如下所示(每张图片称为一个needle)。

其中,key为图片的唯一标示,alternate key为尺寸的标示,flag为删除标志,size为数据大小,data为实际的数据。

HayStack为每张图片在内存中维护图片与其位置的映射表,在图片被写入时更新映射关系,每次系统启动时可通过读取物理卷并构造映射表,但这样做很耗时间,但HayStack通过为每张图片构造index file来简化了系统启动时映射表的构建,index file的结构如下所示:(其主要包含key与对应图片位置的映射关系,系统启动时,通过读取index file便能很快的构造映射表。)

HayStack的几点优势:

1. 采用轻量级的HayStack Directory维护逻辑卷到多个物理卷的映射关系,方便的实现了副本技术,以实现系统容错。

2. 简化文件的元数据结构,以追加写的方式往物理卷中存储图片,效率高。同时将图片key与位置的映射关系全部保留在内存中,通过一次lookup即可获取图片的位置。

3. 物理卷中所有的图片都对应有index文件(固定大小,结构简单),从而每次系统重启时,物理卷的映射信息能快速的通过index文件构建。

4. 引入_deleteflag、compaction、batch upload以及进一步提高存储的效率。

共2页: [1]2 下一页
责编:陈慧
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
最新专题
流动存储 为大数据而生

伴随信息技术的突飞猛进,更大量级的非结构化数据与结构化数据构成的大数据成为企业级存储所面临的最大挑战:一方..

磁盘阵列及虚拟化存储

利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性。虚拟化存储,对存储硬件资源进行抽象化表现。

    畅享
    首页
    返回
    顶部
    ×
      信息化规划
      IT总包
      供应商选型
      IT监理
      开发维护外包
      评估维权
    客服电话
    400-698-9918