Resource affinity in a dynamic resource pool
First Claim
Patent Images
1. A method of facilitating resource affinity in a dynamic resource pool, the method comprising:
- receiving a request for access to content, the content being stored in a distributed or cloud computing environment on an associated server resource of a changing group of server resources, the changing of the changing group of server resources occurring through adding or removing one or more server resources to or from the changing group;
mapping the request to the associated server resource, wherein the mapping comprises;
calculating a modulus on a request identifier with at least a first number in a predefined list of numbers to generate a resource identifier identifying the associated server resource, wherein each modulus result is a resource identifier that identifies possible server resources in the changing group, wherein at least one of the possible server resources is possible to be the associated server resource; and
communicating with the associated server resource corresponding to the resource identifier.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques disclosed herein describe methods for achieving resource affinity and scalability in dynamic environments by calculating the modulus of a numeric request identifier against a fixed selection of numbers. Using the proposed techniques yields a numeric request identifier and resource identifier combination that ensures a given resource possesses the unique state applicable to that user'"'"'s request. Using a fixed selection of numbers thus maintains resource affinity while achieving scalability as resources are added to or subtracted from a pool of resources.
-
Citations
20 Claims
-
1. A method of facilitating resource affinity in a dynamic resource pool, the method comprising:
-
receiving a request for access to content, the content being stored in a distributed or cloud computing environment on an associated server resource of a changing group of server resources, the changing of the changing group of server resources occurring through adding or removing one or more server resources to or from the changing group; mapping the request to the associated server resource, wherein the mapping comprises; calculating a modulus on a request identifier with at least a first number in a predefined list of numbers to generate a resource identifier identifying the associated server resource, wherein each modulus result is a resource identifier that identifies possible server resources in the changing group, wherein at least one of the possible server resources is possible to be the associated server resource; and communicating with the associated server resource corresponding to the resource identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus comprising:
-
one or more computer readable storage media; a predefined list of numbers stored on at least one of the one or more computer readable storage media; and program instructions stored on at least one of the one or more computer readable media that, when executed by a processing system, direct the processing system to; receive a request for access to content, the content being stored in a distributed or cloud computing environment on an associated server resource of a changing group of server resources, the changing of the changing group of server resources occurring through adding or removing one or more server resources to or from the changing group; map the request to the associated server resource, the map comprising; calculating a modulus on a request identifier with at least a first number in the predefined list of numbers to generate a resource identifier identifying the associated server resource, wherein each modulus result is a resource identifier that identifies possible server resources in the changing group, wherein at least one of the possible server resources is possible to be the associated server resource; and communicating with the associated server resource corresponding to the resource identifier. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A resource locator comprising:
-
one or more computer readable storage media; a predefined list of numbers stored on at least one of the one or more computer readable storage media, the predefined list of numbers comprising a plurality of prime numbers; and program instructions stored on at least one of the one or more computer readable storage media that, when executed by a processing system, direct the processing system to; receive requests for access to content, the content being stored in a distributed or cloud computing environment on associated server resources of a changing group of server resources, the changing of the changing group of server resources occurring through adding or removing one or more server resources to or from the changing group; map the requests to the associated server resources, wherein for each request, the program instructions direct the processing system to; obtain a numeric identifier (x) from the request; retrieve at least a first number (n) in the predefined list of numbers; calculate x mod n to generate a resource identifier, the resource identifier being the modulus result of x mod n; determine whether the resource identifier identifies an available associated server resource or an unavailable associated server resource; and in response to a determination that the resource identifier identifies the available associated server resource, communicate the request to the available associated server resource; in response to a determination that the resource identifier identifies the unavailable associated server resource, traverse the predefined list of numbers to retrieve a next number (m), calculate x mod m, and determine whether a resulting resource identifier identifies the available server associated resource or the unavailable associated server resource until the resource identifier identifies the available associated server resource. - View Dependent Claims (17, 18, 19, 20)
-
Specification