US 12,267,242 B2
Dynamic load balancing based on flow characteristics
Sumit Maheshwari, Westford, MA (US); and Gopi Mallikharjun Bhimavarapu, Hyderabad (IN)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Jul. 18, 2022, as Appl. No. 17/867,452.
Prior Publication US 2024/0022514 A1, Jan. 18, 2024
Int. Cl. H04L 47/125 (2022.01); H04L 43/087 (2022.01); H04L 43/0888 (2022.01); H04L 47/122 (2022.01)
CPC H04L 47/125 (2013.01) [H04L 43/087 (2013.01); H04L 43/0888 (2013.01); H04L 47/122 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method for dynamic load balancing among a plurality of processors, comprising:
receiving a first data flow, wherein the first data flow includes at least one data packet;
determining, using a deep packet inspection upon the at least one data packet, a first flow characteristic score of the first data flow, wherein the first flow characteristic score is based on a first weighted aggregate of attributes, the attributes characterize the first data flow according to at least a first estimated resource utilization and a first estimated processing time of the first data flow, and the first weighted aggregate of attributes is based on weighted attributes where weights are configurable based on respective degrees of influence of the attributes on the dynamic load balancing among the plurality of processors;
generating a first estimated aggregate load score of a first processor of the plurality of processors for processing the first data flow, wherein the first estimated aggregate load score is based at least on a current aggregate load score of the first processor and the first flow characteristic score of the first data flow;
selecting, based at least on the first estimated aggregate load score, the first processor of the plurality of processors for processing the first data flow, wherein selecting the first processor is based on the first processor being predicted to better satisfy the first estimated resource utilization and the first estimated processing time of the first data flow than at least a second processor of the plurality of processors;
causing the first processor to process the first data flow;
determining, based on performance data of the plurality of processors, actual aggregate load scores of the plurality of processors;
determining, based on a variance between the actual aggregate load scores and estimated aggregate load scores of the plurality of processors, to rebalance load levels among the plurality of processors; and
dynamically updating, based on the variance, the estimated aggregate load scores of the plurality of processors.