Предложение по схеме репликации для моего варианта использования?
Я работаю над приложением, которое работает на нескольких клиентах, которые общаются с одной основной базой данных MySQL. Кроме того, у нас есть веб-приложение, которое использует ту же базу данных MySQL.
Из-за проблем с задержкой все клиенты должны будут запускать свою собственную локальную базу данных MySQL, которая должна быть копией основной базы данных MySQL. Веб-приложение остается использовать основную базу данных MySQL.
Клиенты только читают из таблицы A и записывают в таблицу B. Веб-приложение выполняет запись как в таблицы A, так и в B.
Как мне настроить схему репликации, которая обеспечивает согласованность данных? Для клиентов должно быть возможно отключиться на длительный период времени. Это вообще возможно с использованием MySQL или мне лучше взглянуть на что-то вроде CouchDB? CouchDB явно поддерживает это в соответствии с веб-сайтом:
он позволяет пользователям и серверам получать доступ и обновлять одни и те же общие данные, когда они отключены, а затем двунаправленно реплицировать эти изменения позже
1 ответ
CouchDB имеет семантику, которая вам нужна, если вы можете отойти от MySQL.
Вам даже не понадобится система "двух столов". Система документов имеет встроенный MVCC, так что вы можете обновлять документы и разрешать конфликты и т. Д. Репликация великолепна и полностью однорангова и предназначена для поддержки автономных приложений.