# 解剖 Facebook 【5】说到 Facebook 的技术，很多人摇头

- 作者：邓侃
- 发布时间：2010-12-20 23:21
- 原文：https://www.ifanr.com/28356

Facebook CEO，扎克伯格（Mark Zuckerberg），这几天低调访华。今天（2010/12/20）去位于北京上地的百度总部，拜会百度 CEO 李彦宏，并共进午餐。

说到 Facebook 的技术，很多人摇头，认为 Facebook 技术无亮点。

![](https://lh6.googleusercontent.com/JN9F8YdSthkctqOy21bHjIj3SYxuayOUDA8-yxjDN41ze4DbY7aUkLHltxIr2utzkiNdwh8uC1uhklEV4juFEKmrCQgCTWEArG4-KG4AAAJdy6JqVA)

图一。Facebook CEO 拜会百度老总李彦宏，2010/12/20。

技术有无亮点，关键在于评价标准。Google, Yahoo, Microsoft 等等高科技企业，强调学术与产业零距离。这些企业的员工发表过很多学术论文，不仅数量多，而且水平高，确实为人称道 \[1,2,3\]。更不要说 IBM, Intel, Sun Microsystems 等等老牌高科技公司，所著更丰，汗牛充栋。

能不能用学术论文来评价企业的技术含量，这个问题值得商榷。虽然 Facebook 不以学术论文著称，但是它的技术仍然可圈可点。

想了解计算机领域的学术前沿，一个捷径是选修计算机专业的博士生课程，尤其是听名校名教授的课。美国名校的博士课程，大多以 “高等（Advanced）” 为前缀，很容易识别。例如，想了解系统架构设计的学术前沿，不妨听听 “高等操作系统” 课程。

美国名校的 “高等” 课程，往往没有课本。教授在上第一节课的时候，给博士生们一个清单，清单上有 20 多篇论文，每篇论文涉及一两个热门的前沿的学术问题。在上课前，博士生们预先阅读指定的论文，上课时学生们相互讨论。教授往往与学生们围坐在一起，倾听， 并发现对同一个问题的不同观点，引导辩论，间或略加点拨。

同一门课，不同大学不同教授选择的论文，往往不一样。论文的选择，在一定程度上反应了教授的学术视野的高下。做名教授的学生的好处，在于领袖挥手我前进，少走弯路，早出成果，出大成果。

如果能够被名校录取，亲耳聆听名教授的点拨，当然三生有幸。即便没有被名校录取，照样可以获得名校的教育。美国各大名校强调开门办学，几乎所有 “高等” 博士生课程所选用的论文，都公布在大学网站上。不管你在世界的哪一个角落，都可以与名校的博士生们阅读相同的论文。

![](https://lh5.googleusercontent.com/0r_ruj_cIrjJ9U_2BYegZNhXRaDoWxqBCkYQ0OD51htOQesWDUV_6jX-kJj55Zu0qUyERW3Us5ysnmcRvk79smbLpssI-bJ5N4V_vSBcErcY_CZeDA)

图二。2010 年美国计算机专业前 10 名校 \[4\]。

在系统架构设计领域，我个人比较喜欢读 Eric Brewer 教授推荐的论文。Brewer 是 UC Berkeley 的计算机系教授。2010 年，UC Berkeley 与 CMU，MIT 和 Stanford，四所大学并列美国计算机专业第一，见图二。

UC Berkeley 的终身教授，是很多人梦想终身的荣誉。Eric Brewer 年仅 32 岁就拿到了 UC Berkeley 的终身教授，即便不是史无前例，也算得上凤毛麟角。不久以后，他又被选为美国工程院院士 \[5\]。

Brewer 不仅学术精湛，同时还创办企业，1996 年他与自己的学生创办 Inktomi 公司，一度辉煌。不过，Inktomi 过份注重技术，而拙于经营，最后频临破产，被 Yahoo! 收购\[6\]。虽然 Inktomi 经营失败，但是 Brewer 教授在实践 “学术与产业零距离” 方面，身体力行，堪称楷模。

Brewer 教授推荐的论文，不仅学术先进，而且贴近产业现实，对于实际工作有直接的指导意义。

几周前，有幸与国内某大型电子商务网站的技术负责人交流。他提及他们正在用云计算技术，改造整个后台系统。我问，你们用什么办法网站，去记录海量的实时买卖 交易？他答，用开源项目 Hadoop 中的 HBase 分布式数据库 \[7\]。我又问，电子商务作为在线服务，对于数据读写的速度要求很高，通常在几百毫秒以内。HBase 能不能满足这种实时限制？答，系统正在开发中，速度目前不详，有待测试。我建议他去读一篇论文，重新考虑 HBase 是不是合适的方案。

2009 年秋，Brewer 教授开设 “高等计算机系统” 课程，课程必读论文中，有一篇的题目是，“Dynamo: Amazon’s Highly Available Key-Value Store” \[8\]。不仅 Brewer 选择了这篇论文，CMU 和 Stanford 的 “高等操作系统” 课程，也不约而同地选用了这篇论文 \[9,10\]。

我推荐的论文，就是这一篇。从事网站系统架构设计的同行，或许都应该读一读这篇论文 \[11\]。不仅可以启迪思路，而且有助于少走弯路。

Dynamo 这篇论文的作者之一，是 Amazon 的 CTO，Werner Vogels。本文谈的是 Facebook 的技术，为什么走题去谈 Amazon 的技术呢？

Facebook 开发了一个分布式数据库软件，叫 Cassandra，并开源 \[12\]。Cassandra 的设计原理，源于 Amazon 的 Dynamo 和 Google 的 Bigtable \[13\]。虽说 Cassandra 没有太多技术原创，但是 Facebook 正在开发前沿技术，这一点毋庸置疑。

发表论文，分享思想，固然值得尊崇。开源软件，分享成果，更加直接造福人类。Facebook 不仅开源了 Cassandra，而且还开源了 Thrift 等等其它技术先进的软件。Facebook 的技术，很有亮点。

Reference,

\[1\] Publications by Googlers.   
 <http://research.google.com/pubs/papers.html>  
 \[2\] Publications by Yahoo!  
 <http://research.yahoo.com/publication>  
 \[3\] Publications by Microsoft research.   
 <http://research.microsoft.com/apps/dp/pu/publications.aspx>  
 \[4\] Top Computer Science Schools, Ranked by US News &amp; World Report, 2010.  
 <http://grad-schools.usnews.rankingsandreviews.com/best-graduate-schools/top-computer-science-schools/rankings>  
 \[5\] Eric Brewer, CS Professor of UC Berkeley.   
 [http://en.wikipedia.org/wiki/Eric\_Brewer\_%28computer\_scientist%29](http://en.wikipedia.org/wiki/Eric_Brewer_%28computer_scientist%29)  
 \[6\] Introduction to Inktomi Corp.  
 [http://en.wikipedia.org/wiki/Inktomi\_Corporation](http://en.wikipedia.org/wiki/Inktomi_Corporation)  
 \[7\] HBase is an open-source, distributed, versioned, column-oriented store modeled after Google’ Bigtable.  
 <http://hbase.apache.org/>  
 \[8\] Advanced Topics in Computer Systems, UC Berkeley CS course syllabus.   
 [http://www.cs.berkeley.edu/~brewer/cs262/](http://www.cs.berkeley.edu/%7Ebrewer/cs262/)  
 \[9\] Advanced and Distributed Operating System. CMU CS course syllabus.   
 [http://www.cs.cmu.edu/~15712/syllabus.html](http://www.cs.cmu.edu/%7E15712/syllabus.html)  
 \[10\] Advanced Readings on Distributed System, Stanford CS course syllabus.   
 <http://www.stanford.edu/class/cs244b/>  
 \[11\] Dynamo: Amazon’s Highly Available Key-value Store.  
 <http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf>  
 \[12\] The Apache Cassandra Project brings together Dynamo’s fully distributed design and Bigtable’s ColumnFamily-based data model.  
 <http://cassandra.apache.org/>  
 \[13\] Cassandra: Open Source Bigtable + Dynamo  
 <http://www.slideshare.net/jbellis/cassandra-open-source-bigtable-dynamo>

图一：Courtesy http://i879.photobucket.com/albums/ab351/kan\_deng/Cloud/Zuckerberg-1.png

图二：Courtesy http://i879.photobucket.com/albums/ab351/kan\_deng/Cloud/TopCSSchools2010.png
