droonga-engine-set-roleは、あるDroonga Engineノードのロールを任意のロールに変更します。
Droonga Engineノードは、流入してきたメッセージを自分で処理するかどうかを、メッセージのtargetRoleフィールドの値に基づいて決定します。
droonga-engine-joinコマンドは操作対象のノードのロールを変更しますが、もし操作が意図せず中断されてしまった場合、それらのノードはサービス提供用としては無効化されたままになってしまうことがあります。
そのような場合には、このコマンドを使ってそれらのノードのロールを適切に変更することで、ノードを再度有効化できます。
例えば、新たに追加されるreplicaノードのためのデータコピー元として使われた192.168.100.50というDroonga Engineノードがあり、同一ネットワークセグメント内のコンピュータ192.168.100.10にログインしている場合、192.168.100.50を再度有効化するコマンド列は以下のようになります:
(on 192.168.100.10)
$ droonga-engine-set-role --host 192.168.100.50 \
--role service-provider
Setting role of 192.168.100.50:10031/droonga to service-provider...
Done.
Droongaクラスタに新しいreplicaノードを追加する操作についてのチュートリアルも併せて参照して下さい。
--role=ROLEservice-provider:
ノードはサービス提供用として有効化されます。absorb-source:
ノードはサービス提供用として無効化され、データのコピー元に設定されます。absorb-destination:
ノードはサービス提供用として無効化され、データのコピー先に設定されます。--host=NAME--port=PORT10031です。
この値は、実際にはこの操作の処理のためには使われませんが、ノード自体を識別するために使われます。
--tag=TAGdroongaです。
この値は、実際にはこの操作の処理のためには使われませんが、ノード自体を識別するために使われます。
--verbose-h, --helpこのコマンドは、Rubygemsのパッケージdroonga-engineの一部としてインストールされます。
# gem install droonga-engine