IP Library › Granted Patent US 12,182,531
Granted Patent B2
US 12,182,531 · App. 17/514,636 · Granted Dec 31, 2024

System and method for improving load balancing in large database management system

Inventors: Jason Arnold (Chicago, IL); George Kondiles (Chicago, IL)
Assignee: Ocient Inc.
G06F7/08G06F7/24G06F9/5027G06F16/24535G06F16/2456G06N7/01G06N20/10H04L45/122H04L45/127H04L45/24H04L47/125
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 12,182,531
App. No.
17/514,636
Granted
Dec 31, 2024
Kind
B2
Abstract

A method for execution, by a first intermediate node of a plurality of nodes in a database management system, includes receiving a message, where the first intermediate node is limited to communication with a subset of nodes of the plurality of nodes, where the message: includes data that is being sent in accordance with a routing path, is a first size, and indicates a next node of the routing path, and where the subset of nodes includes the next node. The method continues by generating a revised message, wherein the revised message includes the data and has a second size. The method continues by determining whether there is at least one additional intermediate node after the next node in the routing path. When yes, determining an optimal route for forwarding the revised message via a node of the subset of nodes, and sending the revised message to the node.

Claims (54)

1. A method for load balancing in a database management system comprises:

receiving a message by a first intermediate node of a plurality of nodes, wherein the first intermediate node is limited to communication with a subset of nodes of the plurality of nodes, wherein the message includes data that is being sent in accordance with a routing path from a source node of the plurality of nodes to a destination node of the plurality of nodes, is a first size, and indicates a next node of the routing path, and wherein the subset of nodes includes the next node; and

processing, by the first intermediate node, the message by: generating a revised message, wherein the revised message includes the data and has a second size; determining, based on the message, whether there is at least one additional intermediate node after the next node in the routing path;

when there is at least one additional intermediate node:

determining an optimal route for forwarding the revised message to the additional intermediate node via a node of the subset of nodes; and

sending the revised message to the node in accordance with the optimal route;

maintaining, by the first intermediate node, a tracking table that indicates a total amount of data sent to each node of the subset of nodes during a first time period; and

resetting the total amount of data sent to each node of the subset of nodes to zero based on one or more of a command and an initiation of a second time period.

2. The method of claim 1 further comprises:

when the resetting is based on the initiation of the second time period:

maintaining, by the first intermediate node, the tracking table that indicates the total amount of data sent to each of the subset of nodes during the second time period.

3. The method of claim 1 further comprises:

updating, by the first intermediate node, an entry of the tracking table associated with the node to produce an updated total amount of data sent to the node, wherein the updated total amount includes the second size added to the total amount.

4. The method of claim 1 : wherein the determining the optimal route comprises:

determining the total amount of data for each node of the subset of nodes; and

selecting the node from the subset of nodes when the total amount of data for the node is less than the total amount of data for other nodes of the subset of nodes.

5. The method of claim 1 , wherein the message further comprises:

an indication of a number of intermediate nodes between the next node and the destination node, wherein the intermediate nodes include the next node; and an identifier of each of the intermediate nodes.

6. The method of claim 5 , wherein the determining whether there is at least one additional intermediate node after the next node in the routing path comprises one of:

determining whether the number is greater than or equal to two; and

determining whether there is two or more or identifiers of the intermediated nodes in the message.

7. The method of claim 5 , wherein the generating the revised message comprises:

lowering the indication of the number by one; and

removing an identifier associated with the next node, wherein the second size is equal to the first size minus a size of the identifier.

8. The method of claim 1 , wherein the limit to the communication with the subset of nodes is based on a connecting node formula, and wherein the connecting node formula is based on the plurality of nodes being arranged as a variable density binomial graph network within the database management system.

9. A computer readable memory comprises:

one or more memory sections for storing operational instructions that, when executed by a first intermediate node of a plurality of nodes of a database management system, cause the first intermediate node to:

receive a message, wherein the first intermediate node is limited to communication with a subset of nodes of the plurality of nodes, wherein the message: includes data that is being sent in accordance with a routing path from a source node of the plurality of nodes to a destination node of the plurality of nodes, is a first size, and indicates a next node of the routing path, and wherein the subset of nodes includes the next node; and

process the message by:

generating a revised message, wherein the revised message includes the data and has a second size;

determining, based on the message, whether there is at least one additional intermediate node after the next node in the routing path;

when there is at least one additional intermediate node:

determining an optimal route for forwarding the revised message to the additional intermediate node via a node of the subset of nodes; and

sending the revised message to the node in accordance with the optimal route;

maintaining, by the first intermediate node, a tracking table that indicates a total amount of data sent to each node of the subset of nodes during a first time period; and

resetting the total amount of data sent to each node of the subset of nodes to zero based on one or more of a command and an initiation of a second time period.

10. The computer readable memory of claim 9 , wherein the one or more memory sections store further operational instructions that, when executed by the first intermediate node, cause the first intermediate node to:

when the resetting is based on the initiation of the second time period:

maintain the tracking table that indicates the total amount of data sent to each of the subset of nodes during the second time period.

11. The computer readable memory of claim 9 , wherein the one or more memory sections store further operational instructions that, when executed by the first intermediate node, cause the first intermediate node to:

update an entry of the tracking table associated with the node to produce an updated total amount of data sent to the node, wherein the updated total amount includes the second size added to the total amount.

12. The computer readable memory of claim 9 , wherein the one or more memory sections store further operational instructions that, when executed by the first intermediate node, cause the first intermediate node to determining the optimal route by:

determining the total amount of data for each node of the subset of nodes; and

selecting the node from the subset of nodes when the total amount of data for the node is less than the total amount of data for other nodes of the subset of nodes.

13. The computer readable memory of claim 9 , wherein the one or more memory sections store further operational instructions that, when executed by the first intermediate node, cause the first intermediate node to interpret the message to determine:

an indication of a number of intermediate nodes between the next node and the destination node, wherein the intermediate nodes include the next node; and

an identifier of each of the intermediate nodes.

14. The computer readable memory of claim 13 , wherein the one or more memory sections store further operational instructions that, when executed by the first intermediate node, cause the first intermediate node to determine whether there is at least one additional intermediate node after the next node in the routing path by one of:

determining whether the number is greater than or equal to two; and

determining whether there is two or more or identifiers of the intermediated nodes in the message.

15. The computer readable memory of claim 13 , wherein the one or more memory sections store further operational instructions that, when executed by the first intermediate node, cause the first intermediate node to generate the revised message by:

lowering the indication of the number by one; and

removing an identifier associated with the next node, wherein the second size is equal to the first size minus a size of the identifier.

16. The computer readable memory of claim 9 , wherein the one or more memory sections store further operational instructions that, when executed by the first intermediate node, cause the first intermediate node to determine the subset of nodes based on a connecting node formula, and wherein the connecting node formula is based on the plurality of nodes being arranged as a variable density binomial graph network within the database management system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2021
From: ARNOLD, JASON; KONDILES, GEORGE
To: OCIENT INC.
Reel/Frame 057976/0365 →
Continuity (4)
Continuation 16123962 · Sep 6, 2018
Provisional Application 62555198 · Sep 7, 2017
Provisional Application 62555205 · Sep 7, 2017
Related Publication 20220050663A1 · Feb 17, 2022