2012-03-12 11 views
0

Hibernateキャッシュ同時実行戦略はクエリキャッシュにも適用されます(キャッシュ可能なクエリはスカラーデータを取得し、2つのクエリは同時にそのスカラーデータを変更します)?そうでない場合、クエリの同時更新(または読み込み/更新)はどうなりますか?はいの場合、クエリキャッシュに指定する方法は?Hibernateクエリキャッシュ同時実行戦略

+0

この文脈では良い記事:http://tech.puredanger.com/2009/07/10/hibernate-query-cache/ – shrini1000

答えて

1

戦略は次のとおりです。

タイムスタンプキャッシュは、各テーブルの最終更新タイムスタンプを追跡します。

キャッシング可能なクエリが実行され、その結果がクエリキャッシュにあるたびに、Hibernateはクエリ結果のタイムスタンプがクエリに関係する各テーブルの更新タイムスタンプよりも大きい(最新の)かどうかをチェックします。より大きい場合、結果は無効ではなく、キャッシュされた結果が戻されます。それより低い場合、キャッシュされた結果は失効する可能性があり、クエリはデータベースに対して実行されます。

+0

よろしくお願いします!答えをありがとう。クエリキャッシュ自体が更新されることはありませんが、無効化されるだけなので、同時更新の問題は発生しません。 – shrini1000

+0

私は、キャッシュがキャッシュに対する同時更新をどのように扱うかを正確にはわかりません。しかし、それは複数のスレッドからアクセスされるキャッシュです。同期と同時収集が使用されていると思います。あなたは本当に気にする必要はありません。 –

+0

さて、第2レベルのキャッシュでは、非厳密読み書き書き込みや読み書き書き込みのような戦略が異なるように動作し、パフォーマンスに影響します。だから、クエリキャッシュにも同様のことが当てはまり、そのパフォーマンスに影響するかどうかを知りたいです。したがって、この質問。 – shrini1000

関連する問題