On Wed, Nov 29, 2017 at 11:14 AM, Seoras Ashby <[email protected]>
wrote:
> Hi,
>
> Today my persistent actor is using the default UnboundedDequeBasedMailbox.
> However, to improve resiliency, I would like to use a non-blocking
> BoundedDequeBasedMailbox so that my persistent actor drops messages to dead
> letters if it is overwhelmed and cannot keep up with incoming messages.
>
> Config might be something like this:
>
> roqactor-mailbox {
> mailbox-type = "akka.dispatch.BoundedDequeBasedMailbox"
> mailbox-capacity = 500
> mailbox-push-timeout-time = 0ms
> }
>
> I am concerned about any possible side effect the bounded mailbox might
> introduce on the recovery of the actor state from its persistent journal.
>
> Specifically does the mailbox-capacity need to be greater than the maximum
> number of journal events in the actor's journal?
>
> For example say my actor's persistent journal contains 4000 events and my
> mailbox-capacity is 500 will recovery work reliably? Or does my
> mailbox-capacity need to be at least 4000 in this example?
>
That could be a problem, since such messages would just silently be
discarded and the state of the actor would be wrong after recovery.
I think the main bottleneck is that incoming messages are stashed when the
actor is waiting for confirmation of persisting an event. The stash will
fill up, not the mailbox. Well, the mailbox is used for stashing, but you
get the point. Therefore we recommend setting the stash-capacity
https://doc.akka.io/docs/akka/current/persistence.html?language=scala#internal-stash
You should also have some kind of flow control for incoming messages, e.g.
that the persistent actor sends acknowledgment back to the original sender
after persisting. Senders shouldn't have too many such requests in flight.
There are a lot of variations of implementing such flow control, including
using Akka Streams.
Cheers,
Patrik
>
> Are other folks on this list using BoundedDequeBasedMailbox on their
> persistent actors?
>
> Are there any other side effects using a BoundedDequeBasedMailbox with a
> persistent actor that I should look into?
>
> Best wishes,
> Seoras
>
> --
> >>>>>>>>>> Read the docs: http://akka.io/docs/
> >>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/
> current/additional/faq.html
> >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
> ---
> You received this message because you are subscribed to the Google Groups
> "Akka User List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/d/optout.
>
--
Patrik Nordwall
Akka Tech Lead
Lightbend <http://www.lightbend.com/> - Reactive apps on the JVM
Twitter: @patriknw
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.