Синхронізація даних
Синхроніза́ція да́них — ліквідація відмінностей між двома копіями даних. Передбачається, що раніше ці копії були однакові, а потім одна з них, або обидві були незалежно змінені.
Спосіб синхронізації даних залежить від додаткових припущень, що робляться. Головною проблемою тут є те, що незалежно зроблені зміни можуть бути несумісні одна з одною (так званий «конфлікт правок»), і навіть теоретично не існує загального способу вирішення подібних ситуацій.
Проте, є низка окремих способів, застосовних в тих або інших випадках:
- Найпростіший спосіб: припускають, що зміни вносилися лише до однієї з копій — «робочу» — і інша копія просто перезаписується її вмістом. Цей спосіб реалізують більшість застосувань синхронізації; через безповоротність змін, що робляться, користувачеві дається вибір, яку копію вважати «головною».
- Якщо дані є набором незалежних записів (тобто будь-яке поєднання записів є коректним — це, наприклад, телефонна книга), то можна просто об'єднати множини записів. Це ліквідовує ризик втрати інформації, але щоб видалити запис з набору, цей спосіб доводиться поєднувати з першим.
- Якщо набори синхронізуються неодноразово, можна автоматично вводити в них додаткову службову інформацію: дата і час останньої зміни запису, позначки про видалені записи (вилучаються після наступної синхронізації або через деякий час) тощо. Цей підхід використовується, наприклад, в Outlook.
- Обробляти конфлікти правок: автоматично (якщо можливо), інакше — вручну. Цей найзагальніший спосіб застосовується тільки якщо вказані вище спрощення недопустимі — наприклад, в системах контролю версій. Так, CVS при виявленні двох незалежних змін оголошує про «конфлікт» і або (у простих випадках) вирішує його автоматично, або надає користувачеві вирішити його вручну. У цих випадках конфліктів прагнуть просто уникати — наприклад, розподілом областей компетенції.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.