0

GUIを介してファイルを読み取り、別の形式に変換し、両方のファイルをMySQL DBに保持し、変換されたファイルをダウンロードオプションとしてユーザーに提示するアプリケーションを作成しています。

この潜在的なボトルネックを軽減するために、どのキャッシング技術/設計パターンを使用できるか疑問に思っていました。たとえば、変換後の両方のファイルをすぐにキャッシュし (@CacheResult ?)、キャッシュされたファイルをできるだけ早くユーザーに返し、そのファイルを DB に永続化します。

JBoss を使用しており、キャッシングに Infinispan を使用できます。このタイプのユースケースには確立されたパターンがあるに違いないと推測していますが、それらが何であるかはわかりません!

4

1 に答える 1

0

あなたのボトルネックは、読み取りではなく書き込みにあります。

OSは、読み取り用にファイルをキャッシュします。キャッシュする唯一の理由は、固有のファイルシステムキャッシュに依存するのではなく、キャッシュされたファイルの存続期間をより細かく制御したい場合です。

書き込みに関しては、単にメモリに変換し、後でバックグラウンドでディスクに保存することができます。しかし、そのようにそれを行うACIDityはありません-システムを失い、変換と元のデータを失います。

本当の解決策は、ハイエンドのSAN/NASアプライアンスや単に最新のSSDなどのバックエンドに適切なI/Oを配置することです。

于 2013-02-03T22:45:36.937 に答える