кластер тестирования Postgres-XL с помощью следующей архитектуры я настройки:Насколько прозрачным может быть потерять доступ к datanode Postgres-XL?
- GTM - vm00
- coord1 + datanode1 - vm01
- coord2 + datanode2 - vm02
I создала новую базу данных, которая содержит таблицу, которая распространяется путем репликации. Это означает, что я должен иметь точную копию этой таблицы в каждом отдельном datanode.
Выполнение операций на столе отлично работает, я вижу изменения, реплицированные при подключении ко всем узлам координатора.
Однако, когда я моделировать один из DataNodes идти вниз, в то время как я все еще могу прочитать данные в таблице просто отлично, я не могу добавить или изменить что-либо, и я получаю следующее сообщение об ошибке:
ERROR: Failed to get pooled connections
Я рассматриваю возможность развертывания Postgres-XL как высокодоступного бэкэнда базы данных для большого количества приложений, и я не могу контролировать, как эти приложения взаимодействуют с базой данных (может быть, большая проблема, если эти приложения не могут писать в базу данных, а один datanode не работает).
Насколько я понимаю, Postgres-XL должен обеспечить высокую доступность реплицированных таблиц очень прозрачным способом и должен поддерживать потерю одного или нескольких datanodes (до тех пор, пока хотя бы один из них по-прежнему доступен), это просто для реплицированных таблиц), но это не выглядит так.
Является ли это предполагаемым поведением? Что можно сделать, чтобы иметь возможность противостоять одному или нескольким datanodes?
По репликации, как описано в этом вопросе. – rasebo