многопользовательские базы данных в средах с низкой связностью

многопользовательские базы данных в средах с низкой связностью

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

Клиентские устройства и серверы хранят информацию о «балансе счета», и эта информация изменчива на обоих концах. То есть балансы счетов могут быть изменены пользователями облачного интерфейса или локального клиентского интерфейса, и эти изменения могут быть сделаны даже тогда, когда клиент находится в автономном режиме.

Насколько я понимаю, это в некотором смысле "многомастерная" настройка базы данных. Интересно, какие проекты существуют для управления такой топологией? Есть ли примеры подобных проектов? Или есть другие архитектуры, которые стоит рассмотреть?

решение1

Tungsten можно настроить в асинхронной архитектуре с несколькими мастерами, что, по сути, вам и нужно, и использовать с различными базами данных:https://code.google.com/p/tungsten-replicator/

Приложение можно настроить на использование локального бэкэнда MySQL с использованием Tungsten, и оно будет синхронизироваться с другими серверами, когда оно будет онлайн. В автономном режиме обновления будут стоять в очереди до тех пор, пока снова не появятся в сети. Клиенты захотят подключаться через VPN или что-то подобное (например, туннель HTTPS / SSH).

Связанный контент