* Sending to a previous incarnation of an actor shall fail,
to make remote actors work the same way as local ones (in
the sense that after Terminated() the ref is not working anymore)
* Changed equality of ActorRef to take the uid into account
* Parse uid fragment in RelativeActorPath and ActorPathExtractor
* Handle uid in getChild and in RemoteSystemDaemon
* Use toSerializationFormat and toSerializationFormatWithAddress
in serialization
* Replaced var uid in ActorCell and ChildRestartStats with
constructor parameters (path)
* Create the uid in one single place, in makeChild in parent
* Handle ActorRef with and without uid in DeathWatch
* Optimize ActorPath.toString and friends
* Update documentation and migration guide
* Changed TransportAdapterProvider to support java impl
* Verified java impl of AbstractTransportAdapter and
ActorTransportAdapter
* Privatized things that should not be public api
* Consistent usage of INTERNAL API marker in scaladoc
* Added some missing doc in conf
* Added missing SerialVersionUID
- New DeadLetter class for handling remoting specific envelopes
- Fixed error handling of name lookups
- Name lookup is now handled via futures (future refactor opportunity)
- Transports no longer uses raw ActorRefs as listeners but proper interfaces.
- Added managementCommand support to Transports
- Added support for dynamically loadable transport adapters
- Added throttler/failure injector transport adapter
- added actor based adapter support
- Changed configuration method of multiple transports - Fixed tests to work with the new remoting
* case object and case class for MixMetricsSelector
* Rename decay-half-life-duration to moving-average-half-life
* Clarification of decay-half-life-duration and collect-interval
* Removed Fields, Java compatibility issue
* Adapt for-yield variables
* Comment metrics collector constructor that takes system param
* Don't copy EWMA if not needed
* LogOf2 constant 0.69315
* Don't use mapValues
* Remove RichInt conversion
* sigar version replace tag in docs
* createDeployer factory method to make it possible to override
deployer in subclass
* Improve readability of MetricsListener (in sample)
* Better startup of factorial sample (no sleep)
* Many minor enhancements and cleanups
* Refactoring of standard metrics extractors and data structures
* Removed optional value in Metric, simplified a lot
* Configuration of EWMA by using half-life duration
* Renamed DataStream to EWMA
* Incorporate review feedback
* Use binarySearch for selecting weighted routees
* More metrics selectors for the router
* Removed network metrics, since not supported on linux
* Configuration of router
* Rename to AdaptiveLoadBalancingRouter
* Remove total cores metrics, since it's the same as jmx getAvailableProcessors,
tested on intel 24 core server and amd 48 core server, and MBP
* API cleanup
* Java API additions
* Documentation of metrics and AdaptiveLoadBalancingRouter
* New cluster sample to illustrate metrics in the documentation,
and play around with (factorial)
* Problem: ConsistentHashingRouter used on different nodes with remote
and local routees doesn't route to same targets.
* Reason: Full address, with host and port was not used in the
representation of the routees, which produced different hash rings
on different nodes.
* Solution: Fill in full address in the toString representation for
LocalActorRef
* IMPORTANT: Discovered that rootPath of the provider didn't include the
full address. It is documented that it should and I needed that to
be able to grab the address without depending on remoting. This caused
changes in RemoteActorRefProvider. Initialization order is a bit scary
there.
- Asynchronous lockless remoting
- Pluggable transport drivers
- Multiple transport support
- Simplified lifecycle events
- Support for netty based TCP, SSL+TCP and UDP support
- Updated Akka protocol with soft-state connections and failure detection
- Refactored failure detectors (currently duplicated from cluster)
* When Watch is sent to deadLetters it will generate Terminated
* Test: receive Terminated when watched node is unknown host
* Test: receive Terminated when watched path doesn't exist
- it was always intended that tell() (and sendSystemMessage()) shall not
throw any exceptions
- this is implemented by swallowing in ActorCell
(suspend/resume/restart/stop/!/sendSystemMessage) and in
RemoteActorRef (!/sendSystemMessage)
- current implementation uses a normal method, which adds overhead but
keeps the code in one place (ActorCell.catchingSend); this is a great
opportunity for making use of macros