童话说说技术创业美文职业
快好知
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

Facebook图片管理架构

1月21日 火凤派投稿
  Facebook的照片分享很受欢迎,迄今,Facebook用户已经上传了150亿张照片,加上缩略图,总容量超过1。5PB,而每周新增的照片为2亿2000万张,约25TB,高峰期,Facebook每秒处理55万张照片,这些数字让如何管理这些数据成为一个巨大的挑战。本文由Facebook工程师撰写,讲述了他们是如何管理这些照片的。
  旧的NFS照片架构
  老的照片系统架构分以下几个层:
  上传层接收用户上传的照片并保存在NFS存储层。
  照片服务层接收HTTP请求并从NFS存储层输出照片。
  NFS存储层建立在商业存储系统之上。
  因为每张照片都以文件形式单独存储,这样庞大的照片量导致非常庞大的元数据规模,超过了NFS存储层的缓存上限,导致每次招聘请求会上传都包含多次IO操作。庞大的元数据成为整个照片架构的瓶颈。这就是为什么Facebook主要依赖CDN的原因。为了解决这些问题,他们做了两项优化:
  Cachr:一个缓存服务器,缓存Facebook的小尺寸用户资料照片。
  NFS文件句柄缓存:部署在照片输出层,以降低NFS存储层的元数据开销。
  新的Haystack照片架构
  新的照片架构将输出层和存储层合并为一个物理层,建立在一个基于HTTP的照片服务器上,照片存储在一个叫做haystack的对象库,以消除照片读取操作中不必要的元数据开销。新架构中,IO操作只针对真正的照片数据(而不是文件系统元数据)。haystack可以细分为以下几个功能层:
  HTTP服务器
  照片存储
  Haystack对象存储
  文件系统
  存储空间
  存储
  Haystack部署在商业存储刀片服务器上,典型配置为一个2U的服务器,包含:
  两个4核CPU
  16GB32GB内存
  硬件RAID,含256512MNVRAM高速缓存
  超过12个1TBSATA硬盘
  每个刀片服务器提供大约10TB的存储能力,使用了硬件RAID6,RAID6在保持低成本的基础上实现了很好的性能和冗余。不佳的写性能可以通过高速缓存解决,硬盘缓存被禁用以防止断电损失。
  文件系统
  Haystack对象库是建立在10TB容量的单一文件系统之上。文件系统中的每个文件都在一张区块表中对应具体的物理位置,目前使用的文件系统为XFS。
  Haystack对象库
  Haystack是一个简单的日志结构,存储着其内部数据对象的指针。一个Haystack包括两个文件,包括指针和索引文件:
  Haystack对象存储结构
  指针和索引文件结构
  Haystack写操作
  Haystack写操作同步将指针追加到haystack存储文件,当指针积累到一定程度,就会生成索引写到索引文件。为了降低硬件故障带来的损失,索引文件还会定期写道存储空间中。
  Haystack读操作
  传到haystack读操作的参数包括指针的偏移量,key,代用Key,Cookie以及数据尺寸。Haystack于是根据数据尺寸从文件中读取整个指针。
  Haystack删除操作
  删除比较简单,只是在Haystack存储的指针上设置一个已删除标志。已经删除的指针和索引的空间并不回收。
  照片存储服务器
  照片存储服务器负责接受HTTP请求,并转换成相应的Haystack操作。为了降低IO操作,该服务器维护着全部Haystack中文件索引的缓存。服务器启动时,系统就会将这些索引读到缓存中。由于每个节点都有数百万张照片,必须保证索引的容量不会超过服务器的物理内存。
  对于用户上传的图片,系统分配一个64位的独立ID,照片接着被缩放成4种不同尺寸,每种尺寸的图拥有相同的随机Cookie和ID,图片尺寸描述(大,中,小,缩略图)被存在代用key中。接着上传服务器通知照片存储服务器将这些资料联通图片存储到haystack中。
  每张图片的索引缓存包含以下数据
  Haystack使用Google的开源sparsehashdata结构以保证内存中的索引缓存尽可能小。
  照片存储的写修改操作
  写操作将照片数据写到Haystack存储并更新内存中的索引。如果索引中已经包含相同的Key,说明是修改操作。
  照片存储的读操作
  传递到Haystack的参数包括HaystackID,照片的Key,尺寸以及Cookie,服务器从缓存中查找并到Haystack中读取真正的数据。
  照片存储的删除操作
  通知Haystack执行删除操作之后,内存中的索引缓存会被更新,将便宜量设置为0,表示照片已被删除。
  重新捆扎
  重新捆扎会复制并建立新的Haystack,期间,略过那些已经删除的照片的数据,并重新建立内存中的索引缓存。
投诉 评论 转载

后移动时代的Web设计还记得Wap吗,现在还有多少人使用Wap?后移动时代,随着浏览器技术的进步,为移动设备设置特殊站点已经不再必要。作为Web设计师,如果你能遵循一些基本的设计与布局原则,你的站点……用户任务完成度分析欢迎来到艾泽拉斯大陆如果你玩过魔兽世界,也许你在里面完成过无数个任务;当用户在访问网站时,其实他们也在试图完成某些特定的任务。也许大家都比较熟悉网站目标(Goal),因为很多网……信息构架的若干原则(第二部分)3。信息树应尽量窄而浅,且保持平衡(信息结构的宽度和深度)信息树可以看成是对信息集合中的信息按照某种方式加以组织以后所形成的有序的信息载体,。在描述信息树时,信息的组织关……由iPhone4天线问题引发的界面设计讨论如果握着手机左下角,iPhone4G就没反应了。SteveJobs却说,这个问题有两个解决办法:要么“别那么拿着手机”,要么使用iPhone配件把手机包起来。这并不是什么大问题……关于用户体验量化的一些事从去年年底到今年年初,我分三次将自己读书时候的文章《用户体验量化方法研究》通过UED博客进行了连载。来自各界的热心网友对此文进行了评论,有反对的、有提出疑议的、有给出诸多建议的……Android和iPhone要做统一设计还是差异设计?Android平台和iPhone平台虽然都是潜力无限的触屏系统,但是iPhone的设计风格已经成型,设计规范也得到了广泛的认可,Android平台却有很多的不确定因素,可以这样……企业B2C电子商务网站设计常见的8个问题目前自建平台的B2C电子商务商家越来越多,但是我发现不少商家都对自己如何建设自己的网站心里都没没谱。一般都是在参照淘宝、当当、卓越或者VANCL,他们怎么做,我们就借鉴过来。但……互联网里的分类和标签标签:网络2。0的象征内容需要“做标记”,如同杨是树,长江第一大桥在武汉一样。互联网时代,面对充斥满屏幕等待挑选的信息,如果能按属性和内容特征筛选信息,无疑是磨刀不误砍柴……Facebook图片管理架构Facebook的照片分享很受欢迎,迄今,Facebook用户已经上传了150亿张照片,加上缩略图,总容量超过1。5PB,而每周新增的照片为2亿2000万张,约25TB,高峰期……让用户更容易地找到需要的信息优化相关内容推荐让用户更容易地找到需要的信息4博客之前的一篇文章优化网站导航设计,介绍了如何评价网站导航功能及基于分析的优化。但后来才发现其中遗漏了GoogleAnalytics上一个很……android屏幕分辨率问题iPhone的icon设计就这么简单,iPhone的屏幕只有320480像素,所以程序没有适配性问题。Android在研究Android的icon设计之前,有必要先……是Retweet还是Like?同样一篇文章,用户是喜欢点击Twitter的Retweet还是Facebook的Like?背后的原因又是什么呢?关注这个问题是因为Mashable。这个著名的Social……
投资人为什么不投你?背后的答案在这里20条天使投资指南没钱、没人、没技术?5个步骤教初创企业快速拿到天使投资悄悄告诉你,打动VC的七个技巧注意!创始人情绪健康成VC未来关注重点投资高手都有哪些好习惯?第一次和投资人开会,创业团队应做好这五种准备创业寻找资金全攻略在两分钟内,创业者如何引起投资人的兴趣VC和你说“不”的五个理由创业者和投资人之间只差一个好BP天使投资是什么?如何分辨真假天使
心理暗疾中的村民自选商场课文教学反思帮助流浪狗撤销监护权适用什么程序培养宝宝才艺需要注意什么人生三阶阅己越己悦己枪杀7岁双胞胎女儿后自杀的心理学家母亲控制宝宝吃零食的解决方法生男生女都一样?错,25年后两种家庭方能感受差距不止一点《明朝那些事》58条书摘经典励志文章人人生不是一条直线教师职称申请书

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界