Commit graph

91 commits

Author SHA1 Message Date
Patrik Nordwall
a94f7cdc98 =clu #15412 Add paths(system) method to Group router
to be able to use the role correctly in cluster aware routers

This solution is very similar to what we did for nrOfInstances
in Pool routers.
2015-08-21 14:40:56 +02:00
Konrad Malawski
8b045173ad =pro #17397 improve PR validation speed tremendously (skipping things)
+ enable parallel execution
+ exclude perf tests (TODO mark more as such)
+ uses sbt-dependency-graph plugin
+ implement dependency tracking for testing of only these
+ project which could have been affected by a given PR
2015-05-08 14:09:12 +02:00
Julian Tescher
00f6a58e7c Changes all occurances of Typesafe copyright to extend to 2015 2015-03-10 14:12:19 -07:00
Patrik Nordwall
30df518421 =tes Use ConversionCheckedTripleEquals 2015-03-10 08:17:03 +01:00
Roland Kuhn
82b8238a9c fix warnings in remote and cluster 2015-01-30 19:02:18 +01:00
Andrei Pozolotin
7b9f77a073 + akka-cluster-metrics: new akka module
* new akka module split from akka-cluster
* provide sigar provisioning
* fix ewma usage
* resolve #16121
* see #16354
2015-01-19 10:23:54 -06:00
Konrad 'ktoso' Malawski
3f12ef262f !clu #15042 useRole restriction on local node is now respected
This is an API breaking change if someone implemented their own Routers.
The change is required because the router must know if the local routees
should be started or not so it has to check the roles of the cluster
member (the local one). We could delay this decision of starting local
routees, but that would allow messages to be dead-letter-ed (bad).
2014-10-31 22:33:23 +01:00
Patrik Nordwall
1e445b4eba !act,rem,clu #3920 Remove deprecated old routers 2014-03-14 14:12:11 +01:00
Roland Kuhn
4dd5fe3257 Merge pull request #2047 from drexin/wip-3858-make-case-classes-final-drexin
=all #3858 Make case classes final
2014-03-11 16:06:31 +01:00
dario.rexin
826cc74de3 !tes #2971 Make TestKit.remaining throw AssertionError outside of within 2014-03-11 11:23:12 +01:00
dario.rexin
2cbad298d6 =all #3858 Make case classes final 2014-03-07 13:20:01 +01:00
Patrik Nordwall
f1edf78979 Merge pull request #1980 from vossad01/wip-3838-SetCopyrightYear2014-vossad01
Update Copyright to 2014, see #3838
2014-02-06 11:14:38 +01:00
Adam Voss
cce29dfa51 Changes all occurances of Typesafe copyright to extend to 2014. 2014-02-04 21:20:09 -06:00
Patrik Nordwall
186f2ae5e1 =act #3853 Fix consistent hashing group inconsistency
* It did not use the toString (including full address of destination) of the
  node entries, instead it used the hashCode which always included the self
  address
* This was a regression in 2.3, it is correct in 2.2.3
2014-02-02 11:16:47 +01:00
Patrik Nordwall
a11fb1dafc =act #3572 Add parens to sender
* because it is not referentially transparent; normally we reserved parens for
  side-effecting code but given how people thoughtlessly close over it we revised
  that that decision for sender
* caller can still omit parens
2014-01-17 18:21:14 +01:00
Björn Antonsson
003609c9c5 =pro #3759 Changed to using non-deprecated ScalaTest Matchers 2013-12-18 11:32:51 +01:00
Patrik Nordwall
402674ce10 +clu #3627 Cluster router group with multiple paths per node
* Use the ordinary routees.paths config property instead of
  cluster.routees-path
* Backwards compatible in deprecation phase
2013-10-16 11:44:00 +02:00
Patrik Nordwall
ebadd567b2 !act,rem,clu #3549 Simplify and enhance routers
* Separate routing logic, to be usable stand alone, e.g. in actors
* Simplify RouterConfig, only a factory
* Move reading of config from Deployer to the RouterConfig
* Distiction between Pool and Group router types
* Remove usage of actorFor, use ActorSelection
* Management messages to add and remove routees
* Simplify the internals of RoutedActorCell & co
* Move resize specific code to separate RoutedActorCell subclass
* Change resizer api to only return capacity change
* Resizer only allowed together with Pool
* Re-implement all routers, and keep old api during deprecation phase
* Replace ClusterRouterConfig, deprecation
* Rewrite documentation
* Migration guide
* Also includes related ticket:
  +act #3087 Create nicer Props factories for RouterConfig
2013-10-16 09:27:13 +02:00
Patrik Nordwall
dc9fe4f19c !clu #2307 Allow transition from unreachable to reachable
* Replace unreachable Set with Reachability table
* Unreachable members stay in member Set
* Downing a live member was moved it to the unreachable Set,
  and then removed from there by the leader. That will not
  work when flipping back to reachable, so a Down member must
  be detected as unreachable before beeing removed. Similar
  to Exiting. Member shuts down itself if it sees itself as
  Down.
* Flip back to reachable when failure detector monitors it as
  available again
* ReachableMember event
* Can't ignore gossip from aggregated unreachable (see SurviveNetworkInstabilitySpec)
* Make use of ReachableMember event in cluster router
* End heartbeat when acknowledged, EndHeartbeatAck
* Remove nr-of-end-heartbeats from conf
* Full reachability info in JMX cluster status
* Don't use interval after unreachable for AccrualFailureDetector history
* Add QuarantinedEvent to remoting, used for Reachability.Terminated
* Prune reachability table when all reachable
* Update documentation
* Performance testing and optimizations
2013-09-11 13:10:29 +02:00
dario.rexin
3e8597d94b more deprecation warnings removed 2013-04-26 13:54:10 +02:00
Patrik Nordwall
7ff77471a1 ClusterRouterConfig should stop remote deployed routees, see #2797 2013-04-08 16:14:21 +02:00
Patrik Nordwall
806fc0c525 Use awaitAssert in cluster tests, see #3168 2013-03-25 13:08:06 +01:00
Patrik Nordwall
7eac88f372 Cluster node roles, see #3049
* Config of node roles cluster.role
* Cluster router configurable with use-role
* RoleLeaderChanged event
* Cluster singleton per role
* Cluster only starts once all required per-role node
  counts are reached,
  role.<role-name>.min-nr-of-members config
*  Update documentation and make use of the roles in the examples
2013-03-18 11:56:11 +01:00
Viktor Klang
adfeb2c1f0 #2879 - updating copyright info 2013-01-09 11:38:00 +01:00
Patrik Nordwall
0d185e297d Check routees in a better way in ClusterRoundRobinRoutedActorSpec, see #2801 2012-12-21 15:03:29 +01:00
Patrik Nordwall
cba535c9b7 Hardening AdaptiveLoadBalancingRouterSpec, see #2547
* Problems with OOME for large heaps
* Create many small arrays instead of one large array
* Reduce half-life to get faster updates
2012-11-23 11:22:01 +01:00
Patrik Nordwall
5eec693fd0 Incorparate review feedback, see #2547
* case object and case class for MixMetricsSelector
* Rename decay-half-life-duration to moving-average-half-life
* Clarification of decay-half-life-duration and collect-interval
* Removed Fields, Java compatibility issue
* Adapt for-yield variables
* Comment metrics collector constructor that takes system param
* Don't copy EWMA if not needed
* LogOf2 constant 0.69315
* Don't use mapValues
* Remove RichInt conversion
* sigar version replace tag in docs
* createDeployer factory method to make it possible to override
  deployer in subclass
* Improve readability of MetricsListener (in sample)
* Better startup of factorial sample (no sleep)
* Many minor enhancements and cleanups
2012-11-16 11:03:20 +01:00
Patrik Nordwall
dcde7d3594 AdaptiveLoadBalancingRouter and more refactoring of metrics, see #2547
* Refactoring of standard metrics extractors and data structures
* Removed optional value in Metric, simplified a lot
* Configuration of EWMA by using half-life duration
* Renamed DataStream to EWMA
* Incorporate review feedback
* Use binarySearch for selecting weighted routees
* More metrics selectors for the router
* Removed network metrics, since not supported on linux
* Configuration of router
* Rename to AdaptiveLoadBalancingRouter
* Remove total cores metrics, since it's the same as jmx getAvailableProcessors,
  tested on intel 24 core server and amd 48 core server, and MBP
* API cleanup
* Java API additions
* Documentation of metrics and AdaptiveLoadBalancingRouter
* New cluster sample to illustrate metrics in the documentation,
  and play around with (factorial)
2012-11-14 15:08:30 +01:00
Patrik Nordwall
c9d206764a ClusterLoadBalancingRouter and refactoring of metrics, see #2547
* MetricsSelector, calculate capacity, weights and allocate weighted
  routee refs
* ClusterLoadBalancingRouterSpec
* Optional heap max
* Constants for the metric fields
* Refactoring of Metric and decay
* Rewrite of DataStreamSpec
* Correction of EWMA and removal of BigInt, BigDecimal
* Separation of MetricsCollector into trait and two classes,
  SigarMetricsCollector and JmxMetricsCollector
* This will reduce cost when sigar is not installed, such as
  avoiding throwing and catching exc for every call
* Improved error handling for loading sigar
* Made MetricsCollector implementation configurable
* Tested with sigar
2012-11-07 20:36:24 +01:00
Helena Edelson
f306964fca Initial work of adaptive metrics aware routers, see #2547 2012-11-07 18:18:38 +01:00
Roland
0f04239f67 move Duration classes according to scala 2.10 nightly and remove casts to FiniteDuration, see #2504 2012-10-11 15:18:10 -07:00
Patrik Nordwall
8476b2195c Mute expected log messages, see #2010 2012-10-01 20:12:36 +02:00
Patrik Nordwall
bc34adf624 Test consistent hashing router with cluster router, see #944
* Found and fixed issue with NoRouter which is used in the
  combination of FromConfig and cluster.enabled=true
* Multi-node test that tests several of the possible
  cominations
2012-09-20 12:35:03 +02:00
Patrik Nordwall
ac16d567ea Improvements based on review comments from √, see #2103 2012-09-11 19:11:20 +02:00
Patrik Nordwall
7cf6ab54c8 Deploy not needed for programatically defined cluster router, see #2103
* This also removes the need for the withClusterRouter sugar
* Improved the apply and constructors for ClusterRouterSettings, since
  that will be user api instead
2012-09-10 14:11:03 +02:00
Patrik Nordwall
f746115c4d Improve ClusterRouterSettings, see #2103
* It doesn't make sense to combine lookup with routeesPath with
  maxInstancesPerNode != 1
* Rename deploy-on-own-node as it can be used for lookup also
2012-09-08 17:30:42 +02:00
Patrik Nordwall
b400b0b818 Merge branch 'master' into wip-2103-cluster-routers-patriknw
Conflicts:
	akka-remote/src/main/scala/akka/routing/RemoteRouterConfig.scala
2012-09-07 16:57:49 +02:00
Patrik Nordwall
bf1781c173 Lookup of cluster routees, see #2103
* Lookup of routee on cluster member node using configured routees-path
2012-09-07 14:54:53 +02:00
Patrik Nordwall
d552e06a07 Add deploy-on-own-node setting for cluster router, see #2103
* Useful for master-worker scenario where all routees are remote.
2012-09-07 12:07:41 +02:00
Patrik Nordwall
c84e05a779 Organize imports, see #2103 2012-08-30 13:52:47 +02:00
Patrik Nordwall
e422d188c2 Use the router actor as cluster listener, see #2103
* Removed need for extra actor that subscribes to cluster
  events
* ClusterRouterActor is the router actor and aslo subscribes
* Less scary initialization, and safe calls to createRoutees
* Intercept ClusterDomainEvent to route them to ClusterRouterActor
  instead of to the routees
2012-08-30 12:13:50 +02:00
Patrik Nordwall
ba5df98740 Unregister routees living on removed node, see #2103 2012-08-30 10:54:58 +02:00
Patrik Nordwall
b22a092932 Support programatic declaration of cluster router, see #2103
* Ordinary withRouther withDeploy is TOO ugly for this
* Implicit conversion adds withClusterRouter to Props
  for Scala API
* Helper method in ClusterRouterPropsDecorator for Java API
2012-08-30 10:06:12 +02:00
Patrik Nordwall
695ce49727 Deploy to new members in cluster, see #2103
* Config max-nr-of-instances-per-node
* selectDeploymentTarget that takes max-nr-of-instances-per-node
  and nr-of-instances into account
* Deploy when new member added or removed
* Moved routeeProps to RouteeProvider constructor, needed for
  this feature, but also simplifies createRoute, createRoutee,
  and resize, since routeeProps doesn't have to be passed around.
2012-08-29 19:33:19 +02:00
Patrik Nordwall
f4cc8f8649 Make it more intuitive for tests using real Cluster(system) extension, see #2103
* We will write more tests that rely on real Cluster(system) extension,
  such as ClusterRoundRobinRoutedActorSpec
* When not using FailureDetectorStrategy or overriding seed nodes
  MultiNodeClusterSpec will use the real Cluster(system) extension
  instead of a new Cluster instance with additional test facilities
2012-08-28 16:38:05 +02:00
Patrik Nordwall
417bdc2dfb Prototype of cluster aware routers, see #2103
* Several FIXME that needs to be discussed
* ClusterRouterConfig created via ClusterActorRefProvider
2012-08-28 11:54:52 +02:00
Jonas Bonér
0fa184560c Moved Gossiper, FailureDetector and VectorClock (with tests) to the akka-cluster module. Deleted all old unused cluster code (ZooKeeper-based stuff).
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2012-01-31 13:34:06 +01:00
Viktor Klang
149fbea5a7 Updating Copyright as per #1660 2012-01-19 18:21:06 +01:00
Viktor Klang
bfd11ad8c5 Removing nodename 2012-01-17 15:25:26 +01:00
Viktor Klang
e959493e12 Enormous merge with master which probably led to the indirect unfortunate deaths of several kittens 2011-12-14 17:36:39 +01:00