소스 검색

Загрузить файлы 'Лекции/ПМ3.1/3.2.300_Экранирование'

u21-25ryaboshapch 8 달 전
부모
커밋
74435d8d13
1개의 변경된 파일54개의 추가작업 그리고 0개의 파일을 삭제
  1. 54 0
      Лекции/ПМ3.1/3.2.300_Экранирование/Рябошапченко.md

+ 54 - 0
Лекции/ПМ3.1/3.2.300_Экранирование/Рябошапченко.md

@@ -0,0 +1,54 @@
+# Экранирование
+
+**Введение**
+
+TZI - это подход к управлению транзакциями, который позволяет нескольким транзакциям одновременно работать с данными, не блокируя доступ к ним. Это обеспечивает более высокую производительность и масштабируемость по сравнению с традиционными подходами, основанными на блокировках.
+
+**Проблема несовместимости**
+
+Основная проблема, с которой сталкиваются системы TZI, заключается в том, что две транзакции могут одновременно читать и изменять одни и те же данные, приводя к неожидаемым результатам. Например, две транзакции могут одновременно читать значение переменной, а затем каждая из них может ее изменить. В результате, изменения одной транзакции могут быть потеряны.
+
+**Экранирование**
+
+Экранирование - это техника, используемая для предотвращения таких ситуаций. Существует два основных подхода к экранированию:
+
+Предотвращающее экранирование (Preventive shielding): Этот подход пытается предотвратить возникновение конфликтов между транзакциями. Он основывается на правилах, которые ограничивают доступ транзакций к данным, чтобы гарантировать, что они не могут конфликтовать.
+
+Исправляющее экранирование (Compensating shielding): Этот подход позволяет транзакциям конфликтовать, но затем исправляет любые возникшие проблемы. Он использует компенсирующие транзакции, которые отменяют изменения, сделанные транзакцией, если они приводят к конфликту.
+
+**Примеры экранирования**
+
+Рассмотрим примеры обоих подходов:
+
+**Предотвращающее экранирование:** Предположим, у нас есть банковский счет, и две транзакции хотят снять с него деньги. Вместо того, чтобы позволить им одновременно снять деньги, мы можем установить правило, согласно которому только одна транзакция может снять деньги с этого счета в любой момент времени. Это предотвращает конфликты, но может привести к блокировке, если много транзакций хотят снять деньги одновременно.
+
+**Исправляющее экранирование: Предположим, у нас есть система бронирования билетов, и две транзакции хотят забронировать последний билет на один и тот же рейс. Если обе транзакции одновременно пытаются забронировать билет, одна из них может успешно забронировать билет, а другая может получить сообщение об ошибке. Затем вторая транзакция может попробовать забронировать другой билет на другой рейс.
+
+**Изоляция и согласованность**
+
+Изоляция гарантирует, что транзакции работают независимо друг от друга, то есть изменения, внесенные одной транзакцией, не должны влиять на другие транзакции, пока первая транзакция не будет завершена и не будет применена. Это обеспечивает согласованность данных и предотвращает непреднамеренные последствия, вызванные одновременным доступом нескольких транзакций к данным.
+
+Существует несколько уровней изоляции, определенных стандартом изоляции транзакций ANSI (ACID), которые гарантируют различную степень изоляции:
+
+Чтение зафиксированных данных (Read Uncommitted): Самый низкий уровень изоляции, который позволяет транзакциям читать незафиксированные данные других транзакций. Это может привести к неожидаемым результатам, таким как "грязное чтение".
+Чтение зафиксированных данных с повторяемостью чтения (Read Committed): Этот уровень изоляции гарантирует, что транзакции видят только зафиксированные данные, но может привести к повторяющемуся чтению, когда одна и та же транзакция читает одни и те же данные несколько раз и получает разные результаты.
+Повторяемость чтения (Repeatable Read): Этот уровень изоляции гарантирует, что транзакция всегда видит одни и те же данные при повторном чтении, но может позволить другим транзакциям вставлять новые строки, которые транзакция еще не видела.
+Сериализуемость (Serializable): Это最高级别 изоляции, который гарантирует, что все транзакции видят одни и те же данные в том же порядке, что и если бы они выполнялись одна за другой. Это обеспечивает самую высокую степень согласованности данных, но может привести к снижению производительности из-за более жестких ограничений на одновременный доступ к данным.
+Согласованность гарантирует, что транзакции видят согласованное состояние данных. Это означает, что транзакции не должны видеть недопустимых состояний данных, таких как отрицательный баланс банковского счета. Существует несколько уровней согласованности, в том числе:
+
+Согласованность по ключу (Key-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для каждого уникального ключа.
+Согласованность по записи (Row-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для каждой записи.
+Согласованность по странице (Page-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для каждой страницы.
+Согласованность по таблице (Table-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для всей таблицы.
+Изоляция и согласованность тесно связаны и вместе гарантируют, что транзакции работают независимо друг от друга и видят согласованное состояние данных. Правильный выбор уровней изоляции и согласованности зависит от конкретной ситуации и может повлиять на производительность и согласованность системы
+
+**Вывод**
+Экранирование является важной техникой в системах TZI, которая позволяет предотвращать или исправлять конфликты между транзакциями. Правильный выбор подхода к экранированию зависит от конкретной ситуации и может повлиять на производительность и согласованность системы.
+
+**Литература:**
+
+Беренсон, Р. Р. (1995). Транзакционная обработка
+and Techniques. Addison-Wesley Professional.
+Грей, Дж., Рюттер, А., и Шапиро, М. (1996). Транзакционная обработка: Concepts and Techniques. Morgan & Claypool Publishers.
+Херлих, М., и Шавит, Н. (2008). Искусство многопроцессорной обработки. Morgan & Claypool Publishers.
+СпИгль, С. (2009). Системы транзакционной обработки. John Wiley & Sons.