Заявку на получение дополнительной информации по этому проекту можно заполнить здесь.
Номер 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 г.)