Кластер Galera — Autocommit

Я настроил кластер galera с 2 узлами и отключил автокоммит на 2 серверах.

   set autocommit=0;

ВСТАВЬТЕ данные на server1 и COMMIT, но server2 не обновил данные;

server2 нужен COMMIT; перед ВЫБРАТЬ;

как обновить данные без COMMIT, кроме autocommit=1?


person seagrant    schedule 20.08.2015    source источник


Ответы (1)


Возможно, вы имеете в виду проблемы «критического чтения», а не autocommit. См. руководство по wsrep_sync_wait, которое должно быть от SET до 1 перед SELECT, которое может считывать данные с узла, отличного от того, на который данные были записаны. Это гарантирует, что репликация догоняет, чтобы вы получили «правильный» ответ.

Мой блог Galera обсуждает этот аспект и многое другое.

Если вам нужно что-то кроме SELECT для ожидания, используйте, скажем, 15 для значения в SET.

(Я предпочитаю явно использовать BEGIN вместо использования autocommit=0; тогда я могу соединить BEGINs и COMMITs в коде и не оставлять транзакцию «открытой» навсегда.)

person Rick James    schedule 22.08.2015