問題タブ [chronicle-map]
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.
string - ヒープ使用量を下げる目的で、.`intern` メソッドよりも java.util.String に Chronicle Map を使用する利点はありますか?
gc の一時停止を減らすために、古い世代のサイズを小さくすることを意図しています。
私の理解では、Chronicle Map はオブジェクトをネイティブ スペースに格納し、(Java 8 以降) String#intern はインターンされた文字列がメタスペースにあるため、同じことを行います。
クロニクル マップを使用する必要があるときはいつでも興味がありました。または、インターン方式に固執しても問題ありません。
java - OpenHFT/Chronicle マップに失敗しました
VanillaChroncile を使用してエントリを一時的に保存および取得していますが、負荷が大きい場合を除いて、すべて正常に動作します。マップ失敗例外が発生します。この例外を処理する回復ロジックはありますが、そもそもなぜ例外が発生するのか知りたいです。どんな助けでも大歓迎です。
}
java - ファイルに永続化された Chronicle Map でトランザクション動作を実現する方法
全て、
クロニクル マップに時系列を保存しようとしています。シリーズはチャンクに分割され、各チャンクは個別のマップ エントリです。エントリが Chronicle Map に現在書き込まれている間 (BytesMarshaller がシリアル化されている間)、JVM が終了するとどうなるか誰かが知っているかどうか疑問に思っています。
メモリ マップされたファイルは破損したデータになってしまいますか?? 回避策はありますか??
java - OpenHFTクロニクルマップはどのように機能しますか
クロニクル マップがどのように機能するかについての情報が必要です。いくつかのキーと値のペアをメモリに保持し、格納する値の特定のしきい値をオーバーフローすると、データがディスクにオーバーフローするか、メモリ サイズに依存するかのようなものですか?マップのサイズがしきい値を超えて大きくなり、データがディスクにオーバーフローします。その場合、どのように構成できますか、または他の戦略はありますか?
java - 2 つの JVM 間で高速に画像データを渡す
同じマシンで 2 つの Java アプリケーションを実行しています。リモート接続の要件があったため、http を介した jvm 間通信を実装しました。ある仮想マシンから別の仮想マシンに、約 10MByte の画像データを 1 秒間に 100 回渡しています。http では、書き込み機能に時間がかかりすぎたため、大幅な遅延が発生しました。速度が最も重要な基準であるため、要件として http をスキップできます。次に、ソケットを試しましたが、それでも遅すぎます。高速な jvm 間のメッセージングについて、RMI と Chronicle (openhft) について読みました。クロニクルは、メッセージの受け渡しにクロニクル キューを使用し、画像データの共有にクロニクル マップを使用できるので、興味深いと思います。
しかし、正直なところ、何が最善かを見積もることはできません。使用例は次のとおりです。 サーバーは画像を収集します。クライアントは、利用可能なイメージのリストを要求します。クライアントがメッセージを受け取るとすぐに、クライアントは 1 つの特定のイメージを要求します。サーバーには既にイメージがロードされており、イメージをクライアントに送信する必要があります。使用する戦略について何か提案はありますか? すべての画像をクライアントに送信することもできますが、これにより、サーバーが不要なデータ送信に多くの時間を費やすことになります。
ヒントをありがとう。
dictionary - バイト値を Map に格納することは理にかなっていますか、それとも 4 バイトを使用しますか?
Java インメモリでは、byte と int の間に違いはありません。どちらも 4 バイトとして表されます。
クロニクル マップには違いがありますか。つまり、クロニクル マップはバイト値を 8 ビットとして保存するのですか、それとも 32 を使用しますか?
byte がオブジェクトプロパティである場合も同じ質問です。
chronicle - Chronicle Map は、2 億を超えるエントリで大幅に遅くなります
Chronicle Map を使用して、非常に多数の KV ペア (実際には数十億) を一時的に保存/検索しています。耐久性やレプリケーションは必要ありません。また、純粋なオフヒープ メモリではなく、メモリ マップ ファイルを使用しています。平均キー長は 8 バイトです。
小規模なデータ セット (最大 2 億エントリ) の場合、1 秒あたり約 100 万エントリのスループットが得られます。つまり、エントリの作成に約 200 秒かかります。それらを作成するのに1500秒。
Mac OSX/16GB Quad Core/500GB SSD と、8 コア/64GB RAM/300GB Raid 1 (SSD ではない) を搭載した Linux を実行する Proliant G6 サーバーの両方でテストを実行しました。両方のプラットフォームで同じ動作が見られます。
それが役立つ場合、マップのセットアップは次のとおりです。
そして簡単なライターテスト:
だから私の質問は - これを改善するために私ができるチューニングはありますか? たとえば、セグメント数を変更したり、別のキータイプ (CharSequence など) を使用したりしますか?
networking - Chronicle Map はネットワーク ファイル共有を読み取り専用データに使用できますか?
Chronicle Map を使用して、シリアル化されたマップをネットワーク ファイル共有から読み取り、ローカルで処理したいと考えています。準備されたデータをマップから読み取る 100 台以上のマシンが必要です。何度も繰り返しますが、書き込むことはありません。1 つのプロセスでネットワーク ファイル共有上にマップを作成し、各「コンシューマー」がマップをロードして処理することはできますか。マップは、100 万個のキーと 1,000 個の値を超えることはありません。それとも、UDP / TCP レプリケーション機能を使用する必要がありますか?