Commit graph

13474 commits

Author SHA1 Message Date
Patrik Nordwall
5a240badae Merge pull request #1740 from akka/wip-3608-simplify-merge-reachability-patriknw
=clu #3608 Simplify Reachability merge
2013-09-27 05:43:06 -07:00
Patrik Nordwall
cb42bf0785 +clu #3612 Allow join to uninitialized node
* join to self not needed when performing manual joining
2013-09-27 14:40:09 +02:00
Patrik Nordwall
d5b25cbbc6 !act #3583 Timer based auto-down
* Replace (deprecate) akka.cluster.auto-down config setting with
  akka.cluster.auto-down-unreachable-after
* AutoDown actor that keeps track of unreachable members
  and performs down from the leader node when they have been
  unreachable for the specified duration
* Migration guide
2013-09-27 14:32:03 +02:00
Mathias
655e9e3300 =doc #3581 Add "Writing to a connection" section to IO docs 2013-09-26 12:19:33 +02:00
Mathias
85c771d731 !act #3581 Add Tcp.CompoundWrite, some cleanup
Moves `def ack: Event` and `def wantsAck: Boolean` from the `Tcp.WriteCommand` type down to the newly introduced `Tcp.CompactWriteCommand`, which breaks existing code depending on these.
Additionally `Tcp.WriteCommand` now has a few additional methods (`+:`, `++:`, prepend) and a companion object.
2013-09-26 12:19:28 +02:00
Patrik Nordwall
c55189f615 Merge pull request #1719 from akka/wip-3597-cluster-singleton-hand-over-patriknw
!con #3597 Remove hand over data message in cluster singleton
2013-09-25 02:54:06 -07:00
Patrik Nordwall
49d77976af Merge pull request #1742 from eligosource/wip-3618-cleanup-lifecycle-hooks-krasserm
!per #3618 Cleanup duplication of life cycle hooks in Processor
2013-09-21 08:06:17 -07:00
drewhk
fe7eff9009 Merge pull request #1737 from drewhk/wip-3606-resend-unfulfillable-drewhk
=rem #3606 Properly reset system message buffer between remote sys restarts
2013-09-20 02:35:57 -07:00
Björn Antonsson
62d2c17268 =pro,doc Update sbt-multi-jvm plugin to 0.3.8 and add sbt 0.13 docs 2013-09-20 09:59:12 +02:00
Björn Antonsson
3721072153 Merge pull request #1733 from akka/wip-3416-change-cluster-to-plain-protobuf-ban
!clu #3416 Use plain protobuf and protoc
2013-09-19 06:45:14 -07:00
Björn Antonsson
47a8affb25 !clu #3416 Use plain protobuf and protoc
* Use the protobuf task to generate code for the cluster messages
* Convert the serializer to use plain protobuf instead of scalabuff
2013-09-19 14:46:14 +02:00
Patrik Nordwall
47c53ae993 Merge pull request #1739 from akka/wip-3616-ClusterClientSpec-patriknw
=con #3616 Fix failing ClusterClientSpec
2013-09-19 04:43:55 -07:00
Martin Krasser
6c78629cdb !per #3618 Cleanup duplication of life cycle hooks in Processor
- introduce around life cycle hooks for symmetry with aroundReceive
 - no custom processor-specific life cycle hooks needed any more
 - preStart and preRestart can be overridden with empty implementation
    (interceptors ensure that super.preXxx calls are still executed)
 - all around life cycle hooks can be final
 - standard life cycle hooks are non-final to preserve composability with existing traits (FSM, ...)
2013-09-18 14:41:38 +02:00
Endre Sándor Varga
9fcae8ae5e =rem #3606 Properly reset system message buffer between remote sys restarts 2013-09-18 14:16:10 +02:00
Patrik Nordwall
d0684c2f7e Merge pull request #1736 from eligosource/wip-3615-fix-invalid-actor-name
#3615 InvalidActorNameException in persistence tests fixed
2013-09-18 04:09:17 -07:00
Martin Krasser
5da888548b =per #3615 Fix InvalidActorNameException in persistence tests
- use overridden processor and channel ids
- no need anymore to wait for processor instances to stop
- unrelated: fix wrong artifact names in documentation
2013-09-18 11:56:14 +02:00
Patrik Nordwall
5e1913cac2 =clu #3533 Harden cluster startup error handling 2013-09-17 16:52:08 +02:00
Patrik Nordwall
d9eda5fbfa =clu #3608 Simplify Reachability merge
* No need to merge the individual rows for one observer, simply pick
  the rows from the observer with highest version
2013-09-17 15:50:37 +02:00
Patrik Nordwall
debc0ea5f7 =con #3616 Fix failing ClusterClientSpec
* client connected to fourth node, but the replication check didn't
  include that node
2013-09-17 14:52:33 +02:00
Patrik Nordwall
6246099694 Merge pull request #1722 from akka/wip-3599-vclock-counter-patriknw
!clu #3599 Use counter in VectorClock
2013-09-17 04:37:54 -07:00
Patrik Nordwall
2a7d12701b Merge pull request #1726 from akka/wip-3498-optimize-heartbeat-sender-patriknw
=clu #3498 Optimize ClusterHeartbeatSender
2013-09-17 01:35:53 -07:00
Patrik Nordwall
9abf5bc4bd Merge pull request #1731 from akka/wip-3603-ClientDowningNodeThatIsUnreachableSpec-patriknw
=clu #3603 Handle removed member in Gossip and Reachability merge
2013-09-16 04:08:06 -07:00
Björn Antonsson
148ce86014 Merge pull request #1717 from akka/wip-3593-some-changes-to-tell-throughput-microbenchmark-ban
=act #3593 Turn of serialize-messages and make receive polymorphic
2013-09-16 02:20:20 -07:00
Roland Kuhn
8fa3878d67 Merge pull request #1700 from eligosource/wip-3574-akka-persistence-prototype-krasserm
akka-persistence prototype
2013-09-14 05:34:13 -07:00
Martin Krasser
cdeea924ff akka-persistence prototype
The most prominent changes compared to eventsourced are:

- No central processor and channel registry any more
- Auto-recovery of processors on start and restart (can be disabled)
- Recovery of processor networks doesn't require coordination
- Explicit channel activation not needed any more
- Message sequence numbers generated per processor (no gaps)
- Sender references are journaled along with messages
- Processors can determine their recovery status
- No custom API on extension object, only messages
- Journal created by extension from config, not by application
- Applications only interact with processors and channels via messages
- Internal design prepared for having processor-specific journal actors (for later optimization possibilities)

Further additions and changes during review:

- Allow processor implementation classes to use inherited stash
- Channel support to resolve (potentially invalid) sender references
- Logical intead of physical deletion of messages
- Pinned dispatcher for LevelDB journal
- Processor can handle failures during recovery
- Message renamed to Persistent

This prototype has the following limitations:

- Serialization of persistent messages and their payload via JavaSerializer only (will be configurable later)
- The LevelDB journal implementation based on a LevelDB Java port, not the native LevelDB (will be configurable later)

The following features will be added later using separate tickets:

- Snapshot-based recovery
- Reliable channels
- Journal plugin API
- Optimizations
- ...
2013-09-14 14:19:38 +02:00
Patrik Nordwall
0826689c47 =clu #3603 Handle removed member in Gossip and Reachability merge
* It was a regression introduced in dc9fe4f
* Two problems:
  1) Gossip merge could pop back removed member (was previously
     covered by the filter of unreachable)
  2) Reachability merge didn't handle all cases for removed member,
     i.e. when node not in allowed set
2013-09-13 17:18:27 +02:00
Patrik Nordwall
1187fecfcc Merge pull request #1723 from akka/wip-3600-disable-assertInvariants-patriknw
=clu #3600 Disable Cluster assertInvariants checks by default
2013-09-13 08:13:10 -07:00
Patrik Nordwall
bd4d1d775f !clu #3599 Use counter in VectorClock
* No reason to use the System.currentTimeMillis base
* Remove the global VectorClock counter completely,
  current count for a node is in the VectorClock itself
2013-09-13 16:37:46 +02:00
Patrik Nordwall
c51df6658d Merge pull request #1716 from akka/wip-3595-cluster-client-remote-death-watch-patriknw
+con #3595 Use remote death watch in cluster client
2013-09-13 07:32:03 -07:00
Patrik Nordwall
bc55cac899 +con #3595 Use remote death watch in cluster client 2013-09-13 13:19:48 +02:00
Patrik Nordwall
bb25f7dd94 Merge pull request #1714 from akka/wip-3551-buffer-cluster-client-patriknw
+con #3551 Buffer messages in cluster client
2013-09-13 03:49:04 -07:00
Björn Antonsson
91862f6d86 Merge pull request #1724 from akka/wip-3154-upgrade-to-protobuf-2.5.0-ban
!rem, clu, mul #3154 Upgrade protobuf to 2.5.0 and add an SBT task
2013-09-13 02:22:03 -07:00
Luc Perkins
b46ea4ab0d small spelling fix 2013-09-12 13:16:52 -07:00
Patrik Nordwall
ea9d2441d2 Merge pull request #1730 from akka/wip-3578-aggregator-master-patriknw
+con #3578 Aggregator contribution (forward port)
2013-09-12 06:52:36 -07:00
Björn Antonsson
0991d476bd Merge pull request #1718 from akka/wip-upgrade-osgi-aries-ban
!osg Updating Aries dependencies
2013-09-12 06:07:43 -07:00
Akara Sucharitakul
c6c632176b +con #3578 Aggregator contribution
(cherry picked from commit ea3d9fd8a188bc5534f31ca0ba57751d01be3b66)
2013-09-12 13:31:20 +02:00
Johannes Rudolph
1a67e937c7 =act #3602 report Connected only when connection attempt was successful
Before this change, a client connection was always instantly reported as
`Connected`, even if the endpoint would never respond at all.

The reason is a weird behavior of OP_CONNECT and SocketChannel in the
JDK (observed in Linux):
 - a channel is always connectable before the connection is attempted
   (`channel.connect`). Selecting for OP_CONNECT before the `connect`
   call will instantly report connectable
 - even worse: after OP_CONNECT was reported true, also `finishConnect`
   will always return true, even if the connection wasn't yet established.
   That's probably the case because `finishConnect` is internally implemented
   depending on previous epoll results (on Linux).
2013-09-12 11:31:06 +02:00
Björn Antonsson
2876460dcb !rem, clu, mul #3154 Upgrade protobuf to 2.5.0 and add an SBT task
* Added an SBT task to compile protobuf files with protoc
* Upgraded protobuf to 2.5.0 which is the current stable
2013-09-12 11:20:25 +02:00
Patrik Nordwall
3fa2aeae8d Merge pull request #1630 from gakesson/master
Improved semantics for BoundedBlockingQueue
2013-09-11 23:15:06 -07:00
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
b6c63a8fb3 =clu #3498 Optimize ClusterHeartbeatSender 2013-09-11 14:46:08 +02:00
Patrik Nordwall
9456a081b7 Merge pull request #1721 from akka/wip-3569-cluster-pom-experimental-patriknw
=pro #3569 Remove experimental label from cluster pom.xml
2013-09-11 05:27:31 -07:00
Patrik Nordwall
ccfab1fab4 Merge pull request #1713 from akka/wip-3592-stash-capacity-from-mailbox-conf-patriknw
+act #3592 Read stash-capacity from mailbox config
2013-09-11 05:26:08 -07:00
Patrik Nordwall
dfe1656a2b Merge pull request #1720 from jducoeur/master
=doc #3596 Add paragraph about Agent locality
2013-09-11 05:25:17 -07:00
Patrik Nordwall
0ae1ccad6a Merge pull request #1701 from akka/wip-2307-reachable-patriknw
!clu #2307 Allow transition from unreachable to reachable
2013-09-11 05:24:28 -07: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
Patrik Nordwall
43f3d03aaa =pro #3569 Remove experimental label from cluster pom.xml 2013-09-10 16:40:05 +02:00
Mark "Justin" Waks
3ce407184e =doc #3596 Add paragraph about Agent locality
* Based on discussion on akka-user, Sept 6-9 2013. It seems appropriate
to mention that Agents are not remoteable, so that naive users (like me)
know to design for that.
* This change has not been locally built with Sphinx, but seems to be
small and safe.
2013-09-10 08:50:58 -04:00
Patrik Nordwall
23f933afe3 !con #3597 Remove hand over data message in cluster singleton 2013-09-10 13:35:51 +02:00
dave
d0790e91b3 !osg Updating Aries dependencies
Update aries.blueprint to 1.1.0
Update aries.proxy.impl to 1.0.1
2013-09-10 11:38:16 +02:00