Dispatchers in Akka 1.0-RC1
Curious about what we’ve done?
A lot of work has gone into the different dispatchers through Akkas relatively short but intense life so far.
Here are some news for Akka 1.0-RC1:
1) There is no public start/stop lifecycle anymore, the dispatcher will be started when it gets its first actor and will be stopped when the last actor leaves
2) The dispatchers will re-start when they get another actor if they were previously stopped
3) The dispatchers will only stop if a new actor hasn’t registered within X millis after the last one leaves. This timeout is tunable by default in your akka.conf: “akka.actor.dispatcher-shutdown-timeout”
4) All dispatchers now share the same unit test, this means that can ensure they have the same behavior i.e. respecting the Actor Model.
5) Since Dispatchers can be restarted you never need to worry about when and how to stop your dispatchers, and how to handle re-initialization.
We have also removed the Reactor based Dispatchers since they had lousy performance and were never used.
Some more good news is that we have managed to improve the performance even further, with ExecutorBasedEventDrivenDispatcher closing in on the HawtDispatchers excellent non-blocking performance.