FreddieBrown / stabilize

QUIC/UDP L4 Proxy Load Balancer
GNU General Public License v3.0
1 stars 0 forks source link

Add new options to LB Algos #25

Open FreddieBrown opened 4 years ago

FreddieBrown commented 4 years ago

Need to have more LB algos. As well as traditional approaches to LB algos, there should be an option to distribute traffic based off extra metrics, like CPU usage of a node, or using Bayes.

A stretch goal for this would be to have a learning classifier which will use reinforcement learning to help classify traffic going to nodes.

This task requires both research and implementation to add these features.

FreddieBrown commented 4 years ago

Added new LB algo CpUtilise which balances based on the number of available cores

FreddieBrown commented 4 years ago

Add in a timing Algo which will start out as a round robin approach but will weight servers based on how many connections they have running and their typical response time (maybe make this a ratio based on how many bytes received/sent). This is a complex LB algo which takes into account real performance metrics.

FreddieBrown commented 4 years ago

Added timing metric to servers. Now has a "ratio" in ServerInfo which is time hb took / number of bytes in hb

FreddieBrown commented 4 years ago

Added algo which uses ratio in ServerInfo which will select the next server based on network connection. An idea that has been had is for an ML LB Algo which learns the best server to choose based on the parameters of all the servers. This would learn the weights for each variable and would use an objective function to pick the next server to use. It would also keep learning as it runs so it keeps getting better.