IP Library Granted Patent US 10,992,596
Granted Patent B2
US 10,992,596 · App. 15/431,285 · Granted Apr 27, 2021

Systems, methods, and computer program products for computer node resource management

Inventor: Eric Poulin (Pierrefonds, CA)
Assignee: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
H04L47/801H04L41/0813H04L43/0817H04L65/1023H04L65/1043H04L65/1069H04L65/80H04L67/1008H04L67/1036H04L69/16
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 10,992,596
App. No.
15/431,285
Granted
Apr 27, 2021
Kind
B2
Abstract

A method performed by a controlling computer node in a network with a plurality of subordinate computing nodes, the method including: receiving, from a first subordinate computer node, information indicating computing resource impacts for a plurality of different processing functions; receiving, from a communication endpoint, a processing task; determining an impact upon available resources of the first subordinate computer node if the task were to be assigned to the first subordinate computer node, wherein the determining is performed using the information indicating computing resource impacts; and assigning the task to either the first subordinate computer node or another one of the subordinate computer nodes based at least in part on the determining the impact.

Claims (53)

1. A method performed by a controlling computer node in a network with a plurality of subordinate computing nodes, the method comprising:

receiving, from a first subordinate computer node comprising a plurality of virtual subordinate nodes in which at least one of the virtual subordinate nodes receives processing tasks from a different controlling computer node, the controlling computer node and the different controlling computer node being configured to decide which of a plurality of subordinate computer nodes to assign tasks, information indicating estimated computing resource impacts shared by the virtual subordinate nodes of the first subordinate computer node for a plurality of different processing functions as determined by the first subordinate computer node;

receiving, from a communication endpoint, a processing task;

determining an impact upon available resources of the first subordinate computer node if the task were to be assigned to the first subordinate computer node, wherein the determining is performed using the information indicating estimated computing resource impacts; and

assigning the task to either the first subordinate computer node or another one of the subordinate computer nodes based at least in part on the determining the impact.

2. The method of claim 1 , wherein the processing task comprises a request to set up a multimedia communication session.

3. The method of claim 1 , wherein the controlling computer node comprises a H.248 Media Gateway Controller (MGC), and further wherein the subordinate computing nodes comprise H.248 Media Gateways (MGs).

4. The method of claim 1 , wherein the information indicating estimated computing resource impacts comprises:

data indicating processor usage portions for each of multiple available codecs.

5. The method of claim 4 , wherein determining the estimated computing resources impacts comprises:

determining processor usage for the first subordinate computer node based on an assumption of use of a specific codec;

further wherein assigning the task comprises:

assigning a multimedia communication session to either the first subordinate computer node or another one of the subordinate computer nodes based at least in part on a comparison of processor usage by the specific codec by the plurality of subordinate computer nodes.

6. The method of claim 1 , wherein each of the processing functions corresponds to a respective media capability, further wherein the information indicating estimated computing resource impacts for a plurality of different processing functions includes:

for each media capability, information indicating a resource impact of using one unit of the media capability.

7. The method of claim 1 , wherein the controlling computer node communicates with the subordinate computer nodes as part of a signaling process, and further wherein either the first subordinate computer node or another one of the subordinate computer nodes performs the task as part of a multimedia conversation separate from the control process.

8. The method of claim 1 , further comprising:

receiving, from the first subordinate computer node, current computing resource use statistics.

9. The method of claim 8 , wherein assigning the task comprises:

calculating a resulting computing resource use at the first subordinate computer node using the current computing resource use statistics and the information indicating estimated computing resource impacts and assigning the task based on a lower resulting computing resource use at either the first subordinate computer node or another one of the subordinate computer nodes.

10. A system comprising:

a controlling computer node in a network and communicating with a plurality of subordinate computing nodes, the controlling computer node including a processor executing computer-readable code to:

receive, from a first subordinate computer node comprising a plurality of virtual subordinate nodes in which at least one of the virtual subordinate nodes receives processing tasks from a different controlling computer node, the controlling computer node and the different controlling computer node being configured to decide which of a plurality of subordinate computer nodes to assign tasks, information indicating available resources and estimated resource impacts on resources shared by the of the first subordinate computer node as determined by the first subordinate computer node;

receive, from a communication endpoint, a processing task;

calculate a use of available resources for the first subordinate computer node to execute the task, wherein the calculating is based at least on part on the information indicating available resources and resource impacts;

compare the use of available resources of the first subordinate computer node to that of other ones of the subordinate computer nodes; and

assign the task to either the first subordinate computer node or another one of the subordinate computer nodes based at least in part on the comparing.

11. The system of claim 10 , wherein the information indicating available resources comprises:

a maximum number of license-defined codec instantiations.

12. The system of claim 10 , wherein the controlling computer node comprises a H.248 Media Gateway Controller (MGC), and further wherein the subordinate computing nodes comprise H.248 Media Gateways (MGs).

13. The system of claim 10 , wherein the information indicating available resources and estimated resource impacts comprises:

data indicating processor usage portions for each of multiple available codecs.

14. The system of claim 10 , wherein the processing task comprises a request to set up a multimedia communication session with another communication endpoint.

15. The system of claim 10 , further comprising memory including a data structure that stores the information indicating computing resource impacts for the first subordinate computer node and for other subordinate computer nodes.

16. A computer program product having a non-transitory computer readable medium tangibly recording computer program logic for establishing a multimedia communication session between a first user and a second user, the computer program product comprising:

code to receive, at a controlling computer node, a request to establish the multimedia communication session;

code to select a first subordinate computer node of a plurality of subordinate computer nodes to handle the multimedia communication session, the first subordinate node comprising a plurality of virtual subordinate nodes in which at least one of the virtual subordinate nodes receives processing tasks from a different controlling computer node, the controlling computer node and the different controlling computer node being configured to decide which of a plurality of subordinate computer nodes to assign tasks, the selecting including:

code to examine respective resource usage impacts upon resources shared by the virtual subordinate nodes of each of the subordinate computer nodes by viewing the multimedia communication session as a unit of use of a multimedia capability that is associated with a presumed resource usage impact at each of the subordinate computer nodes;

code to compare the respective resource usage impacts among the plurality of subordinate computer nodes; and

code to select the first subordinate computer node to handle the communication session in response to the comparing of estimated usage impacts received from the first subordinate computer node; and

code to assign the multimedia communication session to the first subordinate computer node in response to the selecting.

17. The computer program product of claim 16 , wherein the code to compare comprises:

code to compare codec instantiation use among the plurality of subordinate computer nodes;

further wherein the code to assign comprises:

code to balance codec use among the plurality of subordinate computer nodes.

18. The computer program product of claim 16 , in which the code to examine comprises:

code to add current resource usage statistics to the presumed resource usage impact at each of the subordinate computer nodes to determine the respective resource usage impact for each of the subordinate computer nodes.

19. The computer program product of claim 16 , wherein resource usage impacts comprise at least one of:

total Central Processing Unit (CPU) usage;

total in Digital Signal Processor (DSP) usage;

total bandwidth usage.

20. The computer program product of claim 16 , further comprising:

code to receive, at registration of a subordinate computer node, information indicating computing resource impacts for a plurality of different processing functions.

Assignments (8)
SHORT-FORM PATENTS SECURITY AGREEMENT Recorded Sep 5, 2024
From: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 068857/0290 →
RELEASE OF SECURITY INTEREST Recorded Jun 24, 2024
From: CITIZENS BANK, N.A.
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.)
Reel/Frame 067822/0433 →
TERMINATION AND RELEASE OF FIRST SUPPLEMENT OT PATENT SECURITY AGREEMENT AT R/F 049035/0939 Recorded Dec 6, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.)
Reel/Frame 058740/0265 →
MERGER Recorded Aug 5, 2020
From: GENBAND US LLC
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
Reel/Frame 053409/0441 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2020
From: POULIN, ERIC
To: GENBAND US LLC
Reel/Frame 053409/0136 →
SECURITY INTEREST Recorded Mar 3, 2020
From: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
To: CITIZENS BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052076/0905 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE PREVIOUSLY RECORDED ON REEL 049035 FRAME 0939. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST SUPPLEMENT TO PATENT SECURITY AGREEMENT. Recorded Aug 22, 2019
From: GENBAND US LLC; RIBBON COMMUNICATIONS OPERATING COMPANY, INC., FORMERLY KNOWN AS SONUS NETWORKS, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 050705/0001 →
FIRST SUPPLEMENT TO SECURITY AGREEMENT Recorded Apr 30, 2019
From: GENBAND US LLC; RIBBON COMMUNICATIONS OPERATING COMPANY, INC., FORMERLY KNOWN AS SONUS NETWORKS, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 049035/0939 →
Continuity (2)
Continuation 14206167 · Mar 12, 2014
Related Publication 20170155597A1 · Jun 1, 2017