Назад | Перейти на главную страницу

Асинхронный кластер PostgreSQL с частичными синхронными фиксациями

Мы планируем полный синхронный кластер PG с 3 узлами, но мы спросили себя, возможно ли иметь асинхронный кластер с частичными синхронными коммитами.

Обычно вы делаете свой кластер полностью синхронным, и вы можете указать отдельные транзакции как асинхронные, установив «SET LOCAL synchronous_commit TO OFF». Есть и другой способ или нет?

Да, можно сделать наоборот.

Просто настройте его как обычный синхронный кластер, но установите synchronous_commit = off в postgresql.conf. Затем:

SET LOCAL synchronous_commit TO ON

в транзакциях, которые вы хотите совершать синхронно.

Однако имейте в виду, что синхронная фиксация заставит предыдущие фиксации сбрасываться до того, как она сможет зафиксироваться. Итак, если вы делаете коммиты 1, 2, 3, 4, 5, [sync]6, 7, 8, затем фиксирует с 1 по 6 включающий должен быть сброшен до того, как фиксация 6 сообщит об успехе.