Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
морозов_лекц .doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
565.25 Кб
Скачать

5.3. Моделі фрагментації для паралельних систем баз даних

Як згадувалося вище, необхідною передумовою для досягнення паралелізму з фрагментацією є фрагментація даних. На мал. 5.4, 5.5 і 5.6 відповідно наведені приклади трьох схем фрагментації - фрагментації за діапазонами, карусельної фрагментації і фрагментації хешуванням.

Кожна з цих схем має свої відносні достоїнства і недоліки. Фрагментація по діапазонах приводить до створення кластерів кортежів, близьких за якою-небудь характеристикою, що зручне для послідовного доступу до відношення. Результати вибірки з кожного кластера можна зібрати разом і злити, а якщо необхідне впорядкування результату співпадає з базою фрагментації (скажімо, сортування за збільшенням деякого коду, що позначає місце роботи), то проміжне сортування в кожному потоці виконання може бути взагалі не потрібно. В той же час залежно від розподілу значень за діапазонами можна отримати нерівномірне заповнення фрагментів, що приводить до „перекосів” при виконанні запитів. Перекоси можна звести до мінімуму, використовуючи критерії розподілу, близького до рівномірного.

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

Мал. 5.4. Фрагментація за діапазонами в паралельних системах даних

Мал. 5.5. Карусельна фрагментація в паралельних системах даних

5.3. Перспективи розвитку паралельних систем баз даних

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

Поєднання пакетної обробки і оперативної обробки трансакцій (On-Line Transaction Processing, OLTP) на одному сервері. В середовищах, призначених для виконання пакетних завдань, і в середовищах для OLTP-обробки істотно розрізняються принципи управління блокуванням ресурсів і пріоритетного планування. Для максимально ефективної обробки паралельних реляційних операторів при співіснуванні вказаних типів середовищ (наприклад, виконання пакетних завдань, що ініціюються з центру обробки даних, і обробка випадкових запитів, що поступають від окремих користувачів) необхідно розробити моделі і алгоритми, придатні для цих обох типів середовищ.

Мал. 5.6. Фрагментація з кешуванням в паралельних системах даних

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

Розпаралелювання прикладних програм. Є декілька мов, що в якійсь мірі передбачають засоби паралельного виконання (наприклад, модель багатозадачності в мові Ада, яка, втім, часто вимагає додаткової настройки навіть в сучасних багатопотокових середовищах). Проте в багатьох мовах, наприклад в Коболі, взагалі відсутні засоби розпаралелювання. Механізмом для реалізації паралелізму в прикладних програмах, мабуть, повинні стати бібліотечні процедури.

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

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