Я работаю над приложением, для которого требуется алгоритм синхронизации данных.
У нас будет основной сервер и несколько подчиненных устройств, которые необходимо синхронизировать вместе.
Теперь у меня есть три алгоритма, и я бы хотел получить совет, по которому каждый из вас будет лучшим. Я действительно очень ценю ваше мнение.
1. Описание алгоритма можно найти здесь. Это научно-исследовательская работа Сан-Вук Кима Отдел информации и коммуникаций Университет Ханьянг, Корея
2 Этот алгоритм включает в себя сохранение записей временных меток и номеров версий баз данных
Если, например, версия v10, на одном мобильном устройстве и сервере, имеет v12, мобильный, предполагая, что текущая временная метка на мобильном устройстве менее известна по сравнению с меткой времени на сервере,
Если обозначить делецию через -, то вставка a + и изменение на ~
И следующие журналы изменений связаны с несколькими версиями:
v11: + r (44), ~ r (45), -r (46) v12: -r (44), ~ r (45), + r (47)
Тогда общее изменение в базе данных: ~ r (45) (из v12), + r (47), -r (46)
Отсюда видно, что запись r (44) не нужна, даже если она была добавлена, а затем удалена. Следовательно, никакие избыточные данные не должны передаваться.
Весь алгоритм можно найти здесь (я поставил его в pdf) http://goo.gl/yPC7A
3 Этот алгоритм действует - хранит таблицу, которая записывает последнюю временную метку изменения для каждой записи. И сохраняет строки, отсортированные в соответствии с timestamp.It синхронизирует только те строки, которые были изменены, я вижу, что сортировка таблицы выполняется каждый раз в соответствии с отметками времени.
Здесь ссылка http://goo.gl/8enHO
Спасибо за ваше мнение!: D