Как удаленно синхронизировать два набора? - PullRequest
1 голос
/ 14 марта 2011

Мне нужно синхронизировать два больших набора строк в Java: одну на клиенте, а другую на сервере. Скорее всего, клиенту не хватает пары записей, которые он должен получить от сервера. Я не хочу переносить всех участников, я хочу минимизировать обмен данными и вычисления на сервере (клиент может работать усерднее).

Есть идеи, кроме "разделяй и властвуй"?

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

Ответы [ 2 ]

3 голосов
/ 14 марта 2011

Вы можете сохранить счетчик генерации для набора на сервере вместе с журналом изменений для каждого поколения. Клиент может запросить все изменения с момента последней синхронизации. Затем он может интегрировать эти изменения, а также (если применимо) отправить обратно все оставшиеся изменения на стороне клиента с момента последней синхронизации.

1 голос
/ 14 марта 2011

вы можете использовать сокет, сначала синхронизировать все элементы и затем использовать пользовательские методы, которые добавляют и удаляют элементы в локальном наборе и отправляют данные + инструкции на другой конец, вы также можете использовать jmx active mq

...