* for parallel serialziation/deserialization
* MergeHub for the outbound lanes
* BroadcastHub + filter for the inbound lanes, until we
have a PartitionHub
* simplify materialization of test stage
* add RemoteSendConsistencyWithThreeLanesSpec
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
* Move artery settings from remoting settings to dedicated class.
* #20587 Move hardcoded settings to configuration file.
* Copy reused settings from remote to the artery
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.
* fix for infinite timeout disabling timeout infrastructure (#20817)
* filtering out timeout-access header in tests where necessary (#20817)
* filtering out timeout-access header in additional tests (#20817)
* added DummyCancellable object to avoid allocation (#20817)
* added test showing that timeout is correctly reset for both infinite as well as finite initial request-timeout (#20817)
* fail fast in mapAsync for completed failed future, #21318
* the callback was not run until todo == parallelism or the sync
event limit was reached, and that can be a problem if upstream
stages are slow (noticed this for a blocking Kafka producer stage)
* skip callback for completed futures
* fix callback allocation
* outbound compression is now immutable, by simply using
CompressionTable[ActorRef] and CompressionTable[String]
* immutable outbound compression will make it possible to use
them from multiple Encoder instances, when we add several lanes
for parallel serialization
* outbound compression tables not shared via AssociationState
* the advertised tables are sent to the Encoder stage via async
callback, no need to reference the tables in other places than
the Encoder stage, no more races via shared mutable state
* when outbound stream is started or restarted it can start out
without compression, until next advertisement is received
* ensure outbound compression is cleared before handshake is signaled complete