Patent ID: 6952741

Claim:
A method comprising: reading a first copy of a primary data set in a primary memory location; storing the first copy in a first memory location; setting a first validity flag to indicate that the first copy is valid; reading a second copy of the primary data set in the primary memory location; storing the second copy in a second memory location; setting a second validity flag to indicate that the second copy is valid; modifying the first copy; setting the second validity flag to indicate that the second copy is invalid after modifying the first copy; replacing the primary data set with the modified first copy after the modifying of the first copy and before the setting of the second validity flag to indicate that the second copy is invalid; replacing the second copy with the primary data set after the setting of the second validity flag to indicate that the second copy is invalid; setting the second validity flag to indicate that the second copy is valid after replacing the second copy with the primary data set; creating a first index corresponding to the first copy, wherein the first index is stored in a fourth memory location, wherein the first index is created after reading the first copy from the primary data set; and creating a second index corresponding to the second copy, wherein the second index is stored in the fourth memory location, wherein the second index is created after reading the second copy from the primary data set; locating the second validity flag by using the second index before setting the second validity flag to indicate that the second copy is invalid; wherein an index comprises: a first field comprising a description of a copy of the data for which the index was created; and a second field comprising a memory location for a validity flag for the copy of the data set for which the index was created; matching the first index and the second index by comparing the first field of the first index and the first field of the second index; wherein locating the second validity flag further comprises locating the second validity flag by referencing contents of the second field of the second index; wherein a first program is associated with the first copy and a second program is associated with the second copy; the first program requesting that a third program synchronize the first copy with other copies of the primary data set; the third program creating the first index corresponding to the first copy in the fourth memory location in response to the first program requesting that the third program synchronize the first copy with other copies of the primary data set; the second program requesting that the third program synchronize the second copy with other copies of the primary data set; and the third program creating the second index corresponding to the second copy in the fourth memory location in response to the second program requesting that the third program synchronize the second copy with other copies of the primary data set.