Jeff Dean

Google 公司的 Jeff Dean在Stanford大学做了一个非常精彩的演讲(视频未墙)。我们每一个人都应该去看一看这个视频,没有字幕,需要不错的听力。下面是一些相关的Notes,供你参夸,并欢迎牛人指证。
 
  




  ● 比较了从1999年到2010年十年来的搜索量的变化。搜索量增加了 1000 倍,而搜索速度快了5 倍。1999年,一个网页的更新最多需要一个月到两个月,而今天,只需要几秒钟,足足加快了5w倍。


  ● 一开始,这些大量的查询产生了大约30GB的I/O量。2004年,他们考虑过全部重写infrastructure。


  ● 讨论了一些关于变量长度字节对齐的东西。


  ● 今天的MapReduce 有400万个作业,处理将近1000PB的数据,130PB的中间数据,还有45PB的输出数据。(1PB =1024TB)关于 MapReduce (Google云计算的精髓)的一些统计,见下图:
 
  
 
  ● 现在Jeff正在做一个叫Spanner的项目,这是一个跨多个数据中心的项目。在后来的Q&A中,Jeff解释了现在的数据基本上都在各个数据中心中,数据在不同数据中心间的交换几乎不可能。所以,他们需要提供一些手动的方式或是一些工作或任务来达到数据共享。这其中还需要有一些策略配置,共同的namespace,事务处理,数据一致性等等工作。


  ● 最后一个段落应该是最精彩的,Jeff讲了很多很有意思的东西,绝对让你受用一生:


  ○ 一个大型的系统需要分解成N多的小services.(这和Amazon的很相似,一个页面的调用可能要经过几百个后台的services)


  ○ 代码的性能将会是相当的重要。Jeff给了一张叫“Numbers Everyone Should Know” 的slide,如下所示,太经典了,其中的东西,可以看看这篇“给老婆普及计算机知识”。(注:1 ns = 十亿分之一秒)
 
  




  ○ 把相同的东西抽出来去建立一个系统,而不是把所有的事情交给所有的人。他说: “最后的那个功能可能会导致你怎么个系统超出了原有的复杂度”。


  ○ 不要无限制地设计可扩展性。5倍到50倍的扩展性设计足够了。如果你要达到100倍的,那应该是re-arch了。


  ○ Jeff很喜欢有中心主结点的架构体系,他并不喜欢分布式系统。当然,中心主结点主要是用来做控制的,而不是做数据或是计算服务的。


  ○ Jeff在一些小机器上运行多个小服务,而不在一个大机器上运行一个mongo作业。越小的单元就越容易处理,修复,负载均衡和扩展。(化繁为简)


  …… ……


  这是一个非常不错的演讲,很让人开阔眼界。
 
 
相关英文链接:
http://ae97013.wordpress.com/2010/11/25/jeffrey-dean-building-software-systems-at-google-and-lessons-learned-stanford-ee-computer-systems-colloquium-2010/
相关英文Slide链接:
http://www.stanford.edu/class/ee380/Abstracts/101110-slides.pdf
中文原文链接:
http://coolshell.cn/articles/3301.html

你可能感兴趣的:(Experience)