Management of class-associated object mapping information corresponding to a distributed storage system
First Claim
1. A method of managing keymap information associated with an object stored within a storage system, the object represented by a key, the keymap information mapping the key to one or more locations of instances of the object on the storage system, wherein at least a portion of interactions with the keymap information is facilitated by one or more keymap coordinators for coordinating interaction between clients and keymap information source, the method comprising:
- obtaining, at a keymap coordinator, an identifier associated with the keymap coordinator, wherein keymap information including the identifier associated with the keymap coordinator indicates that the keymap coordinator has most recently modified the keymap information;
obtaining a read request at the keymap coordinator for keymap information associated with a first key;
obtaining cached keymap information, at the keymap coordinator, corresponding to the read request, the cached keymap information including two or more generations identifiers associated with the cached keymap information, each of the two or more generations identifiers corresponding to a component that accessed at least one class of keymap information associated with the first key at a time corresponding to creation of the generations identifier, wherein the cached keymap information is associated with a plurality of classes corresponding to a plurality of independently accessible types of keymap information, and wherein each of the plurality of classes is associated with a portion of the cached keymap information;
determining whether the identifier associated with the keymap coordinator matches the most recent generations identifier of the two or more generations identifiers;
if the identifier associated with the keymap coordinator matches the most recent generations identifier of the two or more generations identifiers, processing the obtained cached keymap information responsive to the read request; and
if the identifier associated with the keymap coordinator does not match the most recent identifier of the two or more generations identifiers;
transmitting a request from the keymap coordinator for keymap information corresponding to the at least one class of keymap information;
obtaining responsive keymap information at the keymap coordinator;
updating the cached keymap information with the obtained responsive keymap information; and
processing the updated cached keymap information responsive to the read request.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for managing mapping information for objects maintained in a distributed storage system are provided. The distributed storage system can include a keymap subsystem that manages the mapping information according to object keys. Requests for specific object mapping information are directed to specific keymap coordinators within the keymap subsystem. Each keymap coordinator can maintain a cache for caching mapping information maintained at various information sources. To manage the cache, the keymap system can utilize generation identifiers that identify the component within the distributed storage system that last updated information sources. Additionally, the keymap subsystem can utilize multiple generation identifiers to manage different classes of data. Each keymap coordinator can determine whether cached version of a class of keymap information is valid based on an analysis of generation identifiers.
15 Citations
25 Claims
-
1. A method of managing keymap information associated with an object stored within a storage system, the object represented by a key, the keymap information mapping the key to one or more locations of instances of the object on the storage system, wherein at least a portion of interactions with the keymap information is facilitated by one or more keymap coordinators for coordinating interaction between clients and keymap information source, the method comprising:
-
obtaining, at a keymap coordinator, an identifier associated with the keymap coordinator, wherein keymap information including the identifier associated with the keymap coordinator indicates that the keymap coordinator has most recently modified the keymap information; obtaining a read request at the keymap coordinator for keymap information associated with a first key; obtaining cached keymap information, at the keymap coordinator, corresponding to the read request, the cached keymap information including two or more generations identifiers associated with the cached keymap information, each of the two or more generations identifiers corresponding to a component that accessed at least one class of keymap information associated with the first key at a time corresponding to creation of the generations identifier, wherein the cached keymap information is associated with a plurality of classes corresponding to a plurality of independently accessible types of keymap information, and wherein each of the plurality of classes is associated with a portion of the cached keymap information; determining whether the identifier associated with the keymap coordinator matches the most recent generations identifier of the two or more generations identifiers; if the identifier associated with the keymap coordinator matches the most recent generations identifier of the two or more generations identifiers, processing the obtained cached keymap information responsive to the read request; and if the identifier associated with the keymap coordinator does not match the most recent identifier of the two or more generations identifiers; transmitting a request from the keymap coordinator for keymap information corresponding to the at least one class of keymap information; obtaining responsive keymap information at the keymap coordinator; updating the cached keymap information with the obtained responsive keymap information; and processing the updated cached keymap information responsive to the read request. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of managing keymap information associated with an object stored within a storage system, the object represented by a key, the keymap information mapping the key to one or more locations of instances of the object on the storage system, wherein at least a portion of interactions with the keymap information is facilitated by one or more keymap coordinators, the method comprising:
-
obtaining, at a keymap coordinator, an identifier associated with the keymap coordinator, wherein keymap information including the identifier associated with the keymap coordinator indicates that the keymap coordinator has most recently accessed the keymap information; obtaining a read request at the keymap coordinator for keymap information associated with a first key; obtaining cached keymap information, at the keymap coordinator from an associated cache component corresponding to the read request, the cached keymap information including two or more generations identifiers, the two or more generations identifier identifying at least a component that last accessed the keymap information associated with the first key and associated with a class of cached keymap information, wherein the cached keymap information is associated with a plurality of independently accessible classes of keymap information, and wherein each of the plurality of classes is associated with a portion of the cached keymap information; determining a selected generations identifier from the two or more generations identifiers based on a current class associated with the read request; determining whether the selected generations identifier matches the identifier associated with the keymap coordinator; if the selected generations identifier matches the identifier associated with the keymap coordinator, processing the obtained cached keymap information responsive to the read request; and if the selected generations identifier does not match the identifier associated with the keymap coordinator, updating the cached keymap information and processing the updated cached keymap information responsive to the read request. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A method of managing keymap information associated with an object stored within a storage system, the object represented by a key, the keymap information mapping the key to one or more locations of instances of the object on the storage system, wherein at least a portion of interactions with the keymap information is facilitated by one or more callers, the method comprising:
-
obtaining a caller identifier, wherein keymap information including the caller identifier indicates that a caller associated with the caller identifier has most recently accessed the keymap information; obtaining a modification request for modifying keymap information associated with a first key of a set of keymap information; obtaining a class-based generations identifier associated with the first key and identifying a component that most recently accessed the keymap information associated with the first key of the set of keymap information, wherein the set of keymap information is associated with a plurality of independently accessible classes of keymap information, and wherein each of the plurality of independently accessible classes of keymap information is associated with a portion of the set of keymap information and with one or more class-based generations identifiers; determining whether the class-based generations identifier associated with the first key matches the caller identifier; if the class-based generations identifier matches the caller identifier, processing the modification request; and if the class-based generations identifier does not match the caller identifier, generating a new class-based generations identifier for the keymap information associated with the first key, wherein the new class-based generations identifier is based on a class associated with the keymap information, and wherein the new class-based generations identifier matches the caller identifier. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A system of managing keymap information associated with an object stored within a storage system, the object represented by a key, the keymap information mapping the key to one or more locations of instances of the object on the storage system, wherein at least a portion of interactions with the keymap information is facilitated by one or more keymap coordinators, the system comprising:
-
one or more processors configured to implement; a keymap coordinator associated with a keymap identifier, wherein the keymap coordinator obtains a read request associated with a first key; and a cache component that obtains a read request from the keymap coordinator for cached keymap information associated with the first key, the cached keymap information including two or more class-based generations identifiers associated with the first key, the two or more class-based generations identifiers identifying at least a component that last accessed the keymap information associated with the first key, wherein the cached keymap information is associated with a plurality of independently accessible classes of keymap information, and wherein each of the plurality of independently accessible classes of keymap information is associated with a portion of the cached keymap information; wherein the keymap coordinator is further operable to; obtain the cached keymap information; select a class-based generations identifier from the two or more class-based generations identifiers, wherein the selected class-based generations identifier identifies the component that last accessed the keymap information associated with the first key; and determine whether the selected generations identifier matches the keymap identifier; if the selected generations identifier matches the keymap identifier, process the obtained cached keymap information responsive to the read request; and if the selected generations identifier does not match the keymap identifier, update the cached keymap information and process the updated cached keymap information responsive to the read request. - View Dependent Claims (23, 24, 25)
-
-
22. A system of keymap managing information associated with an object stored within a storage system, the object represented by a key, the keymap information mapping the key to one or more locations of instances of the object on the storage system, wherein at least a portion of interactions with the keymap information is facilitated by one or more callers, the system comprising:
one or more processors configured to implement; a caller associated with a caller identifier, wherein the caller obtains a modification request associated with a first key; and a manager component that; obtains the modification request associated with the first key from the caller, the modification request for modifying keymap information associated with the first key; selects a generations identifier identifying a component that most recently accessed the keymap information associated with the first key, the selected generations identifier corresponding an independent class of keymap information relative to other classes of keymap information maintained at an information source, wherein each of the classes of keymap information is associated with a portion of a cache of keymap information; determines whether the selected generations identifier matches the caller identifier; if the selected generations identifier matches the caller identifier, processes the modification request; and if the selected generations identifier does not match the caller identifier, generates a new generations identifier for the keymap information, the new generations identifier matching the caller identifier.
Specification