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

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

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

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

2017-06-19 370
Транзакции и параллельные вычисления. 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.007 с.