Commit graph

274 commits

Author SHA1 Message Date
Patrik Nordwall
cc66daad48 =clu #3600 Disable Cluster assertInvariants checks by default
* asserts can be enabled by system property 'akka.cluster.assert=on'
2013-09-11 15:11:01 +02:00
Patrik Nordwall
621c4ed0f1 =clu:3152 Improve scaladoc of cluster 2013-07-08 14:29:57 +02:00
Patrik Nordwall
30d34e20bf Make Make Cluster.joinSeedNodes public, see #3468 2013-06-24 12:15:22 +02:00
Roland
92db59183e make LocalScope mean “purely local” and avoid Props serialization check, see #3210 2013-05-29 23:36:39 +02:00
Patrik Nordwall
18a3b3facf Config of cluster info logging, see #3225 2013-05-23 13:36:35 +02:00
Endre Sándor Varga
fd4bc09035 EventStream is now passed to failure detectors
- Also, dynamic loading is now centralized (DRY)
2013-05-17 16:35:27 +02:00
dario.rexin
3e8597d94b more deprecation warnings removed 2013-04-26 13:54:10 +02:00
Patrik Nordwall
9e56ab6fe5 Disallow re-joining, see #2873
* Disallow join requests when already part of a cluster
* Remove wipe state when joining, since join can only be
  performed from empty state
* When trying to join, only accept gossip from that member
* Ignore gossips from unknown (and unreachable) members
* Make sure received gossip contains selfAddress
* Test join of fresh node with same host:port
* Remove JoinTwoClustersSpec
* Welcome message as reply to Join
* Retry unsucessful join request
* AddressUidExtension
* Uid in cluster Member identifier
  To be able to distinguish nodes with same host:port
  after restart.
* Ignore gossip with wrong uid
* Renamed Remove command to Shutdown
* Use uid in vclock identifier
* Update sample, Member apply is private
* Disabled config duration syntax and cleanup of io settings
* Update documentation
2013-04-17 16:48:18 +02:00
Viktor Klang
dddc3a6630 #3203 - deprecating HashedWheelTimer 2013-04-07 20:07:26 +02:00
Patrik Nordwall
08d2dec785 Shutdown/cleanup cluster extension if actor init fails, see #3162
* Stop ClusterDaemon if init of core actor fails.
* Activate jmx-enabled setting
* Adjust the err msg of InvalidActorNameException to match conventions
2013-03-19 17:36:36 +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
Patrik Nordwall
d72d48301a Joining member should not be leader, see #3021
* Prefer members with status Up or Leaving, and as
  fallback use Joining, Exiting, Down
* Minor scaladoc fixes
2013-03-07 14:07:17 +01:00
Roland
bcfbea42c1 fix formatting of Java API in doc comments + genjavadoc 0.3 2013-03-07 09:05:55 +01:00
Patrik Nordwall
f706156fd7 Create cluster scheduler from configured scheduler class, see #3034 2013-02-13 15:37:27 +01:00
Patrik Nordwall
157a25bcde Failure detector refactoring, see #2690
* Failure detector was previously copied with refactoring to
  akka-remote and this refactoring makes use of that and removes
  the failure detector in akka-cluster
* Adjustments to reference.conf
* Refactoring of FailureDetectorPuppet
2013-02-01 10:08:39 +01:00
Viktor Klang
e519e3dc3b #2986 - Changing ActorContext and ActorRefFactory's dispatcher to return ExecutionContext 2013-01-31 15:41:31 +01:00
Roland
5dacfaeb38 fix-up Cluster’s complaint for too slow Scheduler, see #2904 2013-01-24 13:43:40 +01:00
Roland Kuhn
7066b37077 Merge pull request #1027 from akka/wip-2904-timer-∂π
first cut of new AkkaTimer, see #2904
2013-01-23 11:06:41 -08:00
Roland
8dea20a1f1 LightArrayRevolverScheduler, see #2904
- based on a wheel (AtomicReferenceArray) from which atomic
  single-linked lists dangle
- no locks
- deterministic tests due to overridable time source
- also bring docs up to date
2013-01-23 19:57:44 +01:00
Patrik Nordwall
8b4e903e7d Detect failure when no heartbeats sent, see #2907
* Subscribe to InstantMemberEvent and start heartbeating when
  InstantMemberUp. Same for metrics.
* HeartbeatNodeRing data structure for bidirectional mapping of
  heartbeat sender and receiver. Not using ConsistentHash anymore.
  Node addresses are hashed to ensure that neighbors are spread out.
* HeartbeatRequest when receiver detects that it has not received
  expected heartbeats.
* New test InitialHeartbeatSpec that simulates the problem
* Add/remove some related conf properties
* Add some more logging to be able to diagnose eventual problems
* Explicit config of nr-of-end-heartbeats
2013-01-18 12:54:09 +01:00
Viktor Klang
adfeb2c1f0 #2879 - updating copyright info 2013-01-09 11:38:00 +01:00
Endre Sándor Varga
55be17419e Merge branch 'master' into wip-2053d-actorbased-remote-drewhk
Conflicts:
	akka-docs/rst/java/code/docs/serialization/SerializationDocTestBase.java
	akka-docs/rst/scala/code/docs/serialization/SerializationDocSpec.scala
	akka-remote-tests/src/main/scala/akka/remote/testconductor/NetworkFailureInjector.scala
	akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala
2012-12-18 15:15:01 +01:00
Viktor Klang
978c86339f #2721 - Adding implicit sender to Scheduler + tests 2012-12-18 10:25:48 +01:00
Patrik Nordwall
c325877c6a Merge pull request #936 from akka/wip-2306-min-nodes-startup-patriknw
min-nr-of-members and registerOnMemberUp, see #2306
2012-12-14 01:36:41 -08:00
Patrik Nordwall
44ab9f116f min-nr-of-members and registerOnMemberUp, see #2306
* Leader moves joining members to up when min-nr-of-members reached
* Tested by MinMembersBeforeUpSpec
* Used in factorial sample
* Docs
2012-12-12 14:00:06 +01:00
Roland
6450831e01 #2778 - make thread names unique per system
The MonitorableThreadFactory.copy method does not take into account the
counter:AtomicLong field, which then always starts out at zero for every
new dispatcher; the PinnedDispatcher creates one dispatcher per actor,
hence resulting in identical thread names if used by multiple actors.
Solution: add the counter to the case class’ arguments
2012-12-06 22:58:43 +01:00
Patrik Nordwall
1df787d0c5 Incorporate review comments and cleanup isAvailable, see #2018
* Renamed isRunning to isTerminated (with negation of course)
* Removed Running from JMX API, since the mbean is deregistered anyway
* Cleanup isAvailable, isUnavailbe
* Misc minor
2012-12-06 15:26:57 +01:00
Endre Sándor Varga
682abccf7e Added defaultAddress() to RemoteTransport API 2012-11-21 14:18:24 +01:00
Endre Sándor Varga
0f0c5cb17a Merge branch 'master' into wip-2053d-actorbased-remote-drewhk 2012-11-21 12:04:14 +01:00
Patrik Nordwall
1914be7069 Merge branch 'master' into wip-2547-metrics-router-patriknw
Conflicts:
	akka-actor/src/main/scala/akka/actor/Deployer.scala
	akka-cluster/src/main/scala/akka/cluster/ClusterMetricsCollector.scala
	akka-cluster/src/test/scala/akka/cluster/MetricsCollectorSpec.scala
2012-11-15 12:33:11 +01:00
Viktor Klang
8f131c680f Switching to immutable.Seq instead of Seq 2012-11-12 14:17:47 +01:00
Endre Sándor Varga
5f9253b79e New Remoting implementation (iteration 3) #2053
- Asynchronous lockless remoting
 - Pluggable transport drivers
 - Multiple transport support
 - Simplified lifecycle events
 - Support for netty based TCP, SSL+TCP and UDP support
 - Updated Akka protocol with soft-state connections and failure detection
 - Refactored failure detectors (currently duplicated from cluster)
2012-10-29 16:32:15 +01:00
Roland
bff79c2f94 Merge remote-tracking branch 'origin/master' into wip-2.10.0-RC1-∂π
- currently cheating: uses zeroMQ artifacts for scala 2.10M7
- fixed a bunch of more wrong references to scala.concurrent.util
2012-10-15 16:18:52 +02: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
3f73705abc Use consistent hash to heartbeat to a few nodes instead of all, see #2284
* Previously heartbeat messages was sent to all other members, i.e.
  each member was monitored by all other members in the cluster.
* This was the number one know scalability bottleneck, due to the
  number of interconnections.
* Limit sending of heartbeats to a few (5) members. Select and
  re-balance with consistent hashing algorithm when new members
  are added or removed.
* Send a few EndHeartbeat when ending send of Heartbeat messages.
2012-10-08 08:41:28 +02:00
Patrik Nordwall
51ff9ce6d1 Cluster.unsubscribe with class parameter, see #2567 2012-09-28 13:09:36 +02:00
Patrik Nordwall
9423d37da9 Merge branch 'master' into wip-cluster-docs-patriknw
Conflicts:
	project/AkkaBuild.scala
2012-09-20 10:40:08 +02:00
Patrik Nordwall
068335789c Cluster config setting to disable jmx, see #2531 2012-09-20 08:09:01 +02:00
Roland
947cea3a8c more conversion to FiniteDuration, plus fix the build, see #2521
- also remove resetReceiveTimeout and change receiveTimeout() to return
  a Duration (which may be Undefined)
- also move akka.actor.{cell -> dungeon}, because that is
  + an adequate name
  + and does not coincide with the lowercase version of a class name
2012-09-18 18:17:44 +02:00
Roland
35b7a9e338 second round of FiniteDuration business, including cluster fixes
- make Scheduler only accept FiniteDuration, which has quite some
  knock-on effects
2012-09-18 09:58:30 +02:00
Patrik Nordwall
50d0efe7d4 Request send/publish of CurrentClusterState, see #2438
* Added publishCurrentClusterState and sendCurrentClusterState
* Removed Ping/Pong that was used for some tests, since awaitCond is
  now needed anyway, since publish to eventStream is done afterwards
2012-09-12 09:23:02 +02:00
Patrik Nordwall
ac16d567ea Improvements based on review comments from √, see #2103 2012-09-11 19:11:20 +02:00
Patrik Nordwall
018a949678 Merge branch 'master' into wip-2103-cluster-routers-patriknw
Conflicts:
	akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUnreachableSpec.scala
	akka-cluster/src/multi-jvm/scala/akka/cluster/ClientDowningNodeThatIsUpSpec.scala
	akka-cluster/src/multi-jvm/scala/akka/cluster/ConvergenceSpec.scala
	akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderDowningNodeThatIsUnreachableSpec.scala
	akka-cluster/src/multi-jvm/scala/akka/cluster/LeaderElectionSpec.scala
	akka-cluster/src/multi-jvm/scala/akka/cluster/MultiNodeClusterSpec.scala
	akka-cluster/src/multi-jvm/scala/akka/cluster/SingletonClusterSpec.scala
	akka-cluster/src/multi-jvm/scala/akka/cluster/SplitBrainSpec.scala
	akka-cluster/src/multi-jvm/scala/akka/cluster/UnreachableNodeRejoinsClusterSpec.scala
	akka-cluster/src/test/scala/akka/cluster/ClusterSpec.scala
	akka-remote/src/main/scala/akka/routing/RemoteRouterConfig.scala
2012-09-11 10:55:47 +02:00
Patrik Nordwall
83e7f5d6d6 Incorparate review comments, see #2473
* Also added ClusterSettings in constructor of ClusterDaemon,
  because that will be needed to decide if the metrics actor is
  to be started
2012-09-07 17:42:15 +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
6dd0d736f7 Merge branch 'master' into wip-2473-npe-subscribe-patriknw
Conflicts:
	akka-cluster/src/main/scala/akka/cluster/Cluster.scala
2012-09-06 22:02:23 +02:00
Patrik Nordwall
bd6c39178c Fix leaking this in constructor of Cluster, see #2473
* Major refactoring to remove the need to use special
  Cluster instance for testing. Use default Cluster
  extension instead. Most of it is trivial changes.
* Used failure-detector.implementation-class from config
  to swap to Puppet
* Removed FailureDetectorStrategy, since it doesn't add any value
* Added Cluster.joinSeedNodes to be able to test seedNodes when Addresses
  are unknown before startup time.
* Removed ClusterEnvironment that was passed around among the actors,
  instead they use the ordinary Cluster extension.
* Overall much cleaner design
2012-09-06 21:48:40 +02:00
Patrik Nordwall
806b5efcdf Fix NPE due to initialization order, see #2473 2012-09-06 10:04:52 +02:00
Viktor Klang
4eee04cb60 #2469 - Switching to scala.util.Try instead of Either[Throwable, T] in the codebase 2012-09-06 03:17:51 +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