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 retrieve a latest version of a data object, wherein the request comprises a user key for the data object but does not include a version identifier of the latest version of the data object;
determining if a latest symbolic key entry is stored in a cache of a keymap coordinator of the computer system for the user key;
in response to determining a latest symbolic key entry is not stored in the cache for the user key, sending a request specifying the user key to one or more storage nodes associated with the keymap coordinator;
determining, by the one or more storage nodes, the version identifier of the latest version of the data object for the user key;
returning, by the one or more storage nodes to the keymap coordinator, the version identifier of the latest version of the data object for the user key and an indication that the returned version identifier is the latest version of the data object for the user key; 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.
46 Citations
20 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 retrieve a latest version of a data object, wherein the request comprises a user key for the data object but does not include a version identifier of the latest version of the data object; determining if a latest symbolic key entry is stored in a cache of a keymap coordinator of the computer system for the user key; in response to determining a latest symbolic key entry is not stored in the cache for the user key, sending a request specifying the user key to one or more storage nodes associated with the keymap coordinator; determining, by the one or more storage nodes, the version identifier of the latest version of the data object for the user key; returning, by the one or more storage nodes to the keymap coordinator, the version identifier of the latest version of the data object for the user key and an indication that the returned version identifier is the latest version of the data object for the user key; and returning keymap information for 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:
-
determine, in response to receiving a request to retrieve a latest version of a data object stored in a distributed storage system, wherein the request comprises a user key for the data object but does not include a version identifier of a latest version of the data object, if a latest symbolic key entry for the user key is stored in a cache of the distributed storage system; in response to determining a latest symbolic key entry is not stored in the cache for the user key, send a request specifying the user key to one or more storage nodes of a persistent storage of the distributed storage system; receive, from the one or more storage nodes, the version identifier of the latest version of the data object for the user key and an indication that the returned version identifier is the latest version of the data object for the user key; and return keymap information for the latest version of the data object. - View Dependent Claims (12, 13, 14)
-
-
15. A system comprising:
-
a persistent data store that stores a plurality of data object, 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; receive a request to retrieve a latest version of a data object, wherein the request comprises a user key for the data object but does not include a version identifier of the latest version of the data object; determine if a latest symbolic key entry for the user key is stored in the cache; in response to determining a latest symbolic key entry for the user key is not stored in the cache, determine, by examining keymap information stored in the persistent data store, the version identifier of the latest version of the data object for the user key; and return keymap information for the latest version of the data object. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification