System and method for avoiding object identifier collisions in a peered cluster environment
AssigneeNetApp, Inc.
InventorsYong Eun Cho, Anuja Jaiswal, Vani Vully, Andrew Dunn, Chaitanya Patel, Susan M. Coatney
Life of this patent
Estimating the term…
Abstract
A system and method for avoiding object identifier collisions in a cluster environment is provided. Upon creation of the cluster, volume location databases negotiate ranges for data set identifiers (DSIDs) between a first site and a second site of the cluster. Any pre-existing objects are remapped into an object identifier range associated with the particular site hosting the object.
Claims20
A method, comprising:
- selecting a first range of object identifiers to use by a first storage cluster for identifying volumes hosted by the first storage cluster;
- storing the first range of object identifiers within a first volume location database;
- evaluating object identifiers, currently assigned by the first storage cluster to volumes hosted by the first storage cluster, with the first range of object identifiers;
- generating a new object identifier for a current volume hosted by the first storage cluster based upon a current object identifier of the current volume being outside the first range of object identifiers;
- creating a mapping data structure to map the current object identifier to the new object identifier;
- storing the mapping data structure within the first volume location database for referencing the current volume using the new object identifier;
- sending a message to a second storage cluster of the first range of object identifiers;
- and
- instructing the second storage cluster to select a second range of object identifiers that does not overlap the first range of object identifiers.
A non-transitory computer-readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to:
- store a first range of object identifiers within a first volume location database;
- evaluate object identifiers, currently assigned by a first storage cluster to volumes hosted by the first storage cluster, with the first range of object identifiers;
- generate a new object identifier for a current volume hosted by the first storage cluster based upon a current object identifier of the current volume being outside the first range of object identifiers;
- create a mapping data structure to map the current object identifier to the new object identifier;
- store the mapping data structure within the first volume location database for referencing the current volume using the new object identifier;
- send a message to a second storage cluster of the first range of object identifiers;
- and
- instruct the second storage cluster to select a second range of object identifiers that does not overlap the first range of object identifiers.
A computing device comprising:
- a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method;
- and
- a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:
- select a first range of object identifiers to use by a first storage cluster for identifying volumes hosted by the first storage cluster;
- store the first range of object identifiers within a first volume location database;
- evaluate object identifiers currently assigned by the first storage cluster to volumes currently hosted by the first storage cluster;
- generate a new object identifier for a current volume hosted by the first storage cluster based upon a current object identifier of the current volume being outside the first range of object identifiers;
- create a mapping data structure to map the current object identifier to the new object identifier;
- store the mapping data structure within the first volume location database for referencing the current volume using the new object identifier;
- send a message to a second storage cluster of the first range of object identifiers;
- and
- instruct the second storage cluster to select a second range of object identifiers that does not overlap the first range of object identifiers.
Dependencies are inferred from the claim text.