> 13.05.2014 14:33, Vlad Khorsun wrote:
>> Your code will leave record with broken backversion pointer in case of
>> failure while garbage_collect is running. To avoid this, we need to zero
>> backpointer before
>> garbage_collect. It also have risk to create orphan backversions but it is
>> not a big problem.
>> Also, it require to fetch page with primary version second time and finally
>> delete that primary
>> version. It could create some performance penalty.
>
> You are tight, but this performance penalty won't be bigger than in
> VIO_backout() case
> with DPM_backout_mark() call.
Probably. What do you want to show here ?
> BTW, isn't call of DPM_backout_mark() there unnecessary in case when there
> is no
> backversions?
I consider it as necessary by the reasons i already wrote at tracker:
a) marking record with current transaction number prevents concurrent backouts
b) marking record with rpb_gc_active flag allow readers to skip this record
version and read
previous one (which will be primary record version after backout completes)
Regards,
Vlad
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel