Содержание
- 2. Трансакції Трансакція – логічна одиниця роботи БД
- 3. Властивості трансакцій (ACID) Атомарність (Atomicity). Трансакції атомарні – виконується все або нічого. Узгодженість (Consistency). Трансакції переводять
- 4. Режими відмов Події Бажані Небажані Очікувані Неочікувані
- 5. Модель системи процесор пам’ять диск
- 6. Бажані події: дивись документацію… Небажані очікувані події: Системний збій Втрата вмісту пам’яті Зависання -> перезавантаження Пошкодження
- 7. Режими відмов Помилкові елементи даних Пошкодження носія Катастрофа Збій системи
- 8. Менеджер трансакцій Відповідальність за коректну поведінку трансакцій покладається на менеджер трансакцій.
- 9. Менеджер трансакцій
- 10. Базові операції трансакцій В процесі виконання трансакція має справу з трьома адресними просторами: простір дискових блоків,
- 11. Базові операції трансакцій Input (X): дисковий блок, що містить значення X копіюється в буфер оперативної пам’яті.
- 12. Ключова проблема Незакінчені трансакції Наприклад Constraint: A=B T1: A ← A × 2 B ← B
- 13. T1: Read (A,t); t ← t×2 Write (A,t); Read (B,t); t ← t×2 Write (B,t); Output
- 14. Вирішення проблеми Потрібна атомарність виконати всі дії трансакції або не виконати жодної
- 15. Рішення – протоколювання Протокол, чи журнал – це послідовність так званих записів протоколу, кожний із яких
- 16. Відновлення з використання протоколу Для усунення згубних наслідків збою системи одні трансакції будуть виконані повторно, і
- 17. T1: Read (A,t); t ← t×2 A=B Write (A,t); Read (B,t); t ← t×2 Write (B,t);
- 18. “Ускладнення” Журнал пишеться спочатку в пам’ять Не пишеться на диск при кожній дії memory DB Log
- 19. “Ускладнення” Журнал пишеться спочатку в пам’ять Не пишеться на диск при кожній дії memory DB Log
- 20. Правила протоколювання в режимі Undo Для кожної дії створювати запис журналу, що містить старе значення елементу
- 21. Відновлення: протокол Undo Перша задача менеджера відновлення полягає в розподілі всіх трансакцій, згаданих в журналі, по
- 22. Відновлення: протокол Undo Для кожної Ti із записом в журналі: - If or in log, do
- 23. Відновлення: протокол Undo (1) Дано S = множина транзакцій в журналі з , але без (або
- 24. Питання Чи можна зробити запис (крок 3) в будь-якій послідовності? Наприклад: T1 і T2 обидві пишуть
- 25. Питання Що буде коли відбудеться збій під час виконання відновлення?
- 26. Введення контрольних точок Для введення контрольної точки системі потрібно: Призупинити прийом запитів на активізацію нових трансакцій.
- 27. Динамічне введення контрольних точок Внести в протокол запис і через команду flush log «скинути» протокол на
- 28. Динамічні контрольні точки L O G чекаємо завершення трансакцій Start-ckpt active TR: Ti,T2,... end ckpt ...
- 29. Відновлення з використанням контрольних точок Якщо спочатку менеджеру відновлення зустрівся запис виду , це свідчить про
- 30. Відновлення з використанням контрольних точок Якщо першим зустрівся запис , значить, збій відбувся в період виконання
- 32. Протоколювання в режимі REDO Для кожної дії створювати запис журналу, що містить нове значення елементу даних
- 33. Протоколювання в режимі REDO T1: Read(A,t); t t×2; Write (A,t); Read(B,t); t t×2; Write (B,t); Output(A);
- 34. Відновлення: протокол REDO Ідентифікувати всі завершені трансакції Сканувати протокол в напрямку від початку до кінця. Зустрівши
- 35. Відновлення: протокол REDO Для кожної Ti з в журналі: Для всіх в журналі: Write(X, v) Output(X)
- 36. Відновлення: протокол REDO Дано S = множина трансакцій з в журналі Для кожної в журналі, в
- 37. Введення контрольних точок Внести в журнал запис виду , де - T1…Tn всі активні (незафіксовані) трансакції
- 39. Відновлення: протокол REDO Якщо спочатку менеджеру відновлення зустрівся запис виду , це свідчить про те, що
- 40. Відновлення: протокол REDO Але будь-яка трансакція зі списку T1…Tn, можливо ще не встигла записати дані на
- 41. Відновлення: протокол REDO Якщо першим зустрівся . В такому випадку неможливо гарантувати, що всі трансакції, завершені
- 42. Протоколювання: undo/redo Режим undo вимагає, щоб змінені дані зберігалися на диску безпосередньо по закінченню трансакції. Режим
- 43. Протоколювання: undo/redo Перш ніж трансакція Т зможе модифікувати елемент Х бази даних на диску, необхідно записати
- 44. Відновлення: undo/redo Повторити операції всіх зафіксованих трансакцій в порядку від ранніх до останніх. Відмінити результати всіх
- 45. Введення контрольних точок Внести в протокол запис виду і виконати “скидання” протоколу на диск командою flush
- 47. Скачать презентацию