Для онлайн-заказа мест на концерты или авиабилетов нам нужна блокировка уровня записи или транзакция достаточно хороша?
Для билета на концерт (скажем, место номер 20B) или билета на самолет (даже с овербукингом, ограничение составляет, например, 210), я думаю, что веб-сайт не может заблокировать какую-либо запись или начать транзакцию при отображении экрана покупки билета.
Но после того, как пользователь нажмет «Подтвердить покупку», сервер должен начать транзакцию, приобрести номер места 20B и попытаться зафиксировать.
Если другой пользователь уже купил Seat 20B в предыдущей транзакции, то это часть «Зафиксировать», что текущая транзакция завершится неудачно?
Итак... нам не нужна блокировка уровня записи? Всегда ли транзакции сериализуются (одна за другой), поэтому мы можем точно знать, что нет «состояния гонки»? В какой ситуации тогда необходима блокировка уровня записи?