Subject Re: [firebird-support] Re: what is the most fastest isolation level ?
Author Ann Harrison
Dmitry,


> For me no_rec_version itself is the worst case, nearly useless.
> I even wonder why it exist - versioning engine designed not
> to block readers.
>
>
When Borland bought Ashton-Tate which had bought InterBase, they brought in
a new group of engineers who had worked on other products and considered
InterBase's concurrency control to be odd and suspect. Their goal was to
make it work like the systems they knew. Since the other systems didn't
have record versions and couldn't read behind a blocking write, InterBase
had to have that mode too. They tried to add an undo-log to replace MVCC
completely, but failed to complete that change before Borland lost interest
in InterBase.

The question of "wait" is less simple. In concurrency mode, "wait" is a
good thing, although it usually just delays the news that your transaction
isn't going to be able to delete or update the record that made it wait.
If the transaction does not wait, but instead rolls back and retries, it
will fail again (and again and again) until the transaction that made the
conflicting change commits. Waiting quietly is better (at least cheaper)
than retrying over and over.

Good luck,

Ann


[Non-text portions of this message have been removed]