Реплікація (тиражування) БД

Фрагментація БД

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

Перевагами фрагментації БД вважаються економне використання зовнішньої пам’яти (зменшується дублювання інформації) та постійна підтримка БД в актуальному стані. Недолік – високі вимоги до пропускної спроможності та надійності каналів зв’язку, за яким практично безперервно передаються команди та дані.

 

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

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

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

Відомості про місце розташування і інших характеристиках кожного об’єкту розподіленої БД зберігаються в глобальному словнику даних (каталозі). Зберігання глобального словника даних та керування ним можуть реалізовуватися різними способами:

 

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

2. Повністю реплікований підхід – повна копія глобального каталогу даних зберігається в кожному вузлі системи. При цьому пришвидшується пошук потрібних даних, але при зміні об’єкту бази даних в одному вузлі потрібне оновлення каталогів, які зберігаються у всіх вузлах.

3. Централізований підхід – глобальний каталог даних зберігається лише в одному вузлі системи. Забезпечення роботи системи вимагає найпростіших засобів, ніж при реалізації інших підходів, але якість роботи системи в багатьох залежить від надійності функціонування вузла, в якому знаходиться каталог. Окрім того, цей підхід пред’являє підвищення вимоги до ресурсів системи.

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

 

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

 

Монопольний доступ організується за допомогою повних блокувань, реалізуємих безпосередньо СКБД або прикладними програмами. Монопольний доступ до даних звичайно застосовується при роботі з конфіденційною інформацією або при виконанні фундаментальних перетворень БД (наприклад, зміні її структури), коли треба повністю вилучити роботу з даними інших користувачів.

В режимі колективного доступу до даних повне блокування не припускається. Застосовується механізм тимчасових блокувань, які обмежують або забороняють роботу користувача або додатка з об’єктами БД, коли ці об’єкти використовуються іншим користувачем або додатком. Наприклад, якщо репліковані дані змінюються в одному вузлі системи, в інших вузлах вони блокуються. Після фіксації зроблених оновлень в вузлі, де вони були виконані, інші вузли намагаються змінити свої репліковані дані та зафіксувати отримані результати. Дані в ісходному вузлі залишаються заблокованими до тих пір, доки оновлення не будуть зафіксовані у всіх вузлах. Якщо в одному або декількох вузлах реалізувати оновлення даних не вдалося, відбувається відміна (відкат) виконаних дій в масштабах всієї системи.

Розширенням розглянутої технології є метод двохфазної фіксації транзакцій.

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

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