Я настраиваю сеть на основе Arduino, в которой есть несколько контроллеров (телефоны, веб-страница, приложение для ПК) для настройки системы ретрансляции (базы). Эта сеть использует базу данных MySQL для хранения и синхронизации конфигурации между клиентами и базой. Все клиенты и база могут управлять конфигурацией, и клиенты должны видеть конфигурацию базы в реальном времени. Это означает, что если клиент изменяет конфигурацию, все другие клиенты и база должны увидеть это изменение. Как я могу синхронизировать данные в этой сети и избежать конфликтов? Есть ли эффективные алгоритмы?
Я использовал метку времени сервера базы данных для отслеживания изменений. Всякий раз, когда дБ изменяется, он сохраняет метку времени. Все клиенты получают эту метку времени и сравнивают ее с последней выбранной. Но проблема в том, что когда 2 или более клиентов получают доступ к этой базе данных одновременно, возникает конфликт, и я теряю изменения конфигурации всех клиентов, кроме одного.
Использование временной метки не кажется хорошей идеей. Если база переходит в автономный режим, мы не можем сохранить изменения, внесенные в базу в автономном режиме. Потому что, как только он возвращается в режим онлайн, он выбирает конфигурацию из базы данных.
Извините за мой плохой английский.