1

コンテンツ配信サーバーである Java で書かれたレガシー アプリケーションのコードを見直しています。含まれているファイルはすべて、コンテンツの MD5 Hash Hex に基づいて名前が付けられているファイル リポジトリがあります。

7ABC1FBF6109EAB64DF6682158317181.dat

これらのファイルは何千もあります。リポジトリ ファイルの構造は次のとおりです。

C:/base/resources/repository/{First two digits of hex MD5 hash}/{MD5 hash hex}.dat 

元:

C:/base/resources/repository/7A/7ABC1FBF6109EAB64DF6682158317181.dat

それを必要とするビジネスロジックがないと仮定して、これを行うことを検証する理由はありますか (私はそうではないと言っています)。アプリケーションはファイルのリクエストを取得し、ハッシュによってマップされたファイル内のコンテンツで応答します。

本当に何も思いつきません。

アプリケーションは Linux マシンで実行されていましたが、使用していたディストリビューションやファイル システムはわかりません。

4

3 に答える 3

1

ファイル管理ツールなどのGUIツールがハングしたり、そのフォルダーもリモート(NAS、SAMBA)の場合、コンテンツを簡単に調べるのに時間がかかる場合があります。もちろん、アプリケーションは、日付またはその他のランダム性の低いものでファイルをより適切にグループ化できます。

于 2013-01-09T22:24:58.047 に答える
1

ハッシュのプロパティによる

{First two digits of hex MD5 hash}/{MD5 hash hex}.dat

無意味です。どのファイルシステムでも、ディレクトリは論理的に物事をグループ化する必要がありますが、定義上、同じプレフィックスを共有する 2 つのハッシュされたアイテム間に論理的な関係はありません。私の推測では、ディレクトリ内に一度に多くのファイルを表示することにうんざりしている人がいたので、これはパフォーマンスに関連している可能性があります。

于 2013-01-09T22:16:51.487 に答える
1

特に Windows では、1 つのディレクトリに膨大な数のファイルが含まれていると、一部のファイル システム呼び出しが非常に遅くなります。また、単純にコンテンツを一覧表示するだけでは時間がかかり、返されるエントリが多すぎるため、管理も難しくなります。

于 2013-01-09T22:17:31.600 に答える