Commit graph

38 commits

Author SHA1 Message Date
Roland
c059d1bc11 Merge branch 'parental-supervision'
commented out one failing test in LoggingReceiveSpec (known, to be fixed
soon by implementing MainBusLogging)
2011-10-25 12:24:39 +02:00
Viktor Klang
bb0b845607 Preparing to remove channels and ActorPromise etc 2011-10-21 15:51:38 +02:00
Roland
d55f02e6c1 merge master into parental-supervision, fixing up resulting breakage 2011-10-21 15:11:43 +02:00
Roland
3b698b9470 nearly done, only two known test failures
- moved typed actor factories to app/context (like actor factories)
- fixed a few misplaced supervision changes, all such tests green now
- actually test akka-reference.conf in ConfigSpec
- made DispatcherActorSpec more deterministic (failed intermittently
  here, was due to race towards thread pool)
- wrapped all actor initialization failures into
  ActorInitializationException and made sure that this leads to Stop
- default to Stop on ActorKilledException
- fixed ActorModelSpec to separately supervise the “waves of actors”
  because otherwise the app.guardian is way too busy processing all
  those ChildTerminated messages
- change ActorCell._children from Vector[Stats] to TreeMap[ActorRef,
  Stats] for performance reasons, have not measured memory impact, yet
- ensured that InterrupedException does not leave current thread via
  Failed message to supervisor (wrapped in ActorInterruptedException)
- set core-size=1 and max-size=4 for default dispatcher during test
2011-10-20 23:37:54 +02:00
Jonas Bonér
303d34692d Merge branch 'master' of github.com:jboner/akka
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-10-20 15:11:34 +02:00
Roland
d3837b9fc3 Introduce parental supervision, BUT TESTS ARE STILL FAILING
- every actor is now supervised, where the root of the tree is
  app.guardian, which has its supervisor field set to a special ActorRef
  obtained from provider.theOneWhoWalksTheBubblesOfSpaceTime (this name
  is meant to indicate that this ref is outside of the universe, cf.
  Michio Kaku)
- changed all tests to obtain specially supervised children (i.e. not
  top-level) via (supervisor ? Props).as[ActorRef].get
- add private[akka] ScalaActorRef.sendSystemMessage for sending
  Supervise()
- everything routing or remote is broken wrt. supervision, as that was
  not “properly” implemented to begin with, will be tackled after
  app/supervision/eventbus/AkkaSpec are stabilized enough
2011-10-19 17:18:50 +02:00
Jonas Bonér
c8215dfd54 Added Gossip messages and management to remote protocol. Various refactorings and improvements of remoting layer.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-10-19 14:45:24 +02:00
Viktor Klang
6150beb333 Pushing the memory per actor down to 464 bytes. Returning None for the Deploy if there is no config 2011-10-18 16:59:57 +02:00
Viktor Klang
65868d7c96 Making sure that the RemoteActorRefProvider delegates systemServices down to the LocalActorRefProvider 2011-10-18 14:21:48 +02:00
Viktor Klang
1c3b9a389b Adding clarification to DeathWatchSpec as well as making sure that systemServices aren't passed into the deployer 2011-10-18 14:00:46 +02:00
Viktor Klang
cb8a0adbb8 Switching to a cached version of Stack.empty, saving 16 bytes per Actor. Switching to purging the Promises in the ActorRefProvider after successful creation to conserve memory. Stopping to clone the props everytime to set the application default dispatcher, and doing a conditional in ActorCell instead. 2011-10-18 11:26:35 +02:00
Viktor Klang
fa1a2610a7 Removing RemoteActorSystemMessage.Stop in favor of the sexier Terminate message 2011-10-17 19:31:59 +02:00
Viktor Klang
050411bf3b Making a Java API for Scheduler (JScheduler) and an abstract class Scheduler that extends it, to make the Scheduler pluggable, moving it into AkkaApplication and migrating the code. 2011-10-17 18:35:36 +02:00
Viktor Klang
3dc84a0229 Renaming InVMMonitoring to LocalDeathWatch and moved it into AkkaApplication, also created a createDeathWatch method in ActorRefProvider so that it's seeded from there, and then removed @volatile from alot of vars in ActorCell since the fields are now protected by the Mailbox status field 2011-10-17 14:32:31 +02:00
Viktor Klang
5788ed4281 Renaming link/unlink to startsMonitoring/stopsMonitoring 2011-10-14 15:09:46 +02:00
Peter Vlugter
d9e0088f3c Get remoting working under the remote actor ref provider 2011-10-13 18:08:09 +02:00
Roland
9e8091459b rename application to app everywhere to make it consistent 2011-10-13 14:23:44 +02:00
Roland
44b94643e5 Merge with Peter's work (i.e. merging master into tame-globals) 2011-10-13 14:17:07 +02:00
Peter Vlugter
317b8bc03b Merge master into tame-globals branch 2011-10-13 13:41:44 +02:00
Roland
85b7accfd4 make EventHandler non-global
- add Logging trait for nicer interface
- add EventHandlerLogging class for offering the nice interface from
  app.log
- add eventHandler instance to app and use that for all internal logging
  (this means that some places (dispatchers, remoting) were infiltrated
  by app just to do logging, but I think we'll need app in there soon
  enough for other reasons)
2011-10-13 13:21:59 +02:00
Peter Vlugter
e25ee9f0e2 Fix remote main compile and testkit tests 2011-10-12 15:36:10 +02:00
Roland
36ec202d94 rename AkkaConfig values to CamelCase 2011-10-12 11:35:45 +02:00
Roland
14751f7d29 make everything except tutorial-second compile
someone should look at remoting vs. timeout (i.e. which is sent around),
because I removed that in some places. It might simply be irrelevant
once we remove the Future special-casing.
2011-10-12 09:10:05 +02:00
Jonas Bonér
e20866c982 Moved method for creating a RoutedActorRef from 'Routing.actorOf' to 'Actor.actorOf' 2011-10-11 11:55:59 +02:00
Jonas Bonér
d31057dacf Added support for custom user-defined routers 2011-10-11 11:18:47 +02:00
Jonas Bonér
e779690aa1 Cleaned up internal API 2011-10-10 14:48:16 +02:00
Jonas Bonér
3e6decffc0 Removed the ActorRegistry, the different ActorRefProvider implementations now holds an Address->ActorRef registry. Looking up by UUID is gone together with all the other lookup methods such as 'foreach' etc. which do not make sense in a distributed env. 'shutdownAll' is also removed but will be replaced by parental supervision. 2011-10-10 14:02:33 +02:00
Jonas Bonér
4ec050c12e Major refactoring of RemoteActorRefProvider, remote Routing and FailureDetector, including lots of fixes and improvements.
- Decoupled FailureDetector from Routing by introducing ConnectionManager which uses FailureDetector instead of it being the same thing.
- Added ConnectionManager
- Added LocalConnectionManager
- Added RemoteConnectionManager
- Improved RoutedProps
- Integrated and added configuration for Scatter Gather router
- Added NoOpFailureDetector
-  Misc API and documentation improvements

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-10-07 15:42:55 +02:00
Jonas Bonér
d124f6e781 Added configuration based routing (direct, random and round-robin) to the remote actors created by the RemoteActorRefProvider, also changed the configuration to allow specifying multiple remote nodes for a remotely configured actor.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-10-05 18:44:46 +02:00
Jonas Bonér
9721dbc50a Added configuration based routing for local ActorRefProvider, also moved replication-factor from 'cluster' section to generic section of config'
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-09-28 14:50:09 +02:00
Jonas Bonér
db8a20ea37 Changed all 'def foo(): Unit = { .. }' to 'def foo() { .. }' 2011-09-27 17:41:02 +02:00
Jonas Bonér
07b29c0627 Added error handling to the actor creation in the different providers 2011-09-27 16:52:33 +02:00
Jonas Bonér
315570c339 Merge branch 'master' of github.com:jboner/akka
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-09-27 12:31:33 +02:00
Jonas Bonér
3472fc4c20 Added eviction of actor instance and its Future in the ActorRefProvider to make the registry work again. Re-enabled the ActorRegistrySpec. 2011-09-27 11:49:42 +02:00
Jonas Bonér
ce797447a7 Fixed race condition in actor creation in *ActorRefProvider 2011-09-27 10:40:27 +02:00
Jonas Bonér
00d3b87586 Merge branch 'remote-actorref-provider'
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-09-22 04:38:33 +02:00
Jonas Bonér
af49b99d6f Completed RemoteActorRefProvider and parsing/management of 'remote' section akka.conf, now does provisioning and local instantiation of remote actor on its home node. Also changed command line option 'akka.cluster.port' to 'akka.remote.port'.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-09-22 03:36:59 +02:00
Jonas Bonér
978cbe4437 Change the package name of all classes in remote module to 'akka.remote'.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-09-20 22:08:38 +02:00
Renamed from akka-remote/src/main/scala/akka/cluster/RemoteActorRefProvider.scala (Browse further)