[WIP] Large message stream for Artery (#20545)
* First stab at separate large message channel for Artery * Full actor paths, no implicit "/user/" part * Various small fixes after review * Fixes to make it work after rebasing * Use a separate EnvelopeBufferPool for the large message stream * Docs for actorSelection not sending through large message stream
This commit is contained in:
parent
a4b996546e
commit
cd71643a91
6 changed files with 266 additions and 14 deletions
|
|
@ -438,6 +438,13 @@ private[akka] trait RemoteRef extends ActorRefScope {
|
|||
final def isLocal = false
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
*/
|
||||
private[remote] sealed abstract class LargeMessageDestinationFlag
|
||||
private[remote] case object RegularDestination extends LargeMessageDestinationFlag
|
||||
private[remote] case object LargeDestination extends LargeMessageDestinationFlag
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
* Remote ActorRef that is used when referencing the Actor on a different node than its "home" node.
|
||||
|
|
@ -454,6 +461,9 @@ private[akka] class RemoteActorRef private[akka] (
|
|||
|
||||
@volatile var cachedAssociation: artery.Association = null
|
||||
|
||||
// used by artery to direct messages to a separate stream for large messages
|
||||
@volatile var cachedLargeMessageDestinationFlag: LargeMessageDestinationFlag = null
|
||||
|
||||
def getChild(name: Iterator[String]): InternalActorRef = {
|
||||
val s = name.toStream
|
||||
s.headOption match {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue