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;
receiving a request to store an instance of a 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;
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.
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.
14 Citations
21 Claims
-
1. A method, comprising:
performing, by a computer system that stores a plurality of data objects in a distributed storage system; receiving a request to store an instance of a 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; 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 (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; 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; 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-33. -33. (canceled)
Specification