* the lower bound was rather racy, depends on "where in it's Tick"
time the throtteler currently was. In general the upper bound is also
not exact, but "good enough" because the `.5` is an estimation of "the
throtteler must finish it's previous tick, and then it sends the data"
* lower redelivery interval does not change semantics here (no one
answers anyway), and lessens the changes to be "unlucky" with gc pauses
* was unable to reproduce error with snapshotting in 80 builds on
jenkins. Brainstormed possible errors but not found yet..
For example in Java 7 you can now join a multicast group:
case class JoinGroup(group: InetAddress, networkInterface: NetworkInterface) extends SocketOption {
override def afterConnect(c: DatagramChannel): Unit = {
c.join(group, networkInterface)
}
}
IO(Udp) ! Udp.Bind(self, new InetSocketAddress(MulticastListener.port),
options=List(ReuseAddress(true),
JoinGroup(MulticastListener.group, MulticastListener.interf)))
Other minor changes:
- changed all methods in SocketOption to take a Channel instead of a Socket. The socket can be gotten from the Channel but not the reverse.
- all methods that are called before the bind are now called beforeBind for consistency.
- All network connections now call the beforeBind and afterConnect.
When in `A`:
* `goto(A)` will trigger `onTransition(A -> A)`
* `stay()` will NOT trigger `onTransition`
Includes:
* migration guide
* docs updates
* test
Original here: https://github.com/krasserm/akka-persistence-testkit
New features:
* merged martin's tests
* usable from java (junit 4)
* simple bench test, which helps checking if ordering is perserved under
bigger workloads and simple perf checking
* does NOT include tests for already deprecated features (deleteMessages)
* docs
Resolves#13815
Conflicts:
project/AkkaBuild.scala
Updated release date for "Akka Concurrency" and "Akka in Action" release date estimate, and added references to two books, "Effective Akka" and "Developing an Akka Edge".
This patch removes a lock around the getter of _logLevel. The setter is
still guarded for consistency. Note that out of thin-air reads, while
not excluded under the current JMM, are forbidden by current hardware.
Signed-off-by: Duarte Nunes <duarte.m.nunes@gmail.com>
* When using the Processor batching buffer for persistAsync and defer
the events were unstashed by Processor.aroundPreRestart and
thereby were received as commands after restart
* Instead we must flush this buffer when using PersistentActor
(cherry picked from commit 627ce2fc85739e221524ec48725362ef7c0566ea)
* I suspect that the issue #15440 happens because of replay of events
in wrong order (ShardHomeAllocated received before ShardRegionRegistered)
by the hbase journal
* This does not fix that issue, but the additional invariant checks and
debug statements would perhaps make it easier for us to diagnose such
issues
* These changes also ensures that the allocation strategy does not return
the wrong thing.
* It also tightens a possible error if a region is terminated while a
rebalance is in progress
(cherry picked from commit d07b9db4958236d580b8bfb8f92461969ff88cbc)
We must first release akka-stream with dependency to akka 2.3.4
and it should be maintained in the akka-release-dev branch
(cherry picked from commit a97a067701cfc527b235707882e72326277415f3)
Conflicts:
akka-samples/akka-sample-persistence-scala/build.sbt
akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/StreamExample.scala
We have assumed that the handlers can be popped when replies come back from journal, but if messages to journal are in flight when the actor is restarted the handlers does not match up with journal replies.
This solution ignores journal replies that were emitted by an old PersistentActor instance
by passing an uid with the journal messages. This means that the handler will not be
invoked for such messages.
(cherry picked from commit 7ebaaab669c9e467a1ffb4d9ed8b6500e1801a7c)
Conflicts:
akka-persistence/src/main/scala/akka/persistence/JournalProtocol.scala
akka-persistence/src/main/scala/akka/persistence/Processor.scala
akka-persistence/src/main/scala/akka/persistence/journal/AsyncWriteJournal.scala