Subject Re: [Firebird-Architect] Bulk loader.
Author Jim Starkey
Martijn Tonies wrote:
> Jim,
>
>
>> Falcon handles those with in-memory, per-transaction structures called
>> deferred indexes. Deferred indexes are search as per transaction
>> visibility rules; for duplicate detection, all are searched. At commit
>> time, the transaction's deferred indexes are squirted into the serial
>> log in key order. The gopher thread does the index merge post-commit,
>> after which point the deferred index object can be flushed. Firebird,
>> of course, doesn't have a serial log, but the index merge idea could be
>> adapted for superserver or Vulcan, but not classic.
>>
>
> Out of interest, do these "deferred indexes" also fix the issue that
> Firebird is having with
>
> update mytable set pkcol = pkcol + 1
>
>

Nope. Deferred indexes don't make that better or worse.

One other thing that deferred indexes do handle nicely is reducing the
cost of cleaning up after a failed transaction.