|
@@ -1,8 +1,8 @@
|
|
|
-# Экранирование
|
|
|
+# Экранирование
|
|
|
|
|
|
**Введение**
|
|
|
|
|
|
-TZI - это подход к управлению транзакциями, который позволяет нескольким транзакциям одновременно работать с данными, не блокируя доступ к ним. Это обеспечивает более высокую производительность и масштабируемость по сравнению с традиционными подходами, основанными на блокировках.
|
|
|
+Экранирование является важной техникой, используемой в системах транзакций без блокировок (TZI) для предотвращения или исправления конфликтов между транзакциями, которые одновременно работают с данными. В данной лекции мы рассмотрим подходы к экранированию, их преимущества и недостатки, а также примеры применения этих подходов в различных сценариях.
|
|
|
|
|
|
**Проблема несовместимости**
|
|
|
|
|
@@ -22,7 +22,7 @@ TZI - это подход к управлению транзакциями, ко
|
|
|
|
|
|
**Предотвращающее экранирование:** Предположим, у нас есть банковский счет, и две транзакции хотят снять с него деньги. Вместо того, чтобы позволить им одновременно снять деньги, мы можем установить правило, согласно которому только одна транзакция может снять деньги с этого счета в любой момент времени. Это предотвращает конфликты, но может привести к блокировке, если много транзакций хотят снять деньги одновременно.
|
|
|
|
|
|
-**Исправляющее экранирование: Предположим, у нас есть система бронирования билетов, и две транзакции хотят забронировать последний билет на один и тот же рейс. Если обе транзакции одновременно пытаются забронировать билет, одна из них может успешно забронировать билет, а другая может получить сообщение об ошибке. Затем вторая транзакция может попробовать забронировать другой билет на другой рейс.
|
|
|
+**Исправляющее экранирование:** Предположим, у нас есть система бронирования билетов, и две транзакции хотят забронировать последний билет на один и тот же рейс. Если обе транзакции одновременно пытаются забронировать билет, одна из них может успешно забронировать билет, а другая может получить сообщение об ошибке. Затем вторая транзакция может попробовать забронировать другой билет на другой рейс.
|
|
|
|
|
|
**Изоляция и согласованность**
|
|
|
|
|
@@ -31,18 +31,27 @@ TZI - это подход к управлению транзакциями, ко
|
|
|
Существует несколько уровней изоляции, определенных стандартом изоляции транзакций ANSI (ACID), которые гарантируют различную степень изоляции:
|
|
|
|
|
|
Чтение зафиксированных данных (Read Uncommitted): Самый низкий уровень изоляции, который позволяет транзакциям читать незафиксированные данные других транзакций. Это может привести к неожидаемым результатам, таким как "грязное чтение".
|
|
|
+
|
|
|
Чтение зафиксированных данных с повторяемостью чтения (Read Committed): Этот уровень изоляции гарантирует, что транзакции видят только зафиксированные данные, но может привести к повторяющемуся чтению, когда одна и та же транзакция читает одни и те же данные несколько раз и получает разные результаты.
|
|
|
+
|
|
|
Повторяемость чтения (Repeatable Read): Этот уровень изоляции гарантирует, что транзакция всегда видит одни и те же данные при повторном чтении, но может позволить другим транзакциям вставлять новые строки, которые транзакция еще не видела.
|
|
|
-Сериализуемость (Serializable): Это最高级别 изоляции, который гарантирует, что все транзакции видят одни и те же данные в том же порядке, что и если бы они выполнялись одна за другой. Это обеспечивает самую высокую степень согласованности данных, но может привести к снижению производительности из-за более жестких ограничений на одновременный доступ к данным.
|
|
|
+
|
|
|
+Сериализуемость (Serializable): Это изоляции, который гарантирует, что все транзакции видят одни и те же данные в том же порядке, что и если бы они выполнялись одна за другой. Это обеспечивает самую высокую степень согласованности данных, но может привести к снижению производительности из-за более жестких ограничений на одновременный доступ к данным.
|
|
|
+
|
|
|
Согласованность гарантирует, что транзакции видят согласованное состояние данных. Это означает, что транзакции не должны видеть недопустимых состояний данных, таких как отрицательный баланс банковского счета. Существует несколько уровней согласованности, в том числе:
|
|
|
|
|
|
Согласованность по ключу (Key-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для каждого уникального ключа.
|
|
|
+
|
|
|
Согласованность по записи (Row-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для каждой записи.
|
|
|
+
|
|
|
Согласованность по странице (Page-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для каждой страницы.
|
|
|
+
|
|
|
Согласованность по таблице (Table-Shared): Этот уровень согласованности гарантирует, что транзакции видят согласованные данные для всей таблицы.
|
|
|
+
|
|
|
Изоляция и согласованность тесно связаны и вместе гарантируют, что транзакции работают независимо друг от друга и видят согласованное состояние данных. Правильный выбор уровней изоляции и согласованности зависит от конкретной ситуации и может повлиять на производительность и согласованность системы
|
|
|
|
|
|
**Вывод**
|
|
|
+
|
|
|
Экранирование является важной техникой в системах TZI, которая позволяет предотвращать или исправлять конфликты между транзакциями. Правильный выбор подхода к экранированию зависит от конкретной ситуации и может повлиять на производительность и согласованность системы.
|
|
|
|
|
|
**Литература:**
|