Sticky routing
First Claim
1. A method of sticky routing of user connections to a distributed service comprising multiple data centers, the method comprising:
- receiving a first service request from a first device operated by a first user to initiate a first session with the distributed service;
assigning the first user to a first user bucket that is online, wherein the first user bucket;
is associated with a first data center;
persists across multiple sessions of the first user with the distributed service;
can have one of the following states;
online, wherein an online bucket is available to receive new users;
offline, wherein users assigned to an offline bucket are expelled from the bucket; and
closed, wherein a closed bucket is not available to receive new users; and
includes multiple users other than the first user;
storing first sticky routing data for the first user, wherein the first sticky routing data comprises;
a member ID;
an identifier of the first user bucket; and
a generation of the first user bucket; and
routing the first service request to the first data center.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method are provided for sticky routing of a user'"'"'s service requests and connections to a distributed service hosted by multiple data centers. Sticky routing data are generated when a user first connects, to include member ID, preferred data center, a user bucket associated with one data center, a generation of the bucket, a generation of the user'"'"'s sticky routing data, and timing information identifying a time of issue and/or a time of expiration of the routing data. A user bucket is either online (accepts new users; their requests are routed to the associated data center), offline (not accepting new users; existing users are expelled and must join a different bucket), or closed (not accepting new users; existing users'"'"' requests continue to be routed to the associated data center). All of a user'"'"'s requests, from all devices, are thus routed to one data center, based on member ID.
-
Citations
18 Claims
-
1. A method of sticky routing of user connections to a distributed service comprising multiple data centers, the method comprising:
-
receiving a first service request from a first device operated by a first user to initiate a first session with the distributed service; assigning the first user to a first user bucket that is online, wherein the first user bucket; is associated with a first data center; persists across multiple sessions of the first user with the distributed service; can have one of the following states; online, wherein an online bucket is available to receive new users; offline, wherein users assigned to an offline bucket are expelled from the bucket; and closed, wherein a closed bucket is not available to receive new users; and includes multiple users other than the first user; storing first sticky routing data for the first user, wherein the first sticky routing data comprises; a member ID; an identifier of the first user bucket; and a generation of the first user bucket; and routing the first service request to the first data center. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform a method of method of sticky routing of user connections to a distributed service comprising multiple data centers, the method comprising:
-
receiving a first service request from a first device operated by a first user to initiate a first session with the distributed service; assigning the first user to a first user bucket that is online, wherein the first user bucket; is associated with a first data center; persists across multiple sessions of the first user with the distributed service; can have one of the following states; online, wherein an online bucket is available to receive new users; offline, wherein users assigned to an offline bucket are expelled from the bucket; and closed, wherein a closed bucket is not available to receive new users; and includes multiple users other than the first user; storing first sticky routing data for the first user, wherein the first sticky routing data comprises; a member ID; an identifier of the first user bucket; and a generation of the first user bucket; and routing the first service request to the first data center.
-
-
9. An apparatus for sticky routing of requests to a distributed service comprising multiple data centers, the apparatus comprising:
-
one or more processors; sticky routing data for each of multiple users of the distributed service, wherein first sticky routing data of a first user comprises; a member ID of the first user; an identifier of a bucket the first user is assigned to, wherein the bucket; is one of a plurality of buckets associated with a first data center; persists across multiple sessions of the first user with the distributed service; can have one of the following states; online, wherein an online bucket is available to receive new users; offline, wherein users assigned to an offline bucket are expelled from the bucket; and closed, wherein a closed bucket is not available to receive new users; and includes multiple users other than the first user; a generation of the bucket; and a generation of the first sticky routing data; and memory storing instructions that, when executed by the one or more processors, cause the apparatus to; in response to a first service request from a first device of the first user, generate the first sticky routing data for the first user; store the first sticky routing data; and cause service requests from a plurality of devices operated by the first user to be routed to the first data center and not any other data center of the multiple data centers. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A system, comprising:
-
multiple data centers, each data center including multiple computers, each computer comprising a processor and memory and hosting a common application; multiple points of presence operated to route application requests to the multiple data centers; and at each data center, at least one sticky routing server operated to; generate sticky routing data for users of the application; and maintain one or more logical buckets associated with the data center; wherein each logical bucket comprises multiple users of the application and each user of the application is assigned to one logical bucket at one of the multiple data centers, and wherein each logical bucket has one of the following states; online, wherein an online bucket is available to receive new users; offline, wherein users assigned to an offline bucket are expelled from the bucket; and closed, wherein a closed bucket is not available to receive new users; and wherein all application requests received from devices operated by one user, across multiple application sessions, are routed to the one data center associated with the one user'"'"'s assigned logical bucket. - View Dependent Claims (15, 16, 17, 18)
-
Specification