IP Library Granted Patent US 9,344,569
Granted Patent B2
US 9,344,569 · App. 13/844,159 · Granted May 17, 2016

System and method for addition and removal of servers in server cluster

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,344,569
App. No.
13/844,159
Granted
May 17, 2016
Kind
B2
Abstract

A method of adding a server to, or removing a server from, a cluster of servers, and of transferring state information. A new server being added sends a message to all existing servers indicating that it is being added, the new server sends a request for state information, the existing servers in the cluster transfer state information to the new server, and the new server sends a commit message to finalize its addition. Acknowledge messages are exchanged during the process. An existing server being removed sends, to the remaining servers, an initiate message, a transfer of state information, and a commit message to finalize the removal, with acknowledge messages exchanged during the process.

Claims (53)

1. A method for adding a first server to a group of existing second servers associated with a contact center, the method comprising:

sending by the first server not already belonging to the group of existing second servers, a request for initiating addition of the first server to the group of existing second servers;

sending, by each of the plurality of existing second servers, in response to the request, state information for a resource mapped to the existing second server, the state information being transmitted to the first server without sending the state information to one of the existing second servers; and

sending, by the first server, a commit message to each of the existing servers, in response to receiving the state information from each of the plurality of existing second servers; and

changing the mapping of one of the resources from one of the existing second servers to the first server in response to the commit message.

2. The method of claim 1 , comprising:

sending, by the first server, to each of the plurality of existing second servers, an initiate message;

sending, by each of the plurality of existing second servers, to the first server, an initiation acknowledge message; and

sending, by the first server, to each of the plurality of existing second servers, a state transfer request.

3. The method of claim 1 , comprising:

notifying a configuration server, responsible for maintaining a list of servers, of the addition of the first server;

updating, by the configuration server, the list of servers; and

notifying, by the configuration server, a set of subscribers of the update to the list of servers.

4. The method of claim 1 further comprising:

receiving a request associated with a resource mapped to the first server from the existing second servers;

identifying the first server as responsible for the resource; and

routing the request to the first server in response to the identifying.

5. The method of claim 4 , wherein the resource is a directory number (DN).

6. The method of claim 4 , wherein the identifying of the first server as responsible for the resource comprises:

providing, to a function, a resource identifier (ID) identifying the resource; and

receiving as an output from the function a module identifier (ID) for the first server.

7. The method of claim 6 , wherein the function is a hash function.

8. The method of claim 7 , wherein the hash function is a consistent hash function.

9. The method of claim 8 , wherein the hash function comprises:

a first basic hash function configured to map resource identifiers into a range; and

a second basic hash function configured to map module identifiers into the range.

10. The method of claim 9 , wherein the second basic hash function is further configured to map a replica of each module identifier into the range.

11. The method of claim 7 , wherein the hash function is configured to map resource identifiers corresponding to resources in a geographic region into module identifiers corresponding to servers executing on computing devices in the geographic region.

12. The method of claim 1 further comprising:

sending by the first server a request for initiating removal of the first server from the group of servers;

sending, by the first server, state information for a second resource mapped to the first server, the state information for the second resource being transmitted by the first server without state information being transmitted by one of the other second servers; and

sending, by the first server, a second commit message to each of the other second servers; and

changing the mapping of the second resource from the first server to one of the other second servers in response to the second commit message.

13. The method of claim 12 , comprising:

sending, by each of the plurality of other second servers, to the first server, an initiation acknowledge message.

14. The method of claim 12 , comprising:

notifying a configuration server, responsible for maintaining a list of servers, of the removal of the first server;

updating, by the configuration server, the list of servers; and

notifying, by the configuration server, a set of subscribers of the update to the list of servers.

15. The method of claim 12 , further comprising:

receiving a request associated with the second resource mapped to a remaining server of the plurality of other second servers from the first server;

identifying the remaining server as responsible for the second resource; and

routing the request to the remaining server in response to the identifying.

16. The method of claim 15 , wherein the identifying of the remaining server as responsible for the second resource comprises:

providing, to a function, a resource identifier (ID) identifying the second resource; and

receiving as an output from the function a module identifier (ID) for the remaining server.

17. The method of claim 16 , wherein the function is a hash function.

18. The method of claim 17 , wherein the hash function is a consistent hash function.

19. The method of claim 18 , wherein the hash function comprises:

a first basic hash function configured to map resource identifiers into a range; and

a second basic hash function configured to map module identifiers into the range.

20. The method of claim 19 , wherein the second basic hash function is further configured to map a replica of each module identifier into the range.

21. The method of claim 17 , wherein the hash function is configured to map resource identifiers corresponding to resources in a geographic region into module identifiers corresponding to servers executing on computing devices in the geographic region.

Assignments (6)
NOTICE OF SUCCESSION OF SECURITY INTERESTS AT REEL/FRAME 040815/0001 Recorded Feb 3, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR AGENT
Reel/Frame 070498/0001 →
CHANGE OF NAME Recorded Jun 7, 2024
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
To: GENESYS CLOUD SERVICES, INC.
Reel/Frame 067651/0894 →
SECURITY AGREEMENT Recorded Dec 5, 2016
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC., AS GRANTOR; ECHOPASS CORPORATION; INTERACTIVE INTELLIGENCE GROUP, INC.; BAY BRIDGE DECISION TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040815/0001 →
PATENT RELEASE (REEL:031644/FRAME:0814) Recorded Dec 2, 2016
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: GENESYS TELECOMMUNICATIONS LABORATORIES, INC., AS GRANTOR; ANGEL.COM INCORPORATED; UTOPY, INC.; SOUNDBITE COMMUNICATIONS, INC.
Reel/Frame 040798/0428 →
SECURITY AGREEMENT Recorded Nov 15, 2013
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.; ANGEL.COM INCORPORATED; UTOPY, INC.; SOUNDBITE COMMUNICATIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 031644/0814 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2013
From: KOLESOV, VICTOR; GLAGOLEV, ANATOLIY; TIKIN, ALEXANDER
To: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
Reel/Frame 030941/0561 →