Patent ID: 7693882

Claim:
A method for managing multiple copies of a data item, the method comprising in response to a request to perform an operation that affects the data item, performing the steps of identifying two or more copies of the data item that are to be in a sync set for the operation; as a single atomic operation, causing the operation to be performed on all copies of the data item that are in the sync set, wherein the operation is considered successful as soon as the atomic operation is successfully completed; separate from said single atomic operation on the sync set, causing the operation to be performed asynchronously on an async set for the operation, wherein the async set includes copies of the data item that are not in the sync set; after performance of the single atomic operation, receiving a request to read the data item; in response to the request to read, determining whether a particular copy of the data item was in the sync set of the data item; if the particular copy is in the sync set, then responding to the request based on the particular copy; otherwise, if the particular copy is in the async set of the data item, then: determining whether the data item reflects the most recent changes to the data item; if the particular copy that is in the async set does reflect the most recent changes to the data item, then responding to the request to read based on the particular copy that is in the async set of the data item; and if the particular copy that is in the async set does not yet reflect the most recent changes to the data item, then identifying a copy of the data item that does reflect the most recent changes to the data item, and responding to the request to read based on the copy of the data item that does reflect the most recent changes to the data item; wherein the method is performed by a computer programmed to be a special purpose machine pursuant to instructions from program software.