价值中国 - 财经商业新媒体
读书
正在读取登录信息...

Facebook的七大软件

书评人:迟竹强 2011-08-29 10:18 赞[1] 收藏

  Memcached

  Memcached是当今互联网上最著名的软件之一。它是一个分布式的内存缓存系统,Facebook(包含其他很多网站)用它作为Web服务器和MySQL服务器之间的缓存层(因为数据库访问相对比较慢)。多年来,Facebook已经对Memcached和它的周边软件进行了很多优化,比如对network stack的优化。

  Facebook每时每刻都有数10TB的数据缓存在数千台Memcached服务器上。它可能是世界上最大的Memcached服务器集群了。

  HipHop for PHP

  作为一种脚本语言,和本地代码相比是运行缓慢的。HipHop可以将PHP转换成C++代码,然后再进行编译,这样可以获得更好的性能。由于Facebook严重依赖PHP,所以通过HipHop可以让Web服务器的性能得到提高。

  一个工程师小团队在Facebook(一开始只有三人)花了18个月时间开发HipHop,现在已经投入正式使用。

  Haystack

  Haystack是Facebook的高性能图片存取系统(严格来说,是一个对象存储系统,因此它并不仅限于存储照片)。它工作繁忙;要管理超过200亿张上传的照片,并且每一片照片被保存为四种不同的分辨率,因此有超过800亿张照片。

  它不仅要能处理上亿的照片,而且性能也是至关重要的。正如我们前面提到的,Facebook每秒钟要处理约120万张照片,而且不包括CDN上的,这是一个惊人的数字。

  BigPipe

  BigPipe是Facebook开发的的动态网页处理系统。为了获得最佳性能,Facebook用它来按分块处理每个网页(称为“pagelets”)。

  例如,聊天窗口,新闻Feed等是通过分块分开进行传输的。这些pagelets可以并行工作,不仅可以提高性能,而且即使其中一部分失效或中断,也不影响用户的正常访问。

  Cassandra

  Cassandra是一个可以避免单点故障的分布式存储系统。它是NoSQL运动的一个典范,并已开放源代码(它甚至成为一个Apache项目)。Facebook在收件箱搜索中使用它。

  除了Facebook,其他网站也在使用它,例如Digg。

  Scribe

  Scribe是一个灵活的日志系统,Facebook在内部大量使用它。它能够处理Facebook这样超大规模的日志记录,并且能自动处理新生成的日志记录类别(Facebook有数百个日志类别)。

  Hadoop and Hive

  Hadoop是一个开源的map-reduce实现,它可以轻松处理海量数据。Facebook用它来进行数据分析(我们都知道Facebook有巨量的数据)。Hive起源于Facebook,它使得针对Hadoop进行SQL查询成为可能,从而非程序员也可以方便地使用。(注:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务运行。)

从零到百亿:Facebook创业故事

作者:(美)卡罗·白朗 著,译言网 译

出版社:中国书籍出版社

出版时间:2007-11-01

谁在关注这篇书评
  • 个人名片 孙海龙
广东联合出版公司 | 机械工业出版社 | 南京大学出版社 | 清华大学出版社 | 时代光华 | 人民邮电出版社 | 文汇出版社 | 中国经济出版社 | 中国青年出版社 | 中信出版社
浙江大学出版社 | 作家出版社 | 湛庐文化 | 长江文艺出版社 | 华章经管 | 经济日报出版社 | 中国城市出版社 | 财政出版社 | 中华工商联合出版社 | 新星出版社
重庆出版集团 | 人民文学出版社 | 中资海派 | 电子工业出版社世纪波公司 | 中国电力出版社 | 道中财富 | 含章行文 | 同舟人文化 | 华章同人