Реплікація (обчислювальна техніка)

У разі реплікації зміни, зроблені в одній копії об'єкта, можуть бути поширені в інші копії.

Прикладом програмного рішення може бути DRBD - блоковий пристрій, призначений для побудови кластерних систем відмов стійких на операційній системі з ядром Linux.

Зміст

Реплікація може бутисинхронноюабоасинхронною, як описано нижче.

Синхронна реплікація

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

У більшості продуктів синхронна реплікація реалізується за допомогою тригерних процедур (можливо прихованих і керованих системою). Але синхронна реплікація має той недолік, що вона створює додаткове навантаження при виконанні всіх транзакцій, в яких оновлюються будь-які репліки (крім того можуть виникати проблеми, пов'язані з доступністю даних).

Асинхронна реплікація

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

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

До недоліків цієї схеми відноситься те, що дані можуть виявитися несумісними (тобто несумісними з погляду користувача). Іншими словами, надмірність може виявлятися на логічному рівні, а це, строго кажучи, означає, що термін контрольована надмірність у такому разі не застосовується.

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

Зокрема, конфлікти можуть виникати з приводу того, в якому порядку мають застосовуватись оновлення. Наприклад, припустимо, що в результаті виконання транзакції А відбувається вставка рядка в репліку X, після чого транзакція B видаляє цей рядок, а також припустимо, що Y — репліка X. Якщо оновлення поширюються на Y, але вводяться в репліку Y у зворотному порядку ( наприклад, через різні затримки при передачі), то транзакція B не знаходить Y рядок, що підлягає видаленню, і не виконує свою дію, після чого транзакція А вставляє цей рядок. Сумарний ефект у тому, що репліка Y містить зазначений рядок, а репліка X — немає.

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

Якщо використовується реплікація, оновлення однієї репліки в кінцевому рахунку поширюється на всі іншіавтоматично.