Предложение по схеме репликации для моего варианта использования? - PullRequest
0 голосов
/ 25 февраля 2010

Я работаю над приложением, которое работает на нескольких клиентах, которые общаются с одной основной базой данных MySQL. Кроме того, у нас есть веб-приложение, которое использует ту же базу данных MySQL.

Из-за проблем с задержкой всем клиентам придется запускать собственную локальную базу данных MySQL, которая должна быть копией основной базы данных MySQL. Веб-приложение остается использовать основную базу данных MySQL.

Клиенты только читают из таблицы A и записывают в таблицу B. Веб-приложение выполняет запись как в таблицы A, так и в B.

Как настроить схему репликации, обеспечивающую согласованность данных? Для клиентов должно быть возможно отключиться на длительный период времени. Возможно ли это даже с помощью MySQL или мне лучше взглянуть на что-то вроде CouchDB? CouchDB явно поддерживает это в соответствии с веб-сайтом:

это позволяет пользователям и серверам получить доступ и обновить одни и те же общие данные в то время как отключен, а затем двунаправленно повторить эти изменения позже

(от: http://couchdb.apache.org/docs/overview.html)

1 Ответ

2 голосов
/ 25 февраля 2010

CouchDB имеет семантику, которая вам нужна, если вы можете отойти от MySQL.

Вам даже не понадобится система с двумя столами. Система документов имеет встроенный MVCC, так что вы можете обновлять документы и разрешать конфликты и т. Д. Репликация великолепна и полностью однорангова и предназначена для поддержки автономных приложений.

...