Я планирую написать программу для синхронизации папки в реальном времени на нескольких компьютерах через Интернет. Мне интересно, есть ли какой-либо алгоритм синхронизации для обработки конфликтов синхронизации файлов, т. Е. Компьютер A пытается сохранить файл, а компьютер B удалил файл.Есть ли какой-либо алгоритм/справочник синхронизации для синхронизации каталога?
2
A
ответ
8
Пример, который вы дали, именно поэтому синхронизация считается трудной проблемой.
Компьютер A удалил файл, который еще имеет компьютер B. Теперь: откуда вы знаете, был ли файл добавлен в B и должен быть скопирован в A или удален на A и должен быть удален на B? На самом деле ты этого не делаешь. Многие системы синхронизации имеют возможность возникновения противоречивых изменений, которые необходимо решить человеку.
Многие инструменты уже были построены, чтобы сделать синхронизацию, в том числе:
- системы управления версиями, как CVS, Subversion, Mercurial, Git, Perforce и т.д.
- автономных, однонаправленных программ синхронизации. Они не могут обрабатывать изменения с обеих сторон, но они могут сделать целевой каталог похожим на исходный каталог. Это лучше, чем полная копия, потому что это быстрее, но на самом деле это одно и то же. Примеры включают rsync, ROBOCOPY и XCOPY/MIR в Windows.
- простые в использовании средства синхронизации Интернета, которые синхронизируют папки на нескольких компьютерах. Примеры включают Windows Live Folder и Dropbox. Эти приложения часто разрешают конфликты, делая дополнительные копии обеих версий в подкаталогах, чтобы впоследствии вы могли отсортировать их. Они действительно предполагают, что конфликтов очень мало.
- встроенной синхронизации в сложных приложениях, например, электронную почту/контактов/синхронизации календаря в Microsoft Exchange, Lotus Notes и т.д.
3
Вы также можете посмотреть в Unison. Это многонаправленный инструмент синхронизации файлов, который использует алгоритм rsync, чтобы убедиться, что отправлены только измененные части файлов.
Смежные вопросы
- 1. проблема синхронизации синхронизации Java
- 2. вопрос синхронизации синхронизации
- 3. Есть ли общий способ синхронизации асинхронного метода?
- 4. Есть ли быстрый способ синхронизации в Java?
- 5. Есть ли какая-либо логика синхронизации Dropbox?
- 6. Есть ли автоматический способ синхронизации значений объектов
- 7. Есть ли функция синхронизации в JQuery?
- 8. синхронизации рамки сервера синхронизации сервера
- 9. Ошибка синхронизации событий синхронизации C++?
- 10. Unity3D: события синхронизации фотонной синхронизации
- 11. Модель Просмотр синхронизации (или избежание синхронизации)
- 12. Поддерживает ли PhantomJS API синхронизации времени и API синхронизации производительности?
- 13. Корпус для синхронизации xmlhttprequest
- 14. Есть ли шаблон для синхронизации списков данных по сети?
- 15. Есть ли готовое решение синхронизации часов для Java?
- 16. Есть ли одна команда для синхронизации пакетов npm в `package.json`?
- 17. Есть ли прецедент для создания потоков без синхронизации и блокировок?
- 18. String intern для синхронизации
- 19. Алгоритмы синхронизации
- 20. портал синхронизации онлайн-синхронизации с локальным БД
- 21. Сценарий для синхронизации подписчиков
- 22. примитивы синхронизации для приращения
- 23. Android - запрос, если для синхронизации синхронизирована учетная запись синхронизации
- 24. Возможно ли обрабатывать как результаты асинхронной синхронизации, так и функции синхронизации внутри функции синхронизации в node.js?
- 25. Как разделить процесс синхронизации в структуре синхронизации
- 26. Чехол для кушетки синхронизации
- 27. Барьеры для синхронизации потоков
- 28. BPEL для синхронизации данных
- 29. Решение для синхронизации данных?
- 30. Асинхронные функции для синхронизации