Patent ID: 8615485

Claim:
A computer-implemented method for managing multiple generations of an object within a distributed storage system, wherein the distributed storage system includes a plurality of storage sub-systems having one or more processors and memory storing one or more programs for execution by the one or more processors to perform the method, comprising: receiving metadata and content of a first generation of an object from a first client connected to the distributed storage system, wherein the first generation is identified by an object ID and a first generation ID; storing the first generation's metadata and content within a first storage sub-system of the distributed storage system; receiving metadata and content of a second generation of the object from a second client connected to the distributed storage system, wherein the second generation is identified by the object ID and a second generation ID; storing the second generation's metadata and content within a second storage sub-system of the distributed storage system; and independently replicating the first generation's metadata and content from the first storage sub-system to the second storage sub-system and replicating the second generation's metadata and content from the second storage sub-system to the first storage sub-system such that both the first and second storage sub-systems include a replica of the object's first and second generations, wherein each generation ID includes a first component that corresponds to a respective object generation's creation time and a second component that corresponds to a tie-breaker that defines an order among multiple generations of the same object and wherein the second generation's content is dynamically replicated from the second storage sub-system to the first storage sub-system in response to a first client request.