Subject Re: [firebird-support] Read Only Transactions
Author Ann W. Harrison
Guido Klapperich wrote:
> ... Bill Todd said: Read only transactions consume less overhead and, in the case
> of read committed read only transactions, do not inhibit garbage
> collection. Not interfering with garbage collection can lead to better
> performance. If you do not need to make changes to the database you
> should always make your transaction read only.
> Ann Harrison said in
> (
> Every transaction participates in garbage collection - every
> transaction, including read-only transactions.
> Which statement is correct?

Both are correct. A read-only, read-committed transaction doesn't
block garbage collection, but it does collect garbage when it finds
it. As it turns out, the first part is a problem because it's
possible for a record to be garbage collected after the RO/RC
transaction read it but before the transaction read the associated
blob. Then you get the "blob not found" error.
> BTW, Bill said: A read only read committed transaction can remain open
> indefinitely without causing the OAT to stick.
> Is this right?

As of right now, yes. The devel list went over the problems of
read committed transactions and back versions and decided not to
fix the peculiar "blob not found" error because ... well it was
hard to do without blocking the progress of the OAT and there were
other issues, and besides, read committed isn't that great and you
should expect odd behavior if you use it.