2011-08-12 7 views
0

私はEhcacheを使い始めました。私は単純な方法でデータベースに対して読み込みを高速化するために使用していますが、データベースを短期間利用できない場合でもアプリケーションを使用できるようにするために使用できるかどうかは疑問です。 (更新 - 私のコンテキストは、データベースからの読み取りのみを行う高可用性モジュールを持つアプリケーションです)Can /バッキングデータストアが利用できない場合、キャッシュの有効期限を無効にする必要がありますか?

データベースの読み取り時に有効期限を無効にして、再び読むことができます。

あなたはどう思いますか?それは合理的なアプローチですか、私は何かを逃したのですか?それが公平なアプローチであれば、どのように実装するのが最善か評価するためのヒントは高く評価されます。

アップデート - ehcacheはキャッシュを「永遠」に設定/解除するために動的に設定可能なオプションをサポートしています。これは私が必要なことをするようです。

+0

データベースが短期間で_un_availableであるとお考えですか? –

+0

はい、それを指摘していただきありがとうございます:) - 更新 – Brabster

答えて

1

興味深い質問 - 通常、答えは "それに依存する"でしょう。

第1に、データベースの信頼性に問題がある場合は、バンドの解決策を適用するのではなく、時間とエネルギーをかけて修正します。

第2に、ほとんどのアプリケーションで読み込みと書き込みの両方を行う必要があります。読み込み専用にアプリケーションを保つのは意味がないようです。

あなたのアプリが本物の「読み取り専用」機能を備えていて、データベース停止時間(バックアップなど)がわかって制御されている理由がある場合は、キャッシュを使用してアプリケーションを起動し、データベースがダウンしています。私は、特定のエッジケースをコード化しようとするのではなく、キャッシュ期間を延長することでこれを行います。たとえば、データベースが使用可能かどうかをチェックし、問題が発生したときに別の構成ファイルにスワップするバックグラウンド・プロセスがあるとします。

+0

うん、私はあなたが記述するそのカテゴリにあります。適用性に関する追加の注意点を指摘してくれてありがとう。 – Brabster

+0

さらに、私はehcacheがダイナミックにオン/オフの「永遠」を切り替えるオプションを持っていることを発見しました。これは私が必要とするものを正確に行うようです。 – Brabster

関連する問題