web-dev-qa-db-ja.com

ファイルの大きなコレクションをディスクイメージで置き換えることにより、Dropboxを高速化できますか?

私(および私が働いている多くの人々)はDropboxを使用し、作業ソースディレクトリをDropboxに保持しています。これらのディレクトリには2万個近くの小さなファイルが含まれており、通常、さまざまなコードブランチで作業しているときにそれらの多くがぶらぶらしています。

Dropboxは起動に時間がかかり、すべてのファイルを同期するのに時間がかかります。おそらく、すべてのファイルをダウンロードしてインデックスを作成する必要があるためです。次の方法で開始時間を短縮できるという理論があります。

  1. コードチェックアウトがループバックファイルシステムを作成し、そのファイルシステムをマウントするツールを開発する

  2. マウントされたファイルシステムディレクトリを無視して、ドロップボックスがブロックレベルでファイルシステムBLOBのみを同期できるようにします。

Dropboxはブロックレベルの同期さえ行いますか?そうであれば、パフォーマンスは向上しますか?

2
Cory

ServerFaultの質問に対するこの回答 に従って、Dropboxはブロックレベルの同期を行います。

問題のブロックは明らかに4MBです。 Dropboxの同期のためにすべての20Kファイルを単一のファイルにダンプするループバックファイルシステム/ディスクイメージのアイデアがDropboxの同期を高速化するかどうかは、インターネット接続の速度に依存します-ローカルインデックス処理(複数のファイルと(プロトコルの遅延)生のアップロード帯域幅(わずかな変更でも、おそらくディスクイメージ全体を再アップロードする必要があります)。

しかし、あなたのアイデアはおそらく別の理由でスターターではありません。ほとんどのファイルシステムはブロックストレージへの外部更新を処理できないということです。 Dropboxがループマウントしたext3fsディスクイメージを更新すると、I/Oエラーが発生し、おそらくカーネルパニックさえ発生します。 GFS2のような外部更新を処理するように設計された shared-disk filesystem を使用する場合でも、Dropboxの4MBブロックサイズと更新の同期が遅れると、おそらく非常に不安定になります。

3
Alex Dupuy