Tag Archives: GFS

重读Google老三篇

  昨晚会议结束得太晚,没赶上末班地铁,只好打车回家,俺的银子呀wuwu~

  最近在读文献。上周过了几篇蛋白基因组学(proteogenomics)的天书,实在抓狂。这周的主题回到软件领域:大规模分布式计算。昨晚是Google老三篇(GFSMapReduceBigTable)的文献讲评,瓶子哥顺便讲了讲Google Cluster,我又带了几句Chubby论文。讨论很热烈,结果就说多了。

  我负责主讲BigTable,这次细读,发现以前读的时候忽略了很多细节。

  比如,BigTable使用bloom filter算法进行元数据cache加速。bloom filter有单边特性(它说不存在的,必然不存在;它说存在的,也许有小概率错误),这的确最适合cache这种场合。

  再如,google的分布式锁服务Chubby,在GFS和BigTable中都起到关键作用。在同步控制方面,GFS和BigTable设计思路几乎一致,都是用Chubby对master节点的元数据条目加锁,但具体数据服务节点(GFS叫chunk seriver,而bigtable叫tablet server)的同步正确性,需要客户端自己来保证。这样设计的目的很明确:尽可能保证全局服务的简洁高效,防止master节点成为瓶颈,这对大规模的分布式场景是非常重要的;当然,副作用就是客户端程序的要求更高。

  BigTable的一个重要应用是Google Analytics。另外进展很快的个性化搜索也用BT来存储用户历史和参数。之前发布的Google App Engine的python存储API,有很明显的BigTable痕迹。

  身边已经开始有人从Amazon和Google租用云计算能力了,新概念被接受的速度超出我的想象。

Google的算法

  开始设计pFind系统的集群版本。今天在读Google的论文:MapReduce: Simplified Data Processing on Large Clusters。之前推荐过The Google File SystemWeb Search for a Planet: The Google Cluster Architecture两篇论文。

  Google的强大不只源于PageRank算法,用普通PC组成的高效集群也是一个杀手锏。李开复就提到过,MapReduce算法和GFS架构才是Google真正的核心竞争力。

  digg上热炒Google购买Orion算法的的事。引出一大堆各式各样的八卦议论,比如有关这个博士生的国籍。有个小伙这么写“After all Israel is just America III. Canada is America II.”,哈哈。

  有趣的是,现在,北京时间2006年4月10日22:30分,用Google Web Search搜索这个新闻,可看的内容很少,但用Google Blog Search搜索,就能找到世界各地用各种语言写的评论,很多都是20分钟前刚写的。