VoltDB FAQ – часто задаваемые вопросы по VoltDB


Вопрос: Как правильно остановить VoltDB-кластер в целях обслуживания?
Ответ:

Вопрос: Как добавить сервер в кластер?
Ответ:
Инструкции по добавлению серверов:
Если опция elastic включена то сервера можно добавлять прямо в работающий кластер:
# cat deployment.xml 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<deployment>
    <cluster hostcount="3" sitesperhost="4" kfactor="1" elastic="enabled"/>
...

Если сервер имеет два и более сетевых интерфейса то надо явно указать какой интерфейс будет "Internal interface", а какой "External interface". Даже если они совпадают, все равно надо явно прописать один и тот же IP в поля "IP or Host name", "Internal interface", "External interface".

Вопрос: Как остановить репликацию?
Ответ:
  1. Ставим master cluster на pause (voltadmin pause), БД перейдет в admin режим и остановит клиентскую активность
  2. Ждем когда все транзакции пройдут через DR agent (Section 12.2.4.1, “Monitoring the Replication Process”)
  3. Делаем shutdown для replica database (voltadmin shutdown)
  4. Делаем resume на master database (voltadmin resume), клиентская активность может быть возобновлена.

Вопрос: Как возобновить репликацию?
Ответ:
  1. Stop the DR agent process, if it is not already stopped.
  2. Shutdown and restart the replica database.
  3. If the master database is not running, restart it.
  4. Restart the DR agent.
Ситуации когда нужно перезапустить репликацию:
  • If the replica database stops.
  • If the master database stops.
  • If the DR agent stops.
  • If communication between the master and the DR agent is delayed to the point where the master cluster's replication queues overflow.
  • If any transaction replayed on the replica fails. Note that only successfully completed transactions are sent to the replica. So if a transaction fails, the replica is no longer in sync with the master.
  • If any transaction replayed on the replica returns a different result than received on the master. The results are hashed and compared. Just as all replicated transactions must succeed, they must produce the same results or the two databases are out of sync.

To be continued...