Dynamically affinitizing users to a version of a website
First Claim
1. A method, comprising:
- receiving, at a load balancer computing device, electronic resource metadata identifying a plurality of versions of an electronic resource accessible via a network, each version of the electronic resource being stored at one or more servers within the network;
receiving, at the load balancer computing device, user metadata corresponding to at least one user;
receiving, at the load balancer computing device, a request for access to the electronic resource from the at least one user;
determining, using the load balancer computing device, if the request for access to the electronic resource is versioned or unversioned based at least in part on the user metadata;
based at least in part on determining that the request for access to the electronic resource is unversioned;
calculating, using the load balancer computing device, a version affinitization based at least in part on a unique identifier for the at least one user;
calculating, using the load balancer computing device, a cluster of the one or more servers within the network based at least in part on the unique identifier for the at least one user;
mapping, using the load balancer computing device, a combination of the version affinitization and the cluster to a version of the electronic resource, wherein the mapping changes dynamically as each of the one or more servers in the cluster changes versions of the electronic resource;
identifying, using the load balancer computing device, a first server to service the request according to a set of first metrics including versioning rules based at least in part on the version of the electronic resource and load balancing traffic in the network;
transmitting, using the load balancer computing device, the request to the first server to service the request; and
based at least in part on the first server being unable to service the request, redirecting, using the load balancer computing device, the request to a second server according to a set of second metrics.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for providing user'"'"'s access to a particular version of an electronic resource (e.g., a website, web resource or the like) where versions of such electronic resources are stored across a set of servers are disclosed. In one embodiment, user'"'"'s requests may be received—either requesting a particular version or as an unversioned request. A version control module (for example, a load balancer) may receive these requests and assign the user'"'"'s request to a first server according to different metrics, e.g., regarding version control rules and/or effective load balancing considerations. If the initial server assigned is not able to handle the user'"'"'s request, the user'"'"'s request may be proxied to another server, according to different metrics. If there is no server that may handle the user'"'"'s request (after a certain number of proxied requests), the request may be returned to the user as not handled.
21 Citations
20 Claims
-
1. A method, comprising:
-
receiving, at a load balancer computing device, electronic resource metadata identifying a plurality of versions of an electronic resource accessible via a network, each version of the electronic resource being stored at one or more servers within the network; receiving, at the load balancer computing device, user metadata corresponding to at least one user; receiving, at the load balancer computing device, a request for access to the electronic resource from the at least one user; determining, using the load balancer computing device, if the request for access to the electronic resource is versioned or unversioned based at least in part on the user metadata; based at least in part on determining that the request for access to the electronic resource is unversioned; calculating, using the load balancer computing device, a version affinitization based at least in part on a unique identifier for the at least one user; calculating, using the load balancer computing device, a cluster of the one or more servers within the network based at least in part on the unique identifier for the at least one user; mapping, using the load balancer computing device, a combination of the version affinitization and the cluster to a version of the electronic resource, wherein the mapping changes dynamically as each of the one or more servers in the cluster changes versions of the electronic resource; identifying, using the load balancer computing device, a first server to service the request according to a set of first metrics including versioning rules based at least in part on the version of the electronic resource and load balancing traffic in the network; transmitting, using the load balancer computing device, the request to the first server to service the request; and based at least in part on the first server being unable to service the request, redirecting, using the load balancer computing device, the request to a second server according to a set of second metrics. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system, comprising:
-
a memory device to store instructions; and a processing device to execute the instructions stored in the memory device to generate a load balancer in communication with a set of servers, each of the set of servers comprising versions of an electronic resource, the load balancer being partitioned into a plurality of versioned Virtual IPs (VIPs) and unversioned VIPs, the versioned VIPs associated with a version of the electronic resource, wherein the load balancer; receives a request for access to the electronic resource from at least one user; receives user metadata corresponding to at least one user; determines whether the request for access to the electronic resource is versioned or unversioned based at least in part on the user metadata; based at least in part on the request for access to the electronic resource being unversioned; calculates a version affinitization based at least in part on a unique identifier for the at least one user; calculates a cluster based at least in part the unique identifier for the at least one user; maps a combination of the version affinitization and the cluster to a particular version of the electronic resource based at least in part on, wherein the mapping changes dynamically as each of the set of servers in the cluster changes versions of the electronic resource; assigns the request to a first server hosting the particular version of the electronic resource according to a set of first metrics including versioning rules; and if the first server determines that it may not be able to handle the request, redirects the request to a second server according to a second set of metrics. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A non-transitory computer-readable physical storage media storing instructions that, when executed by a computing device, cause the computing device to perform operations comprising:
-
receiving electronic resource metadata identifying a plurality of versions of an electronic resource accessible via a network, each version of the electronic version being stored at one or more servers within the network; receiving user metadata corresponding to at least one user to identify at least one of the plurality of versions of the electronic resource accessible to the at least one user; receiving a request for access to the electronic resource; determining if the request for access to the electronic resource is versioned or unversioned; based at least in part on determining that the request for access to the electronic resource is unversioned; calculating a version affinitization based at least in part on a unique identifier for the at least one user; calculating a cluster of the one or more servers within the network based at least in part on the unique identifier for the at least one user; mapping a combination of the version affinitization and the cluster to a version of the electronic resource, wherein the mapping changes dynamically as each of the one or more servers in the cluster changes versions of the electronic resource; determining a first server to service the request based at least in part on a set of first metrics comprising version control rules; transmitting, using the load balancer computing device, the request to the first server to service the request; and if said first server determines that it may not be able to handle the user'"'"'s request, redirecting the user'"'"'s request to a second server based at least in part on a set of second metrics. - View Dependent Claims (20)
-
Specification