- •1. Классификация бд по доступу к данным
- •2. Особенности рбд
- •3. Преимущества и недостатки рбд
- •4. Сравнение рбд с бд централизованного хранения
- •5. Архитектура рбд с глобальной схемой хранения
- •6. Мультибазовые рбд
- •7. Компонентная архтектура рбд
- •8. Исходная информация для проектирования бд
- •9. Сравнение различных стратегий распределения данных
- •10. Фрагментация и репликация: понятия
- •11. Корректность фрагментации
- •12. Типы фрагментаций
- •13. Прозрачность размещения данных. Виды прозрачности
- •14. Прозрачность фрагментации
- •15. Прозрачность расположения
- •16. Прозрачность локального отображения
- •17. Прозрачность именования
- •18. Прозрачность параллельности и отказов
- •19. Прозрачность выполнения
- •20. Правила Дейта
- •21. Понятие транзакции, проблемы, возникающие при транзакции, свойства транзакции
- •22. Управление параллельностью, проблемы параллельности
- •23. Проблема несогласованной обработки
- •24. Проблема потерянного обновления
- •25. Проблема зависимости от нефиксированных результатов
- •26. Упорядочиваемость и восстанавливаемость
- •Восстанавливаемость
- •27. Упорядочивание по просмотру
- •28. Двухфазная блокировка
- •30. Взаимная блокировка - это
- •31.(????) Управление блокировками
- •32. Уровни детализации блокируемых элементов
- •33. Структура и назначение языка xml
- •34. Узлы, атрибуты и элементы на xml
- •35. Просмотр и обновление базы данных средствами xml
- •36. Обработка представленных на xml данных циклами
- •37. Навигация в данных средствами xml
- •38. Обработка представленных на xml данных операторами языка linq
- •39. Особенности создания интерфейсов на wpf
18. Прозрачность параллельности и отказов
Прозрачность параллельности
Прозрачность параллельности обеспечивается СУБРД в том случае, если результаты всех параллельно выполняемых транзакций (как распределенных, так и нераспределенных) генерируются независимо и являются логически согласующимися результатами, которые были бы получены в том случае, если бы все эти транзакции выполнялись последовательно в не котором произвольном порядке, по одной в каждый момент времени.
В случае распределенных СУБД имеют место дополнительные усложнения, связанные с необходимостью гарантировать, что как глобальные, так и локальные транзакции не могут оказывать влияния друг на друга. Кроме того, СУРБД должны гарантировать согласованность всех субтранзакций каждой глобальной транзакции.
Наличие в системе репликации еще более усложняет проблему организации параллельной обработки в системе. Если одна из копий реплицируемых данных подвергается обновлению, сведения об этом, в конечном счете должны быть представлены в каждой из существующих копий. В данном случае наиболее очевидная стратегия – сделать распространение сведений об изменении частью исходной транзакции, оформив его как еще одну атомарную операцию. Однако, если один из содержащих копию измененных данных сайтов окажется в момент внесения изменения недоступным из-за отказа на
самом сайте или в канале связи, то выполнение транзакции будет отложено до тех пор, пока этот сайт вновь не станет доступным. Если существует большое количество копий данных, то вероятность успешного завершения транзакции уменьшается в экспоненциальной зависимости от их числа. Альтернативной стратегией является ограничение распространения сведений об изменении только теми сайтами, которые в данный момент доступны. На остальные сайты сведения об изменении поступят, как только они вновь станут доступными. Дополнительной стратегией могла бы быть выдача разрешения обновлять копии асинхронно, через некоторое время после внесения исходного обновления.
Задержка в восстановлении целостности может варьироваться от нескольких
секунд до нескольких часов.
Прозрачность отказов
Любая централизованная СУБД должна включать механизм восстановления, который в подверженной различным сбоям и отказам среде будет гарантировать атомарность выполнения транзакций - либо все операции транзакции будут успешно завершены, либо ни одна из них. Более того, если результаты выполнения транзакции были зафиксированы, внесенные ею изменения
приобретают длительный (или постоянный) характер.
Типы отказов, которые могут иметь место в централизованных СУБД: сбои
системы, отказ носителей, ошибки в программах, небрежность персонала, стихийные бедствия и действия злоумышленников. В распределенной среде СУРБД должна дополнительно учитывать следующее:
• возможность потери сообщения;
• возможность отказа линии связи;
• аварийный останов одного из сайтов;
• расчленение сетевых соединений.
СУРБД должна гарантировать атомарность глобальных транзакций, а это означает, что все ее субтранзакции будут либо зафиксированы, либо отменены. Следовательно, СУРБД должна синхронизировать выполнение глобальной транзакции таким образом, чтобы иметь гарантии, что все ее субтранзакции были успешно завершены до того, как началась финальная операция фиксации результатов всей глобальной транзакции.
Например, рассмотрим глобальную транзакцию, которая выполняет обновление данных на двух сайтах, 51 и 52. Пусть субтранзакция на сайте 51 завершается успешно и фиксирует свои результаты, однако субтранзакция на сайте 52 не может успешно завершить свое выполнение и производит откат внесенных изменений для сохранения целостности локальной базы данных. В результате распределенная транзакция оказывается в несогласованном состоянии, поскольку из-за свойства длительности транзакций результаты выполнения транзакции 51 отменить уже нельзя.
Обсуждение корректных методов восстановления распределенных баз данных рассмотрим позже.