Почему нельзя писать исключительно в центр, а читать из реплики филиала? Кажется, эта схема сильно проще той, что вы описали.
10 июля 2014 г., в 16:34, Alexander Bruy <voltron@ua.fm> написал(а):
Здравствуйте,
имеем следующую ситуацию. Есть некая территориально распределенная сеть «филиалов» и один «центр». Связи между «филиалами» нет, но все они связаны с «центром». На всех узлах этой звезды есть база данных, которую надо поддерживать в максимально синхронном состоянии. Т.е.изменения, сделанные в одном из «филиалов» должны попасть как в «центр», так и в другие «филиалы». Аналогично, изменения из «центра» должны разойтись по всем «филиалам».
Как понимаю, из-за отсутствия связи между «филиалами», все измения должны сначала приходить в «центр», а потом рассылаться на остальные узлы. Думали ещё о варианте с настройкой маршрутизации так, чтобы все «филиалы» могли видеть друг-друга через канал центра, но есть сомнения в целесообразности, т.к. филиалов достаточно много, около 40.
Вопросов несколько: 1. можно ли реализовать подобное на PostgreSQL, если да, то какими средствами? Сейчас присматриваемся к Bucardo, но может лучше взять что-то другое? 2. можно ли пакеты изменений посылать не напрямую «филиал → центр» или наборот, а через промежуточные узлы «филиал → посредник 1 → посредник 2 → центр»?
Да, ещё, базы содержат пространственные данные (PostGIS), и каждый филиал в основном редактирует только часть, относящуююся к его сфере ответственности. Т.е. теоретически ситуаций, когда в разных филиалах одновременно правят одну и ту же строку таблицы быть не должно
Спасибо
-- реклама ----------------------------------------------------------- Изысканное нижнее бельё от 50 грн! Anabel Arto со скидкой 75% по ссылке http://bit.ly/anabelMK