# US 12,216,563 B2 · Sharded database load distributor

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

- Number: US 12,216,563 B2
- Document ID: US12216563B2
- Status: Granted
- Kind: B2
- Application number: 17/508,571
- Filed: 2021-10-22
- Published: 2023-04-27
- Granted: 2025-02-04
- Earliest claimed: 2021-10-22
- Assignees: Dell Products L.P.
- Applicants: Dell Products, L.P.
- Inventors: Ofir Ezrielev; Nadav Azaria; Yonit Weiss
- Web page: https://patentgrep.com/patent/US12216563B2

## CPC

- G06F 11/3433: {for load management (allocation of a server based on load conditions G06F9/505; load rebalancing G06F9/5083; redistributing the load in a network by a load balancer H04L67/1029)}
- G06F 11/3419: {by assessing time}
- G06F 16/256: {in federated or virtual databases}
- G06F 16/285: {Clustering or classification}
- G06F 18/214: Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06N 20/00: Machine learning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

A system can divide a database into a group of shards that are distributed among a group of data centers. The system can train a machine learning model on a group of labeled input data, wherein the group of labeled input data comprises respective requests to operate on the database, and wherein the respective requests are labeled with respective shards of the group of shards used to process the respective requests, and to produce a trained machine learning model. The system can, after training the machine learning model, receive a request. The system can process the request with the trained machine learning model to predict that a data center of the group of data centers will have a largest number of leader shards of the group of shards to process the request. The system can send the request to the first data center to be processed.

## Claims

### Claim 1

A system, comprising:
at least one processor; and
at least one memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising:
dividing a database into a group of shards that are distributed among a group of data centers;
training a machine learning model on a group of labeled input data, wherein the group of labeled input data comprises respective requests to operate on the database, and wherein the respective requests are labeled with respective shards of the group of shards used to process the respective requests, and to produce a trained machine learning model;
after training the machine learning model, receiving a request;
processing the request with the trained machine learning model to predict that a data center of the group of data centers will have a largest number of leader shards of the group of shards to process the request; and
sending the request to the data center to be processed at the data center.

### Claim 2 (depends on 1)

The system of claim 1, wherein the operations further comprise:
generating the group of labeled input data, comprising filtering logs of operations on the database for operations that share a same trace identifier, wherein operations that share the same trace identifier are determined to share a single separable process.

### Claim 3 (depends on 1)

The system of claim 1, wherein training the machine learning model comprises:
assigning a higher weight to a first labeled input data of the group of labeled input data than to a second labeled input data of the group of labeled input data, wherein the first labeled input data comprises a first timestamp, wherein the second labeled input data comprises a second timestamp, and wherein the first timestamp indicates a more recent time than the second timestamp.

### Claim 4 (depends on 1)

The system of claim 1, wherein the respective shards of the group of labeled input data comprise an indication of respective data centers of the group of data centers in which the respective shards are located.

### Claim 5 (depends on 1)

The system of claim 1, wherein the trained machine learning model produces an output from processing the request, wherein the output comprises a prediction of shards and corresponding data centers that will be accessed as part of responding to the request, and wherein a data center selection component selects the data center based on the output from the trained machine learning model.

### Claim 6 (depends on 1)

The system of claim 1, wherein the operations further comprise:
sending the request to the data center based on predicting that the first data center is able to process the request with a lowest number of inter-data center communications of among the group of data centers.

### Claim 7 (depends on 1)

The system of claim 1, wherein the operations further comprise:
sending the request to the data center to be processed at the data center in response to determining that the data center will have the largest number of leader shards of the group of shards to process the request.

### Claim 8 (depends on 1)

The system of claim 1, wherein the request is received from a remote computer via a communications network, and wherein the request indicates an operation to perform on the database.

### Claim 9

A method, comprising:
training, by a system comprising at least one processor, a machine learning model based on a group of input data, the group of input data comprising respective requests to operate on a data store that are labeled with respective shards of a group of shards that are distributed among a group of data centers, wherein the respective shards are used to process the respective requests, and to produce a trained machine learning model;
processing, by the system, a request with the trained machine learning model to predict that a data center of the group of data centers is threshold likely to have a largest number of shards of the group of shards to process the request; and
sending, by the system, the request to the data center.

### Claim 10 (depends on 9)

The method of claim 9, wherein a first latency associated with performing an operation on two shards within the same data center of the group of data centers is lower than a second latency associated with performing the operation on two shards stored in different data centers of the group of data centers.

### Claim 11 (depends on 10)

The method of claim 10, wherein the group of input data comprises respective session identifiers.

### Claim 12 (depends on 10)

The method of claim 10, wherein the group of input data comprises a timestamp.

### Claim 13 (depends on 12)

The method of claim 12, wherein training the machine learning model comprises:
assigning, by the system, a higher weight to a first labeled input data of the group of input data than to a second labeled input data of the group of input data, wherein the first labeled input data comprises a first timestamp, wherein the second labeled input data comprises a second timestamp, and wherein the first timestamp indicates a more recent time than the second timestamp.

### Claim 14 (depends on 9)

The method of claim 9, wherein the group of shards comprises respective horizontally-divided portions of the data store.

### Claim 15 (depends on 9)

The method of claim 9, further comprising:
generating, by the system, the group of input data, comprising filtering logs of operations on the data store for operations that share a same trace identifier, wherein operations that share the same trace identifier are determined to share a single separable process.

### Claim 16

A non-transitory computer-readable medium comprising instructions that, in response to execution, cause a system comprising at least one processor to perform operations, comprising:
dividing a data store into a group of shards that are distributed among a group of data centers;
training a machine learning model on a group of input data, wherein the group of input data comprises respective requests to operate on the data store that are labeled with respective shards of the group of shards used to process the respective requests, and to produce a trained machine learning model;
processing a request with the trained machine learning model to predict that a data center of the group of data centers will have a largest number of shards of the group of shards to process the request; and
sending the request to the data center.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the operations further comprise:
generating the group of input data, comprising filtering logs of operations on the data store for operations that share a same trace identifier, wherein operations that share the same trace identifier are determined to share a single separable process.

### Claim 18 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein training the machine learning model comprises:
assigning a higher weight to a first labeled input data of the group of input data than to a second labeled input data of the group of input data, wherein the first labeled input data comprises a first timestamp, wherein the second labeled input data comprises a second timestamp, and wherein the first timestamp indicates a more recent time than the second timestamp.

### Claim 19 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the respective requests to operate on the data store comprise respective representational state transfer application programming interface calls, or application programming interface calls according to another format, that are received from a remote computer and via a communications network.

### Claim 20 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the operations further comprise:
generating the group of input data, comprising filtering logs of operations on the database for operations that share a same trace identifier, wherein operations that share the same trace identifier are determined to share a single separable process.
