Techniques are provided for providing a data item to a transaction in
a multi-versioning system in which the data item may exist on multiple versions
of a data block, and were versioning is performed at the granularity of the data
block. According to one aspect of the invention, the technique involves locating,
within volatile memory, a first version of a data block that includes a first version
of the data item. It is then determined whether the first version of the data item
is useable by the transaction without respect to whether the first version of the
data block is generally useable by the transaction. If the first version of the
data item is usable by the transaction, then the data item is established as a
candidate that can be provided to the transaction. Thus, the data item within a
block may be considered a candidate to be provided to a transaction even when the
version of the data block on which the data item resides would otherwise disqualify
the data block from being seen by that transaction. If the first version of the
data item is not usable by the transaction, then a version of the data item that
is usable by the transaction is obtained from a second version of the data block
that is different from the first version.