問題タブ [consistent-hashing]

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 に答える
56 参照

java - Treemap put がエントリを削除しているようです

unsigned long コンパレータでツリーマップを使用しようとしています。ただし、ツリーマップのプットは全体を削除しているようです。コンパレータがなくても問題なく動作しますが、コンパレータの何が問題なのかわかりません。以下のコード例:

パブリック クラス メイン {

}

結果は次のとおりです。

0 投票する
0 に答える
189 参照

hash - ハッシュ関数がスライシングと十分に混合されていることを確認する

この質問がばかげている場合は申し訳ありませんが、私はコンシステント ハッシュについて学び始めており、Tom White のブログ投稿をここで読んだ後、ほとんどのデフォルトのハッシュ関数が十分に混合されていないことに気づき、任意のハッシュ関数が十分に混合されています。

私の考えは、次のような例を使用して最もよく説明されています。

これらのバケット全体で一貫したキャッシングを行うための標準的なハッシュ リングの実装では、パフォーマンスが著しく低下し、ほぼすべてのエントリがバケット 1 にまとめられます。混合され、新しいオブジェクトをキャッシュに割り当てることは簡単になり、2 ビットを調べるだけで済みます。

私の考えでは、この概念は、複数のノードにまたがる分散ネットワークを構築するときに非常に簡単に拡張できます。私の特定のケースでは、これを使用して、特定のデータを配置するキャッシュを決定します。配置速度の向上は実際の懸念事項ではありませんが、キャッシュが適切に混合されていることを確認することは重要であり、特定のキャッシュに最適に混合されたいくつかのビットを選択することを検討していました. 後で索引付けされる情報は、同じビットに基づいて索引付けされます。

私の素朴な考えでは、これは仮想ノードを導入したり、より優れたハッシュ関数を構築したりするよりもはるかに簡単なソリューションです。そうは言っても、このようなアプローチについての言及は見られず、ハッシュの無知のために、ここで何か間違ったことをしていて、意図しない結果をもたらしているのではないかと心配しています。

このアプローチは安全ですか?使うべきですか?このアプローチは以前に使用されたことがありますか?ビットの最小の一意のグループを決定するための確立されたアルゴリズムはありますか?

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

java - spymemcached および HashAlgorithm.KETAMA_HASH を使用する場合のリカバリ memcached ノードの処理方法

spymemcached & HashAlgorithm.KETAMA_HASH を使用して、5 ノードの memcached のプールに接続しています。

私の理解では、ノードがダウンしているときに、キーが再配布されるため(最小限の影響で)心配する必要はありません。

ダウンしたノードがプールに参加しようとしている場合はどうなりますか。私は何をする必要がありますか?

古いデータを削除する必要があることを確認する必要がありますか? または、この場合、プログラムに特別な処理が必要ですか?

0 投票する
0 に答える
213 参照

php - 一貫性のあるハッシュと redis - PHP と Python で同じアルゴリズムを使用する方法

Python では、redis のシャーディング キーに hash_ring という Python ライブラリを使用します。ただし..キーが指定されたシャードサーバーを見つけるには、phpアプリとpythonアプリが必要です。

同じ基礎となるアルゴリズムを使用するが、ruby、php、python などの多くのサポートされているクライアントを持つ一貫したハッシュ ライブラリはありますか?

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

hash - vbucket は切り替え中のサーバー データ損失をどのように解決しますか

vbucket は、サーバーを動的に追加/削除するために memcached によって使用されます。私の質問は、一貫したハッシュよりも優れている点です。また、サーバーが追加され、状態が Pending から Active に変わった場合。これが最初に行われ、次に vbucket が新しく追加されたサーバーを指します。そのため、古いリクエストは新しいリクエストにも送信され、切り替えはアトミックに行われる必要があります。どのように ?

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

python - ketama を使用した Python memcache コンシステント ハッシュ

実行時に追加の memcache インスタンスを追加するコードがありますが、これによりキーが失われます。Consistent_hash、hash_ring などの利用可能なライブラリがいくつかあることは知っていますが、コードでそれらを使用することはできません。利用可能な ketama があることは知っていますが、python コード サンプルが見つかりませんでした。

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

memcached - Memcached コンシステント ハッシュとネットワーク パーティショニング、解決方法は?

私の理解では、「コンシステント ハッシュ」モードで memcached を使用する場合、ノードがダウンしている場合、クライアントはアルゴでキーを再マッピングします。

2 つのクライアント (A、B) と 2 つのサーバー (C、D) があるとします。

クライアント A はサーバー C がダウンしていると考えているが、B は C がまだ生きていると考えている場合はどうなるでしょうか?

したがって、A は C と D を使用し続けますが、B は D のみを使用します。この場合から生じるデータの不一致をどのように解決しますか?