Product Documentation

c-treeACE V10.0 Update Guide

Previous Topic

Next Topic

Preimage Savepoint Performance

Preimage space holds key values, data record images, and a host of additional entries that represent pending updates to transaction-controlled files. Each preimage space entry is linked in chronological order as they are added to preimage space.

Preimage space also uses dynamic hash bins to permit efficient searches for data record images. Entries that map to the same hash bin are linked together. To find a record image, the hash bin links are walked until a match is found. This avoids searching the entire chronological linked list.

When a data record is updated across savepoints each version of the record is linked together. This means that each preimage space entry may be on up to three lists: the chronological list, a hash bin list, and a savepoint versions list. Before this modification, a search for a record updated across savepoints would 1) use the hash list to find the first version of the record, and then 2) walk over the chronological links to find the remaining record versions if any.

We now take advantage of the savepoint version list to find the version of the record that corresponds to the current savepoint. This can substantially reduce the number of entries examined in preimage space.

TOCIndex