1. A method comprising: storing a global transaction value, which is to represent a most recent committed transaction, in a first local transaction value associated with a first transaction, in response to starting execution of the first transaction; maintaining a current version value for a data address in a meta-data location associated with the data address, the current version value being based on the global transaction value that is associated with a most recent transaction to update the data address; in response to encountering a current read operation, which is included in the first transaction and references the data address, reading the current version value from the meta-data location associated with the data address, checking if the current version value indicates the data address is unlocked, and validating a plurality of previous read operations from the first transaction responsive to the current version value from the meta-data location associated with the data address being greater than the local transaction value to indicate a more recent transaction than the first transaction has updated the data address; performing the current read operation; after performing the current read operation, loading a subsequent version value from the meta-data location associated with the data address, and aborting the first transaction in response to the subsequent version value from the meta-data location being different from the logged version value; in response to encountering a write operation referencing the data address, acquiring a lock in the meta-data location associated with the data address; and attempting to commit the transaction in response in response to encountering an end of the transaction.