Транзакции и параллельные вычисления. — КиберПедия 

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Транзакции и параллельные вычисления.

2017-06-19 372
Транзакции и параллельные вычисления. 0.00 из 5.00 0 оценок
Заказать работу

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

В РСУБД механизм блокировки организован на более абстрактном уровне, в виде транзакций. При этом транзакцией называется последовательность SQL-инструкций, выполняемая полностью или не выполняемая вообще. Сервер изолирует одновременные потоки друг от друга, ограничивая тем самым их доступ к измененным данным. По мере завершения транзакций сервер выполняет их так, будто они происходят последовательно, а не параллельно.

Механизм блокировки: Существует центральный системный сервис, контролирующий работу потоков и управляющий блокировкой ресурсов. Если какой-то поток захватил ресурс, поставив на него блокировку, остальные потоки, пытающиеся обратиться к этому же ресурсу, будут ждать его освобождения. Блокирование ресурсов ведет к ощутимому снижению производительности, поэтому блокировки осуществляются на разных уровнях, что позволяет точнее определить область действия допустимых и недопустимых операций.

Транзакция — это совокупность одной или нескольких SQL-инструкций, имеющих начало и конец. В конце транзакции происходит либо ее отмена, либо подтверждение. Отмена транзакции называется откатом (rollback), так как идет последовательная отмена всех сделанных изменений. Подтверждение транзакции называется фиксацией (commit).Считается, что правильная транзакция обладает следующими свойствами: атомарностью, согласованностью, изолированностью и устойчивостью. Под атомарностью понимается принцип неделимости: все инструкции, составляющие транзакцию, обязательно выполняются все вместе или не выполняется ни одна из них. Никаких промежуточных состояний не существует.

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

Уровни изоляции: Теоретически СУБД должна обеспечивать полную изоляцию транзакций. На практике же вводится несколько уровней изоляции, самым высоким из которых является полная изоляция. В СУБД MySQL выбор уровня осуществляется с помощью инструкции SET TRANSACTION. Остановимся на ней более подробно. В стандарте SQL определены четыре уровня изоляции: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ и SERIALIZABLE. Они перечислены в порядке увеличения изолированности и по очереди решают три основные проблемы, возникающие при использовании транзакций: появление промежуточных данных, появление несогласованных данных и появление строк-призраков.

ACID свойства транзакций: ACID описывает требования к транзакционной системе (например, к СУБД), обеспечивающие наиболее надёжную и предсказуемую её работу. Сущ. четыре св-ва – атомарность, согласованность, изоляция и долговечность, описывающие основные черты парадигмы транзакций, которые влияют на многие аспекты разработки систем баз данных.

Атомарность (Atomicity): гарантируется, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной. Поскольку на практике невозможно одновременно и атомарно выполнить всю последовательность операций внутри транзакции, вводится понятие «отката» (rollback);

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

Изоляция (Isolation): События, происходящие внутри транзакции, должны быть скрыты от других одновременно выполняемых транзакций. Если бы это условие не выполнялось, то по причинам, упомянутым выше, транзакцию было бы невозможно вернуть к своему началу. Для достижения изоляции используются методы, называемые синхронизацией...

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

 


Поделиться с друзьями:

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.