您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    两个顺序员的神奇友谊:协助谷歌渡过严重危机
    时间:2018-12-24 08:03 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    两个顺序员的神奇友谊:协助谷歌渡过严重危机

    导语:美国《纽约客》近日宣布文章,描画了谷歌公司外部两个顺序员间的友谊故事。桑杰·格玛沃特(Sanjay Ghemawat)和杰夫·迪恩(Jeff Dean)是谷歌的初级研讨员,他们共同协作,协助谷歌在早期处置一场史无前例的危机,后来还在很多项目上有协作。虽然目前他们职责不同,但他们依然保持着深沉的友谊。

    以下为文章全文:

    2000年三月里的某一天,谷歌内最优秀的六位工程师聚集在一间暂时“作战室”内。公司正面临一场史无前例的危机。十月,谷歌的中心系统中止运转。虽然用户依然可以在谷歌网页上输入成绩停止搜索,但他们取得的结果其实是五个月之前的了。实践上,该成绩的严重水平还不止如此。谷歌的结合开创人拉里·佩奇(Larry Page)以及谢尔盖·布林(Sergey Brin)事先正在与雅虎协商谈判,方案为其提供搜索引擎支持,他们承诺提供比其拥有的搜索引擎弱小十倍的索引。这样的索引需求跟上万维网的开展速度,然后者在之前一年时间内规模添加了一倍。假设他们失败了,那么与雅虎的谈判有能够半途而废,谷歌也将烧掉一切资金,淡出群众视野。

    在楼梯旁的会议室里,工程师们把门放在锯木架上,然后摆好了电脑。二十七岁的克雷格·西尔弗斯坦(Craig Silverstein)体型瘦削,但嗓门洪亮。他就坐在远处的墙边。西尔弗斯坦是谷歌的第一位员工:在他参加谷歌时,谷歌的办公室还设在布林的起居室里,大部分编程他都是本人重写的。在接连四天四夜的奋战之后,他和罗马尼亚的系统工程师博格丹·科考塞尔(Bogdan Cocosel)依然毫无眉目。“我们所做的剖析毫无价值。”西尔弗斯坦回想道,“一切东西都出成绩了,而我们找不到缘由。”

    西尔弗斯坦赂乎没有留意到本人左肩上方桑杰·格玛沃特(Sanjay Ghemawat)的存在。桑杰是一个沉默寡言的麻省理工毕业生。他眉毛稀疏,有着一头乌黑的头发。几个月之前,桑杰才刚刚参加公司。他是和在Digital Equipment Corporation的同事——31岁的杰夫·迪恩(Jeff Dean)一同跳槽到谷歌的。杰夫是个精神充沛的人。他比桑杰早十个月分开了D.E.C.。两人之间十分要好,情愿一同写代码。在作战室里,杰夫把他的椅子挪到了桑杰的桌子旁边。桑杰敲代码的时分,杰夫就靠在他的背上,像是旧事掌管人耳畔叮嘱的制片人一样,纠正桑杰的代码。

    杰夫和桑杰末尾探求索引方面的成绩。他们发现有一些词汇消逝了——搜索“邮箱”的话,网页不会显示任何结果——而其他一些词汇则是以乱序出现。几天内,他们不断忙于寻觅代码中的错误,沉浸在逻辑的世界里。他们核对了一切代码,但并未找到顺序错误的本源。

    有些时分,顺序员会将他们的软件概念化成一个多层级结构,从顶端的用户界面往下延伸到基础层级。为了探求该架构的底部(这也是软件和硬件的交汇之处),这就需求关注代码存在所依托的电以及硅的元素宇宙。在第五天的作战室里,杰夫和桑杰末尾疑心他们寻觅的成绩本源并非是出在逻辑上,而是物理层面。他们将乱成一团的索引文件转变为原始方式:二进制码。他们希望能看到机器发现的蛛丝马迹。

    在桑杰的显示器上,出现了由1和0组成的纵列,每一排都代表着索引词。桑杰指出:一个本应该是0的数字却是1。当杰夫和桑杰将一切误分类的词集中在一同之后,他们发现了一个规律——每个词汇都出现了一种相反的小差错。机器的内存芯片不知怎样回事似乎被破坏了。

    桑杰看了看杰夫。数月以来,谷歌内硬件缺点的状况越来越多。随着谷歌规模的扩展,计算基础设备也在不断开展。计算机硬件鲜少会出现缺点,除非运用了过长时间——之后便会不断失灵。电线会老化、硬盘会散架、电脑主板过热等。许多机器在一末尾并非就有用,有一些机器也会莫明其妙得处置速度变缓。生疏环境要素能够也会起到一定影响。当一颗超新星爆炸的时分,冲击波会带来高能量粒子,朝着各个方向散射。迷信家们以为有一种微弱的能够,部分粒子能够会击中地球上的计算机芯片,将0变为1。全球最波动的计算机系统,例如NASA、金融公司等会采用特殊的硬件来预防这种状况。但是谷歌在事先,运营形式照旧像是一个初创企业,它所购置的计算机缺乏这种特性。这家公司曾经抵达了一个拐点。其计算集群曾经开展到了一个很大的规模,即使是不太能够会发作的硬件缺点也是无可避免的。

    杰夫和桑杰联手写代码来补偿机器出现的成绩。很快,他们完成了新的索引。作战室也就此解散了。西尔弗斯坦感到些许困惑。他很擅长找到顺序成绩,而这一步骤的关键在于弄清成绩的真正缘由。

    直到三月代码出现成绩之前,谷歌系统采用的还是其开创人在斯坦福大学就读研讨生时所写的代码。佩奇和布林并非是专业的软件工程师。他们是在搜索技术范围停止实验的学者。当他们的网络爬虫崩溃时,没有出现任何诊断信息,只是一句——“Whoa, horsey!”早先的员工查阅了佩奇和布林撰写的软件BigFiles。一切重要的索引代码都需求数天时间才能完成,假设出现成绩,那就需求从头末尾。用硅谷的话来说,谷歌无法“晋级”。

    我们会说本人“搜索网页”,但其实并非如此。我们的搜索引擎来回穿越在互联网的索引中——一张地图。当谷歌在1996年还被叫作BackRub时,这张地图小到足以适配佩奇寝室内安装的计算机。2000年3月还没有出现庞大的超级计算机来停止处置。谷歌能做的唯逐一点就是购置消费者机器,然后将其衔接为一个舰队。由于谷歌以为这些计算机的零件都是褴褛品,所以他们会去订购原装主板和硬盘并将其停止组装。在加州圣克拉拉的一栋修建物里,谷歌拥有1500个这种设备,堆起来有六英尺高。由于硬件缺点,只要1200个还能用。随机发作的缺点正在不断破坏系统。为了存活下去,谷歌必须将其计算机整分解一个无缝衔接、有顺应才能的全体。

    杰夫和桑杰一同担任这一义务。曾在苹果担任过Macintosh前身的韦恩·罗辛(Wayne Rosing)在2000年11月参加了谷歌,管理一个数百人的工程团队。“他们都十分优秀。”他这样说道。他们能连着每周任务90个小时写代码,就为了单个硬盘的缺点不会破坏整个系统。他们还在爬虫进程中增设了反省站。经过制定新的编码以及紧缩体系,他们可以高效添加系统的功率。他们是不知疲倦的优化者。当车辆转弯时,外面的车轮必须接触到更多空中。与之相似,旋转硬盘的外沿也必须比内沿的移动速度要快。谷歌将频繁被拜访的数据移到外部,而保持外部空白。杰夫以及桑杰应用此空间来存储相反搜索讯问中被预先处置过的数据。在2001年的四天内,他们证明了谷歌的索引可以采用快速随机存取存储器,而不必运用相对缓慢的硬盘。这一发现改动了公司的经济状况。佩奇和布林知道用户会争相来运用能立刻提供答案的效劳。成绩在于速度就意味着计算力,而计算力需求资金。杰夫和桑杰用软件克制了这一困难。

    (责任编辑:admin)