The GitHub Actions job "Pull Requests" on 
pekko.git/optimize-stage-actor-ref-lazy-dispatch has failed.
Run started by GitHub user He-Pin (triggered by He-Pin).

Head commit for run:
f95af10c02f8bf8460c6f68297f21e454c2c2ef3 / He-Pin <[email protected]>
fix: optimize lazy stage actor dispatch

Motivation:

Lazy stage actor refs used the materializer supervisor path before entering 
stream async input, adding an extra actor hop for the common non-eager path. 
Eager stage actor refs still need the existing pre-demand materialization 
behavior.

Modification:

Add separate eager and lazy StageActorRef handlers. Bind non-eager refs to the 
graph interpreter actor and dispatch through GraphInterpreter.onAsyncInput. 
Keep eager refs on the materializer supervisor. Add directional tests for lazy 
placement/message delivery and eager compatibility, plus a JMH benchmark.

Result:

Non-eager stage actor messages target the graph interpreter actor while 
preserving async-input semantics and eager compatibility.

Tests:

- scalafmt stream/src/main/scala/org/apache/pekko/stream/stage/GraphStage.scala 
stream-tests/src/test/scala/org/apache/pekko/stream/scaladsl/StageActorRefSpec.scala
 bench-jmh/src/main/scala/org/apache/pekko/stream/StageActorRefBenchmark.scala

- sbt "stream-tests / Test / testOnly 
org.apache.pekko.stream.scaladsl.StageActorRefSpec"

- sbt "bench-jmh / Compile / compile" "stream / mimaReportBinaryIssues" 
"bench-jmh / headerCheck"

- sbt "bench-jmh / clean" "bench-jmh/Jmh/run -i 1 -wi 0 -f 1 -r 1s -w 1s 
.*StageActorRefBenchmark.*" => 5611073.982 ops/s

- git diff --check

References:

Refs https://github.com/akka/akka-core/issues/26857 (public issue only; 
clean-room implementation)

Report URL: https://github.com/apache/pekko/actions/runs/26736465945

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to