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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Синхроніза́ція да́них — ліквідація відмінностей між двома копіями даних. Передбачається, що раніше ці копії були однакові, а потім одна з них, або обидві були незалежно змінені.

Спосіб синхронізації даних залежить від додаткових припущень, що робляться. Головною проблемою тут є те, що незалежно зроблені зміни можуть бути несумісні одна з одною (так званий «конфлікт правок»), і навіть теоретично не існує загального способу вирішення подібних ситуацій.

Проте, є низка окремих способів, застосовних в тих або інших випадках:

  • Найпростіший спосіб: припускають, що зміни вносилися лише до однієї з копій — «робочу» — і інша копія просто перезаписується її вмістом. Цей спосіб реалізують більшість застосунків синхронізації; через безповоротність змін, що робляться, користувачеві дається вибір, яку копію вважати «головною».
  • Якщо дані є набором незалежних записів (тобто будь-яке поєднання записів є коректним — це, наприклад, телефонна книга), то можна просто об'єднати множини записів. Це ліквідовує ризик втрати інформації, але щоб видалити запис з набору, цей спосіб доводиться поєднувати з першим.
    • Якщо набори синхронізуються неодноразово, можна автоматично вводити в них додаткову службову інформацію: дата і час останньої зміни запису, позначки про видалені записи (вилучаються після наступної синхронізації або через деякий час) тощо. Цей підхід використовується, наприклад, в Outlook.
  • Обробляти конфлікти правок: автоматично (якщо можливо), інакше — вручну. Цей найзагальніший спосіб застосовується тільки якщо вказані вище спрощення недопустимі — наприклад, в системах контролю версій. Так, CVS при виявленні двох незалежних змін оголошує про «конфлікт» і або (у простих випадках) вирішує його автоматично, або надає користувачеві вирішити його вручну. У цих випадках конфліктів прагнуть просто уникати — наприклад, розподілом областей компетенції.

Див. також[ред. | ред. код]