System and method for fetching the latest versions of stored data objects
First Claim
1. A method, comprising:
- performing, by a computer system that stores a plurality of data objects in a distributed storage system;
storing keymap entries for a plurality of data object versions stored in the distributed storage system, wherein keymap entries map a user key for a respective data object to a locator and the locator to a particular version of the data object;
wherein when a new version of a respective data object is created, associating the new version with a version identifier indicating an ordering of the new version with other versions of the respective data object;
wherein the keymap entries for versions of a data object are ordered according to respective version identifiers;
receiving a request to retrieve a latest version of a data object, wherein the request specifies a user key for the requested data object but does not include a version identifier of the latest version of the requested data object;
in response to receiving the request;
locating the latest version of the requested data object based on the ordering of keymap entries associated with versions of the requested data object; and
returning, in response to the request, the latest version of the data object.
0 Assignments
0 Petitions
Accused Products
Abstract
A distributed storage system may store data object instances in persistent storage and may cache keymap information for those data object instances. The system may cache a latest symbolic key entry for some user keys of the data object instances. When a request is made for the latest version of stored data object instances having a specified user key, the latest version may be determined dependent on whether a latest symbolic key entry exists for the specified user key, and keymap information for the latest version may be returned. When storing keymap information, a flag may be set to indicate that a corresponding latest symbolic key entry should be updated. The system may delete a latest symbolic key entry for a particular user key from the cache in response to determining that no other requests involving the keymap information for data object instances having the particular user key are pending.
37 Citations
20 Claims
-
1. A method, comprising:
performing, by a computer system that stores a plurality of data objects in a distributed storage system; storing keymap entries for a plurality of data object versions stored in the distributed storage system, wherein keymap entries map a user key for a respective data object to a locator and the locator to a particular version of the data object; wherein when a new version of a respective data object is created, associating the new version with a version identifier indicating an ordering of the new version with other versions of the respective data object; wherein the keymap entries for versions of a data object are ordered according to respective version identifiers; receiving a request to retrieve a latest version of a data object, wherein the request specifies a user key for the requested data object but does not include a version identifier of the latest version of the requested data object; in response to receiving the request; locating the latest version of the requested data object based on the ordering of keymap entries associated with versions of the requested data object; and returning, in response to the request, the latest version of the data object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
11. A non-transitory, computer-readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to implement:
-
storing keymap entries for a plurality of data object versions stored in the distributed storage system, wherein keymap entries map a user key for a respective data object to a locator and the locator to a particular version of the data object; wherein when a new version of a respective data object is created, associating the new version with a version identifier indicating an ordering of the new version with other versions of the respective data object; wherein the keymap entries for versions of a data object are ordered according to respective version identifiers; receiving a request to retrieve a latest version of a data object, wherein the request specifies a user key for the requested data object but does not include a version identifier of the latest version of the requested data object; in response to receiving the request; locating the latest version of the requested data object based on the ordering of keymap entries associated with versions of the requested data object; returning, in response to the request, the latest version of the data object. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A system, comprising:
-
a distributed data store that stores a plurality of data objects; a cache; one or more processors; and a memory coupled to the one or more processors and storing program instructions that when executed by the one or more processors cause the one or more processors to; store keymap entries for a plurality of data object versions stored in the distributed storage system, wherein keymap entries map a user key for a respective data object to a locator and the locator to a particular version of the data object; wherein when a new version of a respective data object is created, associating the new version with a version identifier indicating an ordering of the new version with other versions of the respective data object; wherein the keymap entries for versions of a data object are ordered according to respective version identifiers; receive a request to retrieve a latest version of a data object, wherein the request specifies a user key for the requested data object but does not include a version identifier of the latest version of the requested data object; in response to receiving the request; locate the latest version of the requested data object based on the ordering of keymap entries associated with versions of the requested data object; and return, in response to the request, the latest version of the data object. - View Dependent Claims (17, 18, 19, 20)
-
Specification