1

HTTP 上で動作し、ファイル チャンク (通常は 10MB) を受け取り、それらをチャンクとしてリモート ファイル システムに保存するサービスがあります。これらのチャンクを組み合わせると、完全なファイルが作成されます。

チャンクからファイルに関するメタデータを生成したいと思います。具体的には、ファイルの合計サイズと MD5 チェックサムを生成したいと思います。

最終ファイルは比較的大きくなる可能性があります (500 MB 以上)。チェックサムを分散して繰り返し生成する方法はありますか? たとえば、2 つのサーバー間で要求を分散するロード バランサーの背後で、このサービスを実行する 2 つの Web サーバーがあるとします。共有 Redis サーバーのようなものを使用して、オンザフライで完全なファイルの MD5 チェックサムを生成することは可能ですか?

チャンクをディスクにローカルにキャッシュしたり、完全にアップロードされた後に実際のファイルの内容をリモート データ ストアに照会したりしないようにしています。

4

2 に答える 2

3

Cassandra のようなMerkle Treeでこれを行うことができます。

Amazon の Dynamo セクション 4.7 からの引用、

レプリカ間の不整合をより迅速に検出し、転送されるデータの量を最小限に抑えるために、Dynamo はマークル ツリーを使用します。マークル ツリーは、葉が個々のキーの値のハッシュであるハッシュ ツリーです。ツリーの上位にある親ノードは、それぞれの子のハッシュです。マークル ツリーの主な利点は、ノードが [...] データ セット全体をダウンロードする必要なく、ツリーの各ブランチを個別にチェックできることです。

于 2013-01-15T06:30:45.337 に答える
0

この小さな宝石を見つけました。データベースを使用して累積的に MD5 合計を計算できます。

https://github.com/jarl-dk/digest_extensions

于 2013-01-15T19:49:35.977 に答える