阅读更多

10顶
2踩

互联网

原创新闻 Google如何管理20亿行代码

2015-09-21 10:39 by 见习编辑 tuhaihe 评论(5) 有6892人浏览
《Wired》今天一篇文章谈到Google的代码量已达到20亿行,并简单介绍了Google是如何管理这些代码的。

这20亿行代码,涉及搜索、Gmail、文档、地图、YouTube、Google+等绝大多数Google提供的服务,存储在“一个”代码仓库中,两万五千名Google工程师都可以访问——这可能是世界上最大的单一代码库。只有几个例外:涉及机要信息的代码,如PageRank算法,或者相对独立的项目,如Android和Chrome系统储存在其他单独代码库中。工程师之间可以方便的共享代码——这意味着所有新项目和功能都能利用之前已经写好的代码——20亿行已经几乎无所不包了,而且一处改进,所有相关项目都能受益。

20亿行是什么概念?14年前,Windows XP发布时,包含4500万行代码——Google的代码数量,约为40多个XP。

Google使用一个称为Piper的系统管理这个巨大的代码仓库——这套系统运行在10个不同的数据中心之上,管理的数据量约为85TB,Google工程师每天会进行45000次commit。这又是什么概念?相当于Google工程师每周就重写了一次Linux。

不仅如此,这套从前任Perforce演化而来的系统,还要帮助人类工程师打理各种琐碎的代码修改和提交工作,例如检查Bug和清理用不到的代码,生成必要的配置文件等等——维护代码库健康的工作不仅是工程师在做。

此外,Google正与Facebook合作,计划将类似的强大代码管理工具提供给外界,让公司之外的所有工程师都能受益。不过这套系统并非基于Git,而是Mercurial。当这套系统公之于众时,GitHub会受什么影响?

其实不仅Google的代码庞大复杂至此,微软也毫不逊色。Hacker News上就有微软工程师讲到了自己了解的数据:仅Windows build system每天在微软内部网络产生的交换数据量,就相当于Netflix所有电影总和的数倍!
来自: 极客头条
10
2
评论 共 5 条 请登录后发表评论
5 楼 liuwenjie517333 2015-10-09 20:49
感觉阿里也在学习国外大公司,把自身比较好的功能,开放出去,给第三方用。
4 楼 skzr.org 2015-09-27 11:44
kuchaguangjie 写道
Git 和 Mercurial 的设计很相似, git 比 Mercurial 做的更好, 这套系统就算开源了, 对 git 或 github 都没有任何影响. 把 单个项目做得如此庞大, 本身就是非常愚蠢的.

赞同
3 楼 ldrs 2015-09-25 18:46
  
2 楼 zk302 2015-09-23 09:18
kuchaguangjie 写道
Git 和 Mercurial 的设计很相似, git 比 Mercurial 做的更好, 这套系统就算开源了, 对 git 或 github 都没有任何影响. 把 单个项目做得如此庞大, 本身就是非常愚蠢的.

不能这么说,很简单的想把所有东西做到一起是很难维护, 但是他这个肯定是外部可以看成一体,但是内部却有很好的解耦。 谷歌这么大一个公司会想不到你说的问题?
1 楼 kuchaguangjie 2015-09-21 18:31
Git 和 Mercurial 的设计很相似, git 比 Mercurial 做的更好, 这套系统就算开源了, 对 git 或 github 都没有任何影响. 把 单个项目做得如此庞大, 本身就是非常愚蠢的.

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 大数据ELK(三):Lucene全文检索库介绍

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点。 目录 系列历史文章 一、什么是全文检索 1、结构化数据与非结构化数据 2、搜索结构化数据和非结构化数据 3、全文检索 二、Lucene简介 三、倒排索引结构 四、企业中为什么不直接使用Lucene 1、Lucene的内建不支持分布式 2、区间范围搜索速度非常缓慢 3、可靠性无法保障 系列历史文章 2021年大数据ELK(三):Lucene全文检索库介绍 ..

  • 「GoCN酷Go推荐」​全文检索库bluge

    推荐理由提到全文检索库,第一个想到的就是Java实现的lucene,今天介绍一款Golang实现的全文检索库bluge。bluge脱胎于Bleve,是当前Github比较火的搜索引擎项目z...

  • ElasticSearch全文搜索引擎

    Lucene是apache下的一个开源的全文检索引擎工具包(一堆jar包)。它为软件开发人员提供一个简单易用的工具包(类库),以方便的在小型目标系统中实现全文检索的功能。Lucene适用于中小型项目 ,ES适用于中大型项目(它底层是基于lucene实现的)虽然全文搜索领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。

  • OEM、ODM、OBM分别是什么?

    OEM、ODM、OBM分别是什么? 什么是OEM? OEM(Original Equipment Manufactuce,原始设备生产商)。 是在社会化分工、专业化利益驱动下产生的,其基本含义是:按原单位(品牌单位)委托合同进行产品开发和制造,用原单位商标,由原单位销售或经营的合作经营生产方式。 经济学鼻祖亚当斯的《国富论》(经济学第一本专著)第一篇第一章第一节开宗明义的就是讲专业

  • Lucene(全文检索)索引库维护

    Lucene索引库的维护    Lucene工具类封装package com.xushuai.lucene; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Docum...

  • 【转】Google如何管理20亿行代码

    《Wired》今天一篇文章谈到Google的代码量已达到20亿行,并简单介绍了Google是如何管理这些代码的。这20亿行代码,涉及搜索、Gmail、文档、地图、YouTube、Google+等绝大多数Google提供的服务,存储在“一个”代码...

  • 谷歌代码库已超过 20 亿行代码,他们是如何管理的?

    为了印证着一点,我们还可以看看Google的代码规模。 周一,Google员工Rachel Potvin在一个硅谷举办的工程会议上提到了代码量这个问题(戳这里看视频,请***)。根据她的估计,你平时用到的Google互联网服务的软件.....

  • 为什么Google上十亿行代码都放在同一个仓库里?

    导读:相对于一般公司,Google 使用了单一代码仓库...早期 Google 员工决定使用集中式源代码管理系统来管理代码库。 这种方法已经在 Google 运行了 16 年以上,而今天绝大多数的 Google 软件仍然存储在一个共享的代...

  • 为何Google将几十亿行源代码放在一个仓库?

    【AI科技大本营导读】与大多数开发者的想象不同,Google只有一个代码仓库——全公司使用不同语言编写的超过10亿文件,近百TB源代码都存放在自行开发的版本管理系统Piper中,只当项目开源且需要外部协作时,才会使用...

  • Elasticsearch:一个方便易用的全文搜索库

    注:本文内容均来自《Elasticsearch权威指南》,是做读书笔记,同时做一个总结。 Elasticsearch是使用基于http的RestFul来实现和使用的,因此使用curl来测试。如果不使用curl,使用各种语言的对应http请求即可使用。 Elasticsearch 集群包含索引,索引包含类型,类型存储文档,文档具有属性 能力 高可拓展、全文搜索、分析、存储 使用举...

  • 全文检索的基本原理

    最近想要学习有关语义搜索的算法知识,听大神讲解了解到lucene全文搜索库,查阅了官网的说明和一些博客,将个人理解到的全文检索方法整理在下面。 一、首先,为什么需要全文搜索? 首先介绍两种数据分类,根据搜索内容格式不同,一般将搜索数据分为两类: 1. 结构化数据:指具有固定格式或有限长度的数据,如数据库、元数据等。针对结构化数据的搜索,例如对数据库的搜索,可以使用SQL语句。再如对元数据的搜...

  • 全文搜索引擎,索引库

      全文搜索引擎的工作原理理论上很简单,关键技术就是“分词”,   “索引库”:使用分词技术把“文档数据”按分词拆分,也就是一个文档拆分为多个分词(一条普通数据拆分为多个词的索引数据)。这个结构就形成了“索引库”,索引库存储的数据就叫索引(索引数据)(所以当普通数据发生变化的时候,与之所对应的索引也要变化,这里就涉及到自动实时更新索引,自动定时更新索引,还是手动更新索引,还有是增量更新索...

  • Lucene快速入门第一讲——你总得知道Lucene是个啥?

    本文我将为大家讲解全文检索技术——Lucene,现在这个技术用到的比较多,我觉得大家还是应该掌握一下,不说多精通,但是应该有所了解。在讲解之前,我们先来看一个案例,通过该案例引出全文检索技术——Lucene。案例实现一个文件的搜索功能,通过关键字搜索文件,凡是文件名或文件内容包括关键字的文件都需要找出来。还可以根据中文词语进行查询,并且需要支持多个条件查询。本案例中的原始内容就是磁盘上的文件,如下图

  • Lucene全文搜索原理与使用

    本文中主要是对于Lucene全文搜索的基础原理进行简单的分析,以及Lucene实现全文搜索的流程,之后就是Lucene在Java中的最简单使用:创建索引,查询索引库; 本文中使用的Lucene主要是4.10.3和6.0.0,两个版本的原理相同,但是API的使用并不相同; 1、结构化数据与非结构化数据 2、非结构化数据搜索 3、全文搜索 4、搜索如何实现 5、Lucene实现全文搜索流程

  • 为什么 Google 将数十亿行代码储存在单一的源码库

    它的代码库包含了约10亿个文件(有重复文件和分支)和 3500万行注解,86TB数据,900万唯一源文件中含有大约20亿行代码。2014年,Google的2.5万名程序员每周修改25万个文件中的 1500万行代码。相比之下,Linux内核...

  • Google 为什么要把 20 亿行代码放到一个仓库中?来QCon,聊详情

    根据 2015 年的一些公开报道,Google 内部的源代码已经有 20 亿行,支撑 Google 提供的各项互联网服务,包括搜索、Gmail、地图等不同业务。20 亿是...

  • 12亿行代码,阿里巴巴这一年的技术报告和梦想报告

    30年前,蒂姆·伯纳斯·李利用代码创造了万维网,让普通人也能够通过互联网连接全世界……如同数字世界的艺术家、数字文明的建筑师,各个时代的工程师科学家们正在用一行行代码改变世界。阿里巴巴是这个时代的技术...

  • 低代码--低代码开发(LCDP)介绍

    低代码开发(LCDP)介绍1 介绍1.1 概述1.2 行业风向1.3 行业报告1.4 优点减少重复编程避免沟通隔阂提升效率1.5 挑战完全抛弃代码的代价,就是平台能力与灵活性受限应用低代码平台阻力大技术局限老旧系统改造困难职业...

  • Google大神每天写多少行代码?真相让你吃惊!

    Quora上有个有趣的问题:Google工程师们每天写多少行代码?Google 的 AdMob 全栈工程师 Raymond Farias 在 Quora 发表评论表示:“...

Global site tag (gtag.js) - Google Analytics