# US 2021/0344748 A1 · Load balancing in a high-availability cluster

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

- Number: US 2021/0344748 A1
- Document ID: US20210344748A1
- Status: Published application
- Kind: A1
- Application number: 16/916,588
- Filed: 2020-06-30
- Published: 2021-11-04
- Earliest claimed: 2020-04-30
- Assignees: Juniper Networks, Inc.
- Applicants: Juniper Networks, Inc.
- Inventors: Fei CHEN; Weisong PENG; Xia ZHU; Tiejun ZHANG; Na LIU
- Web page: https://patentgrep.com/patent/US20210344748A1

## CPC

- G06F 11/2028: {eliminating a faulty processor or activating a spare}
- H04L 67/1031: Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
- G06F 11/2035: {without idle spare hardware}
- 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 16/2379: {Updates performed during online database operations; commit processing}
- H04L 63/08: {for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32)}
- H04L 67/1034: Reaction to server failures by a load balancer
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A first network device may configure a high-availability cluster associated with a network that includes the first network device and a second network device. The first network device may identify a plurality of devices communicatively coupled to the network and determine a set of tasks for the plurality of devices. The first network device may queue the set of tasks in a task queue that is accessible to the second network device. The second network device may perform a first task and the first network device may perform a second task of the set of tasks. The first network device may receive first result information that is associated with a performance of the first task. The first network device may determine a result associated with performing the second task. The first network device may synchronize the first result information and the second result information with the second network device.

## Claims

### Claim 1

A method, comprising:
configuring, by a first network device, a high-availability cluster that includes the first network device and a second network device,
wherein the high-availability cluster is associated with a network;
identifying, by the first network device, a plurality of devices communicatively coupled to the network;
determining, by the first network device, a set of tasks associated with the plurality of devices;
queuing, by the first network device, the set of tasks in a task queue maintained within the first network device that is accessible to the second network device via a high-availability communication link of the high-availability cluster to select a task of the set of tasks,
wherein the task queue is configured to permit the second network device to select and perform a first task of the set of tasks to load balance the set of tasks between the first network device and the second network device;
performing, by the first network device, a second task of the set of tasks;
receiving, by the first network device and from the second network device, first result information that is associated with a performance of the first task by the second network device;
determining, by the first network device, second result information identifying a result associated with performing the second task; and
synchronizing, by the first network device and via the high-availability communication link, the first result information and the second result information with the second network device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the plurality of devices comprise domain controllers, and
wherein the first task and the second task are domain controller tasks that are associated with authenticating one or more user devices that are communicatively coupled to the network.

### Claim 3 (depends on 1)

The method of claim 1, wherein the plurality of devices comprise user devices, and
wherein the first task and the second task are probe tasks that are associated with monitoring communication links between the user devices and the network.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
detecting that a controller of the first network device is in an idle state,
wherein performing the second task comprises:
performing the second task based on detecting that the controller is in the idle state.

### Claim 5 (depends on 1)

The method of claim 1, wherein a portion of the second task is performed by the first network device during a same time period that the second network device performs a portion of the first task.

### Claim 6 (depends on 1)

The method of claim 1, wherein the task queue is maintained within a task data structure of the first network device.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first network device is a master node of the high-availability cluster and the second network device is a backup node of the high-availability cluster.

### Claim 8

A first network device, comprising:
a memory; and
a processor to:
configure a high-availability communication link with a second network device to form a high-availability cluster,
wherein the high-availability cluster is associated with a network;
identify a set of domain controllers that are communicatively coupled to the network and a set of user devices that are communicatively coupled to the network;
detect a domain controller event that is associated with a user device of the set of user devices;
add, to a task queue maintained within the first network device, a domain controller task that is associated with the domain controller event,
wherein the task queue is configured to be accessible to the second network device, to permit the second network device to select and perform the domain controller task or the first network device to perform the domain controller task;
obtain result information associated with a performance of the domain controller task by the second network device; and
perform, based on the result information, an action associated with the user device.

### Claim 9 (depends on 8)

The first network device of claim 8, wherein the processor is further to:
designate the first network device to maintain the task queue;
designate the second network device to access the task queue;
configure, based on a state of a controller of the first network device, the first network device to perform tasks in the task queue; and
configure, based on a state of a controller of the second network device, the second network device to perform the tasks in the task queue.

### Claim 10 (depends on 8)

The first network device of claim 8, wherein the task queue is a first task queue, and the result information indicates that the user device is an authorized user device of the network,
wherein the processor, when performing the action, is to:
schedule a probe task associated with the user device in a second task queue,
wherein the second task queue is accessible to the second network device to permit the second network device to perform the probe task or the first network device to perform the probe task.

### Claim 11 (depends on 8)

The first network device of claim 8, wherein the first network device is a master node of the high-availability cluster and the second network device is a backup node of the high-availability cluster.

### Claim 12 (depends on 8)

The first network device of claim 8, wherein the user device is a first user device, the domain controller event is a first domain controller event, the domain controller task is a first domain controller task,
wherein the processor is further to:
detect a second domain controller event that is associated with a second user device of the set of user devices;
add, to the task queue, a second domain controller task that is associated with the second domain controller event;
perform, based on the processor being idle, the second domain controller task to determine a result of the second domain controller task; and
perform an action associated with the result.

### Claim 13 (depends on 12)

The first network device of claim 12, wherein the second user device and the first user device are the same device.

### Claim 14 (depends on 8)

The first network device of claim 8, wherein the processor, when performing the action, is to:
update a directory data structure of the first network device to include the result information,
wherein user data of the directory data structure is configured to be synchronized with the second network device via the high-availability communication link.

### Claim 15

A non-transitory computer-readable medium storing instructions, the instructions comprising:
one or more instructions that, when executed by one or more processors of a first network device, cause the one or more processors to:
configure a high-availability cluster for a network,
wherein the high-availability cluster is formed to include the first network device and a second network device;
identify a plurality of devices communicatively coupled to the network;
determine a set of tasks for the plurality of devices;
queue the set of tasks in a task queue maintained in the first network device that is accessible to the second network device via a high-availability communication link of the high-availability cluster to select a task of the set of tasks,
wherein the task queue is configured to permit the second network device to select and perform a task of the set of tasks to load balance the set of tasks between the first network device and the second network device;
obtain a result of a performance of the task by the second network device; and
perform an action associated with the result.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the one or more processors to configure the high-availability cluster, cause the one or more processors to:
establish the high-availability communication link;
designate the first network device to maintain the task queue;
designate the second network device to read the task queue; and
configure the first network device and the second network device to perform one or more of the set of tasks.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the one or more processors to determine the set of tasks, cause the one or more processors to:
receive a communication from a user device that is communicatively coupled to the network;
determine that the communication is associated with an event of a domain controller;
generate a domain controller task to permit the domain controller to authenticate the user device; and
add the domain controller task to the set of tasks.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the one or more processors to determine the set of tasks, cause the one or more processors to:
identify a probe schedule associated with a user device that is communicatively coupled to the network; and
generate, according to the probe schedule, a probe task to determine a connectivity status of the user device; and
add the probe task to the set of tasks.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the one or more processors to perform the action, cause the one or more processors to:
update a directory data structure to include information that identifies the result; and
enable data of the directory data structure to be synchronized with the second network device.

### Claim 20 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the task is a first task, and
wherein the one or more instructions further cause the one or more processors to:
select, based on a processing status of the first network device, a second task of the set of tasks;
perform an operation associated with the second task;
store a result of the second task in a directory data structure of the first network device; and
synchronize data of the directory data structure with the second network device via the high-availability communication link.
