Commit graph

211 commits

Author SHA1 Message Date
Patrik Nordwall
a11fb1dafc =act #3572 Add parens to sender
* because it is not referentially transparent; normally we reserved parens for
  side-effecting code but given how people thoughtlessly close over it we revised
  that that decision for sender
* caller can still omit parens
2014-01-17 18:21:14 +01:00
Patrik Nordwall
537840bd2a Merge pull request #1931 from drewhk/wip-3689-remove-typed-channels-drewhk
!cha #3789: Remove typed channels
2014-01-17 09:10:06 -08:00
Patrik Nordwall
9eb32a4486 =act #3738 Fix memory leaks in tests
* afterAll not called when all tests marked as ignore,
  invokeBeforeAllAndAfterAllEvenIfNoTestsAreExpected = true
  should solve that, but changed to pending in Ticket1978 anyway
* Try to shutdown when ActorSystem init fails. It is difficult
  to cover all scenarios, but this should improve the situation.
  This was the reason why DeployerSpec leaked.
* missing shutdown in some tests
2014-01-17 16:18:35 +01:00
Endre Sándor Varga
293dd0b9d2 !act #3812: Remove Pipelines 2014-01-17 15:52:24 +01:00
Patrik Nordwall
8d2bc2bc40 Merge pull request #1915 from krasserm/wip-3704-persistence-improvements-part-1-krassserm
!per #3704 Persistence improvement (part 1)
2014-01-17 06:37:52 -08:00
Roland Kuhn
453815c073 Merge pull request #1933 from akka/wip-3764-props-docs-∂π
clean up docs and deprecation around how to create Props
2014-01-17 05:57:37 -08:00
Endre Sándor Varga
31c4d76ba7 !cha #3789: Remove typed channels 2014-01-17 14:56:51 +01:00
Martin Krasser
f327e1e357 !per #3704 Persistence improvements
- Channel enhancements (#3773):
- Live read models (#3776):
- Batch-oriented journal plugin API (#3804):
- Batching of confirmations and deletions
- Message deletion enhancements (more efficient range deletions)
2014-01-17 13:36:55 +01:00
Patrik Nordwall
2e16b570e9 Merge pull request #1927 from drexin/wip-3816-drexin
!doc #3816 Remove Scala code from config examples in docs
2014-01-17 02:24:05 -08:00
Roland Kuhn
5bcb750441 !act,doc,rem,tes 3823 remove deprecated Props methods
- rewrite deprecated usages to their recommended counterparts
- TestActorRef now verifies mailbox requirements
- CallingThreadMailbox now exposes proper messageQueue type for
  inspection
2014-01-17 09:12:44 +01:00
Roland Kuhn
780831469c =doc 3764 revise recommended practice for Props creation
- it is not recommended to use Props.apply(=> Actor) within an Actor
- it is recommended to use that method in the Props factory method in
  an actor’s companion object
2014-01-16 22:44:03 +01:00
Patrik Nordwall
d7aab50da0 !act #2927 Add BalancingPool and deprecate BalancingDispatcher 2014-01-16 19:06:42 +01:00
dario.rexin
39dd4d3fea +doc #3816 Removed surrounding scala code from config examples in docs 2014-01-16 15:09:29 +01:00
Patrik Nordwall
7648a50d53 +act #3769 Add toStringWithoutAddress to ActorPath 2014-01-15 15:05:52 +01:00
Björn Antonsson
003609c9c5 =pro #3759 Changed to using non-deprecated ScalaTest Matchers 2013-12-18 11:32:51 +01:00
Björn Antonsson
5935e2e2b7 =doc #3782 Make IODocSpec say what went wrong 2013-12-13 14:28:39 +01:00
Patrik Nordwall
dd3d3da452 =tra #3668 Deprecate transactors 2013-12-13 11:00:06 +01:00
Patrik Nordwall
4bd1586b1e =dur #3664 Deprecate durable mailboxes 2013-12-13 07:38:15 +01:00
Patrik Nordwall
66e4008494 =dat #3780 Deprecate dataflow 2013-12-12 21:44:50 +01:00
Patrik Nordwall
5a019c0a7a =doc #3689 Don't rewrite arrows in doc and samples 2013-12-12 16:08:23 +01:00
Patrik Nordwall
23dd957ba2 =doc #3689 Make activator templates for camel samples
* @rkuhn found the problems in the scala camel samples
  - HttpSample returns scrambled data
  - CustomRouteSample times out
2013-12-12 16:03:02 +01:00
Patrik Nordwall
362074177a =doc #3689 Make activator template for akka.Main 2013-12-12 16:03:02 +01:00
Patrik Nordwall
8b6b2965e5 Merge pull request #1863 from krasserm/wip-3761-reliable-channels-krasserm
!per #3761 Reliable channels
2013-12-12 06:45:29 -08:00
Martin Krasser
4e5ce5529c !per #3761 Reliable channels
- Built-in redelivery mechanism for Channel and PersistentChannel
- redelivery counter on ConfirmablePersistent
- redeliveries out of initial message delivery order
- relative order of redelivered messages is preserved
- configurable redelivery policy (ChannelSettings)
- Major refactorings of channels (and channel tests)
- Throughput load test for PersistentChannel

Todo:

- Paged/throtlled replay (another pull request)
- Resequencer (another pull request)
2013-12-12 12:22:46 +01:00
Endre Sándor Varga
b543644baa !act #3670: Removing old IO implementation 2013-12-11 11:07:21 +01:00
Roland Kuhn
115d7831b4 Merge pull request #1842 from akka/wip-props-docs-name-∂π
fix misleading Recommended Practices
2013-12-06 06:50:52 -08:00
Björn Antonsson
cb729228b0 Merge pull request #1859 from akka/wip-3753-change-build-to-allow-scala-nightlies-ban
=pro #3753 Override dependency versions from command line
2013-12-04 02:04:41 -08:00
Björn Antonsson
00a268b6b3 =pro #3753 Override dependency versions from command line 2013-12-03 16:47:10 +01:00
Martin Krasser
d0bc8a6400 +per #3746 Remote sharing of LevelDB for testing purposes
Further changes

- remove obsolete identity checks in Eventsourced
- fix wrong serialize-messages config in tests
2013-12-03 08:51:25 +01:00
Martin Krasser
6e2f80bab0 !per #3729 Journaling protocol optimization
- internal batching of individually received Persistent messages
- testing fault tolerance of Processor in presence of random
  * journaling failures
  * processing failures
2013-11-27 13:51:27 +01:00
Roland Kuhn
c7ac860dbc =doc fix misleading Recommended Practices
also rename recommended static method from mkProps to props for Java
2013-11-27 10:57:43 +01: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
Patrik Nordwall
403a1c54fb Merge pull request #1818 from akka/wip-3656-incomplete-TA-docs-√
+doc #3656 correcting the TypedActor documentation
2013-11-20 03:01:01 -08: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
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
Viktor Klang
4769a44875 +doc #3656 correcting the TypedActor documentation 2013-11-05 15:31:24 +01: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
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
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
4e1100f84d =doc #3639 Show complete custom mailbox example. 2013-10-15 12:18:17 +02:00
Martin Krasser
2a30399a29 !per #3652 Custom snapshot and persistent message serialization
- Protobuf serializer for Persistent message
- Configurable serializer for Persistent message's payload
- Configurable serializer for snapshots
2013-10-14 17:35:04 +02:00
Martin Krasser
da7490bbc9 +per #3641 Storage plugin API
- Journal plugin API for storage backends with asynchronous client API (default impl: in-memory journal)
- Journal plugin API for storage backends with synchronous client API (default impl: LevelDB journal)
- Snapshot store plugin API (default impl: local filesystem snapshot store)
2013-10-08 11:46:32 +02:00
Martin Krasser
842ac672f7 !per #3631 Snapshotting
- capture and save snapshots of processor state
- start processor recovery from saved snapshots
- snapshot storage on local filesystem
- snapshot store completely isolated from journal
- LevelDB journal modularized (and completely re-rwritten)
- In-memory journal removed
2013-09-30 17:31:08 +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
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
194bb3d703 Merge pull request #1649 from akka/wip-3531-orElse-decider-patriknw
=doc #3531 Recommend orElse’ing super.supervisorStrategy.decider
2013-08-21 05:15:04 -07:00
Björn Antonsson
4a2b6effb3 =pro #3552 Upgrade ScalaTest to 1.9.2-SNAP2 for dbuild
* This can't go into 2.2.x since ScalaTest 1.9.2-SNAP2 has source incompatible changes and the dependecy in akka-multi-node-node-testkit would force people to upgrade.
2013-08-19 15:08:29 +02:00
Patrik Nordwall
0d859f1424 =doc #3531 Recommend orElse’ing super.supervisorStrategy.decider 2013-08-19 15:00:41 +02:00
Patrik Nordwall
7c3f6c21d8 DOC: Props.empty.withRouter, see #3464 2013-07-01 12:51:35 +02:00