Оптимистические методы
Оптимистические подходы исходят из предположения о том, что конфликты между транзакциями редки, и доводят транзакцию до конца, а затем производят проверку корректности.
Если выясняется, что фиксация данной транзакции повлечет нарушение сериализуемости, то транзакция откатывается и запускается снова.
При оптимистическом подходе каждая транзакция проходит две или три фазы: чтение, подтверждение, и запись.
-
Надежность системы. Протоколы обеспечения надежности.
Надежность ИС – способность ИС выполнять функции, сохраняя эксплуатационные показатели в установленных пределах в течение заданного интервала времени при заданных условиях функционирования.
Надежность системы характеризуется потоком отказов и сбоев в работе системы.
Отказы выявляются тестированием технических и программных средств и устраняются во время проведения ремонтно-профилактических работ. Устранение отказов достигается путем восстановления работоспособности неисправных элементов системы (ремонта) или замены их резервными элементами.
Сбои в работе технических и программных средств приводят к появлению ошибок в выходной информации и увеличивают продолжительность решения задач, поскольку требуют включения в технологический процесс обработки информации не только основных технологических операций, но и операций контроля и исправления ошибок.
Однако это входит в противоречие с проблемой целостности данных, для решения которой необходимо синхронное и согласованное изменение данных в нескольких локальных базах данных, составляющих РаБД.
В распределенной СУБД различаются четыре типа сбоев:
-
сбой транзакции,
-
сбой узла (системы),
-
сбой носителя (диска),
-
сбой коммуникационной линии.
Сбой транзакции
Причин сбоев транзакции может быть несколько:
-
ошибки, вызванные неверными входными данными,
-
обнаружение возникшего или возможного тупика.
Обычный способ обработки таких сбоев заключается в том, чтобы прервать транзакцию и откатить базу данных к состоянию, предшествовавшему началу транзакции.
Сбой узла
Cбои узлов (системные сбои) могут быть вызваны:
-
аппаратными отказами (процессора, оперативной памяти, питания),
-
программными ошибками (в системном или прикладном коде).
Следствие системных сбоев – потеря содержимого оперативной памяти, в частности буферов оперативной памяти (часть базы данных, хранимая в буферах, называется неустойчивой базой данных).
В распределенной базе данных проблема системных сбоев выражается еще и в том, что отказавший узел не может участвовать в транзакциях.
Сбой носителя
Сбои носителей связаны с отказами устройств внешней памяти, на которых хранится стабильная база данных. Обычно эта проблема решается путем применения дуплексных устройств и поддержания архивных копий базы данных.
Рассмотренные выше три типа сбоев характерны и для централизованных, и для распределенных СУБД.
Сбой коммуникационной линии
Коммуникационные сбои являются специфической проблемой распределенных баз данных.
Коммуникационные сбои подразделяются на:
-
ошибки в сообщениях,
-
нарушение упорядоченности сообщений,
-
потерянные (недоставленные) сообщения,
-
повреждения на линиях связи
Первые из двух типов сбоев находятся в компетенции сетевых протоколов, два последних лежат в ведении СУБД и должны учитываться в протоколах обеспечения надежности.
Если один узел ожидает сообщения от другого, а оно не поступает, то причин тому может быть несколько:
-
сообщение утрачено;
-
возникло повреждение на линии связи;
-
узел, от которого ожидается сообщение, отказал.
В любом случае ожидающий узел по истечении определенного промежутка времени просто решает, что узел-партнер стал недоступен.
Последствием повреждений на линиях связи может стать фрагментация сети, когда множество узлов распадается на группы, внутри которых имеется связь, а коммуникации между группами невозможны.
Протоколы распределенных СУБД должны уметь адекватно реагировать на подобные ситуации.
Протоколы обеспечения надежности
Протоколы обеспечения надежности поддерживают два свойства транзакций: атомарность и долговечность.
Атомарность означает, что выполняются либо все действия транзакции, либо не выполняется ни одно (принцип "все или ничего"). Атомарность гарантируется даже в условиях возможных отказов.
Долговечность означает, что результат успешно завершенной (зафиксированной) транзакции сохраняется даже при последующих сбоях.
Для обеспечения атомарности и долговечности необходимы:
-
протоколы атомарной фиксации,
-
протоколы распределенного восстановления.
Протоколы атомарной фиксации
Наиболее популярным протоколом атомарной фиксации является протокол двухфазной фиксации транзакций 2PC (two-phase commit).
Протокол 2PC опирается на следующие фундаментальные правила.
-
Если хотя бы один узел отказывается зафиксировать транзакцию (голосует за ее аварийное завершение), то распределенная транзакция аварийно завершается во всех участвующих в ней узлах.
-
Если все узлы голосуют за фиксацию транзакции, то она фиксируется во всех участвующих в ней узлах.
1 фаза 2PC - подготовка к фиксации транзакции (голосование).
2 фаза 2PC- глобальные фиксация или откат транзакции (принятие решения).
В простейшем варианте работа 2PC выглядит следующим образом:
На узле, где инициируется транзакция, создается процесс-координатор; на всех прочих затрагиваемых ею узлах создаются процессы-участники. Вначале координатор рассылает участникам сообщение PREPARE, и каждый из них независимо решает, может ли транзакция завершиться на данном узле. Координатор ожидает в пределах установленного тайм-аута. Участники, которые готовы завершить транзакцию, посылают координатору сообщение READY TO COMMIT. Участники, не имеющие возможности зафиксировать свою часть транзакции, возвращают сообщение READY TO ROLLBACK.
Получив сообщение GLOBAL_COMMIT, участник транзакции завершает и фиксирует свою часть транзакции и посылает координатору сообщение COMMIT. После получения от всех участников сообщений о фиксации транзакций координатор завершает транзакцию. Если некоторые участники не прислали сообщения о фиксации, координатор продолжает их опрашивать до получения требуемых подтверждений.
Заметим, что участникам, проголосовавшим за прерывание, сообщение посылать не нужно, поскольку они сами способны принять решение исходя из правил 2PC. Эта ситуация известна под названием опции одностороннего прерывания.
Протокол терминирования – протокол, при помощи которого отдельный узел может принять решение о том, как следует завершить транзакцию в условиях, когда он не может взаимодействовать с другими участвующими в данной транзакции узлами.
Логика протокола терминирования может быть следующей:
Предположим, что участник, уже отославший свой голос за фиксацию транзакции, не дождался в течение заданного времени сообщения от координатора об окончательном решении.
В этом случае участник находится в состоянии готовности. Раз он находится в состоянии готовности, то это означает, что ранее он проголосовал за фиксацию и теперь не имеет права изменить свое решение и прервать транзакцию
Протокол трехфазовой фиксации – 3PC
Предпринимались попытки создания неблокирующих протоколов. Пример протокол 3PC.
3PC является неблокирующим протоколом, но лишь при следующих условиях:
-
расчленения сети не должно иметь места;
-
по крайней один узел всегда должен быть доступен.
Идея протокола 3PC состоит в устранении неопределенности периода ожидания, в который попадают участники после подтверждения своего согласия на фиксацию транзакции и до получения от координатора сообщения о глобальной фиксации или глобальном откате транзакции.
Обратной стороной терминирования является восстановление. Какие действия должен предпринять восстанавливающийся после сбоя узел-координатор, чтобы привести базу данных в корректное состояние?
- Понятие распределенной информационной системы. Распределенные базы данных. Принципы создания и функционирования распределенных баз данных.
- Прозрачные свойства распределенных баз данных. Прозрачность фрагментации, местоположения, локального отображения.
- Системы управления распределенными базами данных: понятие, функциональные возможности, типы. Преимущества и недостатки систем управления распределенными базами данных.
- Архитектура клиент-сервер. Основные правила архитектуры клиент-сервер. Модели распределений.
- Модели архитектуры клиент-сервер: rda-модель, dbs-модель, as-модель. Преимущества и недостатки.
- Фрагментация. Основные концепции фрагментации данных. Виды фрагментации.
- Репликация. Понятие согласованного распределенного набора данных. Варианты репликации. Протокол репликации rowa.
- Технологии доступа к данным: odbc, jdbc, ole db, ado, dao, bde.
- Транзакция, ее свойства. Модель транзакции в стандарте sql. Журнализация транзакций.
- Понятие распределенной транзакции. Мониторы обработки транзакций.
- Параллельное выполнение транзакций. Управление параллельным выполнением транзакций. Проблемы и решения по организации управления параллельным выполнением в распределенной среде.
- Механизм блокировок. Виды блокировок. Централизованное блокирование, блокирование первичных копий и распределенное блокирование. Блокировка
- Метки времени
- Оптимистические методы
- Понятие проекта информационной системы, его структура. Экономико-организационные и информационно-технологические принципы проектирования информационных систем.
- 1. Экономико-организационные
- 2. Информационно-технологические
- Жизненный цикл разработки систем. Основные стадии жизненного цикла. Модели жизненного цикла.
- Каноническое проектирование информационных систем. Стадии процесса проектирования информационных систем.
- Состав работ на предпроектных стадиях проектирования системы. Обследование информационной системы. Описание постановки задачи. Техническое задание.
- Состав работ на стадиях технического и рабочего проектирования информационной системы.
- Состав работ на стадиях ввода в действие и сопровождения информационной системы.
- Case-технологии, основные принципы. Этапы создания информационной системы на основе case-технологии. Факторы эффективности case-технологии.
- Case-средства, их классификация. Примеры case-средств и их характеристика.
- Типовое проектирование информационных систем. Классификация, примеры типовых информационных систем и их характеристика.
- Проектирование системы управления в Business Studio.
- 29. Возможности и реализуемые стандарты современного пакета бизнес- моделирования Business Studio.
- 28. Основные задачи администратора базы данных: