Create LeastMem router
SIGAR does offer memory metrics but only JMX heap was requested (thus far).
From https://github.com/akka/akka/blob/master/akka-cluster/src/main/scala/akka/cluster/ClusterReadView.scala via https://github.com/akka/akka/blob/master/akka-cluster/src/main/scala/akka/cluster/ClusterMetricsCollector.scala we get the following latest sampled metrics on the node and their exponentially weighted moving averages from the data stream:
Metric("heap-memory-used"..)
(JMX) current sum of heap memory used from all heap memory pools (in bytes).
Metric("heap-memory-committed"...)
(JMX) current sum of heap memory guaranteed to be available to the JVM from all heap memory pools (in bytes). Committed will always be greater than or equal to used.
Metric("heap-memory-max"..)
(JMX) maximum amount of memory (in bytes) that can be used for JVM memory management. **NOTE**The metric value can be a None or a Some depending on the OS.
From https://github.com/akka/akka/blob/master/akka-cluster/src/main/scala/akka/cluster/ClusterReadView.scala via https://github.com/akka/akka/blob/master/akka-cluster/src/main/scala/akka/cluster/ClusterMetricsCollector.scala we get the following latest sampled metrics on the node and their exponentially weighted moving averages from the data stream:
Metric("heap-memory-used"..)
(JMX) current sum of heap memory used from all heap memory pools (in bytes).
Metric("heap-memory-committed"...)
(JMX) current sum of heap memory guaranteed to be available to the JVM from all heap memory pools (in bytes). Committed will always be greater than or equal to used.
Metric("heap-memory-max"..)
(JMX) maximum amount of memory (in bytes) that can be used for JVM memory management. **NOTE**The metric value can be a None or a Some depending on the OS.
Leave a comment
on 2011-06-16 04:41 *
By Jonas Bonér
Description changed from Dependent on #940
* Base i... to Dependent on #940
* Base i...
Needs to be retrieved from Git history (if it is of any use, else reimplemented from scratch) and adapted to new clustering.
on 2012-09-30 11:32 *
By Helena Edelson
Description changed from Dependent on #940
* Base i... to SIGAR does offer memory met...
on 2012-09-30 11:38 *
By Helena Edelson
Description changed from SIGAR does offer memory met... to SIGAR does offer memory met...
on 2012-09-30 11:40 *
By Helena Edelson
Description changed from SIGAR does offer memory met... to SIGAR does offer memory met...
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
Well stubbed out in MetricsAwareClusterNodeSelector:
- created MemoryLoadBalancingRouter - returns the node address of healthiest by memory - see ClusterAdaptiveLoadBalancingRouterLike
- 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
Well stubbed out in MetricsAwareClusterNodeSelector:
- created MemoryLoadBalancingRouter - returns the node address of healthiest by memory - see ClusterAdaptiveLoadBalancingRouterLike
Unassigning - I will not have time for a while to complete..
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
Mostly completed
- created MemoryLoadBalancingRouter - returns 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
Mostly completed
- created MemoryLoadBalancingRouter - returns the node address of healthiest by memory - see ClusterAdaptiveLoadBalancingRouterLike
Unassigning myself, will not have time to complete in time
on 2012-10-19 01:20 *
By Patrik Nordwall
Assigned to set to Patrik Nordwall
Status changed from Test to Accepted