Живые узлы Voltdb выдают исключение при выполнении "sqlcmd" после того, как узел кластера из 3 узлов с Ksafe 1 выключен
Я развернул среду с двумя сайтами с кластером из трех узлов voltdb на каждом сайте с Ksafe=1. Кластеры настроены с репликацией XCDR. Я выполнил проверку отработки отказа, я выключил виртуальную машину одного из узлов кластера), и, по-видимому, журнал не выдает никакой ошибки, но когда я пытаюсь подключиться через "sqlcmd" в двух живых узлах этого кластера Я получил следующую ошибку:
$ sqlcmd
org.voltdb.client.ProcCallException: Server is shutting down.
at org.voltdb.client.ClientImpl.internalSyncCallProcedure(ClientImpl.java:481)
at org.voltdb.client.ClientImpl.callProcedureWithClientTimeout(ClientImpl.java:320)
at org.voltdb.client.ClientImpl.callProcedure(ClientImpl.java:256)
at org.voltdb.utils.SQLCommand.loadStoredProcedures(SQLCommand.java:1253)
at org.voltdb.utils.SQLCommand.mainWithReturnCode(SQLCommand.java:1567)
at org.voltdb.utils.SQLCommand.main(SQLCommand.java:1626)
SQL Command :: localhost:21212
1>
1> select count(*) from table1;
Server is shutting down
Кто-нибудь знает почему, если Ksafety=1 Voltdb выдает это исключение?
Спасибо
1 ответ
VoltDB здесь. Если у вас есть кластер Kfactor=1 с 3 узлами, отключение одного виртуального сервера и, следовательно, одного узла не должно приводить к отключению всего кластера.
Тот факт, что он, по-видимому, отключается в замедленном режиме, свидетельствует о каком-то процессе слива (например, dr_overflow, так как вы используете XDCR). Мы обычно видим эти расширенные процессы слива при ручном отключении, а не при сбоях.
Нам бы пришлось посмотреть логи, чтобы точно знать, что происходит. Если вы являетесь клиентом, вы можете написать support@voltdb.com с файлами журналов. Если нет, вы можете написать по электронной почте sales@voltdb.com.