zoukankan      html  css  js  c++  java
  • 转:Jeff Dean的Stanford演讲

    老文章了,但是参数还是很有参考性的。

    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很喜欢有中心主结点的架构体系,他并不喜欢分布式系统。当然,中心主结点主要是用来做控制的,而不是做数据或是计算服务的。
      • J在一些小机器上运行多个小服务,而不在一个大机器上运行一个mongo作业。越小的单元就越容易处理,修复,负载均衡和扩展。(化繁为简)
      • …… ……

    这是一个非常不错的演讲,很让人开阔眼界。

    最后,我想说说英文,很多程序员都很不喜欢英文,哎……怎么说呢?如果你今天对英文还很害怕的话,这只能怪我们的教育制度的失败。但如果你以此为借口的话,那只能怪你自己了。没有英文的能力,你的技术和认知仅限于中文圈中,而中文圈中基本上都是产商的文化。有人说,“功夫网”让我们的internet成为了局域网,而我想说,让我们成为局域网的不是那个墙,而是我们自己的世界观和英文能力。

    来自酷壳:http://coolshell.cn

  • 相关阅读:
    .NET XmlNavigator with Namespace
    编程要素
    【FOJ】1962 新击鼓传花游戏
    【POJ】1389 Area of Simple Polygons
    【POJ】2482 Stars in Your Window
    【HDU】3265 Posters
    【HDU】1199 Color the Ball
    【HDU】3642 Get The Treasury
    【HDU】4027 Can you answer these queries?
    【HDU】1542 Atlantis
  • 原文地址:https://www.cnblogs.com/legendary/p/2704303.html
Copyright © 2011-2022 走看看