stringtranslate.com

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

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

Учитывая график S

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

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

Реальный пример

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

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

Рекомендации

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