1. A machine readable storage medium containing executable computer program instructions which when executed by a data processing system cause said system to perform a method, comprising: atomically recording a first global transaction identifier to indicate a first consistent point, the first consistent point comprising a plurality of first versions of a plurality of data structures, wherein each of the plurality of first versions is tagged with a different one of a first set of a plurality of transaction identifiers, wherein each of the first set of transaction identifiers indicate that the plurality of first versions are created no later than the first global transaction identifier; creating one or more second versions of a portion of the plurality of data structures without destroying the plurality of first versions of the plurality of data structures, wherein each of the one or more second versions is tagged with a different one of a second set of one or more transaction identifiers, wherein each of the second set of transaction identifiers indicate that the one or more second versions are created no earlier than the first global transaction identifier; and atomically recording a second global transaction identifier to indicate a second consistent point, the second consistent point comprising the one or more second versions of the portion of the plurality of data structures and a portion of the plurality of first versions of the plurality of data structures, wherein each of the second set of one or more transaction identifiers further indicate that the one or more second versions are created no later than the second global transaction identifier; recording information identifying the portion of the plurality of data structures before creating the one or more second versions; and searching the portion of the plurality of data structures according to the information for invalid versions after a crash.