Subject Re: [IB-Architect] Indexes, Multi-Generations, and Everything
Author Jim Starkey
At 08:41 AM 6/29/00 -0700, Charlie Caro wrote:
>If the engine had to traverse the record back version chain every
>time it modified a record, performance would come to a crawl. The
>index manager only compares the new record against the current record
>version when deciding to add new index entries.

I defer to Charlie. He is, of course, correct. Netfrastructure,
my other project, is multi-generational in memory only, and uses
the mechanism I described. Charlie is absolutely right that the
algorithm described would be miserably expensive in InterBase.
Comparing to only the previous record version is vastly cheaper,
and the case where a record is remodified to the original value
is trivially handled in the index code.

This does bring up a very important issue, memory availability
and usage. I wrote the original engine on a 2MB Apollo DN320
(68010) that was upgraded to a maxed-out 3 MB DN330 (68020). I'm
writing this on a 128 MB Gateway. There are better things to
do with massive memory than just allocating more buffers.
The option of in-memory version chains is available to SuperServer
but not classic. There are undoubtably many, many things that
could be speeded up by using memory creatively.

Jim Starkey