Microsoftが300GBクラスのGitリポジトリを扱う仮想ファイルシステム「GVFS」を発表し高速化を実現
By Mike Mozart
Microsoftが仮想ファイルシステムの「Git Virtual File System(GVFS)」を発表しました。GVFSはリポジトリ下のファイルシステムを仮想化することで、ファイルを開く時点でダウンロードを実行する仕組みを採用しており、大幅な高速化が実現されています。
Announcing GVFS (Git Virtual File System) | Microsoft Application Lifecycle Management
https://blogs.msdn.microsoft.com/visualstudioalm/2017/02/03/announcing-gvfs-git-virtual-file-system/
Microsoftは2013年にオープンソースの分散型バージョン管理システムである「Git」のサポートを開始しています。このGitはLinuxの分散型開発モデルを扱うために開発された管理システムですが、コードベースが約270GB(約350万ファイル)もあるWindowsの大量のファイルをGitで管理すると、「git checkout」に3時間かかったり、「git status」に10分かかったり、さらには「git clone」に12時間もかかることがあるそうです。
By KamiPhuc
Gitで大量のファイルを管理するときにかかる時間の問題に対処するために発表されたのが「GVFS」です。GVFSは、リポジトリ下のファイルシステムを仮想化することで、大量のファイルがローカルに保存されているように使うことができます。
仮想化されたファイルシステムから、全ファイルではなく必要なオブジェクトのみをダウンロードすることが可能で、例えば、「git checkout」の時間を3時間から30秒に、「git status」を10分から4~5秒にまで大幅に高速化することに成功しています。また、リポジトリの容量を管理する機能も搭載されており、ファイルレベルで操作が行われる仕様により、IDEやビルドツールを変更する必要もないとのこと。
Ars Technicaでテクノロジー関係の記事を執筆しているピーター・ブライト氏はGVFSを評価しつつも、権限を持たないユーザがカーネルコードを修正することなく独自のファイルシステムを作成できる機能を提供する「FUSE」のようなソフトウェアが欠けている、と話しています。GVFSと同様の種類で動作する多くのFUSEファイルシステムがあり、FUSEなしではGVFSのような仮想ファイルシステムを開発し続ける最適な方法がないそうで、「これは非常に残念なことである」と指摘しています。
Microsoft hosts the Windows source in a monstrous 300GB Git repository | Ars Technica
https://arstechnica.com/information-technology/2017/02/microsoft-hosts-the-windows-source-in-a-monstrous-300gb-git-repository/
大量のリポジトリに悩まされているのはMicrosoftだけではありません。以前には、Facebookが、大量のリポジトリにGitが対応できないとして、Gitと同じながらも拡張性がより高いMercurialへ移行しました。
・関連記事
macOSで採用されるAppleの新ファイルシステム「APFS」 - GIGAZINE
Linuxの生みの親リーナス・トーバルズがこれからも開発を続けると明言、「一生Linux」宣言か - GIGAZINE
データに関してぜひとも知っておきたい基礎知識が一発で分かるムービー - GIGAZINE
シーゲイトが新しいクラウド用ストレージ「Kinetic」プラットフォームを発表 - GIGAZINE
MS-DOS 6.22からWindows 8 Proまで順にアップグレードしていくとどうなるのか? - GIGAZINE
・関連コンテンツ