serializability says that transaction behavior is equivalent to some serial execution, and the serial order of transactions corresponds to real time (i.e. a transaction started after another one finished will be ordered after it). Note that strict serializability (like linearizability) still doesn't say anything about the relative ordering of concurrent transactions (but, of course, those transaction still need to appear to be "isolated" from each other). We'll come back to this point in the next sections.
Согласно этой формулировке выглядит так, что в pg тоже strict consistency (потому что транзакция, которая началась, видит эффекты всех предыдущих закомиченных транзакций).
Но похоже, что это не так и в pg скорее serializable + sequential consistency.
История в strict consistency должна соотвествовать последовательной истории, когда произошли эти комиты, так?
Да, согласно этой формулировке в PostgreSQL тоже strict serializability. Что как бы намекает нам на "качество" и "полезность" теории в этой отрасли, IMHO (но я бы не сказал, что читал много) . :( Т.е. даже у разных реализаций strict serializability могут быть существенно разные свойства, а в "теории" ничего про это не видно, а уж что касается более низких уровней изоляции — там вообще бардак. К примеру, ни одна MVCC database, которая реализует RC и RR примерно так, как это делает postgres, их "теоретическим" определениям не соответствует — зато ISO SQL можно прочитать так, что таки да. И по прочтению некоторых статей "выдающихся" авторов в этой области мне лично не совсем понятно, почему именно эти люди должны давать нам определения. ;)
Обсуждают сегодня