Patent ID: 8521776

Claim:
A method for accessing data, the method comprising: receiving a request to access first data in a database having one or more pages, each page having one or more tracks, wherein the first data is located on a first page of the database, and wherein the first page comprises multiple versions of the first data respectively stored at multiple tracks on the first page, wherein the newest version of the first data stored in a first track on the first page is identifiable based on a value stored in a first entry in a data structure having one or more entries, said one or more entries being respectively associated with said one or more pages in the database; wherein said first entry in the data structure is associated with the first page in the database and the value of said first entry identifies the location of the first track on the first page in the database, where the newest version of the first data on the first page is located, wherein the value of the first entry is not associated with a time when the newest version of the first data was stored in the first track; reading from the data structure the value stored in the first entry to locate a track on the first page on which the newest version of the data is stored; acquiring a first lock on the first track identified based on the value read from the first entry as containing the first data, in order to synchronize access to the first data; verifying that the first track stores the newest version of the first data, since the value stored in the first entry was read, by reading the value stored in the first entry once more, prior to reading or updating the first data stored in the first track, advancing the first page to the current generation; writing to a second track on the first page to update the newest version of the data; releasing a second lock synchronizing accesses to the second track; and creating a copy of the newest version of the data on the second track.