LINUX.ORG.RU

Синхронизация данных

 ,


1

2

Добра всем.
Итак, имеется сервер и имеется клиент, у обоих есть реляционные БД (почти одинаковой схемы), стоит задача частично синхронизировать их (частично - потому что клиент видит и меняет только те данные, которые ему можно). При этом, клиент может читать и менять набор данных находясь полностью в оффлайне, с последующим излиянием изменений на сервер, и получением соотв. изменений от него.
Видится две схемы:
* каждая запись несет свой номер версии/дату изменения/флаг изменения, и обмен идет теми данными которые изменились с момента последней синхронизации. недостатки - повышенная конфликтность, в основном обусловленная перезаписью строки целиком.
* имеется таблица-журнал, в которую пишутся измененные строки (JSON, только измененные поля) и соотв. обмен идет записями в этой таблице. недостатки - размеры БД, и если по какой-то причине (баг?) клиент пропустил несколько изменений - только перекачивать базу целиком. преимущество - по ТЗ должна быть история изменений почти всех объектов + упрощение инкрементальной закачки при плохом канале связи

думается мне, что задача эта достаточно распространенная, интересно, какие схемы/либы вы применяли для решения? какие истории успеха/фэйла?

зы. может вообще в git все засунуть? ;)

★★★★★
Ответ на: комментарий от monk

СУБД разные на клиенте и сервере, репликация не к месту. Да и схемы могут немного отличаться

dib2 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.