На странице руководства PostgreSQL о сериализуемом уровне изоляции указано:
[Like] уровень повторяемого чтения, приложения, использующие этот уровень, должны быть готовы к повторной попытке транзакции из-за сбоев сериализации.
Каковы условия возникновения сбоя сериализации на уровнях Repeatable Read или Serializable?
Я пытался вызвать сбой сериализации с двумя запущенными экземплярами psql
, но даже несмотря на то, что транзакция была зафиксирована по одному экземпляру другой экземпляр внутри транзакции сериализуемого уровня, в то время как другой был зафиксирован, успешно зафиксировал свои изменения. Оба просто вставили записи в таблицу, поэтому, возможно, мне нужно попробовать что-то более сложное.
В основном я пытаюсь понять, что происходит в случае сбоя сериализации и как возникают сбои сериализации.