Upgrade to Aeron 1.19.1 (#27043)

* Upgrade to Aeron 1.19.1

No mention of on the wire incompatibilities in release notes for
versions 1.15->1.19

* fix compilation issue with new aeron

* Set default publication unblock timeout to 40s

This needs to be bigger than the liveness timeout. Aeron
defaults these to 5seconds and 10seconds. Akka uses 20s
for the liveness so use 40s for the unblock to keep the same
relation between the properties as Aeron has.

* Add publication unblock timeout in sharedmedia driver

* Update akka-remote/src/main/scala/akka/remote/artery/ArterySettings.scala

Co-Authored-By: Helena Edelson <helena@users.noreply.github.com>
This commit is contained in:
Christopher Batey 2019-06-13 20:44:30 +01:00 committed by Patrik Nordwall
parent 6660e8504a
commit fd1acb9326
6 changed files with 13 additions and 3 deletions

View file

@ -64,6 +64,7 @@ object SharedMediaDriverSupport {
val driverContext = new MediaDriver.Context
driverContext.aeronDirectoryName(aeronDir)
driverContext.clientLivenessTimeoutNs(arterySettings.Advanced.Aeron.ClientLivenessTimeout.toNanos)
driverContext.publicationUnblockTimeoutNs(arterySettings.Advanced.Aeron.PublicationUnblockTimeout.toNanos)
driverContext.imageLivenessTimeoutNs(arterySettings.Advanced.Aeron.ImageLivenessTimeout.toNanos)
driverContext.driverTimeoutMs(arterySettings.Advanced.Aeron.DriverTimeout.toMillis)
val idleCpuLevel = arterySettings.Advanced.Aeron.IdleCpuLevel

View file

@ -1090,6 +1090,10 @@ akka {
# Only used when transport is aeron-udp.
client-liveness-timeout = 20 seconds
# Timout after after which an uncommitted publication will be unblocked
# Only used when transport is aeron-udp.
publication-unblock-timeout = 40 seconds
# Timeout for each the INACTIVE and LINGER stages an aeron image
# will be retained for when it is no longer referenced.
# This timeout must be less than the 'handshake-timeout'.

View file

@ -203,6 +203,10 @@ private[akka] final class ArterySettings private (config: Config) {
config
.getMillisDuration("client-liveness-timeout")
.requiring(interval => interval > Duration.Zero, "client-liveness-timeout must be more than zero")
val PublicationUnblockTimeout: FiniteDuration =
config
.getMillisDuration("publication-unblock-timeout")
.requiring(interval => interval > Duration.Zero, "publication-unblock-timeout must be greater than zero")
val ImageLivenessTimeout: FiniteDuration = config
.getMillisDuration("image-liveness-timeout")
.requiring(interval => interval > Duration.Zero, "image-liveness-timeout must be more than zero")

View file

@ -95,6 +95,7 @@ private[remote] class ArteryAeronUdpTransport(_system: ExtendedActorSystem, _pro
driverContext.aeronDirectoryName(randomName)
}
driverContext.clientLivenessTimeoutNs(settings.Advanced.Aeron.ClientLivenessTimeout.toNanos)
driverContext.publicationUnblockTimeoutNs(settings.Advanced.Aeron.PublicationUnblockTimeout.toNanos)
driverContext.imageLivenessTimeoutNs(settings.Advanced.Aeron.ImageLivenessTimeout.toNanos)
driverContext.driverTimeoutMs(settings.Advanced.Aeron.DriverTimeout.toMillis)

View file

@ -38,7 +38,7 @@ import static io.aeron.driver.status.PublisherLimit.PUBLISHER_LIMIT_TYPE_ID;
import static io.aeron.driver.status.ReceiveChannelStatus.RECEIVE_CHANNEL_STATUS_TYPE_ID;
import static io.aeron.driver.status.ReceiverPos.RECEIVER_POS_TYPE_ID;
import static io.aeron.driver.status.SendChannelStatus.SEND_CHANNEL_STATUS_TYPE_ID;
import static io.aeron.driver.status.StreamPositionCounter.*;
import static io.aeron.driver.status.StreamCounter.*;
import static io.aeron.driver.status.SystemCounterDescriptor.SYSTEM_COUNTER_TYPE_ID;
/**

View file

@ -18,9 +18,9 @@ object Dependencies {
val slf4jVersion = "1.7.25"
val scalaXmlVersion = "1.0.6"
// check agrona version when updating this
val aeronVersion = "1.15.1"
val aeronVersion = "1.19.1"
// needs to be inline with the aeron version
val agronaVersion = "0.9.31"
val agronaVersion = "1.0.1"
val nettyVersion = "3.10.6.Final"
val jacksonVersion = "2.9.9"