stringtranslate.com

Конфликт чтения-записи

В информатике , в области баз данных , конфликт чтения-записи , также известный как неповторяющиеся чтения , является вычислительной аномалией, связанной с чередующимся выполнением транзакций. В частности, конфликт чтения-записи возникает, когда «транзакция запрашивает чтение сущности, для которой незакрытая транзакция уже сделала запрос на запись». [1]

Дано расписание S

В этом примере T1 прочитал исходное значение A и ждет завершения T2. T2 также читает исходное значение A, перезаписывает A и фиксирует.

Однако, когда T1 читает из A, он обнаруживает две разные версии A, и T1 будет вынужден прерваться , потому что T1 не будет знать, что делать. Это неповторимое чтение. Это никогда не могло бы произойти в последовательном расписании, в котором каждая транзакция выполняется полностью до начала другой. Строгая двухфазная блокировка (Strict 2PL) или сериализуемая изоляция моментальных снимков (SSI) предотвращают этот конфликт.

Пример из реальной жизни

Алиса и Боб используют веб-сайт для бронирования билетов на определенное шоу. На определенное шоу остался только один билет. Алиса регистрируется первой, чтобы увидеть, что остался только один билет, и находит его дорогим. Алисе требуется время, чтобы принять решение. Боб регистрируется и также обнаруживает, что остался один билет, и мгновенно заказывает его. Боб покупает и выходит из системы. Алиса решает купить билет, но обнаруживает, что билетов нет. Это типичная ситуация конфликта чтения-записи.

Смотрите также

Ссылки

  1. ^ Stearns, Richard E. ; Rosenkrantz, Daniel J. (1981). Распределенные элементы управления параллелизмом баз данных с использованием значений до обработки. 1981 ACM SIGMOD Международная конференция по управлению данными. Нью-Йорк, США: Ассоциация вычислительной техники . С. 74–83. doi :10.1145/582318.582330. ISBN 0-89791-040-0.