Pull to refresh

Comments 17

Вот это очень ценная шпора, спасибо!
Не часто требуется что-то экзотическое использовать и приходится в доку лезть, а она немного дубовая. Тут все в одном месте, и наглядно.
Поддерживаю! Очень крутое раскрытие информации! Спасибо!
Для полноты картины еще не хватает описания какие дедлоки возникают в различных комбинация уровней изоляции.
спасибо
можно ли подробнее узнать про шаг7 первого примера? Имею ввиду блокировки данных
Вот этому я посвятил отдельный параграф «Аномалия сериализации (Потерянное обновление)». Как я разобрался, данная блокировка происходит для предотвращения потери обновлений. Но официальная документация Постгреса пишет о том, что Read Committed подвержен аномалии сериализации. Либо я не правильно соотношу эти два феномена чтения данных, и «Аномалия сериализации» это не «Потерянное обновление». Либо документация ошибается (это я пишу с осторожностью), и Read Committed в Постгресе дополнительно защищен через курсор (Cursor Stability), что и создаёт блокировку в Шаге 6 на обновление данных для других транзакций.
Надо будет в oracle попробовать. Для read comitted там все также будет, а, вот, для serializable — не уверен.

В Oracle Serializable это на самом деле Snapshot Isolation.

Т.е., теоретичски, не должно быть ошибок и rollback, а просто будем дольше ждать в этом сценарии?
snapshot — это repeatable read. Автор статьи как-то прыгнул от read committed к serializable мимо repeatable read.
Т.е. фантомные чтения возможны? В вики говорят что в оракле вообще repeatable read отсутствует.
Это стандарт кривой, не имеет уровня snapshot, который строже repeatable read, без фантомных чтений, но слабее serializable. Поэтому если СУБД имеет что-то вроде repeatable read, его и упоминают. А snapshot там или нет, это уже дело десятое. Реального repeatable read, чтобы с фантомами, по-моему нигде нет, кроме db2.
до кучи — Критика уровней изолированности стандарта ANSI SQL
http://citforum.ru/database/classics/SQL_critiques/
оригинал 1995 года.
У вас картинки не показываются
https://dl.dropboxusercontent.com/u/37142115/blog/production/posts/2/read_committed/0.png

Error (429)
This account's links are generating too much traffic and have been temporarily disabled!
Владимир, спасибо! Поправил место хранения картинок.
Sign up to leave a comment.

Articles