IP Library Granted Patent US 9,936,268
Granted Patent B2
US 9,936,268 · App. 14/293,979 · Granted Apr 3, 2018

User partitioning in a communication system

Inventors: Vlad Vendrow (Redwood Shores, CA); Vladimir Shmunis (South Lake Tahoe, CA); Vadim Zhuk (Foster City, CA); Dmitriy Alexandrovich Solovey (San Jose, CA)
Assignee: RingCentral, Inc.
H04Q3/005G06F11/2048H04L61/15H04M3/42314G06F11/2028G06F11/2041G06F11/2097
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,936,268
App. No.
14/293,979
Granted
Apr 3, 2018
Kind
B2
Abstract

Systems and methods for routing an incoming service request to one of a plurality of pod units are described. A communication system can be provided that includes a plurality of pods each having a first pod serving a first subset of user accounts associated with a hosted PBX system. The first pod can include a first pod unit in a first data center and a second pod unit in a second data center. A global user directory (GUD) can be used to store a plurality of user keys that are mapped to the plurality of pods. A router can be provided to identify a user key from an incoming service request, query the GUD to identify the first pod as being associated with the user key, and route the incoming service request to one of the first and second pod units.

Claims (40)

1. A computer-implemented method comprising:

maintaining, in a global user directory (GUD), data associating each of a plurality of pods with a respective subset of user accounts served by the pod, wherein the data associating each of the plurality of pods with the respective subset of user accounts served by the pod comprises, for each of the user accounts, one or more user keys associated with the user account and wherein the user accounts are accounts associated with a hosted private branch exchange (PBX) system;

selecting a first user account in a first subset of user accounts served by a first pod of the plurality of pods for migration from being served by the first pod to being served by a second pod of the plurality of pods;

in response to selecting the first user account for migration, transitioning the first user account into standby mode;

while the first user account is in standby mode,

copying user account data for the first user account from the first pod to the second pod, wherein copying user account data for the first user account from the first pod to the second pod comprises copying data identifying user keys associated with the first user account from an account database in the first pod to an account database in the second pod, and

updating the data in the GUD to associate the second pod with the first user account after copying the user account data, wherein updating the data in the GUD comprises updating the data in the GUD to associate the second pod with the one or more user keys identified in the data copied to the second pod; and

transitioning the first user account to active mode in the second pod.

2. The method of claim 1 , wherein the first pod comprises one or more first communication servers running a first version of an application in active mode, and wherein the second pod comprises one or more second communication servers running a second version of the application in test mode.

3. The method of claim 2 , further comprising:

verifying operation of the second version of the application; and

selecting the first user account for migration in response to verifying the operation of the second version of the application.

4. The method of claim 1 , wherein the first pod comprises a first pod unit in a first data center and a second pod unit in a second data center, and wherein the second pod comprises a third pod unit in a third data center and a fourth pod unit in a fourth data center.

5. The method of claim 1 , wherein the one or more critical communication services include communication services related to placing phone calls, receiving phone calls, or both.

6. A non-transitory computer storage medium encoded with a computer program, the computer program comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

maintaining, in a global user directory (GUD), data associating each of a plurality of pods with a respective subset of user accounts served by the pod, wherein the data associating each of the plurality of pods with the respective subset of user accounts served by the pod comprises, for each of the user accounts, one or more user keys associated with the user account and wherein the user accounts are accounts associated with a hosted private branch exchange (PBX) system;

selecting a first user account in a first subset of user accounts served by a first pod of the plurality of pods for migration from being served by the first pod to being served by a second pod of the plurality of pods;

in response to selecting the first user account for migration, transitioning the first user account into standby mode;

while the first user account is in standby mode,

copying user account data for the first user account from the first pod to the second pod, wherein copying user account data for the first user account from the first pod to the second pod comprises copying data identifying user keys associated with the first user account from an account database in the first pod to an account database in the second pod, and

updating the data in the GUD to associate the second pod with the first user account after copying the user account data, wherein updating the data in the GUD comprises updating the data in the GUD to associate the second pod with the one or more user keys identified in the data copied to the second pod; and

transitioning the first user account to active mode in the second pod.

7. The non-transitory computer storage medium of claim 6 , wherein the first pod comprises one or more first communication servers running a first version of an application in active mode, and wherein the second pod comprises one or more second communication servers running a second version of the application in test mode.

8. The non-transitory computer storage medium of claim 7 , the operations further comprising:

verifying operation of the second version of the application; and

selecting the first user account for migration in response to verifying the operation of the second version of the application.

9. The non-transitory computer storage medium of claim 6 , wherein the first pod comprises a first pod unit in a first data center and a second pod unit in a second data center, and wherein the second pod comprises a third pod unit in a third data center and a fourth pod unit in a fourth data center.

10. A system comprising one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to perform operations comprising:

maintaining, in a global user directory (GUD), data associating each of a plurality of pods with a respective subset of user accounts served by the pod, wherein the data associating each of the plurality of pods with the respective subset of user accounts served by the pod comprises, for each of the user accounts, one or more user keys associated with the user account and wherein the user accounts are accounts associated with a hosted private branch exchange (PBX) system;

selecting a first user account in a first subset of user accounts served by a first pod of the plurality of pods for migration from being served by the first pod to being served by a second pod of the plurality of pods;

in response to selecting the first user account for migration, transitioning the first user account into standby mode;

while the first user account is in standby mode,

copying user account data for the first user account from the first pod to the second pod, wherein copying user account data for the first user account from the first pod to the second pod comprises copying data identifying user keys associated with the first user account from an account database in the first pod to an account database in the second pod, and

updating the data in the GUD to associate the second pod with the first user account after copying the user account data, wherein updating the data in the GUD comprises updating the data in the GUD to associate the second pod with the one or more user keys identified in the data copied to the second pod; and

transitioning the first user account to active mode in the second pod.

11. The system of claim 10 , wherein the first pod comprises one or more first communication servers running a first version of an application in active mode, and wherein the second pod comprises one or more second communication servers running a second version of the application in test mode.

12. The system of claim 11 , the operations further comprising:

verifying operation of the second version of the application; and

selecting the first user account for migration in response to verifying the operation of the second version of the application.

13. The system of claim 10 , wherein the first pod comprises a first pod unit in a first data center and a second pod unit in a second data center, and wherein the second pod comprises a third pod unit in a third data center and a fourth pod unit in a fourth data center.

Assignments (3)
SECURITY INTEREST Recorded Feb 14, 2023
From: RINGCENTRAL, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062973/0194 →
MERGER Recorded Feb 9, 2015
From: RINGCENTRAL, INC.
To: RINGCENTRAL, INC.
Reel/Frame 034922/0930 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2014
From: VENDROW, VLAD; SHMUNIS, VLADIMIR; ZHUK, VADIM; SOLOVEY, DMITRIY ALEXANDROVICH
To: RINGCENTRAL, INC.
Reel/Frame 033181/0990 →
Continuity (2)
Continuation 12957125 · Nov 30, 2010
Related Publication 20140270132A1 · Sep 18, 2014