Основы современных баз данных



Синхронизационные захваты - часть 2


Это требование порождает двухфазный протокол синхронизационных захватов - 2PL. В соответствии с этим протоколом выполнение транзакции разбивается на две фазы:

  • первая фаза транзакции - накопление захватов;

  • вторая фаза (фиксация или откат) - освобождение захватов.

    Достаточно легко убедиться, что при соблюдении двухфазного протокола синхронизационных захватов действительно обеспечивается сериализация транзакций на третьем уровне изолированности. Основная проблема состоит в том, что следует считать объектом для синхронизационного захвата?

    В контексте реляционных баз данных возможны следующие альтернативы:

  • файл - физический (с точки зрения базы данных) объект, область хранения нескольких отношений и, возможно, индексов;

  • отношение - логический объект, соответствующий множеству кортежей данного отношения;

  • страница данных - физический объект, хранящий кортежи одного или нескольких отношений, индексную или служебную информацию;

  • кортеж - элементарный физический объект базы данных.

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

    Понятно, что чем крупнее объект синхронизационного захвата (неважно, какой природы этот объект - логический или физический), тем меньше синхронизационных захватов будет поддерживаться в системе, и на это, соответственно, будут тратиться меньшие накладные расходы. Более того, если выбрать в качестве уровня объектов для захватов файл или отношение, то будет решена даже проблема фантомов (если это не ясно сразу, посмотрите еще раз на формулировку проблемы фантомов и определение двухфазного протокола захватов).

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


    Содержание  Назад  Вперед