0

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

4

1 に答える 1

2

まず、VBuckets が実際に memcached に実装されているとは思えません。それらが使用されていることを私が知っている唯一の場所は、Couchbase Bucket に memcached のようなキャッシュ層がある Couchbase です。

私の質問は、一貫したハッシュよりもどのように優れているのですか?

VBucket は、個々のキーよりもサーバー間で移動しやすいため、コンシステント ハッシュよりも優れています。コンシステント ハッシュに依存している場合、2 台のサーバーから 3 台のサーバーに移行する場合、その唯一の方法は、システム内のすべてのキーを新しいサーバー セットに再ハッシュすることです。VBuckets がある場合は、いくつかの VBuckets を新しいサーバーに移動するだけで済みます。これにより、移動が必要なキーを簡単に特定でき、クラスター内のすべてのキーにアクセスする必要がなくなります。

VBucket が別のサーバーに移動したときに、クライアントはリクエストの送信先をどのように判断しますか?

Couchbase では、各クライアントに VBuckets を IP アドレスにマップするマップが含まれています。クライアントには、VBucket マップの変更を送信するストリーミング ポートへの接続もあります。クライアントが新しいマップを取得すると、リクエストのルーティング先を更新できます。

于 2013-09-20T20:47:55.497 に答える