Thread: Re: Multi-Master asynchronous replication
On Tue, 24 Apr 2007 20:25:49 +0600, Mykola Dzham <i@levsha.org.ua> wrote: > Alexey Kolosov wrote: >> Есть ли подобное решение для PostgreSQL? > > А оно возможно? Это же прямой путь к рассинхронизации нод кластера. Мы подобную штуку реализовали на Visual FoxPro 7, но dbf себя изжил... Там это просто и главное работает :) http://postgresmen.ru/files/IZ_rit2007.pdf - если верить этому то и PostgreSQL это тоже умеет :)
On Tue, 24 Apr 2007 21:22:32 +0600 alexey wrote: >http://postgresmen.ru/files/IZ_rit2007.pdf - если верить этому то и >PostgreSQL это тоже умеет :) асинхронный мастер-мастер ? не умеет. да и синхронный тоже. pgcluster на реальных задачах не живёт вообще никак. база размером в десяток гигабайт и весьма посредственным количеством обращений (5-10 qps) вгоняет pgcluster в ступор. и асинхронный мастер-слейв тоже. если "верить этому", то будет уметь. -- np: Bruce Dickinson - Road To Hell
Attachment
Реально работающей асинхронной мульти-мастер репликации в общем виде нет ни в одной базе, даже коммерческой. Проблемы идеологические, а именно -- разрешение конфликтов. Если у вас в одном мастере в таблице users пользователь aaa поменял свой телефон в колонке phone, а на другом мастере у него же поменяли колонку address, то replication engine в момент синхронизации обнаружит конфликт в данной строке. Что ему с ним делать? Автоматически система сможет принять решение только в том случае, если администратором была задана policy, разрешающая данный конфликт. А так как задать абсолютно все policy не представляется возможным, неизбежно будут возникать ситуации (подчеркиваю, речь идет об _общем_ случае асинхронной мульти-мастер репликации), когда система будет требовать мануального разрешения конфликтов. Так что спрашивайте конкретнее, описывая задачу более подробно. В настоящее время для решения сложных задач репликации я бы порекомендовал писать решение самостоятельно на фреймворке обобщенной очереди PgQ компании Skype. Но его тоже нужно изучать и тестировать, опыт ее реального использования пока есть только в Skype. А более общая мысль еще проще: нужно стараться уходить от асинхронного мульти-мастера, он в некотором роде является архитектурным антипаттерном, это нужно понимать. On 4/25/07, Alex Gorbachenko <agent_007@immo.ru> wrote: > On Tue, 24 Apr 2007 21:22:32 +0600 > alexey wrote: > > >http://postgresmen.ru/files/IZ_rit2007.pdf - если верить этому то и > >PostgreSQL это тоже умеет :) > > асинхронный мастер-мастер ? не умеет. да и синхронный тоже. pgcluster > на реальных задачах не живёт вообще никак. база размером в десяток > гигабайт и весьма посредственным количеством обращений (5-10 qps) > вгоняет pgcluster в ступор. > > и асинхронный мастер-слейв тоже. если "верить этому", то будет уметь. > > -- > np: Bruce Dickinson - Road To Hell > >
В сообщении от 25 апреля 2007 Ivan Zolotukhin написал(a): > Реально работающей асинхронной мульти-мастер репликации в общем виде > нет ни в одной базе, даже коммерческой. Проблемы идеологические, а > именно -- разрешение конфликтов. Разрешение конфликтов - это конечно серьёзно. Будут разрешатся скорее всего мануально. В данный момент у нас есть решение для комплекса программ, написанных на Visual FoxPro 7-9 и схема применяемая там вполне успешно функционирует уже в течении нескольких лет. Конфликты случаются очень редко и разруливаются руками. Но DBF себя изжил... Физические ограничения на 2Гб таблицы и пр. Поэтому принято решение перенести эту схему на рельсы PostgreSQL. Нет штатного решения - напишем сами! Это даже лучше - будем досконально знать как это работает. > Так что спрашивайте конкретнее, описывая задачу более подробно. В > настоящее время для решения сложных задач репликации я бы > порекомендовал писать решение самостоятельно на фреймворке обобщенной > очереди PgQ компании Skype. Но его тоже нужно изучать и тестировать, > опыт ее реального использования пока есть только в Skype. Обязательно посмотрю... Там, кстати, упоминается Slony-I как идейный вдохновитель. > А более общая мысль еще проще: нужно стараться уходить от асинхронного > мульти-мастера, он в некотором роде является архитектурным > антипаттерном, это нужно понимать. Понимаем, но реалии жизни вынуждают. :) Тяжела и неказиста жизнь простого программиста! :) -- [5005747] / [http://ego.b0b.org/about/] [11C607AC] / [5E2B 1445 912B 490A 5524 EA39 A36C 7E67 11C6 07AC]