* Add comprehensive tests
* Add documentation
* Damn comma after rebase
* Add documentation for foldAsync and scanAsync
* Rename aggreator and aggreating to current
* Remove out availability check
* Revert removing out and some refactors
* Formatting documentation
* Use after instead of Promise in test
* Use package reference to after and some refactoring
* Setting to configure where the flight recorder puts its file
* Run ArteryMultiNodeSpecs with flight recorder enabled
* More cleanup in exit hook, wait for task runner to stop
* Enable flight recorder for the cluster multi node tests
* Enable flight recorder for multi node remoting tests
* Toggle always-dump flight recorder output when akka.remote.artery.always-dump-flight-recorder is set
This is the first step towards a completely new and optimized actor
implementation for Akka Typed. The full previously existing test suite
passes for both implementations. The following is an incomplete list of
things that remain to be done:
* document the semantic differences between untyped and typed, in
particular around actor restarts and the delivery ordering guarantees
for Terminated messages (also document the difference between
ActorSystemImpl and ActorSystemAdapter)
* implement EventStream and logging—this currently just delegates to an
extra untyped ActorSystem (of course To Be Fixed)
* implement dispatcher selection
* implement and test queue size limitation
* implement optimized message queue instead of CLQ (for zero-allocation
messaging)
* clean up test log output (something does not work with TestEventListener
and EventFilter for ActorSystemImpl tests)
* document the capabilities (or more appropriately: the limitations) of
interoperability between ActorSystemImpl and ActorSystemAdapter
* fix ActorPath UID generation (i.e. make sure that everything gets a
meaningful value instead of zero)
* re-evaluate throughput/rescheduling logic in ActorCell
Oh, and by the way: as per PerformanceSpec (doing simple ping-pong) the
new implementation is ca. 30% faster than the adapter over akka-actor
:-)
* handle ConductorServiceTimeoutException and
DriverTimeoutException
* shutdown things properly, in the right order, and
without overwhelming the logs with exceptions
This is useful in at least two scenarios:
- Unit testing actors that communicate to their parent directly
- Testing re-creating (typically persistent) actors with the same name
Changes are https://github.com/real-logic/Aeron/releases/tag/1.0.1 :
> * Adjust incremental cleaning to avoid overwrite of cleaned log in loss scenarios to address Issue #271.
> * Correctly initialise cleaning position for late joining a stream. Issue #268.
> * Make clientLivenessTimeout configurable from Context.
> * Shadow samples into aeron-all JAR.
> * Support creating Agent threads via ThreadFactory to enable pinning.
> * Update to Agrona 0.5.4.
> * Update to ByteBuddy 1.4.20.
* track nodes by UniqueAddress in Cluster Singleton, #20942
* reply with HandOverDone from new incarnation, #20942
* confirm as terminated immediately when new incarnation joins, #20942 instead of waiting for failure detector to mark it as unreachable this will speed-up removal when restarting cluster node with same hostname:port