механизмы реализации уровня изоляции сериалайзебл есть в rdbms? Вот именно, что бы не снэпшот изоляция была, а настоящий сериалайзебл
Да даже в https://en.wikipedia.org/wiki/Serializability#Enforcing_conflict_serializability есть перечисление...
спасибо. а SS2PL это же по усти read-write lock? Т.е выходит, что если я читаю, то каждую строку нужно залочить на чтение на все время транзакции?
Да. И больше, чем каждую строку — блокировать нужно предикаты запросов (что, за отсутствием эффективной точной реализации, обычно реализуется как range locks индексов и т.п.).
а зачем предикатные запросы блокировать? что-то я не пойму. поясните плиз. Или это чтобы другая транзакция ничего не вставила в этот диапазон?
Да, или чтобы не удалила.
Вот уровень такой изоляции прямо есть, SERIALIZABLE
пишут что в PG его делают не через двух фазную блокировку, а через SSI. круто если так
Ну, он не всегда именно с сериализацией запросов, иногда ещё и select for update нужен.
Обсуждают сегодня