Как синхронизировать 2 или более просматриваемых папки

Нам нужно реализовать функцию для нашей программы, которая синхронизировала бы 2 или более просматриваемых папки.

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

До сих пор я думал о нескольких проблемах:

  • Удаление файлов является допустимым изменением, поэтому, если в папке A есть файл, а в папке B его нет, это может означать, что файл был создан в папке A и должен распространяться в папку B, но это также может означать, что файл был удален. в папке B и должен распространяться в папку A.

  • Файлы могут быть изменены / удалены одновременно в нескольких каталогах, и с конфликтующими изменениями мне нужно как-то разрешить конфликты.

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

Я не уверен, какую помощь может предложить сообщество, но я думаю об этом:

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

  • Если вам известна какая-либо существующая литература или исследование по проблеме (статьи и т. Д.), Пожалуйста, дайте ссылку на нее. Я предполагаю, что эта проблема уже была бы исследована.

  • Или, если у вас есть общие советы о том, как лучше всего подойти к этой проблеме, какие алгоритмы использовать, как разрешать конфликты или условия гонки, если они существуют, и другие ошибки.

Операционная система Windows, и я буду использовать Qt и C ++ для ее реализации, если не существует инструментов или библиотек.

0

Решение

Это не исключительно сложно. Вам просто нужно сравнить соответствующие изменить записи журнала. Конечно, в распределенной сети вы должны предполагать, что часы синхронизированы.

И да, если сложный файл (что-то, что вы не можете проанализировать) редактируется, пока сеть разбита, вы не можете избежать проблем. Это известно как
CAP теорема . Ваша система не может быть согласованной, всегда доступной, а также устойчивой к разделению (отключается)

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector