appointNewDgraphLeader.shスクリプトを使用して、データベースの新規Dgraphリーダーを指名できます。
このスクリプトのユースケースは、長時間の収集がDgraph HDFSエージェントで進行中の場合、およびなんらかの理由でDgraphが停止する場合です。新しい書込みリクエストが発生するまで待機するのではなく、管理者は、このスクリプトを実行するだけで、別のマシンで(同じデータベースの)収集を再起動できます。(ファイルは、収集の正確な進捗状況を記録するHDFSに保持されます。新しく指名されたDgraph HDFSエージェント・リーダーは、ファイルを読み取り、どの時点で収集を選択するかを認識します。)
たとえば、Dgraph_AのDgraph HDFSエージェントは、Dgraphがクラッシュする(結果として収集が中断される)と(EdpTestというデータベースで)収集を実行しています。スクリプトが実行されると、EdpTestデータベースの新しいリーダーをDgraph_Bにでき、この場合、Dgraphが停止した(Dgraph_BがDgraph_Aのかわりに収集を実行していることを除く)時点で収集が選択されます。データベースはDgraph間で共有されているため、新しリーダーによって収集を再開できます。
スクリプトが実行され、その間に新しいリーダーが指名された場合、スクリプトは基本的に同じリーダーを再指名します。
./appointNewDgraphLeader.sh <dg_address> <database_name>説明:
./appointNewDgraphLeader.sh web009.us.example.com:7003 EdpTest
データベースの新しいDgraphリーダーを指名するには、次の手順を実行します。
New Dgraph Leader appointed for database <database_name>
Unable to appoint new Dgraph leader Could not reach Dgraph gateway
試行が失敗するのは、Dgraph Gatewayのアドレスが正しくないことが原因である可能性があります。