Я создал кластер BigCouch с 4 узлами, просто отправив PUT в базы данных узлов:
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}]}
Есть идеи как это исправить?