partners section

Управление конфликтами

Есть моменты, когда пользователи будут изменять и тот же файл или папку независимо на разных реплик файловой системы. В следующий раз эти реплики синхронизированы друг с другом, провайдер синхронизации файлов пытается примирить эти противоречивые изменения в лучшем виде. В общем, разрешение конфликтов поставщик синхронизации файлов следует определенным ключевые принципы, которые определяются желаемого пользовательского опыта (они также принципы следуют и включены по базовой Sync Framework):

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

Служба синхронизации файлов поддерживает только фиксированное политику для автоматического разрешения конфликтов.

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

  • Параллельные конфликты обновление: Если существующий файл изменяется независимо на двух реплик, файл с момента последнего записи (т.е. обновленной позже) сохраняется при следующей синхронизации. Если последние раз Написать случается, то же самое, политика детерминированным разрешение используется, так что пользователь заканчивает с тем же содержимым файлов на всех репликах. Если поддержка корзины запрашивается службы синхронизации файлов, "потери" файл помещается в корзине на "потери" реплику поэтому он может быть восстановлен, если пользователь хочет сделать это.
  • Одновременное обновление-удаление конфликты: Если существующий файл изменен на одной реплики, но и тот же файл или его контейнер удаляется на другой реплике, провайдер синхронизации файлов всегда благоприятствует обновления над удаления. Если путь должен быть воссоздан на стороне, где файл был удален, провайдер синхронизации файлов делает, что хорошо.
  • Одновременно ребенок создать родителем удалить конфликтов: Та же политика, как и выше также используется в случае, когда создается новый файл может быть создан в рамках заданной папки на одной реплики, но папка может быть удален на другой реплике. Создать переопределения папка удалить и создание файла будет синхронизирован со всеми репликами с удаленная папка возрождается.
  • Имя столкновения конфликтов для папок: Иногда пользователи могут в конечном итоге создание папку с тем же именем на двух разных реплик.Это также может произойти, когда пользователи начинают синхронизации реплик, которые уже имеют подобные иерархии файловой системы и содержания, или когда существующая папка переименовывается с новым именем, что, оказывается, так же, как имя в новую папку на другой реплике. Во всех таких случаях пользователь будет в конечном итоге с одной папке, а содержимое папки будут объединены при следующей синхронизации.
  • Имя столкновения конфликтов для файлов: Сценарии, упомянутые выше, для папок также может произойти с файлами. В этом случае, однако, различное разрешение происходит в зависимости от сценария:
    • Создание создать столкновения: В случае, когда два файла были независимо созданной на двух реплик с тем же именем, разрешение на следующей операции синхронизации является сохранение одного файла с таким же именем, но с содержанием со стороны которого были позже обновить временную метку. В случае, если файл метки одинаковы, содержание предполагается, то же самое и один из файловых потоков определена как "победитель" детерминировано. Если поддержка корзины запрашивается службы синхронизации файлов, "потери" файл будет помещен в корзине на "потери" реплику поэтому он может быть восстановлен, если пользователь хочет сделать это.
    • Создать-переименовать столкновения: В случае, когда переименование существующего файла сталкивается с создания файла с тем же именем в другом реплики, разрешение всегда держать оба файла, переименовав один из них. Это делается потому, что в данном случае это всегда безопаснее предположить, что пользователь предназначены эти два файла, чтобы иметь разные личности. Файл будет переименован определена детерминировано, так что же разрешение будет применяться независимо от две реплики синхронизировать конфликтующие изменения.

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