IP Library Granted Patent US 11,930,094
Granted Patent B2
US 11,930,094 · App. 17/724,265 · Granted Mar 12, 2024

Mitigating network resource contention

Inventor: Nicolas Klein (London, GB)
Assignee: RingCentral, Inc.
H04L67/60G06F16/27G06F16/9574G06F2212/6028H04L47/2416H04L65/00H04L65/403
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 11,930,094
App. No.
17/724,265
Granted
Mar 12, 2024
Kind
B2
Abstract

Media, methods, and systems are disclosed for mitigating network resource contention. Event scheduling details are received regarding one or more virtual events. In response to determining that an upcoming virtual event will begin within a predetermined time threshold, various steps are performed. First, a predicted number of event participants is determined. Next, database artifacts associated with the upcoming virtual event are prefetched. Then static event display resources are accessed prior to a start of the upcoming virtual event, and the database artifacts and the static event display resources are cached. A network protocol request to access network resources is received from a client device. The database artifacts and the static event display resources are pushed to a client-side cache associated with the client device, and a minimal network response is transmitted to the client device.

Claims (97)

1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by at least one processor, perform a method of mitigating network resource contention during a virtual event, the method comprising:

receiving, at a load balancer, an initial request for an event resource from a requesting event participant device;

distributing the initial request for the event resource to one or more application services, wherein each of the one or more application services includes a plurality of caches, the plurality of caches being accessible to a plurality of event participant devices;

retrieving the event resource from a server-side database by at least one of the one or more application services;

caching the event resource in the one or more application services;

allowing the requesting event participant device to access the one or more application services where the event resource is cached;

directing, by the load balancer, the requesting event participant device to retrieve the event resource from one of the one or more application services where the event resource is cached;

receiving, at the load balancer, a subsequent request for the event resource from an additional event participant device;

directing, by the load balancer, the additional event participant device to retrieve the event resource from the one or more application services where the event resource is cached;

predicting a spike in requests to access a first set of event resources;

refreshing the first set of event resources stored in the one or more application services prior to the spike;

disabling probabilistic caching when the spike in the requests is predicted and after the first set of event resources is refreshed;

receiving a network protocol request to join the virtual event from a first event participant device during the virtual event; and

allowing the first event participant device to access the first set of event resources cached in the one or more application services prior to the first event participant device joining the virtual event.

2. The one or more non-transitory computer-readable media of claim 1 , wherein the plurality of caches comprise server-side caches.

3. The one or more non-transitory computer-readable media of claim 1 , further comprising:

receiving, during the virtual event, a second set of event resources;

storing the second set of event resources in the server-side database;

pushing the second set of event resources to the one or more application services; and

maintaining the first set of event resources and the second set of event resources within the one or more application services for a specified period of time during the virtual event.

4. The one or more non-transitory computer-readable media of claim 3 , wherein maintaining the first set of event resources and the second set of event resources within the one or more application services comprises:

preserving the second set of event resources in the one or more application services,

wherein the second set of event resources is associated with actively participating event participants; and

purging the first set of event resources from the one or more application services,

wherein the first set of event resources is associated with formerly participating event participants.

5. The one or more non-transitory computer-readable media of claim 4 , further comprising:

prior to purging the first set of event resources, storing the first set of event resources in the server-side database;

after purging the first set of event resources from the one or more application services, receiving, at the load balancer, an access request from an event participant device for the first set of event resources;

retrieving the first set of event resources from the server-side database;

caching the first set of event resources in at least one of the one or more application services; and

directing the event participant device to retrieve the first set of event resources from the one or more application services where the first set of event resources are cached.

6. The one or more non-transitory computer-readable media of claim 5 , further comprising:

receiving, at the load balancer, a plurality of access requests from the plurality of event participant devices for the first set of event resources; and

directing the plurality of event participant devices to corresponding application services in which the first set of event resources are cached.

7. A method for mitigating network resource contention during a virtual event, the method comprising:

receiving, at a load balancer, an initial request for an event resource from a requesting event participant device;

distributing the initial request for the event resource to one or more application services, wherein each of the one or more application services includes a plurality of caches, the plurality of caches being accessible to a plurality of event participant devices;

retrieving the event resource from a server-side database by at least one of the one or more application services;

caching the event resource in the one or more application services;

allowing the requesting event participant device to access the one or more application services where the event resource is cached;

directing, by the load balancer, the requesting event participant device to retrieve the event resource from one of the one or more application services where the event resource is cached;

receiving, at the load balancer, a subsequent request for the event resource from an additional event participant device;

directing, by the load balancer, the additional event participant device to retrieve the event resource from the one or more application services in which the event resource is cached;

predicting a spike in requests to access a first set of event resources;

refreshing the first set of event resources stored in the one or more application services prior to the spike;

disabling probabilistic caching when the spike in the requests is predicted and after the first set of event resources is refreshed;

receiving a network protocol request to access the virtual event from a first event participant device during the virtual event; and

allowing the first event participant device to join the virtual event and access the first set of event resources cached in the one or more application services prior to the first event participant device joining the virtual event.

8. The method of claim 7 , wherein the plurality of caches comprise server-side caches.

9. The method of claim 7 , further comprising:

receiving, during the virtual event, a second set of event resources;

pushing the second set of event resources to the one or more application services; and

maintaining the first set of event resources and the second set of event resources within the one or more application services for a specified period of time during the virtual event.

10. The method of claim 9 , wherein maintaining the first set of event resources and the second set of event resources within the one or more application services comprises:

preserving the second set of event resources in the one or more application services,

wherein the second set of event resources is associated with actively participating event participants; and

purging the first set of event resources from the one or more application services,

wherein the first set of event resources is associated with formerly participating event participants.

11. The method of claim 10 , further comprising:

prior to purging the first set of event resources, storing the first set of event resources in a database;

after purging the first set of event resources from the plurality of caches, receiving, at the load balancer, an access request from an event participant device for the first set of event resources;

retrieving the first set of event resources from the database;

caching the first set of event resources in at least one of the one or more application services; and

directing the event participant device to retrieve the first set of event resources from the one or more application services where the first set of event resources are cached.

12. The method of claim 11 , further comprising:

receiving, at the load balancer, a plurality of access requests from the plurality of event participant devices for the first set of event resources; and

directing the plurality of event participant devices to corresponding application services in which the first set of event resources are cached.

13. A virtual event hosting system comprising at least one processor and at least one non-transitory memory storing computer executable instructions that, when executed by the at least one processor, cause the at least one processor to:

receive, at a load balancer, an initial request for an event resource from a requesting event participant device;

distribute the initial request for the event resource to one or more application services, wherein each of the one or more application services includes a plurality of caches, the plurality of caches being accessible to a plurality of event participant devices;

retrieve the event resource from a server-side database by at least one of the one or more application services;

cache the event resource in the one or more application services;

allow the requesting event participant device to access the one or more application services where the event resource is cached;

cause the load balancer to direct the requesting event participant device to retrieve the event resource from one of the one or more application services where the event resource is cached;

receive, at the load balancer, a subsequent request for the event resource from an additional event participant device;

cause the load balancer to direct the additional event participant device to retrieve the event resource from the one or more application services in which the event resource is cached;

predict a spike in requests to access a first set of event resources;

refresh the first set of event resources stored in the one or more application services prior to the spike;

disable probabilistic caching when the spike in the requests is predicted and after the first set of event resources is refreshed;

receive a network protocol request to access a virtual event from a first event participant device during the virtual event; and

allow the first event participant device to join the virtual event and access the first set of event resources cached in the one or more application services prior to the first event participant device joining the virtual event.

14. The virtual event hosting system of claim 13 , wherein the plurality of caches comprise server-side caches.

15. The virtual event hosting system of claim 13 , wherein the at least one processor is further configured to:

receive a second set of event resources during a virtual event;

push the second set of event resources to the one or more application services; and

maintain the first set of event resources and the second set of event resources within the one or more application services for a specified period of time during the virtual event.

16. The virtual event hosting system of claim 15 , wherein maintaining the first set of event resources and the second set of event resources on the one or more application services comprises:

preserving the second set of event resources in the one or more application services,

wherein the second set of event resources is associated with actively participating event participants; and

purging the first set of event resources from the one or more application services,

wherein the first set of event resources is associated with formerly participating event participants.

17. The virtual event hosting system of claim 16 , wherein the at least one processor is further configured to:

store the first set of event resources in a database prior to purging the first set of event resources;

receive, at the load balancer, an access request from an event participant device for the first set of event resources after the first set of event resources are purged from the one or more application services;

retrieve the first set of event resources from the database;

cache the first set of event resources in at least one of the one or more application services; and

direct the event participant device to retrieve the first set of event resources from the one or more application services where the first set of event resources are cached.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE STATE OF INCORPORATION PREVIOUSLY RECORDED ON REEL 64878 FRAME 4. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 28, 2023
From: HOPIN LTD
To: RINGCENTRAL FLORIDA, LLC
Reel/Frame 066406/0722 →
SECURITY INTEREST Recorded Nov 29, 2023
From: RINGCENTRAL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 065693/0745 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2023
From: RINGCENTRAL FLORIDA, LLC
To: RINGCENTRAL, INC.
Reel/Frame 064900/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2023
From: HOPIN LTD
To: RINGCENTRAL FLORIDA, LLC
Reel/Frame 064878/0004 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2022
From: KLEIN, NICOLAS
To: HOPIN LTD
Reel/Frame 060350/0247 →
Continuity (2)
Continuation 17495381 · Oct 6, 2021
Related Publication 20230108720A1 · Apr 6, 2023