Create Network Latency Load Balancing Router
All preliminary metric work is completed
- evaluation of smoothed data values to get the node with either min or max, depending
- extraction of the data w/out metric logic in the router package
- creation of NetworkLatencyLoadBalancer
To Do
- complete the algorithm for either min or max: see test/akka.cluster.router.NetworkLatencyLoadBalancer
- evaluation of smoothed data values to get the node with either min or max, depending
- extraction of the data w/out metric logic in the router package
- creation of NetworkLatencyLoadBalancer
To Do
- complete the algorithm for either min or max: see test/akka.cluster.router.NetworkLatencyLoadBalancer
Leave a comment
on 2012-10-18 18:52 *
By Helena Edelson
Assigned to set to Helena Edelson
Status changed from New to Test
Pushed to https://github.com/helena/akka/commit/a6bf53df3ecca31fbb57b2c1ab1716f31f043a4e
If you are interested in it I can do a PR.
All preliminary metric work is completed
- creation of NodeMetricsComparator for ordering of (Address, Long/Double) values in question to iterate through the nodes based on available routees (see the load balancing router) and return the address with min/max depending
- creationg of sealed trait MetricValues and its impls of HeapMemory, NetworkLatency and CPU for clean extraction (conversion) of node.metric. particular metric (heap mem used, system load average, etc) and delegation to the cluster metrics api vs exposing in the cluster router api
- creation of MetricsAwareClusterNodeSelector for evaluation, extraction, and getting of the address of the node that fulfils the criteria of the load balancing router implementation in question.
- the above was created as a trait to allow for the created ClusterAdaptiveMetricsLoadBalancingRouter, which will be able to provide by all metrics vs just one.
- creation of MetricsAwareClusterNodeSelector for
- extraction of the data w/out metric logic in the router package
Creation of the following Router and Router Impls
- ClusterAdaptiveLoadBalancingRouterLike extends RoundRobinLike with LoadBalancer
Status: complete the strategy and getNext() algorithm for round robin selection based on healthiest node
Well stubbed out in MetricsAwareClusterNodeSelector:
- created NetworkLatencyLoadBalancer - finalization of the algorithm (min or max really) to return the node address of healthiest by memory - see ClusterAdaptiveLoadBalancingRouterLike
If you are interested in it I can do a PR.
All preliminary metric work is completed
- creation of NodeMetricsComparator for ordering of (Address, Long/Double) values in question to iterate through the nodes based on available routees (see the load balancing router) and return the address with min/max depending
- creationg of sealed trait MetricValues and its impls of HeapMemory, NetworkLatency and CPU for clean extraction (conversion) of node.metric. particular metric (heap mem used, system load average, etc) and delegation to the cluster metrics api vs exposing in the cluster router api
- creation of MetricsAwareClusterNodeSelector for evaluation, extraction, and getting of the address of the node that fulfils the criteria of the load balancing router implementation in question.
- the above was created as a trait to allow for the created ClusterAdaptiveMetricsLoadBalancingRouter, which will be able to provide by all metrics vs just one.
- creation of MetricsAwareClusterNodeSelector for
- extraction of the data w/out metric logic in the router package
Creation of the following Router and Router Impls
- ClusterAdaptiveLoadBalancingRouterLike extends RoundRobinLike with LoadBalancer
Status: complete the strategy and getNext() algorithm for round robin selection based on healthiest node
Well stubbed out in MetricsAwareClusterNodeSelector:
- created NetworkLatencyLoadBalancer - finalization of the algorithm (min or max really) to return the node address of healthiest by memory - see ClusterAdaptiveLoadBalancingRouterLike
Unassigning to me, will not be able to complete in time.