Entries tagged with “Facebook” from DBA notes
利用电脑启动、收邮件的一些零散时间,看完了这本 Inside Facebook 翻译版,感觉有所得。有些朋友说没看到"实质性"的东西,什么是"实质性"的东西? 难道你要看到"成功宝典"么? Facebook 只有一个,东施效颦的模仿者学其形或许还成,学其神就难了。
观点
- 任何一件没有全力以赴的事情,都会对其它员工造成不良影响 ... 一个成功的公司的公司,绝对不应该允许其员工只是简单地维持现状。
- 对于不需要第二天早上八点半爬起来送孩子上学的年轻人来说,熬夜工作是一种纯粹的乐趣。
- 若是待遇不错,客服人员是公司最能解决问题的人手。他们甚至会发自内心地以愉悦的面貌投入工作。
细节
- Google 趋向于招聘领域内的知名专家,而 Facebook 则鼓励工程师成为多面手。 Note: 一个公司能有几个技术上能包打通关的人(比如 Livid 同学)是幸事。但在国内,往往走从泛到专的路线。
- 任何公司里都只有一小部分工程师是最出成果的。 Note: 这么说是不是会伤害很多人? 但这的确是一句真话。对于公司来说,如何在创业初期找到的人都是这一小部分工程师? 对于个人来说,在创业团队如何成为这样的一小部分工程师?
- 现在 Facebook 内部还在用 Trac 。 Note: 工具无所谓轻量级重量级之分。Trac ,可能上一点规模的开发团队都不屑一顾了,看看Facebook,用的挺好。
- 简化会议 Note: 虽然没看到 Facebook 如何开会的,如果 CEO 在会议上的 PPT 都不超过 5 页,其他人也不会好意思来进行冗长的会议。
- CEO 肖恩在生活细节上非常马虎。 Note: 嗯,如果你也有同样的特点,没准也能做CEO呢...
这本书尽管翻译行文上有一些不一致和粗糙的地方,但还是指的一看的。毕竟应该看传递出来有价值的那一部分,盯着一本书的缺点就没意思了。这本书定价不贵,建议买一本也算支持译言翻译小组辛苦的劳动了。
--EOF--
BTW: 最近工作、私事都很多,奥运也来了,可能更新频率会不那么高了,朋友们见谅!
对着眼前黑色支撑的天空 / 我突然只有沉默了
我驾着最后一班船离开 / 才发现所有的灯塔都消失了
这是如此触目惊心的 / 因为失去了方向我已停止了
就象一个半山腰的攀登者 / 凭着那一点勇气和激情来到这儿
如此上下都不着地地喘息着 / 闭上眼睛疼痛的感觉溶化了
--达达乐队《黄金时代》
好几个地方看到这个 Facebook - Needle in a Haystack: Efficient Storage of Billions of Photos,是 Facebook 的 Jason Sobel 做的一个 PPT,揭示了不少比较有参考价值的信息。【也别错过我过去的这篇Facebook 的PHP性能与扩展性】
图片规模
作为世界上最大的 SNS 站点之一,Facebook 图片有多少? 65 亿张原始图片,每张图片存为 4-5 个不同尺寸,这样总计图片文件有 300 亿左右,总容量 540T,天! 峰值的时候每秒钟请求 47.5 万个图片 (当然多数通过 CDN) ,每周上传 1 亿张图片。
图片存储
前一段时间说 Facebook 服务器超过 10000 台,现在打开不止了吧,Facebook 融到的大把银子都用来买硬件了。图片是存储在 Netapp NAS上的,采用 NFS 方式。
图片写入

尽管这么大的量,似乎图片写入并不是问题。如上图,是直接通过 NFS 写的。
图片读取

CDN 和 Cachr 承担了大部分访问压力。尽管 Netapp 设备不便宜,但基本上不承担多大的访问压力,否则吃不消。CDN 针对 Profile 图象的命中率有 99.8%,普通图片也有 92% 的命中率。命中丢失的部分采由 Netapp 承担。
图中的 Cachr 这个组件,应该是用来消息通知(基于调整过的 evhttp的嘛),Memcached 作为后端存储。Web 图片服务器是 Lighttpd,用于 FHC (文件处理 Cache),后端也是 Memcached。Facebook 的 Memcached 服务器数量差不多世界上最大了,人家连 MYSQL 服务器还有两千台呢。
Haystacks --大海捞针
这么大的数据量如何进行索引? 如何快速定位文件? 这是通过 Haystacks 来做到的。Haystacks 是用户层抽象机制,简单的说就是把图片元数据的进行有效的存储管理。传统的方式可能是通过 DB 来做,Facebook 是通过文件系统来完成的。通过 GET / POST 进行读/写操作,应该说,这倒也是个比较有趣的思路,如果感兴趣的话,看一下 GET / POST 请求的方法或许能给我们点启发。

总体来看,Facebook 的图片处理还是采用成本偏高的方法来做的。技术含量貌似并不大。不清楚是否对图片作 Tweak,比如不影响图片质量的情况下减小图片尺寸。
--EOF--
