metaclass (metaclass) wrote,
metaclass
metaclass

И все таки, про транзакции, Postgresql vs Firebird

http://www.postgresql.org/docs/9.1/static/transaction-iso.html
http://www.ibase.ru/devinfo/ibtrans.htm

Repeatable Read в Postgresql и Snapshot в Firebird почти эквивалентны. За одним исключением: в Postgresql Repeatable Read может вызывать ошибки конфликта транзакций, на что я вчера и наткнулся:
"Applications using this level must be prepared to retry transactions due to serialization failures."
В Firebird такого не наблюдается.

Далее, уровни изоляции, которые выставляют ADO.NET драйвера для дотнетовских констант - тоже отличаются.
У Firebird .NET провайдера IsolationLevel.RepeatableRead и IsolationLevel.Snapshot ссылаются на константу Concurrency (т.е. REPEATABLE READ), а IsolationLevel.Serializable ссылается на Consistency, т.е. SERIALIZABLE.

У NPGSQL провайдера IsolationLevel.RepeatableRead ссылается на REPEATABLE READ, а IsolationLevel.Snapshot и IsolationLevel.Serializable ссылается на SERIALIZABLE.

Такое ощущение, что это осталось с времен до 9.1 версии, где Serializable от Repeatable Read не отличался, судя по документации.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 6 comments