Commit graph

221 commits

Author SHA1 Message Date
Patrik Nordwall
bc4d8fc7c5 Remove ClusterEventBus and system.eventStream, see #2202 2012-08-14 15:33:34 +02:00
Patrik Nordwall
e38dd80f38 Publish cluster changes to event bus, see #2202
* ClusterEventBus
* Removed register listener and related
* Removed Gossip.meta because it doesn't handle version conflicts
2012-08-14 11:03:30 +02:00
Viktor Klang
9d097bcf50 Making it possible/mandatory to signal which ExecutionContext will actually execute something scheduled 2012-08-08 15:57:30 +02:00
Viktor Klang
ac5b5de90a Merging in master, huge work trying to get things to compile, tests not green at this stage 2012-07-06 17:04:04 +02:00
Patrik Nordwall
01ee8e8fbf Separate Cluster to several files, see #2311
* Introduced ClusterEnvironment trait to make it easier to test
  the actors without using the extension
* Incorparate more feedback from review
2012-07-05 13:57:44 +02:00
Patrik Nordwall
20a1e67575 Incorparate feedback from review, see #2311 2012-07-05 12:23:15 +02:00
Patrik Nordwall
17f0ce9f89 Add back Cluster JMX, see 2311
* Separate class
* Simple test
2012-07-05 11:57:59 +02:00
Patrik Nordwall
ce9f530c32 Fix bug in convergence, see #2317 2012-07-05 10:53:18 +02:00
Patrik Nordwall
37826533d3 Fix race in UnreachableNodeRejoinsClusterSpec 2012-07-05 09:50:58 +02:00
Patrik Nordwall
6aa5f93f6e Make Cluster ready for use before constructor returns, #2311 2012-07-05 07:56:51 +02:00
Patrik Nordwall
c1d12550a4 Fix bugs, see #2311 2012-07-04 16:09:01 +02:00
Patrik Nordwall
fbeb6017cc Remove gossip to deputy nodes, see #2310 2012-07-04 14:39:27 +02:00
Patrik Nordwall
c708d2ad8a First step in refactoring of cluster internals to actors, see #2311
* Move clustering code to ClusterCore actor
* More will be done, comitting this for early review
2012-07-04 13:52:14 +02:00
Patrik Nordwall
1ccb9fe7ec Note about URLEncode instead of MD5, see #2290 2012-07-04 11:58:51 +02:00
Patrik Nordwall
e5979bc31c Gossip merge in large cluster, #2290
* Trying to simultaneously resolving conflicts at several nodes creates new conflicts.
  Therefore the leader resolves conflicts to limit divergence. To avoid overload there
  is also a configurable rate limit of how many conflicts that are handled by second.
* Netty blocks when sending to broken connections. ClusterHeartbeatSender actor
  isolates sending to different nodes by using child workers for each target
  address and thereby reduce the risk of irregular heartbeats to healty
  nodes due to broken connections to other nodes.
2012-07-02 23:00:41 +02:00
Patrik Nordwall
c09caebe8a Small refactoring of cluster actors
* Separate actor for heartbeats, so they are more isolated from gossip
  messages
* Configuration property for dispatcher to use for the cluster actors
2012-07-02 23:00:41 +02:00
Viktor Klang
8ede1f55e9 Moving to s.c.EC and s.c.A, compiles but tests aren't passing 2012-06-29 16:40:36 +02:00
Viktor Klang
e62a0eee1c Merge with master 2012-06-29 16:07:36 +02:00
Viktor Klang
54a3a44bf8 #2292 - Removing akka.util.Duration etc and replace it with scala.concurrent.util.Duration 2012-06-29 13:33:20 +02:00
Björn Antonsson
675dfd9182 Keep the cluster node membership change listeners when joining. 2012-06-29 13:24:46 +02:00
Björn Antonsson
6ad96c2579 Review changes 2012-06-29 13:24:46 +02:00
Björn Antonsson
574ff26bb4 Support for re-JOINING a node that have been DOWN. See #1908 2012-06-29 13:24:46 +02:00
Patrik Nordwall
d47ff04c03 Moved GossipDifferentViewProbability to config, see #2253 2012-06-29 08:56:58 +02:00
Viktor Klang
dec7824de8 Merge branch 'master' into wip-scala210M4-√ 2012-06-28 15:55:47 +02:00
Patrik Nordwall
2da1a912fe Improve efficiency of gossip, see #2193 and #2253
* Essentially as already described in cluster specification,
  but now fully implemented and tested with LargeClusterSpec
* Gossip to nodes with different view (using seen table)
  with certain probability
* Gossip chat, gossip back to sender
* Immediate gossip to joining node
* Updated some tests to reflect current implementation
2012-06-28 11:41:48 +02:00
Patrik Nordwall
aca66de732 Test gossip in large cluster, see #2239 2012-06-28 11:41:28 +02:00
Viktor Klang
702b5d9c19 Switching to the embedded jsr166y in scala.concurrent and dropping akka.jsr166y 2012-06-26 18:19:55 +02:00
Patrik Nordwall
aed78f702b Workaround for SI-5986, see #2275
* Add new operators :+ and :++ by implicit conversion
* Unfortunately this means that we must remember to use
  these until SI-5986 is fixed. Is there a better way?
2012-06-26 18:19:33 +02:00
Patrik Nordwall
25996bf284 Join seed nodes before becoming singleton cluster, see #2267
* self is initially not member (in gossip state)
* if the join to seed nodes timeout it joins itself, and becomes
  singleton cluster
* remove the special case handling of singelton cluster in gossip
  merge, since singleton cluster is not the normal state when joining
  any more
2012-06-25 21:34:14 +02:00
Patrik Nordwall
2cd38e2004 Merge branch 'master' into wip-2263-gossip-unreachable-patriknw
Conflicts:
	akka-cluster/src/main/scala/akka/cluster/Cluster.scala
2012-06-25 20:59:50 +02:00
Patrik Nordwall
97bf8c4bb5 Cleanup of comments, see #2263 2012-06-25 20:46:48 +02:00
Patrik Nordwall
20fc0c42a2 Merge branch 'master' into wip-2219-seed-nodes-patriknw
Conflicts:
	akka-cluster/src/main/scala/akka/cluster/AccrualFailureDetector.scala
	akka-cluster/src/main/scala/akka/cluster/ClusterSettings.scala
2012-06-25 20:40:06 +02:00
Patrik Nordwall
738565883b Add join-seed-node-timeout config, see #2219 2012-06-25 20:20:11 +02:00
Patrik Nordwall
cba64403a7 Don't gossip to unreachable, see #2263
* Also, ignore gossip from unreachable, see #2264
* Update gossip protocol in cluster doc
2012-06-25 15:23:15 +02:00
patriknw
555998b2c1 Merge pull request #553 from akka/wip-2249-heartbeats-after-join-patriknw
Start sending heartbeats immediately when joining, see #2249
2012-06-25 01:26:18 -07:00
patriknw
24e49b1024 Merge pull request #551 from akka/wip-2250-singleton-cluster-merge-patriknw
Avoid gossip merge when singleton cluster, see #2250
2012-06-25 01:25:14 -07:00
Patrik Nordwall
42078e7083 Reintroduce 'seed' nodes, see #2219
* Implement the join to seed nodes process
  When a new node is started started it sends a message to all
  seed nodes and then sends join command to the one that answers
  first.
* Configuration of seed-nodes and auto-join
* New JoinSeedNodeSpec that verifies the auto join to seed nodes
* In tests seed nodes are configured by overriding seedNodes
  function, since addresses are not known before start
* Deputy nodes are the live members of the seed nodes (not sure if
  that will be the final solution, see ticket 2252
* Updated cluster.rst with latest info about deputy and seed nodes
2012-06-21 11:05:02 +02:00
Viktor Klang
9b73d75c1b Removing the naught default in code of the failure detector and changed so that the AccrualFailureDetectors constructor matches what the instantiator expects 2012-06-20 14:14:10 +02:00
Patrik Nordwall
529c25f3dc Start sending heartbeats immediately when joining, see #2249
* Keep track of joins that are in progress in State.joinInProgress,
  with Deadline
* Add test that fails without this feature
2012-06-20 13:20:28 +02:00
Patrik Nordwall
dccb0ca2d7 Avoid gossip merge when singleton cluster, see #2250 2012-06-20 11:37:13 +02:00
Jonas Bonér
d38aa2ed9c Added ScalaDoc about the Leaving, Exiting and Removed states 2012-06-19 20:11:54 +02:00
Jonas Bonér
9011c310e1 Minor cleanup.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2012-06-19 14:27:12 +02:00
Jonas Bonér
fd54a93135 Added ScalaDoc on 'def status: MemberStatus' describing the MemberStatus.Removed semantics.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2012-06-19 14:21:56 +02:00
Jonas Bonér
49586bd01d Change Member ordering so it sorts members by host and port with the exception that it puts all members that are in MemberStatus.EXITING last.
To fix LEADER leaving and allow handoff to new leader before moving old leader from EXITING -> REMOVED.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2012-06-18 15:25:17 +02:00
Jonas Bonér
8b6652a794 Fixed all issues from review. In particular fully separated state transformation and preparation for side-effecting processing.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2012-06-18 13:53:49 +02:00
Jonas Bonér
6d96d04234 Merge branch 'master' into wip-2162-redesign-of-management-of-the-exiting-to-removed-life-cycle-jboner 2012-06-16 00:18:26 +02:00
Jonas Bonér
469fcd8305 Redesign of life-cycle management of EXITING -> REMOVED. Fixes #2177.
- Removed REMOVED as explicit valid member state
- Implemented leader moving either itself or other member from EXITING -> REMOVED
- Added sending Remove message for removed node to shut down itself
- Fixed a few bugs
- Removed 'remove' from Cluster and JMX interface
- Added bunch of ScalaDoc
- Added isRunning method

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2012-06-16 00:00:19 +02:00
Patrik Nordwall
08c47591c0 Use max of periodic-tasks-initial-delay and the interval 2012-06-15 13:35:52 +02:00
Patrik Nordwall
f7a01505ba Correction of gossip merge when joining, see #2204
The problem:
* Node that is Up joins a cluster and becomes Joining in that cluster
* The joining node receives gossip, which results in conflict,
  merge results in Up
* It became Up in the new cluster without passing the ordinary leader
  action to move it to Up

The solution:
* Change priority order of Up and Joining so that Joining is used when
  merging
2012-06-15 13:35:52 +02:00
Jonas Bonér
f74c96b424 Merged with master 2012-06-14 16:21:03 +02:00