* tried to investigate the (small) increase in LatencySpec that occured
when the internal-dispatcher was introduced
* couldn't see significant difference when running locally
* found a few more places where the internal-dispatcher should be used
* my thinking is that the additional latency could have been caused by
hopping between dispatchers, but I'm not sure if any of these
changes will have an effect (we'll see in Jenkins job)
* more clear router props
* Adds parentheses to Thread.currentThread and Lock.lock
* Removes some unnecessary parentheses and fixes typo
* Simplify Map.get(xxx).getOrElse(yyy) to Map.getOrElse(xxx, yyy)
* Adds parentheses to CountDownLatch#countDown
* Removes unnecessary new-modifier of case-class and asInstance cast
I ran a series of benchmarks and there seem to be different behaviors between the existing and JDK
ForkJoinPools especially on JDK11 and Graal. The results have been really inconclusive about which one would be a benefit overall.
In lack of better evidence, there is not much reason to keep our own copy, so there it goes.
(I couldn't reproduce the high system CPU usage with more recent JDKs that Patrik noticed when
we had it on the table the last time in #22560.)
Fixes#26180.
* Allow for dispatcher aliases and define a internal dispatcher
* Test checking dispatcher name
* MiMa for Dispatchers
* Migration guide entry
* No need to have custom dispatcher lookup logic in streams anymore
* Default dispatcher size and migration note about that
* Test checking exact config values...
* Typed receptionist on internal dispatcher
* All internal usages of system.dispatcher gone through
* Removes the redundant val/final modifier in akka.dispatch/routing
* Formats code via sbt akka-actor/scalafmtAll
* Handle one argment of map/recover/collect in akka-actor module
* Removes unuseful @param annotation
* Remove akka-camel
This module has been deprecated since 2.5.0 and will now be removed in 2.6.
If there is interest it can be moved to a separate community-maintained repo.
* Add note to migration guide
* Remove from allModules as well
* scala.concurrent.Future$InternalCallbackExecutor$ doesn't exist in
Scala 2.13
* also changed the fallback to use sameThreadExecutionContext since they
seems to be identical
Instead of delivering the custom message, store it locally and then
deliver it when the Terminated instance is received.
This ensures that terminatedQueued is properly cleaned when watchWith is
used.
* lease api
* Cluster singleton manager with lease
* Refactor OldestData to use option for actor reference
* Sharding with lease
* Docs for singleton and sharding lease + config for sharding lease
* Have ddata shard wait until lease is acquired before getting state
* Adds JoiningSeedNodesUnsuccessfulReason
* Promotes IncompatibleConfigurationDetectedReason to public API
* Rename class after PR comments
* Use a custom exit code on joinUnsuccesful shuhtdown
* Mima
* Scalafmt
So now we can compile akka-distributed-data with
-Xfatal-warnings - though I'm not yet sure about
enabling the (other) undisciplineScalacOptions
* Fix multi-node silencing
* Fix scaladoc warnings
* Introduce annotation to declare ccompat use
* Add explicit toString
* Fix deprecation on 2.13
* Move 'immutable' ccompat helpers to shared ccompat package
* Add MiMa for internal scala 2.13 compatibility class
* Internal API markers
* Fix scaladoc generation
Got bitten by https://github.com/scala/bug/issues/11021
It seems when no system messages need to be handled, systemQueuePut is
mostly called with both lists being empty. In that case, we try to
avoid the CAS overhead.
This changes behavior at least in two regards:
* no volatile memory access, so there's no barrier (but is that required?)
* one less opportunity for competing threads to put a message into the
queue and have that being delivered immediately, so the previous
version could be seen as an extra poll (but would that be needed for
anything?)