架构比较简单,分为三部份:Haystack Directory, Haystack Cache, Haystack Store
Directory: 即所谓的 meta Server
1. 生成 FID,维护 logical volume 与 physical volume 映射关系,解决上传时的负载均衡问题。
2. 新加入的 Store Server 要在这里注册。
3. 维护 logical volume 的 read-only 属性,只读的 logical volume 不再接受 upload 请求。
4. 决定请求走 CDN 还是内部 Haystack Cache Server.
Cache: 所谓的内部 CDN
1. 对图片 FID 采用一致性 hash 算法保存。
2. 只缓存用户请求,而不是来自 CDN 的请求。
3. 只缓存 write-enabled store 图片,由于上传的时间序,相当于只缓存最新生成的图片。比如说用户刚上传的图片,可能就会存到 Cache 中预热。
Store: 最终落地存储服务
1. 图片顺序追加到一个大文件中,内存中维护图片在文件中的 Offset 和 Size 的索引信息。
以上就是本篇文章【Facebook图片存储系统Haystack——存小文件,本质上是将多个小文件合并为一个大文件来降低io次数,meta data里存偏移量】的全部内容了,欢迎阅览 ! 文章地址:http://keair.bhha.com.cn/quote/5946.html 动态 相关文章 文章 同类文章 热门文章 栏目首页 网站地图 返回首页 康宝晨移动站 http://keair.bhha.com.cn/mobile/ , 查看更多