Patent ID: 8266122

Claim:
A computer system, comprising a plurality of computing nodes; wherein each of the plurality of computing nodes comprises one or more processors and a memory storing program instructions; wherein when executed on the one or more processors of the plurality of computing nodes, the program instructions cause the plurality of computing nodes to implement a distributed data store configured to: store one or more versions of each of a plurality of atomic units of data, wherein each version of each atomic unit of data is associated with a unique version identifier; maintain a linear version history of each of the plurality of atomic units of data; receive a request from an application executing on a client computing node distinct from the plurality of computing nodes to write a modified version of a given one of the plurality of atomic units of data to the distributed data store as a new version in its version history; in response to receiving the request from the application-executing on the client computing node, programmatically determine if the modified version is a direct successor of a latest version of the given atomic unit of data; and in response to the same request and in response to said programmatically determining that the modified version is not a direct successor of the latest version of the given atomic unit of data: initiate creation of a new version of the given atomic unit of data, wherein creating the new version comprises automatically applying a reconciliation policy that has been specified for the application, wherein content of the new version is dependent on the reconciliation policy specified for the application, and wherein the reconciliation policy specified for the application is a reconciliation policy specified for the application from among a plurality of reconciliation policies supported by the distributed data store, wherein each of the plurality of reconciliation policies is applicable to reconcile concurrent data modifications; and store the new version in the distributed data store.