Subject | Re[2]: [Firebird-Java] Re: Problem with SELECT Statement |
---|---|
Author | Nickolay Samofatov |
Post date | 2003-09-19T15:13:56Z |
Hello, Helen,
counter) only slightly complicates TIP analysis before next sweep, not
affecting record versions GC. Only OAT counter or oldest snapshot
counter may affect record versions GC.
I reviewed commit-retaining algorithm right now and I do not see a
reason why should it affect GC in any way.
Commit retaining is basically a normal commit except that new
transaction is started right after COMMIT_RETAINING and committed
subtransaction number is placed into a special bitmap for newly
started transaction. This bitmap is used in VIO_chase_record_version
to determine if record should be visible or not.
BTW, if there is interest i can write and post test application
demonstrating above statements.
feature. As of current, I do not see any inconsistencies neither in
this feature design nor in its implementation.
Nickolay Samofatov
>>GC should never be inhibiteded in READ COMMITTED case. Only TIPAnd what ? Marking transaction as "interesting" (thus stalling OIT
>>cleanup may need to be inhibited, but I doubt it for retaining
>>transactions as they are marked as committed AFAIR. I may perform a
>>closer look on this code if you want.
>>
>>If what I wrote is wrong
> It's wrong and it's not a bug. CommitRetaining retains the cursors from
> the preceding transaction open and makes the transaction 'interesting"
> until a hard commit occurs.
counter) only slightly complicates TIP analysis before next sweep, not
affecting record versions GC. Only OAT counter or oldest snapshot
counter may affect record versions GC.
I reviewed commit-retaining algorithm right now and I do not see a
reason why should it affect GC in any way.
Commit retaining is basically a normal commit except that new
transaction is started right after COMMIT_RETAINING and committed
subtransaction number is placed into a special bitmap for newly
started transaction. This bitmap is used in VIO_chase_record_version
to determine if record should be visible or not.
BTW, if there is interest i can write and post test application
demonstrating above statements.
> You could get a gazillion "test cases". CommitRetaining is *designed* toIt looks like you neither looked at the code nor tried to use this
> work this way. It was put there by Borl to make client/server datasets
> behave like Paradox tables. It's a total crock with MVA. It's astonishing
> that JDBC should consider it a good enough thing to include as a spec.
feature. As of current, I do not see any inconsistencies neither in
this feature design nor in its implementation.
> Helen--
Nickolay Samofatov