Commit graph

424 commits

Author SHA1 Message Date
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
Patrik Nordwall
9e56ab6fe5 Disallow re-joining, see #2873
* Disallow join requests when already part of a cluster
* Remove wipe state when joining, since join can only be
  performed from empty state
* When trying to join, only accept gossip from that member
* Ignore gossips from unknown (and unreachable) members
* Make sure received gossip contains selfAddress
* Test join of fresh node with same host:port
* Remove JoinTwoClustersSpec
* Welcome message as reply to Join
* Retry unsucessful join request
* AddressUidExtension
* Uid in cluster Member identifier
  To be able to distinguish nodes with same host:port
  after restart.
* Ignore gossip with wrong uid
* Renamed Remove command to Shutdown
* Use uid in vclock identifier
* Update sample, Member apply is private
* Disabled config duration syntax and cleanup of io settings
* Update documentation
2013-04-17 16:48:18 +02:00
Björn Antonsson
f3a47f1987 Make karaf osgi-sample extract to target directory. See #3216 2013-04-11 08:39:09 +02:00
Björn Antonsson
1a8be3aad2 Make akka-sample-osgi-dining-hakkers compile again. See #3212 2013-04-09 11:02:36 +02:00
Roland Kuhn
1835b641e6 Merge pull request #1310 from vivosys/akkaosgisample
Akka OSGi sample
2013-04-08 12:32:24 -07:00
Patrik Nordwall
887af975ae Deprecate actorFor in favor of ActorSelection, see #3074
* Deprecate all actorFor methods
* resolveActorRef in provider
* Identify auto receive message
* Support ActorPath in actorSelection
* Support remote actor selections
* Additional tests of actor selection
* Update tests (keep most actorFor tests)
* Update samples to use actorSelection
* Updates to documentation
* Migration guide, including motivation
2013-04-08 18:11:52 +02:00
Raman Gupta
0c4b375f61 Resolve naming/packaging problems 2013-04-07 14:10:52 -04:00
Viktor Klang
6976317bc7 Merged with master 2013-04-03 16:21:22 +02:00
Viktor Klang
48c0b3aa2c #3166 - Adding parenthesis to FSM.initialize 2013-03-30 02:32:40 +01:00
Viktor Klang
c883705242 #3018 - Enabling -Xlint and dealing with the situation that occurs 2013-03-29 01:43:17 +01:00
Patrik Nordwall
7eac88f372 Cluster node roles, see #3049
* Config of node roles cluster.role
* Cluster router configurable with use-role
* RoleLeaderChanged event
* Cluster singleton per role
* Cluster only starts once all required per-role node
  counts are reached,
  role.<role-name>.min-nr-of-members config
*  Update documentation and make use of the roles in the examples
2013-03-18 11:56:11 +01:00
Patrik Nordwall
5b844ec1e6 Publish member events when state change first seen, see #3075
* Remove InstantMemberEvent
2013-03-07 14:07:17 +01:00
Christophe Pache
f8243a928d akka.sample.osgi.dining-hakkers integration test 2013-03-01 21:49:50 +01:00
Viktor Klang
a4e09747d6 #2991 - Switching to org.fusesource instead of org.hyperic 2013-02-25 15:08:58 +01:00