2012-04-05 10 views
2

私はMEMCACHED_DISTRIBUTION_CONSISTENT_KETAMAの書き込みデータwhitに "c"でlibmemcachedを使用します。すべての鍵はすべてのクラスタノードに分散されていますが、これらの鍵のいずれかをシャットダウンすると、鍵は移行されません。 Googleで検索すると、自動的にlibmemcachedをセットアップする方法が明確ではありません。いずれにせよその経験はありますか?libmemcachedクラスタのノードのフェールオーバー

+0

あなたが移行したと言ったとき、キー上の新しい 'sets'が失敗することを意味しますか? – keety

+0

はい、シャットダウンノードにあったキーの新しいセットは、新しいサーバーに設定できません。 –

答えて

1

は、私はあなたが使用する必要がありますと思う:http://docs.libmemcached.org/memcached_behavior.html#MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS

あなたが失敗したサーバーを削除するlibmemcached許可しない場合、彼らはので、キーが再配布されていない、リストに立ち往生。

MEMCACHED_BEHAVIOR_DEAD_TIMEOUT(12)の秒後に不動作のサーバーが再度テストされることに注意してください。だからもう一度やり直せば、それは完全なサーバーのリストに戻されます。

0

memcachedサーバーに障害が発生した場合、Libmemcachedはキー移行を内部的に処理しません。この場合、libmemcachedが失敗したサーバーに格納されているキーを取得しようとすると、キャッシュミスが発生します。

MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMAを使用すると、鍵が配布され、完全な再ハッシングは必要ないため、キャッシュミスが最小であることを確認します。

解決策: 複数のノードに鍵を複製すると、サーバに障害が発生した場合に(鍵、値)のペアを取得するのに役立ちます。しかし、それは強固に一貫した解決策ではないことに注意してください。失効したデータが存在する可能性があります。

EVICT鍵が新しい場所にハッシュされ、クラスタから削除されるように、障害が発生したサーバー。

関連する問題