問題タブ [shared-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.
.net - 分散キャッシュ (SharedCache) に格納されたキーへのアクセスを同期する
私のプロジェクトでは、SharedCacheを分散キャッシュ メカニズムとして使用しています。このキャッシュされたデータにアクセスする webfarm にデプロイされたサービスの複数のインスタンスがあります。キャッシュされるデータは一時的なものであり、更新される可能性があります。2 つ以上のサービス間でデータへのアクセスを同期する方法があるかどうか知りたいです。
ここで例を挙げてシナリオを示します。実行中のサービスのインスタンスが 2 つあるとします。両方のインスタンスが共有キャッシュにアクセスしています。あるサービスが処理のためにキャッシュからデータを取得する場合、他のサービスが同じ情報を取得しないようにする必要があります。そのためには、利用できないというステータスでキャッシュを更新する必要があります。しかし、ステータスを更新しているときに、2 番目のサービスも同じデータを取得する可能性があります。
共有キャッシュのドキュメントスレッド セーフは、データがグローバルに利用可能であり、スレッド セーフではないことを示唆しています。SharedCache のソース コードを変更せずにスレッド セーフにする方法はありますか?
asp.net-mvc - SharedCacheとNhibernateを使用してキャッシュされたエンティティに有効期限を設定する
現在作成しているMVCWebアプリがあります。2番目のアプリは、私のWebアプリが読み取るデータベースにデータを公開します。
NHibernateのキャッシュプロバイダーとしてSharedCacheを使用しており、エンティティに「有効期限」を割り当てたいと考えています(データの鮮度を保証できるように)。一部のエンティティはめったに更新されず、他のエンティティは定期的に更新されることを知っています。有効期限が異なるさまざまなキャッシュ領域を用意するのが理想的です。
SysCacheを使用してこれを行う方法の例をウェブ上で数多く見てきましたが、SharedCacheの例は見つかりませんでした。
前もって感謝します。
html - ローカル ネットワーク内で HTML5 オフライン キャッシュを共有していますか?
わかりましたので、HTML 自体はまだ完成していません。HTML5 のオフライン モードについてはかなりの部分を読みました。
質問は次のとおりです。
システム全体がオフラインで動作し、同じネットワーク内の他のクライアントとキャッシュ (または XML リポジトリ、または SQL-Lite DB など) を共有するようにオフライン アプリをセットアップできますか?
たとえば、私のシステムは、ローカル ネットワーク内で相互に情報を共有する必要があるクライアントで実行されますが、完全に Web ベースです。ローカル ネットワークのルーターが停止した場合、これらのクライアントはどのようにして相互に通信し続けることができますか?
=== 終わり ===
注: それでもよくわからない場合は、読み進めることをお勧めします。以下の情報は、私が望むものをさらに明確にするためのものです。
まだ読んでいる方のために、詳細な例を次に示します。
レストランで 4 人が Web ベースの注文システムを使用しています。それぞれにiPod Touch(笑)があり、Wifiでインターネットにつながっています。各メンバーは共有アカウントでシステムにログインし、情報を共有できます。料理人も接続されていますが、キッチンでは取り付けられた iPad (lolz) を使用しています。
ウェイターが注文を記録すると、データが DB に保存され、AJAX を使用して料理人の画面が常に更新されるため、即座に料理人に通知されます。
ゼウスがレストランの電気を消したとします。
現在、インターネット接続はありませんが、問題のすべてのデバイスは、固有のバッテリー指向の性質のおかげで引き続き機能します.
Web アプリはオフライン モードに切り替わり、キャッシュされたメニューと画面を利用します。
しかし!
オフライン システムはクライアント デバイス間でどのように情報を共有しますか? iPod Touch #3 はどのようにしてクックの iPad に「やあ、これは注文 #5352 です」と伝えるのですか?
最も明白な考えは、共有キャッシュか何かです...
アイデア?
asp.net - メイン サイト間で asp.net キャッシュを共有し、そのアプリケーション/仮想ディレクトリを追加します (iis 7.5 を使用)
私のソリューションには、Core、Data (ライブラリ)、Admin、Client (MVC 3 サイト) の 4 つのプロジェクトが含まれています。
管理者とクライアントは、Data プロジェクトのリポジトリを使用して DB と通信します。
管理者とクライアントの両方に HttpContext.Current.Cache を使用してデータ プロジェクトにデータをキャッシュし、管理者とクライアントの両方に表示される可能性のある更新後にキャッシュされたデータを無効にします。
クライアントと管理者で同じキャッシュを持つようにするには、サイト、アプリケーション、または仮想ディレクトリとアプリ プールをどのように構成すればよいですか?
c# - DataCache.Increment は WindowsAzure 共有キャッシュで利用できますか?
WindowsAzure 共有キャッシュと、ここに記載されている DataCache クラスの Increment 演算子を使用しようとしています: http://msdn.microsoft.com/en-us/library/windowsazure/jj160018.aspx。
私が使用している Microsoft.ApplicationServer.Caching.Client.dll は、http://nuget.org/packages/WindowsAzure.Caching をキャッシュするための 1.7 nuget パッケージからのものですが、そのアセンブリでインクリメント メソッドが見つかりません。
Increment メソッドは Azure で使用できますか? また、それがどの dll を参照してアクセスする必要があるか?
multithreading - SQLite SharedCache マルチスレッド読み取り
4 つのプロセッサが割り当てられた Ubuntu 仮想マシンで、マルチスレッドの sqlite データベース アプリケーションを開発しています。sqlite バージョン 3.7.13 を使用しています。複数のスレッド/接続がデータベースから同時に読み取ることができることを確認するテストを作成しました。
私は2つの実行可能ファイルを持っています。最初の実行可能ファイルは、単純にデータベースを作成し、そのデータベースに 1 つのテーブルを作成し、そのテーブルに 50 個の項目を挿入してから、データベースを閉じます。これにはマルチスレッドはまったく関係なく、単にデータベースにエントリを提供することを目的としています。
2 番目の実行可能ファイルは、データベースから読み取る複数のスレッドを作成し、それらが終了するのを待ち、すべてのスレッドが完了するまでにかかった時間を記録します。各スレッドは次のことを行います: - sqlite_open_v2() を使用してデータベース接続を作成し、各スレッドが最初の実行可能ファイルから作成されたデータベースへの独自の接続を持つようにします - 1 つのデータベース テーブルに対して 100000 回の SELECT を実行します (各選択クエリは、 table) -データベース接続を閉じます
各スレッドで sqlite_open_v2 のフラグとして SQLITE_OPEN_READWRITE を指定してこのテストを実行したところ、すべてのクエリを実行する合計時間について次の結果が得られました。
1 スレッド - 0.65 秒 2 スレッド - 0.70 秒 3 スレッド - 0.76 秒 4 スレッド - 0.91 秒 5 スレッド - 1.10 秒 6 スレッド - 1.28 秒 7 スレッド - 1.57 秒 8 スレッド - 1.78 秒
これらの結果は、スレッドを追加するにつれて時間が少しだけ増加する (おそらくスレッド間のコンテキストの切り替えやその他の原因による) 予想どおりでした。つまり、読み取りは基本的に並列で行われています。
ただし、この同じテストを SQLITE_OPEN_READWRITE | で実行すると、フラグに SQLITE_OPEN_SHAREDCACHE を使用すると、次の結果が得られます。
1 スレッド - 0.67 秒 2 スレッド - 2.43 秒 3 スレッド - 4.81 秒 4 スレッド - 6.60 秒 5 スレッド - 8.03 秒 6 スレッド - 9.41 秒 7 スレッド - 11.17 秒 8 スレッド - 12.79 秒
これらの結果から、共有キャッシュ モードの何かが、データベースで同時に複数の読み取りが発生するのを妨げているように見えます。スレッド 1 がすべての読み取りを実行し、スレッド 2 がすべての読み取りを実行し、スレッド 3 がすべての読み取りを実行するのではなく、実際に異なるスレッドが並行して実行されていることを確認しました (スレッド 4 の読み取り、スレッド 8 の読み取り、スレッド 2 の読み取りなど)。等。)。ただし、個々のトランザクションの読み取りが順次実行されているか、他の何かが共有キャッシュ内のデータベースの速度を低下させているようです。
共有キャッシュ モードを使用しない場合とは対照的に、共有キャッシュ モードでスレッドを追加すると、時間が大幅に増加するのはなぜですか? これを修正し、引き続き共有キャッシュ モードを使用する方法はありますか?
助けてくれてありがとう。大変感謝しております。
background - 実行時にcocos2dRetinaディスプレイの背景を切り替えます。
アプリの背景がありますが、ボタンをクリックすると変更され、別のボタンを使用する必要があります。
それぞれがキャッシュに16MBを超えるサイズを持ち、30の異なる背景があるため、それらすべてをsharedTextureCacheに追加することはできません。
ロード時間を使わずにバックグラウンドを切り替えるための最良の方法は何ですか?そのボタンをクリックするときにユーザーを待たせたくありません。
ありがとう
jpa - java.util.Date フィールドでの EclipseLink 共有キャッシュの予期しない動作
私は EclipseLink(2.3.0) でタイヤを蹴っていますが、ひどく間違っていると思われるものを見つけました。私の問題の正味は、Entity が共有キャッシュ ヒットから返されたときjava.util.Date
(およびおそらく他のもの) が期待どおりにコピーされないことです。日付フィールドは不変ではなく、共有できないため、これはかなり厄介な結果をもたらします....しかし、何かが足りないのではないでしょうか? プロパティを設定していませんが-javaagent
、JSE 環境でウィーバーを使用しています。
テスト スニペット:
c# - テスト用にローカル キャッシュを構成する方法
Azure 共有キャッシュを使用しています。開発プロセスでは、多くのデータを書き込む必要があり、時間がかかります。
worker-role を構成してローカル キャッシュに書き込むことはできますか?