世界最大規模のmonolithicコードベースを有するGoogleと、世界最大規模の分散コードベースをhostするGitHub

github上で公開されている280万以上のリポジトリのsnapshotを、Google Big Query上で利用できるデータセットとして公開すると、GoogleGitHubがそれぞれ発表した。

これによって「GitHub上で一番使われているJavaのpackageは何か」というようなGitHub上のソースコードすべてを対象としたクエリが簡単に書けるようになる。

ところで、同じ時期に、Google社内のmonolithic(一枚岩)なコードベースに関するレポート論文(Why Google Stores Billions of Lines of Code in a SIngle Repository)がACMで公開されていた。

冒頭で紹介したGitHubGoogleの取り組みは、280万のリポジトリ・1.6億ファイルの情報を横断的に検索したり、修正を提案したりできるようにするための試みだった。すでにGoogle社内ではほぼすべてのコードを単一のツールで検索したり、横断的にパターンを適用してリファクタリングしてるわけで、そういったところからモチベーションが湧いてきたのかな、と思うと興味深い。

Why Google Stores Billions of Lines of Code in a SIngle Repositoryは面白そうなのでまた改めて紹介したいような気もするのだけど、冒頭の記事で紹介されてるGitHubの数字と比較してみると面白いなと思ったので以下にいくつか並べてみる。

GitHub

  • 2008年創業
  • のべ1200万人が3100万のプロジェクトに参加
  • データセットサイズ3TB+ (全リポジトリ上の全データではなく、サイズの大きいバイナリは除いてあるとどこかで言及されていた気がするが出典を紛失)
  • 280万公開リポジトリ
  • 1億4500万公開コミット
  • 1億6300万ファイル

Google

  • 1998年創業
  • リポジトリサイズ86TB
  • 2.5万のエンジニアがリポジトリを共有
  • のべ3500万コミット
  • 900万ファイル、20億Line of Code (ちなみにLinuxカーネルは4万ファイル1500万Line of Codeらしい)

ファイル数だけで言うと、GoogleのコードベースはLinuxカーネルの200倍以上で、GitHubはさらにその10倍以上であるということが言える。Googleをすごいと見るか、GitHubをすごいと見るかでいろんな比較ができそうな数字である。

まあ、どっちもすごいという話なのかもしれないけど。