ИННОВАЦИИ БИЗНЕСУ

ПОДРОБНАЯ ИНФОРМАЦИЯ

Заявку на получение дополнительной информации по этому проекту можно заполнить здесь.

Номер

79-077-00

Наименование проекта

Реализация нескольких стратегий управления транзакциями в СУБД

Назначение

Для реализации оптимистической, пессимистической и спекулятивной стратегий управления транзакциями

Рекомендуемая область применения

В составе менеджера транзакций параллельных и распределенных систем управления базами данных.

Описание

Разработанный ЗАО «Релэкс» набор схем обработки конфликтов транзакций на основе меток транзакций и меток версий объектов данных позволяет реализовывать следующие стратегии управления транзакциями : оптимистическую, пессимистическую и спекулятивную.

Оптимистическая стратегия предполагает, что транзакция Т работает «одна» и никакая другая транзакция Тўне меняет ни множество чтения, ни множество записи транзакции Т до момента её фиксации. Все конфликты чтения/записи, ограничения целостности проверяются в момент фиксации .Транзакция Т фиксируется в том и только в том случае, когда от момента её старта и до момента её фиксации отсутствовали конфликты, описанные выше с любой другой параллельной транзакцией Тў, во всех остальных случаях транзакция Т откатывается. При таком протоколе работы транзакция Т не захватывает (как-либо блокирует) объекты данных, к которым она обращается.

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

Пессимистическая стратегия предполагает, что транзакция Т работает параллельно с другими, и они ей «мешают», то есть найдется хотя бы одна транзакция Тў, которая меняет множество чтения и (или) множество записи транзакции Т до момента её фиксации. Все конфликты чтения/записи, ограничения целостности проверяются в процессе работы транзакции Т. При таком протоколе работы транзакция Т захватывает объекты данных, к которым она обращается, предотвращая тем самым запись объектов другими транзакциями при захвате на чтение и любых действий при захвате на запись.

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

Спекулятивная стратегия предполагает, что транзакция Т работает параллельно с другими транзакциями, потенциальные конфликты детектируются в процессе работы, как только они возникают, но детектирование таких конфликтов не влечет ни задержки выполнения таких транзакций (как при пессимистической стратегии), ни отката (как при оптимистической).

Операции записи объекта х никогда не происходят вслепую, то есть без предварительного чтения. Операция записи происходит над локальной копией объекта х в рабочем пространстве транзакции Т, и становится видимой только после фиксации транзакции Т. Если какая-либо транзакция Тўпотом читает х , то образуется тень транзакции Тў- ТІ, при этом Тўвыполняется в предположении, что транзакция Тў(родитель тени Тў) фиксируется раньше, чем все конфликтующие транзакции, в том числе и Т, и в этом случае нет смысла откатывать Т, как это было бы сделано при оптимистической стратегии. Если же транзакция Т фиксируется раньше чем Тў, то вместо того, чтобы откатить Тўона будет заменена своей тенью Тўў, и выполнение транзакции продолжается этой тенью в точности так, как если бы транзакция Т стартовала и зафиксировалась бы перед стартом Тў. Это и есть предположениеspeculated order of serialisation. Основная идея спекулятивного протокола - держать достаточное количество теней, чтобы продолжить выполнение транзакции её тенью вместо полного рестарта транзакции.

У транзакции Т естьkтеней: оптимистическая тень То выполняется в предположении, что Т фиксируется раньше всех транзакций, с которыми она конфликтует, несколько спекулятивных теней Тs, s=1,…,k=1; спекулятивная тень Тsвыполняется в предположении, что она фиксируется раньше всех конфликтующих с Т транзакций, кроме одной конкретной транзакции Тu, которая «спекулирует» зафиксироваться раньше Т. Тsзадерживается на чтении объекта х , который изменила Тu, до тех пор , пока Тuне фиксируется, только тогда Тsсчитает х. Если спекуляция транзакции Тuоправдывается (она фиксируется раньше Т), то оптимистическая тень То транзакции Т прерывается и заменяется на спекулятивную тень Тs, она становится новой оптимистической тенью.

Сам протокол обработки транзакций расширен до иерархии транзакций. К данному протоколу обработки транзакций наиболее близким из существующих протоколов являетсяnested transaction model. Однако в данной реализации используется техника многоверсионности и отсутствуют проблемы наследования заблокированных транзакциями более низких уровней иерархии объектов, а также проблема разрешения распределенныхdead-lock.

Применение протокола обработки транзакций позволяет строить потоки транзакций приложенийoltp, dds, olapс низкими потерями производительности системы, возникающими при конкуренции транзакций за данные.

Преимущества перед известными аналогами

Аналоги не известны

Стадия освоения

Внедрено в производство ЗАО "Релэкс".

Результаты испытаний

Технология обеспечивает получение стабильных результатов

Технико-экономический эффект

Повышена производительность системы

Возможность передачи за рубеж

За рубеж не передаётся

Дата поступления материала

14.03.2000

Инновации и люди

У павильонов Уральской выставки «ИННОВАЦИИ 2010» (г. Екатеринбург, 2010 г.)

Мероприятия на выставке "Инновации и инвестиции - 2008" (Югра, 2008 г.)

Открытие выставки "Малый бизнес. Инновации. Инвестиции" (г. Магнитогорск, 2007 г.)

Демонстрация разработок на выставке "Малый бизнес. Инновации. Инвестиции" (г. Магнитогорск, 2007 г.)