Commit graph

1324 commits

Author SHA1 Message Date
Johan Andrén
c31f6b862f cluster apis for typed, #21226
* Cluster management (join, leave, etc)
* Cluster membership subscriptions (MemberUp, MemberRemoved, etc)
* New SelfUp and SelfRemoved events
* change signature of awaitAssert to return the value (not binary compatible)
* Cluster singleton api
2017-09-21 17:58:29 +02:00
Patrik Nordwall
4f8856f108 Merge pull request #23551 from akka/wip-23502-join-timeout-patriknw
Add timeout to abort joining of seed nodes, #23502
2017-09-11 16:41:35 +02:00
Patrik Nordwall
5cf698a2f6 Add timeout to abort joining of seed nodes, #23502 2017-09-11 15:56:25 +02:00
Patrik Nordwall
cb08535e7d use right youngest when moving to Up, #23582
* also confirm TakeOverFromMe when singleton already in oldest state
2017-09-04 16:02:23 +02:00
Patrik Nordwall
1e4e7cbba2 Merge pull request #23583 from akka/wip-multi-dc-merge-master-patriknw
merge wip-multi-dc-dev back to master
2017-09-01 17:08:28 +02:00
Patrik Nordwall
0ed5bc1835 add mima filters 2017-08-31 11:29:49 +02:00
Patrik Nordwall
6ed3295acd Merge branch 'master' into wip-multi-dc-merge-master-patriknw 2017-08-31 10:51:12 +02:00
Patrik Nordwall
6bfb7c9262 increase timeout in MultiDcSplitBrainSpec
* due to handshake timeout

reduce handshake timeout

fourth might generate UnreachableDataCenter in unsplit

MultiDcClusterSharding
2017-08-31 10:26:23 +02:00
Patrik Nordwall
dc75c4f818 Merge pull request #23531 from akka/wip-23369-NodeChurnSpec-patriknw
fix NodeChurnSpec tombstones, #23369
2017-08-28 09:17:32 +02:00
Patrik Nordwall
e3aada5016 Connect the dots for cross-dc reachability, #23377
* the crossDcFailureDetector was not connected to the reachability table
* additional test by listen for {Reachable/Unreachable}DataCenter events in split spec
* missing Java API for getUnreachableDataCenters in CurrentClusterState
2017-08-22 15:05:40 +02:00
Patrik Nordwall
659b28e4eb Missing become after CurrentClusterState in CrossDcHeartbeatSender, #23371
* and a few other small things
* one can see in the failed test log that there is no ACTIVE log line on the failing node
2017-08-22 14:10:45 +02:00
Johan Andrén
cff43a16f7 Data center reachability in cluster state (#23359)
* Manual case-declassing of CurrentClusterState #23347

* Unreachable data centers set in CurrentClusterState #23347
2017-08-22 13:04:39 +02:00
Patrik Nordwall
6753c1e624 Don't use WeaklyUp immediately, #23554
* see description in issue
2017-08-22 12:02:04 +02:00
Patrik Nordwall
699c78f959 fix NodeChurnSpec tombstones, #23369
* the gossip was growing because we introduced tombstones
* in this test it should be safe to have a short removal period
  of the tombstones
2017-08-15 16:05:36 +02:00
Sébastien Lorion
a95a94acff Replace ClusterRouterGroup/Pool "use-role" with "use-role-set" #23496 2017-08-09 16:06:18 +02:00
Jimin Hsieh
f623d10522 Rename addr to address in non-public API #21874 2017-08-08 13:18:56 +02:00
Martynas Mickevičius
bc0f2ee26d Load MiMa filters from file (#23083) 2017-07-27 12:33:14 +02:00
Johan Andrén
b86b10c477 Elminate race in MultiDcHeartbeatTakingOverSpec #23371 (#23373) 2017-07-19 11:48:27 +09:00
Konrad `ktoso` Malawski
c728098b3d
=clu,dc #23354 do not heartbeat to yourself (cross-dc) 2017-07-14 13:00:45 +09:00
Konrad `ktoso` Malawski
eb24033cc0 =clu,dc #23340 additional test to see a node take over monitoring of remote DC (#23342) 2017-07-13 12:50:28 +02:00
Martynas Mickevičius
73d3c5db5d DC reachability events #23245 2017-07-12 13:48:15 +01:00
Johan Andrén
9c7e8d027a Renamed/moved the self data center setting #23312 (#23344) 2017-07-12 11:47:32 +01:00
Johan Andrén
be5a0207bb Prune version clocks based on merged tombstones when merging #23318 2017-07-11 16:29:32 +01:00
Johan Andrén
a15e459922 Merging did not prune vector clocks for tombstoned nodes #23318 2017-07-10 13:01:06 +01:00
Johan Andrén
9f4da87840 =clu #23286 filter emitted reachability event by DC 2017-07-07 16:50:36 +01:00
Johan Andrén
3be504dd00 Unbreak MultiDcSunnyWeatherSpec #23310 2017-07-07 15:11:58 +01:00
Johan Andrén
c0d439eac3 limit cross dc gossip #23282 2017-07-07 13:19:10 +01:00
Konrad `ktoso` Malawski
b568975acc =clu #23229 multi-dc heartbeating, only N nodes perform monitoring 2017-07-07 12:17:41 +01:00
Johan Andrén
ab3efff3bd MultiDcSplitBrainSpec fixed #23288 2017-07-05 13:50:10 +02:00
Patrik Nordwall
867cc97bdd Refactoring of Gossip class, #23290
* move methods that depends on selfUniqueAddress and selfDc
  to a separate MembershipState class, which also holds the
  latest gossip
* this removes the need to pass in the parameters from everywhere and
  makes it easier to cache some results
* makes it clear that those parameters are always selfUniqueAddress
  and selfDc, instead of some arbitary node/dc
2017-07-05 08:47:32 +02:00
Patrik Nordwall
bb9549263e Rename team to data center, #23275 2017-07-04 17:11:21 +02:00
Patrik Nordwall
e0fe0bc49e Make cluster sharding DC aware, #23231
* Sharding only within own team (coordinator is singleton)
* the ddata Replicator used by Sharding must also be only within own team
* added support for Set of roles in ddata Replicator so that can be used
  by sharding to specify role + team
* Sharding proxy can route to sharding in another team
2017-07-04 15:04:43 +02:00
Patrik Nordwall
e37243f471 Merge pull request #23285 from jrudolph/jr/w/introduce-internal-reachability-event
Some additional Reachability comments / documentation
2017-07-04 14:55:32 +02:00
Arnout Engelen
58db22ca1e Introduce missing team role if necessary (#23276)
* Introduce missing team role if necessary (#23243)

When receiving gossip from a node that did not contain any team
information (such as gossip from a node running a previous version of
Akka), add the default team role during deserialization.

* Simpler implementation of adding default role

* More efficient `rolesFromProto`

Now actually outperforms the previous implementation. Still room for
improvement as this probably checks for duplicates in the set on each add,
but creating our own array-backed set here is probably going overboard :).

* Fixes following rebase
2017-07-04 14:52:03 +02:00
Johannes Rudolph
8fc21cb530 =clu fix Reachability.equals wrt versions 2017-07-04 12:58:31 +02:00
Johannes Rudolph
0251886111 =clu add comments for Reachability methods 2017-07-04 12:58:28 +02:00
Johan Andrén
164387a89e [WIP] one leader per cluster team (#23239)
* Guarantee no sneaky type puts more teams in the role list

* Leader per team and initial tests

* MiMa filters

* Second iteration (not working though)

* Verbose gossip logging etc.

* Gossip to team-nodes even if there is inter-team unreachability

* More work ...

* Marking removed nodes with tombstones in Gossip

* More test coverage for Gossip.remove

* Bug failing other multi-node tests squashed

* Multi-node test for team-split

* Review fixes - only prune tombstones on leader ticks

* Clean code is happy code.

* All I want is for MiMa to be my friend

* These constants are internal

* Making the formatting gods happy

* I used the wrong reachability for ignoring gossip :/

* Still hadn't quite gotten how reachability was supposed to work

* Review feedback applied

* Cross-team downing should still work

* Actually prune tombstones in the prune tombstones method ...

* Another round against reachability. Reachability leading with 15 - 2 so far.
2017-07-04 10:09:40 +02:00
Arnout Engelen
0115d5fdda Less abbreviations, more reliable test
(cherry picked from commit 61e289b276f410654c1b063c33648e0d7ea88e50)
2017-07-03 10:47:21 +02:00
Arnout Engelen
2f11ec6f25 Introduce cluster 'team' setting and add to Member
Introduced cluster-team.md so we can grow the documentation with each
PR, but did not add it to the ToC yet.

(cherry picked from commit a06badaa03fa9f3c9a942b1468090f758c74a869)
2017-07-03 10:47:14 +02:00
Patrik Nordwall
a7dc938188 Revert "Introduce cluster 'team' setting and add to Member"
This reverts commit a06badaa03fa9f3c9a942b1468090f758c74a869.
2017-07-03 10:44:36 +02:00
Patrik Nordwall
bd6afb8952 Revert "Less abbreviations, more reliable test"
This reverts commit 61e289b276f410654c1b063c33648e0d7ea88e50.
2017-07-03 10:44:24 +02:00
Arnout Engelen
9f78cd12c4 Introduce cluster 'team' setting and add to Member (#23234)
* Introduce cluster 'team' setting and add to Member

Introduced cluster-team.md so we can grow the documentation with each
PR, but did not add it to the ToC yet.

* Less abbreviations, more reliable test
2017-06-26 16:28:06 +02:00
Patrik Nordwall
edef9e34c7 serialize-creators=off in tests, #23003 2017-05-22 20:11:03 +02:00
Nafer Sanabria
ef76af7add =cls add logging info on seed node joining (#22724)
* =cls add logging info on seed node joining

* adjust message
2017-05-19 14:20:29 +02:00
Philippus Baalman
ef9c7313b6 Extend copyright into 2017 (#22833) 2017-05-04 15:14:33 +02:00
Patrik Nordwall
8e57304c7d update to Aeron 1.2.5, and fix the SharedMediaDriverSupport 2017-04-18 15:16:01 +02:00
Patrik Nordwall
3b53daa370 Revert "update to Aeron 1.2.4, and fix the SharedMediaDriverSupport, #22693"
This reverts commit 3d0d50e98b.
2017-04-12 07:38:02 +02:00
Patrik Nordwall
41c756f169 properly shutdown ArteryTransport using CoordinatedShutdown, #22671 (#22698)
* properly shutdown ArteryTransport using CoordinatedShutdown, #22671

* The shutdownHook changed hasBeenShutdown flag to true, and then when
  the transport.shutdown was invoked the shutdown sequence was ignored
  until it was too late, ActorSystem already terminated.
* Also improved the cluster shutdown tasks when the cluster node had not
  joined

* CoordinatedShutdownLeave explicit events
2017-04-11 21:48:51 +02:00
Patrik Nordwall
3d0d50e98b update to Aeron 1.2.4, and fix the SharedMediaDriverSupport, #22693
* SharedMediaDriverSupport failed with NPE with Aeron 1.2.4, and
  concludeAeronDirectory solves that
2017-04-11 18:30:18 +02:00
Hawstein
6434cbe868 Re-implement javadsl testkit (#22240)
* re-implement javadsl testkit

* fix mima problem

* rebase master

* move ImplicitSender/DefaultTimeout to scaladsl

* undo the change of moving scala api

* fix return type and add doc

* resolve conflicts and add more comments
2017-03-16 20:02:47 +01:00