Commit graph

3888 commits

Author SHA1 Message Date
Patrik Nordwall
29e6643a19 Merge pull request #1850 from krasserm/wip-3733-re-receive-unstashed-terminated-krasserm
=act #3733 Re-receive unstashed Terminated messages
2013-11-27 08:43:19 -08:00
Martin Krasser
f3f69f55d4 =act #3733 Re-receive unstashed Terminated messages 2013-11-27 13:53:07 +01:00
Patrik Nordwall
dcad66aeea Merge pull request #1846 from akka/wip-3630-serializer-ctor-fallback-√
+act #3630 - Only fall back to default ctor if NoSuchMethodException
2013-11-27 02:22:25 -08:00
Johannes Rudolph
aac7e7ad4a =act cleanup state parameters in TcpOutgoingConnection
Backport of c480208f56
2013-11-23 10:25:16 +01:00
Viktor Klang
7588f04292 +act #3630 - Only fall back to default ctor if NoSuchMethodException 2013-11-22 17:13:24 -08:00
Patrik Nordwall
524addd404 Merge pull request #1838 from krasserm/wip-3717-deletion-api-krasserm
!per #3717 Deletion API for snapshots and persistent messages
2013-11-21 00:54:44 -08:00
Martin Krasser
4489a72bea !per #3717 Deletion API for snapshots and persistent messages
- single and bulk deletion of messages
- single and bulk deletion of snapshots
- run journal and snapshot store as system actors
- rename physical parameter in delete methods to permanent
- StashSupport.prepend docs and implementation enhancements
2013-11-20 14:45:29 +01:00
Gaston M. Tonietti
9e9d5541b4 +act #3671 Implementing support for MDC values defined by the application. Fixes #3671.
* Added LogEvent subclasses with new field for transporting the MDC custom values.
* Slf4jLogger now takes MDC values from new LogEvent field, puts all in MDC before appending the log, and removes all after.
* New trait DiagnosticLoggingAdapter was introduced, which extends LoggingAdapter and adds MDC support with methods to get, set and clear MDC values.
* New factory method added to Logging for getting loggers with MDC support.
* BusLogging was changed to create new LogEvents including the MDC values.
* Actors can mixin with DiagnosticActorLogging which defines a diagnostic logger "log", has a hook to override for defining MDC values per message, and overrides aroundReceive for setting and clearing MDC around receive execution.
* Proper documentation was added for Scala and Java under the Logging/Slf4j section.
2013-11-15 11:09:22 -03:00
Patrik Nordwall
1b5f8aa8ad =act #3590 Reject task scheduled too far in the future 2013-11-14 14:18:30 +01:00
Patrik Nordwall
55bb2ebcdb Merge pull request #1824 from akka/wip-3543-ActorSelection-forward-patriknw
+act #3073 Add forward to ActorSelection
2013-11-14 04:45:16 -08:00
Patrik Nordwall
eb035aed18 +act #3073 Add forward to ActorSelection 2013-11-14 13:44:42 +01:00
Patrik Nordwall
9be16091d3 Merge pull request #1823 from akka/wip-3507-ActorSelection-toString-patriknw
=act #3507 Change format of ActorSelection.toString
2013-11-14 04:41:08 -08:00
Patrik Nordwall
22a7a0626a =act #3507 Change format of ActorSelection.toString 2013-11-14 13:40:30 +01:00
Patrik Nordwall
44d3a96776 Merge pull request #1822 from akka/wip-3579-ActorSelection-deadLetters-patriknw
+act #3579 Direct ActorSelection for missing actor to deadLetters
2013-11-14 04:38:46 -08:00
Martin Krasser
ba9fc4da46 !per #3707 Channel enhancements
- Persistent channel
- ConfirmablePersistent message type delivered by channel
- Sender resolution performance improvements
   * unstash() instead of unstashAll()

These enhancements required the following changes

- Unified implementation of processor stash and user stash
- Persistence message plugin API separated from implementation
- Physical deletion of messages
2013-11-14 12:05:37 +01:00
Patrik Nordwall
47216bd956 +act #3579 Direct ActorSelection for missing actor to deadLetters 2013-11-06 14:27:16 +01:00
Patrik Nordwall
f89422c18e =act,rem #3073 Make ActorSelection faster 2013-11-06 12:41:53 +01:00
Björn Antonsson
28b5f1039d =all #3448 Newer Scalariform running on more files 2013-11-04 11:05:07 +01:00
Patrik Nordwall
6a6525fa1f Merge pull request #1808 from krasserm/wip-3681-performance-improvements-krasserm
!per #3681 Performance and consistency improvements
2013-10-30 08:17:01 -07:00
Martin Krasser
1da3369643 !per #3681 Performance and consistency improvements
- batch-write of persistent messages (user API)
- batch-write of events (in EventsourcedProcessor)
- command processing in EventsourcedProcessor by unstashing messages one-by-one from the internal stash
   * fixes performance issues that come up with unstashAll
- commands are not looped through journal actor but processed directly
- initial performance tests
  * command sourcing
  * event sourcing
  * event sourcing with user stash operations
- suppress stack traces in tests
2013-10-30 15:08:15 +01:00
Björn Antonsson
d9d83c2661 Merge pull request #1800 from jrudolph/i/3571/fix
=act 3571 quiet down exceptions from `Socket.shutdownOutput()`
2013-10-23 04:41:56 -07:00
Johannes Rudolph
5e6d591d16 =act 3684 prevent usage of WriteCommands other than Tcp.Write with SslTlsSupport 2013-10-22 18:45:05 +02:00
Johannes Rudolph
972284ce71 =act 3571 quiet down exceptions from Socket.shutdownOutput()
Backport from this spray commit:

e4068046a5
2013-10-22 17:20:24 +02:00
Johannes Rudolph
3da7f4ee07 =act #3680 fix SuspendReading being overruled by racy ChannelReadable 2013-10-21 15:33:31 +02:00
Patrik Nordwall
ccdf71925e Merge pull request #1782 from jrudolph/i/3672/fix-big-Writes
=act #3672 fix garbling of big outgoing Tcp.Write caused by mixup of buffers
2013-10-18 00:43:41 -07:00
Johannes Rudolph
f87f166aac =act #3672 fix garbling of big outgoing Tcp.Write caused by mixup of buffers 2013-10-17 14:25:02 +02:00
Patrik Nordwall
beff53f0a6 Merge pull request #1778 from akka/wip-3669-routing-in-pubsub-patriknw
+con #3669 Possibility to define routing logic in DistributedPubSub
2013-10-17 05:09:59 -07:00
Patrik Nordwall
d4cce379ce Merge pull request #1776 from akka/wip-3663-balancing-disp-patriknw
+act #3663 Package BalancingDispatcher for usage in router pool
2013-10-17 05:09:43 -07:00
Patrik Nordwall
a2c5239c49 Merge pull request #1772 from akka/wip-3627-cluster-routee-paths-patriknw
+clu #3627 Cluster router group  with multiple paths per node
2013-10-17 05:09:21 -07:00
Patrik Nordwall
73d3430024 +con #3669 Possibility to define routing logic in DistributedPubSub
* Serialization check in contrib
2013-10-17 12:17:45 +02:00
Patrik Nordwall
80892762ad +act #3663 Package BalancingDispatcher for usage in router pool
* In fact, make it easy to define any dedicated dispatcher for a pool
2013-10-16 14:44:39 +02:00
Björn Antonsson
f6179da523 Merge pull request #1729 from jrudolph/wip-3602-fix-connected
=act #3602 report `Connected` only when connection attempt was successful
2013-10-16 03:54:38 -07: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
Björn Antonsson
265cc1f4f2 Merge pull request #1752 from spray/wip-3645-handle-UnresolvedAddressExceptions
=act #3645 Make TcpOutgoingConnection actor handle UnresolvedAddressExceptions
2013-10-15 03:11:27 -07:00
Björn Antonsson
ab90e59031 =act #3640 Fix how BalancingDispatcher apply mailbox configuration 2013-10-10 14:19:45 +02:00
Mathias
bb1b22bffd =act #3645 Make TcpOutgoingConnection actor handle UnresolvedAddressExceptions 2013-10-08 16:09:13 +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
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
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
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
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
Patrik Nordwall
3fa2aeae8d Merge pull request #1630 from gakesson/master
Improved semantics for BoundedBlockingQueue
2013-09-11 23:15:06 -07:00
Patrik Nordwall
b6c63a8fb3 =clu #3498 Optimize ClusterHeartbeatSender 2013-09-11 14:46:08 +02:00
Patrik Nordwall
762d49ac36 +act #3592 Read stash-capacity from mailbox config 2013-09-09 14:59:05 +02:00
Patrik Nordwall
52f7d2d478 =rem #3566 Fix failing RemoteNodeRestartDeathWatchSpec
* Subject actor in freshSystem was not started when the "shutdown"
  message was sent. Solved by retry.
2013-09-05 11:26:41 +02:00
Patrik Nordwall
33ebf24c0f =act #3565 Add ClassTag in Props.apply(creator)
* Remove deprecated apply without ClassTag
2013-08-28 17:48:48 +02:00
Roland Kuhn
7c0d83d907 =act fix reference.conf comment for event-handler-startup-timeout 2013-08-27 19:53:08 +02:00