Я работаю над приложением, которое работает на нескольких клиентах, которые общаются с одной основной базой данных MySQL. Кроме того, у нас есть веб-приложение, которое использует ту же базу данных MySQL.
Из-за проблем с задержкой всем клиентам придется запускать собственную локальную базу данных MySQL, которая должна быть копией основной базы данных MySQL. Веб-приложение остается использовать основную базу данных MySQL.
Клиенты только читают из таблицы A и записывают в таблицу B. Веб-приложение выполняет запись как в таблицы A, так и в B.
Как настроить схему репликации, обеспечивающую согласованность данных? Для клиентов должно быть возможно отключиться на длительный период времени. Возможно ли это даже с помощью MySQL или мне лучше взглянуть на что-то вроде CouchDB? CouchDB явно поддерживает это в соответствии с веб-сайтом:
это позволяет пользователям и серверам
получить доступ и обновить одни и те же общие данные
в то время как отключен, а затем
двунаправленно повторить эти изменения позже
(от: http://couchdb.apache.org/docs/overview.html)