Commit graph

437 commits

Author SHA1 Message Date
Björn Antonsson
e5bcf8bfc9 +act #3770 Added Java 8 friendly APIs for Actor and FSM 2014-01-20 12:00:13 +01:00
Martin Krasser
e0f5cf5f2c !per #3828 Rename receiveReplay to receiveRecover
- because it handles messages related to recovery (snapshots and replayed messages)
2014-01-19 17:46:32 +01:00
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
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
2e5193347e !clu #3617 API improvements related to CurrentClusterState
* Getter for CurrentClusterState in Cluster extension, updated via
  ClusterReadView
* Remove lazy init of readView. Otherwise the cluster.state will be
  empty on first access, wich is probably surprising
* Subscribe to several cluster event types at once, to ensure *one*
  CurrentClusterEvent followed by change events
* Deprecate publishCurrentClusterState, was a bad idea, use sendCurrentClusterState
  instead
* Possibility to subscribe with InitialStateAsEvents to receive events corresponding
  to CurrentClusterState
* CurrentClusterState not a ClusterDomainEvent, ticket #3614
2014-01-16 16:17:44 +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
6061394ec2 =pro Upgrade to sbt 0.13.1 2013-12-13 08:01:49 +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
37f8f2831b =doc #3689 Make activator templates for cluster samples 2013-12-12 16:03:03 +01:00
Patrik Nordwall
b82698a354 =doc #3689 Make activator templates for remote samples 2013-12-12 16:03:03 +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
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
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
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
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
Björn Antonsson
28b5f1039d =all #3448 Newer Scalariform running on more files 2013-11-04 11:05:07 +01:00
Sander Mak
a44d2720e0 =doc,osg Effort to get OSGi integration tests running again
* Update protobuf dependency so mvn clean install runs again
* Bump OSGi version range in AkkaBuild to include current 2.3 for generated manifests
* Update path in dev documentation to correct TexBasic folder
2013-11-01 16:34:49 +01: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
f194860dfb Merge pull request #1766 from eligosource/wip-3661-event-sourcing-krasserm
+per #3661 Event sourcing support
2013-10-16 22:55:47 -07:00
Martin Krasser
0a2cfdc4d1 +per #3661 Event sourcing support 2013-10-16 13:38:11 +02: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
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
Patrik Nordwall
b1705e2ed5 Merge pull request #1747 from eligosource/wip-3631-snapshotting-krasserm
!per #3631 Snapshotting
2013-10-01 01:01:31 -07: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
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
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
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
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
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
23f933afe3 !con #3597 Remove hand over data message in cluster singleton 2013-09-10 13:35:51 +02: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
Ian Wormsbecker
9901e805db Add explanation and example for 'Secure Cookie Handshake' to akka-sample-remote
Added some commented out configuration items to provide an example of how to use
the Secure Cookie Handshake feature. Users can simply uncomment to try it out

Added an indication in the application.conf file that the remote.netty.tcp.port is
actually the LISTEN port.
2013-07-26 16:31:23 -04:00
Roland Kuhn
39a3969061 switch master to 2.3-SNAPSHOT 2013-07-09 10:59:36 +02:00
Patrik Nordwall
7c3f6c21d8 DOC: Props.empty.withRouter, see #3464 2013-07-01 12:51:35 +02:00
Patrik Nordwall
95366cb585 Wrap long lines, for pdf 2013-05-30 14:45:15 +02:00
Patrik Nordwall
7c1ab68263 Merge pull request #1505 from akka/wip-another-cluster-experimental-patriknw
remove unused pom.xml with akka-cluster-experimental ref
2013-05-30 05:25:03 -07:00
Patrik Nordwall
709a4a2868 remove unused pom.xml with akka-cluster-experimental ref 2013-05-30 08:21:30 +02:00
Björn Antonsson
9797e00f0c OSGi Make the integration test work again. See #3292
OSGi Adding ScalaBuff and removing experimental from cluster. See #3292
OSGi create bundle for ScalaBuff. See #3292
OSGi Make the integration test work again. See #3292
2013-05-29 22:27:24 +02:00
Patrik Nordwall
ee6e80d31a Add previousStatus in MemberRemoved, see #3252 2013-05-23 11:09:32 +02:00
Patrik Nordwall
ad1eaa6d4a Remove auto-join config, derive from seed-nodes, see #3359 2013-05-17 13:54:51 +02:00
Patrik Nordwall
b8b65c9153 Cluster member age, and usage in singleton, see #3195
* Assign internal upNumber when member is moved to Up
* Public API Member.isOlder
* Change cluster singleton to use oldest member instead of leader
* Update samples and docs
2013-05-03 13:38:35 +02:00
drexin
308428e7bc removed calls to deprecated Props constructor in java code 2013-05-02 17:00:44 +02:00
Dario Rexin
1f87f9e90e removed deprecation warnings from akka-samples 2013-04-26 21:10:01 +02:00
Patrik Nordwall
a3df775931 Change member prio for Joining/Up, see #3239
* Sometimes caused duplicate MemberUp events, after conflicting gossips
2013-04-19 07:54:23 +02:00
Patrik Nordwall
c0e96f55bb Temp workaround in tests for the duplicate MemberUp events, see #3239 2013-04-18 22:07:53 +02:00
Patrik Nordwall
4293bd7a2d Factory methods for Props
* cleanup of deprecated usage of Props in cluster sample
2013-04-18 16:41:05 +02:00