Ferroman
Там есть какие-то более продвинутые инструменты для репликаций?
Да, особенно, если учитывать возраст СУБД по сравнению с Мускулом.
Причем, есть решения Enterprise-уровня (собственно, master-master репликация это и подразумевает, решений master-slave вообще с десяток) с разным функционалом: от PGCluster, указанного выше Bucardo до Cybercluster (решение от компании ,которая профессионально занимается поддержкой Постгри).
Ferroman
Почему?
1. Асинхронная (ключевое слово, из-за которого и возникает основная проблема) мастер-мастер репликация - штука сложная и при разработке будет много подводных камней. Учитывая планируемый автором интервал 20 минут, велика вероятность конфликтов при операциях: вставка (уникальность), обновление, удаление. А значит, нужен механизм разрешения конфликтов, сам знаешь, штука непростая в реализации (хотя должен делать вещи вполне простые).
2. Нужна система мониторинга. Спустя некоторое время после ввода в эксплуатацию самописанной системы всегда возникает вопрос (у руководства, конечно): в каком состоянии “это”, почему есть нестыковки (а они будут!) и как их устранить (не допустить в будущем). Мониторинг и будет этим заниматься. Плюс подспорье в отлове багов.
3. Еще к вопросам: как “этим” можно управлять. Т.е. система администрирования. Желательно, связанная с системой мониторинга.
4. Асинхронность подразумевает настраиваемый интервал репликации, который прямо влияет на объем данных реплик. К тому же упомянутая плохая связь и перебои с электричеством тоже будет влиять на объем реплик или их количество. Над этим вопросом тоже нужно подумать. Этот пункт можно опустить, если количество операций невелико и синхронизировать действительно нужно только пару-тройку “нешироких” таблиц.
5. Уже существуют устоявшиеся и работоспособные системы.
Все это и вызывает у меня из памяти фразу: зачем изобретать велосипед?
Впрочем, вот эти вот слова:
pymind
Иными словами складская БД является основной. Онлайн же БД предназначена преимущественно для сбора заказов и отображения актуальной информации о товарах для клиентов (доступное кол-во и др.)
В данном случае складская БД для нас как правило служит локальной БД для программы учета. И нужна возможность забирать (синхронизировать) данные с онлайн БД, когда это возможно.
меня наталкивают на мысль: либо автор слишком кратко описал требуемый функционал системы, либо он будет забивать гвозди микроскопом.
Может быть проще нужно подходить к решению задачи?
pymind, если бы вы подробнее изложили задачу и выбор инструмента не окончательный, можно было бы подумать над ее решением.