Комментарии 17
Вот это очень ценная шпора, спасибо!
Не часто требуется что-то экзотическое использовать и приходится в доку лезть, а она немного дубовая. Тут все в одном месте, и наглядно.
Не часто требуется что-то экзотическое использовать и приходится в доку лезть, а она немного дубовая. Тут все в одном месте, и наглядно.
Для полноты картины еще не хватает описания какие дедлоки возникают в различных комбинация уровней изоляции.
спасибо
можно ли подробнее узнать про шаг7 первого примера? Имею ввиду блокировки данных
можно ли подробнее узнать про шаг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 года.
http://citforum.ru/database/classics/SQL_critiques/
оригинал 1995 года.
В каком редакторе диаграммы рисовались, если не секрет? Visio?
У вас картинки не показываются
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!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Уровни изоляции транзакций с примерами на PostgreSQL