кто слышал, собираются ли в ближайших версиях делать возможность писать правила разрешения конфликтов такой репликации? Ну грубо говоря как в OGG, евпочя.
Разрешение конфликтов уже было в BDR, из которого потом и выросла ванильная логическая репликация. Так что возможно когда нибудь и разрешение конфликтов добавят...
я так понял, в качестве костыля можно использовать триггеры before update/insert? пользуясь тем, что триггер можно включать только для действий через репликацию. Не уверен, правда, что все правила так реализовать можно, но простейшие вроде бы можно...
я так пробовал сделать для синхронизации между тремя парными таблицами: дано: сервера а, б, ц создаётся две таблице на каждой дб (чтобы образовать пары между серверами), для простоты обозначим их аб, бц, ца т.е. на а будет аб ца, на б будет аб бц и на ц бц ца создаётся три лог реплики двусторонние. триггеры на любимый вкус (не забывая их немного ограничить, чтобы не работали бесконечно) профит... мастер-мастер между кучей машин! но нет, лог репликации моя идея не оч понравилась и она вошла в циклический стейт, при этом воркеры кушали всю оперативку со временем
Так-то для этого давно https://www.postgresql.org/docs/9.5/replication-origins.html есть система replication origins... но это только для решений в стиле "собери сам", к сожалению. ;(
о, можно будет потыкать, когда снова захочется воспроизвести это "странное", спасибо!
ну вот вроде в 16й добавили origin = none чтобы как раз избежать зацикливания.
Обсуждают сегодня