問題タブ [second-level-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
981 参照

hibernate - ehcache キャッシュ ヒット パフォーマンス

Ehcache のキャッシュ ヒット パフォーマンスに関する情報を持っている人はいますか? データ アクセスの低遅延ソリューションを探しています。

0 投票する
3 に答える
10420 参照

hibernate - ソフトロックされたキャッシュ エントリが、基礎となる Ehcache によって期限切れになりました

ハイバネート 3.3.x、ehcache 2.2.x

一度に多数のユーザーを公開しようとすると、次のエラーが発生します。なぜこれが起こるのか、これを修正する方法について何か考えはありますか? ユーザーの一括読み込みの前にこのキャッシュを無効にする方法はありますか?

EDIT1:

このエラーは、JPA 呼び出しを介して多数のユーザーをデータベースに一括ロードしようとすると発生します。ティアダウンフックを介してキャッシュマネージャーをシャットダウンしません。

0 投票する
2 に答える
1601 参照

c# - NHibernateクエリキャッシュは、エンティティをフェッチするために行ごとに1つのリクエストを行います

NHibernateで2番目のレベルのキャッシュを試しています。このコードで:

エンティティがキャッシュにない場合は、次のようなクエリが実行されます。

100行が返される場合、これらのうち100行が実行されます。つまり、パフォーマンスの大きな問題です。このクエリだけを実行した方がよいでしょう。

エンティティがキャッシュに存在しないのは、エンティティキャッシュが構成されていないか、キャッシュのサイズが制限されているか、キャッシュ内のエンティティの有効期限が切れているか、キャッシュから削除されていることが原因である可能性があります。

エンティティキャッシュに100%依存することを強制されないように、NHibernateがその「欠落している」エンティティデータをクエリする方法を変更することは可能ですか?

0 投票する
1 に答える
573 参照

c# - NHibernateの第2レベルのキャッシュはエンティティ全体をキャッシュしません

私はこのコードを持っています:

これにより、次の出力が生成されます。

2回目にGetメソッドを使用してOrderをフェッチすると、Orderテーブルはクエリされませんが、OrderRowテーブルへのクエリは実行されます。

Order-tableデータと一緒にキャッシュされるようにこれを何らかの方法で構成できますか?

0 投票する
2 に答える
1212 参照

nhibernate - NHibernate Azure AppFabric キャッシュ

Azure AppFabric キャッシュに対して NHibernate Velocity L2 キャッシュ プロバイダーを使用しようとしたはいますか? もしそうなら、あなたは何を発見しましたか?

ちなみに、データの保存には SQL Azure を使用しています。

0 投票する
3 に答える
939 参照

mysql - 休止状態での奇妙なクエリの問題

休止状態でのデータの更新と表示で奇妙な問題に遭遇しました。誰でも私を助けてくれませんか!?

私はmysqlで休止状態の春を使用しています。

ここで私が直面している問題は、変更をデータベースに適用できることです。しかし、更新されたアイテムを Web ページにロードすると、常に古いデータまたは新しいデータがランダムに返されます。

ブラウザのキャッシュの問題ではないことは確かです。daoクラスのgetPostメソッドでリターンデータを出力してみました。時々間違ったメッセージを出力するだけです。

たとえば、投稿の内容を複数回変更すると、すべての変更がデータベースに保存されます。しかし、変更されたデータを表示するためにページを継続的に更新すると、以前のすべての変更がランダムに表示されます。

getPost メソッドでデータをロードするさまざまな方法を試しましたが、それでも同じ問題に直面しています:

  1. session.clear と session.flush を試してみました

  2. 次のように第 2 レベルのキャッシュを閉じます。

    /li>
  3. データをロードするさまざまな方法: session.load、session.get、hibernate クエリ、基準、すべて同じ問題があります。

  4. postDAO の getPost メソッドで: 最初にネイティブ SQL でデータをロードしようとしましたが、hibernate クエリの結果と比較したかったのです。どちらのクエリも古いデータを返します。

コード:

0 投票する
1 に答える
2277 参照

hibernate - infinispan-configs.xmlのnamedCache「entities」を有効にして、namedCache「local-query」のバッキングに使用する方法

JPAプロバイダーとしてHibernate3.5.6-FINALを使用し、レベル2クエリキャッシュプロバイダーとしてinfinispan 4.2.0.ALPHA1を使用する場合、Hibernateのドキュメントとは異なり、データベースの結果が個別のメモリに複数回保存されるのではないかと心配しています。 infinispan namedCache、 "local-query"内の場所(同じレコードの一部を返す異なるHQLクエリの結果セット用)。頻繁に発行されるクエリの多くは結果セットに大きな共通部分があるため、これによりメモリがすぐに使い果たされ、クエリキャッシュが使用できなくなる可能性があります。

クエリキャッシュのバッキングとして休止状態の第2レベルのエンティティキャッシュを動作させることができないように見えるため、infinispanまたは休止状態、あるいはその両方を誤って構成していると思われます。infinispanの例をJPAとしての休止状態のレベル2クエリキャッシュとして見たいと思います。その結果自体は、JPAとしての休止状態のレベル2エンティティキャッシュとしてinfinispanによってバックアップされます。

詳細:

Hibernate 3.5ドキュメント(http://docs.jboss.org/hibernate/core/3.5/reference/en/html/performance.html#performance-querycache-enable)の主張:

クエリキャッシュは、キャッシュ内の実際のエンティティの状態をキャッシュしません。識別子の値と値型の結果のみをキャッシュします。このため、[原文のまま]クエリキャッシュは、クエリ結果キャッシュの一部としてキャッシュされることが期待されるエンティティの第2レベルのキャッシュと常に組み合わせて使用​​する必要があります。

ただし、 persistence.xmlで次のようにinfinispan( http://community.jboss.org/wiki/usinginfinispanasjpahibernatesecondlevelcacheproviderによる)を使用してHibernateレベル2クエリキャッシュを有効にします。

infinispan CacheManager JMX属性を調べると、infinispan-configs.xml(GAV org.hibernate / hibernate-infinispan / 3.5.6-FINALから、GAV org.infinispan / infinispan-core /に依存)で定義された6つのnamedCacheのうちの1つのみが表示されます。 4.2.0.ALPHA1)は、そこで定義されていないものとともに作成されます。

上記で参照されているjbosswikiの記事がエンティティキャッシュについて説明している場合、namedCacheの「エンティティ」を参照していると思われます。ただし、そのキャッシュを作成する方法が見つかりません。(余談ですが、infinispan-configs.xmlのローカルクエリは作成されますが、infinispan-configs.xmlのタイムスタンプは作成されません。代わりに、Hibernateの他の場所で定義する必要があるUpdateTimestampsCacheを受け取ります。)指定

私たちのpersistence.xmlで、関連するエンティティに注釈を付ける@ javax.persistence.Cacheableは(infinispan CacheManager JMX属性に従って)エンティティキャッシュを作成します(エンティティのパッケージ修飾されたJavaクラス名として名前が付けられます)が、未使用のようですJMX統計がローカルクエリの高いヒット率を示している場合(そして実際、そのようなキャッシュヒットクエリの優れたパフォーマンス)。

私の恐れは根拠がなく、隠れて、infinispanは、複数のHQLクエリの結果セットで返された場合でも、エンティティの情報を1回だけ保存していますか?そうでない場合、infinispan-configs.xmlのnamedCache、エンティティデータの重複ストレージを回避するために使用される「エンティティ」を取得する適切な方法は何ですか?最後に、休止状態のレベル2タイムスタンプキャッシュとして、「org.hibernate.cache.UpdateTimestampsCache」ではなく、infinispan-configs.xmlのnamedCache「timestamps」をどのように使用できますか?

0 投票する
1 に答える
449 参照

nhibernate - Appfabric Velocity を使用する NHibernate は、リージョンのクリア後にクラッシュします

私は NHibernate と Velocity を 2 番目のキャッシュ レベル プロバイダーとして使用しています。

リージョンをクリアする必要があります。私はこのコードを使用しています:

authCache.Clear() は実際には NHibernate.Caches.Velocity.VelocityClient.Cache メソッドを呼び出しています。

リージョンは正しくクリアされます。しかしその直後に、新しいセッションが開かれ、以前にキャッシュされたエンティティに対してクエリが実行されます。VelocityClient で GetAndLock を試みます。バン。AppFabricCachingService がクラッシュします (以下のイベント ログを参照)。

キャッシュを正しくクリアしていますか? 私の間違いは何ですか?

=====================

イベントログ

0 投票する
2 に答える
807 参照

nhibernate - Hibernate 2 次キャッシュ

Windows クライアント サーバー アプリケーションを開発しています。サーバーは Windows サービスとして実行され、すべてのクライアントは WCF を使用してサーバーに接続します。サーバーは DataAccess に NHibernate 3 を使用します。現在、NHibernate の第 2 レベルのキャッシュを有効にしようとしています。今、これに使用する必要がある CacheProvider を探しています。誰か私にこれについてのヒントを教えてもらえますか? おそらく、インストール/構成のチュートリアルへのリンクがありますか? ありがとうございました。

よろしく、 トーマス

0 投票する
3 に答える
2986 参照

c# - C# を介して CPU キャッシュ (読み取りおよび書き込み) にアクセスできますか?

CPU キャッシュにアクセスできるようにする機能が C# に実装されているかどうかを知りたいです。私にとっては興味深いことですが、現時点ではCPUキャッシュとは何の関係もありません。だから私はそれがシステム限定のアクセスなのか、それともユーザーにも利用できるのか疑問に思っていました. 私はL1/L2またはそれらが呼ばれるものについて話している!

コメント、外部リンク、コード スニペットなどをお待ちしております。ありがとう。