В информатике , в области баз данных , конфликт чтения-записи , также известный как неповторяющееся чтение , — это вычислительная аномалия, связанная с чередующимся выполнением транзакций. В частности, конфликт чтения и записи возникает, когда «транзакция запрашивает чтение объекта, для которого незакрытая транзакция уже сделала запрос на запись». [1]
Учитывая график S
В этом примере T1 прочитал исходное значение A и ожидает завершения T2. T2 также считывает исходное значение A, перезаписывает A и фиксирует.
Однако когда T1 читает из A, он обнаруживает две разные версии A, и T1 будет вынужден прервать операцию , потому что T1 не будет знать, что делать. Это неповторимое чтение. Этого никогда не произойдет в последовательном расписании, в котором каждая транзакция выполняется полностью до начала другой. Строгая двухфазная блокировка (Strict 2PL) или изоляция последовательных моментальных снимков (SSI) предотвращают этот конфликт.
Алиса и Боб используют веб-сайт, чтобы забронировать билеты на определенное шоу. На конкретное шоу остался только один билет. Алиса первой записывается, чтобы увидеть, что остался только один билет, и считает его дорогим. Алисе нужно время, чтобы принять решение. Боб регистрируется, а также находит оставшийся один билет и немедленно заказывает его. Боб совершает покупки и выходит из системы. Алиса решает купить билет и обнаруживает, что билетов нет. Это типичная ситуация конфликта чтения и записи.