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 an instance of a data object, wherein storing the instance of the data object comprises;
receiving, from an entity other than the distributed storage system, a request to store the instance of the data object in the distributed storage system, wherein the request comprises a user key for the data object and a version identifier for the instance of the data object;
generating keymap information for the instance of the data object that maps the user key to a locator and the locator to the instance of the data object;
caching the keymap information at a keymap coordinator in the distributed storage system;
caching a latest symbolic key entry at the keymap coordinator, wherein the latest symbolic key entry comprises the version identifier for the instance of the data object and indicates that the instance of the data object is the latest version of the data object stored in the distributed storage system;
providing, responsive to a request to retrieve the latest version of the data object, the latest version of the data object, wherein the request does not specify the version of the data object to be obtained, wherein providing the latest version of the data object comprises;
receiving, from an entity other than the distributed storage system, the request to retrieve the latest version of the data object, wherein the request comprises the user key for the data object but does not include a version identifier of the latest version of the data object;
determining the version identifier of the latest version of the data object dependent on the cached latest symbolic key entry; and
returning, based on the determined version identifier, the latest version of the data object having the user key.
1 Assignment
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.
-
Citations
33 Claims
-
1. A method, comprising:
performing, by a computer system that stores a plurality of data objects in a distributed storage system; storing an instance of a data object, wherein storing the instance of the data object comprises; receiving, from an entity other than the distributed storage system, a request to store the instance of the data object in the distributed storage system, wherein the request comprises a user key for the data object and a version identifier for the instance of the data object; generating keymap information for the instance of the data object that maps the user key to a locator and the locator to the instance of the data object; caching the keymap information at a keymap coordinator in the distributed storage system; caching a latest symbolic key entry at the keymap coordinator, wherein the latest symbolic key entry comprises the version identifier for the instance of the data object and indicates that the instance of the data object is the latest version of the data object stored in the distributed storage system; providing, responsive to a request to retrieve the latest version of the data object, the latest version of the data object, wherein the request does not specify the version of the data object to be obtained, wherein providing the latest version of the data object comprises; receiving, from an entity other than the distributed storage system, the request to retrieve the latest version of the data object, wherein the request comprises the user key for the data object but does not include a version identifier of the latest version of the data object; determining the version identifier of the latest version of the data object dependent on the cached latest symbolic key entry; and returning, based on the determined version identifier, the latest version of the data object having the user key. - View Dependent Claims (2, 3, 4, 5)
-
6. A method, comprising:
performing, by a computer system that stores a plurality of data objects in a distributed storage system; caching keymap entries for one or more data object instances stored in the distributed storage system, wherein each keymap entry maps a user key to a locator and the locator to an instance of a data object having the user key, wherein multiple versions of the instance of the data object have the same user key; caching a latest symbolic key entry for at least one of the user keys, wherein each latest symbolic key entry includes a version identifier for the latest version of the data objects stored in the distributed storage system having a particular user key; receiving a request to retrieve the latest version of a data object, wherein the request specifies a user key for the data object but does not include a version identifier of the latest version of the data object; determining the version identifier of the latest version of the data object dependent on whether a latest symbolic key entry for the specified user key is cached in the distributed storage system; and returning keymap information for the latest version of the data object. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
19. 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 perform:
-
caching keymap entries for one or more data object instances stored in a distributed storage system, wherein each keymap entry maps a user key to a locator and the locator to an instance of a data object having the user key, wherein multiple versions of the instance of the data object have the same user key; caching a latest symbolic key entry for at least one of the user keys, wherein each latest symbolic key entry includes a version identifier for the latest version of the data objects stored in the distributed storage system having a particular user key; receiving a request to retrieve the latest version of a data object, wherein the request specifies a user key for the data object but does not include a version identifier of the latest version of the data object; determining the version identifier of the latest version of the data object dependent on whether a latest symbolic key entry for the specified user key is cached in the distributed storage system; and returning keymap information for the latest version of the data object. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A system, comprising:
-
a persistent data store that stores a plurality of data objects, wherein each of the plurality of data objects comprises a user key and a version identifier; 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 perform; receiving a request to store keymap information for an instance of a data object to be stored in the persistent data store, wherein the request comprises a user key for the data object and a version identifier for the instance of the data object, and wherein the keymap information maps the user key to a locator and the locator to the instance of the data object, wherein multiple versions of the instance of the data object have the same user kev; storing the keymap information in an entry in the cache for the instance of the data object; storing a latest symbolic key entry in the cache, wherein the latest symbolic key entry comprises the version identifier for the instance of the data object and indicates that the instance of the data object is the latest version of the data object stored in the distributed storage system; receiving a request to retrieve the latest version of the data object, wherein the request comprises the user key for the data object but does not include a version identifier of the latest version of the data object; determining the version identifier of the latest version of the data object dependent on the cached latest symbolic key entry; and returning keymap information for the latest version of the data object. - View Dependent Claims (30, 31, 32, 33)
-
Specification