# US 12,182,531 B2 · System and method for improving load balancing in large database management system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,531 B2
- Document ID: US12182531B2
- Status: Granted
- Kind: B2
- Application number: 17/514,636
- Filed: 2021-10-29
- Published: 2022-02-17
- Granted: 2024-12-31
- Earliest claimed: 2017-09-07
- Assignees: Ocient Inc.
- Applicants: Ocient Inc.
- Inventors: Jason Arnold; George Kondiles
- Web page: https://patentgrep.com/patent/US12182531B2

## CPC

- G06F 7/08: Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry (by merging two or more sets of carriers in ordered sequence G06F7/16)
- G06F 7/24: Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers {sorting methods in general}(G06F7/36 takes precedence)
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 16/24535: {of sub-queries or views}
- G06F 16/24554: {Unary operations; Data partitioning operations}
- G06F 16/2456: {Join operations}
- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06N 20/10: using kernel methods, e.g. support vector machines [SVM]
- H04L 45/122: by minimising distances, e.g. by selecting a route with minimum of number of hops
- H04L 45/127: {based on intermediate node capabilities}
- H04L 45/24: Multipath
- H04L 47/125: by balancing the load, e.g. traffic engineering
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 5)

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.

### Claim 7 (depends on 5)

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.

### Claim 8 (depends on 1)

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.

### Claim 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.

### Claim 10 (depends on 9)

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.

### Claim 11 (depends on 9)

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.

### Claim 12 (depends on 9)

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.

### Claim 13 (depends on 9)

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.

### Claim 14 (depends on 13)

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.

### Claim 15 (depends on 13)

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.

### Claim 16 (depends on 9)

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.
