IP Library Granted Patent US 11,188,393
Granted Patent B1
US 11,188,393 · App. 17/190,219 · Granted Nov 30, 2021

Systems and methods for performing load balancing and distributed high-availability

Inventor: Qing Li (Cupertino, CA)
Assignee: NortonLifeLock Inc.
G06F9/5083G06F9/30087G06F9/466G06F9/505G06F11/076G06F11/0772G06F11/3075G06F11/3433
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 11,188,393
App. No.
17/190,219
Granted
Nov 30, 2021
Kind
B1
Abstract

The disclosed computer-implemented method for performing load balancing and distributed high-availability may include (i) detecting through a group communication channel that links all nodes of a computing cluster that an overburdened node of the computing cluster has fallen below a predefined performance level, (ii) determining to transfer a specific microservice transaction from the overburdened node to a helper node in the computing cluster, (iii) copying data for the specific microservice transaction from a portion of a central data store that is reserved for the overburdened node to another data store that is reserved for the helper node, and (iv) completing, by the helper node, the specific microservice transaction by referencing the copied data for the specific microservice transaction in the data store that is reserved for the helper node. Various other methods, systems, and computer-readable media are also disclosed.

Claims (33)

1. A computer-implemented method for performing load balancing and distributed high-availability, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

detecting through a group communication channel that links all nodes of a computing cluster that an overburdened node of the computing cluster has fallen below a predefined performance level;

determining to transfer a specific microservice transaction from the overburdened node to a helper node in the computing cluster;

copying data for the specific microservice transaction from a portion of a central data store that is reserved for the overburdened node to another data store that is reserved for the helper node; and

completing, by the helper node, the specific microservice transaction by referencing the copied data for the specific microservice transaction in the data store that is reserved for the helper node.

2. The computer-implemented method of claim 1 , wherein the central data store holds all transactions from all nodes of the computing cluster.

3. The computer-implemented method of claim 1 , wherein the central data store comprises a high-availability central data store that satisfies a predefined high-availability threshold according to a metric that measures availability of the central data store.

4. The computer-implemented method of claim 1 , wherein each node within a set of nodes of the computing cluster synchronizes or deposits its microservice transactions between a respective local storage and the central data store.

5. The computer-implemented method of claim 1 , wherein the central data store is configured such that each node within a set of nodes has its own allocation such that a synchronization procedure for synchronizing input/output data for one node does not disturb input/output data for any other nodes within the set of nodes.

6. The computer-implemented method of claim 1 , wherein the central data store creates an efficiency advantage for synchronization procedures such that a node may synchronize input/output data with the central data store rather than transmitting multiple copies of the input/output data to multiple other nodes.

7. The computer-implemented method of claim 1 , wherein the group communication channel comprises a multicast channel.

8. The computer-implemented method of claim 1 , wherein detecting through the group communication channel that links all nodes of the computing cluster that the overburdened node of the computing cluster has fallen below the predefined performance level comprises detecting that the overburdened node has failed to transmit a number of periodic heartbeat messages.

9. The computer-implemented method of claim 8 , wherein detecting that the overburdened node has failed to transmit the number of periodic heartbeat messages comprises triggering a determination that the overburdened node has experienced a catastrophic failure.

10. The computer-implemented method of claim 9 , wherein the catastrophic failure triggers a remaining set of nodes of the computing cluster to each evaluate, based on an analysis of a respective current resource consumption level, whether to take ownership of at least one microservice transaction that previously belonged to the overburdened node.

11. The computer-implemented method of claim 10 , wherein the respective current resource consumption level refers to at least one of available CPU cycles or runtime memory.

12. The computer-implemented method of claim 1 , wherein detecting through the group communication channel that links all nodes of the computing cluster that the overburdened node of the computing cluster has fallen below the predefined performance level comprises receiving a help message that indicates that the overburdened node is seeking assistance from another node.

13. The computer-implemented method of claim 12 , wherein the overburdened node creates an index of specific microservice transactions with which the overburdened node seeks assistance from another node.

14. The computer-implemented method of claim 13 , wherein another node takes over a microservice transaction from the overburdened node based on an analysis of the index of specific microservice transactions.

15. The computer-implemented method of claim 1 , wherein all of the specific microservice transactions held by the overburdened node are placed on an index of specific microservice transactions with which the overburdened node seeks assistance from another node due to a determination that the overburdened node has experienced a catastrophic failure.

16. The computer-implemented method of claim 15 , wherein the overburdened node recovers from the catastrophic failure and then synchronizes and resumes specific microservice transactions on the index that have not been previously claimed by other nodes within the computing cluster.

17. The computer-implemented method of claim 1 , wherein each node within a set of nodes in the computing cluster executes a uniform basic set of algorithms to compute viability for volunteering its computing resources to assist another node.

18. The computer-implemented method of claim 17 , wherein each node within the set of nodes, in addition to executing the uniform basic set of algorithms, furthermore executes local algorithms to estimate viability of lending computing resources based on underlying variations in load levels or other conditions at each node.

19. A system for performing load balancing and distributed high-availability, the system comprising:

a detection module, stored in memory, that detects through a group communication channel that links all nodes of a computing cluster that an overburdened node of the computing cluster has fallen below a predefined performance level;

a determination module, stored in memory, that determines to transfer a specific microservice transaction from the overburdened node to a helper node in the computing cluster;

a copying module, stored in memory, that copies data for the specific microservice transaction from a portion of a central data store that is reserved for the overburdened node to another data store that is reserved for the helper node;

a completion module, stored in memory, that completes, as part of the helper node, the specific microservice transaction by referencing the copied data for the specific microservice transaction in the data store that is reserved for the helper node; and

at least one physical processor configured to execute the detection module, the determination module, the copying module, and the completion module.

20. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

detect through a group communication channel that links all nodes of a computing cluster that an overburdened node of the computing cluster has fallen below a predefined performance level;

determine to transfer a specific microservice transaction from the overburdened node to a helper node in the computing cluster;

copy data for the specific microservice transaction from a portion of a central data store that is reserved for the overburdened node to another data store that is reserved for the helper node; and

complete, by the helper node, the specific microservice transaction by referencing the copied data for the specific microservice transaction in the data store that is reserved for the helper node.

Assignments (3)
CHANGE OF NAME Recorded Feb 6, 2023
From: NORTONLIFELOCK INC.
To: GEN DIGITAL INC.
Reel/Frame 062714/0605 →
SECURITY AGREEMENT Recorded Sep 13, 2022
From: NORTONLIFELOCK INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062220/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2021
From: LI, QING
To: NORTONLIFELOCK INC.
Reel/Frame 055476/0983 →