1. A method performed by a software transactional memory (STM) system in a computer system, the method comprising: executing a first transaction with a first thread, the first thread having a first affinity to a first one of a plurality of global version counters; storing a first copy of the first one of the plurality of global version counters as a first read version prior to performing a first set of read accesses with the first transaction; and validating the first set of read accesses with the first read version.