目次
Couchbaseクライアントライブラリの実装は、memcachedの(バイナリプロトコル)クライアントライブラリの実装に非常によく似ています(既存のmemcachedのバイナリプロトコルのクライアントライブラリの拡張の場合もあります)。しかし、別のキーハッシュアプローチをサポートしています。係数やketama/consistentハッシュを使用する代わりに、Couchbaseでは"vbuckets"に基づく新しいハッシュアプローチを行います。詳細はこちらを参照してください。
vBucketアプローチでは、与えられたキーでやりとりをするためのサーバを見つけるために、クライアントライブラリは16ビット整数のvBucket-Idにそのキーをハッシュする必要があります。このステップに対するデフォルトのハッシュアルゴリズムは、必要なビット数でマスクされたごく普通のCRCです。vBucket-Idは「vBucketサーバーマップ」と呼ばれるサーバのルックアップテーブルの配列のインデックスとして使用されます。これら2つのステップで、与えられたキーと上記サーバーマップにより、クライアントライブラリが該当するCouchbaseのサーバを見つけることができます。この、付加的な間接手順(「vBucketサーバマップ」を持っていること)によりCouchbaseは簡単に、リバランス、マイグレーションや複製のためにアイテムのデータを制御できるようになります。