ノード データベースに PUT を送信するだけで、4 つのノードを持つ BigCouch クラスターを作成しました。
curl -X PUT http://bigcouch-a.example.com:5986/nodes/bigcouch@bigcouch-a.example.com -d {}
curl -X PUT http://bigcouch-a.example.com:5986/nodes/bigcouch@bigcouch-b.example.com -d {}
curl -X PUT http://bigcouch-a.example.com:5986/nodes/bigcouch@bigcouch-c.example.com -d {}
curl -X PUT http://bigcouch-a.example.com:5986/nodes/bigcouch@bigcouch-d.example.com -d {}
すべてのノードが適切に登録されました。メンバーシップに GET を送信すると、4 つのノードすべてが返されます。
{"all_nodes":[
"bigcouch@bigcouch-a.example.com",
"bigcouch@bigcouch-b.example.com",
"bigcouch@bigcouch-c.example.com",
"bigcouch@bigcouch-d.example.com"]
"cluster_nodes":[
"bigcouch@bigcouch-a.example.com",
"bigcouch@bigcouch-b.example.com",
"bigcouch@bigcouch-c.example.com",
"bigcouch@bigcouch-d.example.com"]
}
問題は、ノードを削除する方法です。
ノードデータベースに DELETE を送信しようとしました
curl -X DELETE http://bigcouch-a.example.com:5986/nodes/bigcouch@bigcouch-d.example.com
しかし、私はエラーが発生しました:
{"error":"conflict", "reason":"Document update conflict."}
ノード d を停止すると、メンバーシップが返されました。
{"all_nodes":[
"bigcouch@bigcouch-a.example.com",
"bigcouch@bigcouch-b.example.com",
"bigcouch@bigcouch-c.example.com"]
"cluster_nodes":[
"bigcouch@bigcouch-a.example.com",
"bigcouch@bigcouch-b.example.com",
"bigcouch@bigcouch-c.example.com",
"bigcouch@bigcouch-d.example.com"]
}
そのため、ノードd
は消えまし"all_nodes"
たが、まだ"cluster_nodes
メンバーとして存在しています。
この状態では新しいデータベースを作成できません。メッセージを受け取るたびに:
could not load validation funs {function_clause,
[{lists, flatmap,
[#Fun<couch_db.36.90395586>,
{nodedown, <<"progress not possible">>}]},
{couch_db, '-load_validation_funs/1-fun-1-', 1}]}
それを修正する方法はありますか?