> -----Original Message-----
> From: Kevin.Lewis@stripped [mailto:Kevin.Lewis@stripped]
> Sent: Wednesday, January 21, 2009 5:42 PM
> To: Jim Starkey
> Cc: Christopher Powers; Ann W. Harrison; FalconDev
> Subject: Re: When you have a chance...
>
> > Jim Starkey wrote:
> > Kevin, let's rethink this. In the original design, this wasn't an
> issue
> > because the only transaction that would look at the data was in the
> same
> > thread as the chill, so no race condition could occur. Did I miss
> > something, or did something change that made this assumption
> unwarranted?
>
> Jim,
>
> I think that Table::checkUniqueRecordVersion() and
> Index::duplicateKey()
> called from Index::garbageCollect() have always needed to traverse the
> whole record chain looking at the data buffer if it exists. These
> functions are separate threads than the one doing the chilling.
>
> The former must look to see if there is a duplicate conflict with ANY
> record old, active, or pending.
Interesting, I still do not get it, why we checking for uniqueness during
garbage collection? We have no possibility to report an error to user at
this stage.