We are developing a product using akka and plan to use it in production.
During load-test's I have observed a behavior and need some guidance over
it. I will give some brief details first:
I have an actor 'A'. There are say other '10' actors which are all remotely
deployed seperately.
1) An Actor 'A' on receiving a message, sends a message("Update") to other
'10' actors
2) It schedules a message to itself after 0.5 second. On receving this
message, it checks if it has received notification from '10' Actors. If any
of the actor has not replied, then it re-sends the message to that actor
and set's a schedule for itself for 0.5 seconds to verify again
3) If at 6th attempt, it still fails then a failure response is sent back
to client
Problem:
'A' is sending a message to each actor (so expects 10 notifications total).
But hey, some notifications might not reach on time (for whatever reason)
and duplicate messages are sent. Thus expected notifications by 'A' for one
message from client is ">=10 and <=60". Issue:
1) Exponential increase in time taken to reply back to client as load
increases.
This is because 'A' happens to spend much more time doing internal work
than taking requests.
At worse, if message drop rate is high then the whole system is at a stand
still as there are too many scheduled messages (sent to itself to verify)
and notifications from other actors. Also due to the extended delay, many
"Update" fail and unneccessory duplicate messages are sent to '<10' actors
again.
What can be the solution to it?
I can forgo Thread-Safety and manage it myself. Can I have some mechanism
where multiple threads access the same actor? This can help me processing
the mail-box a bit faster. Surely, single threaded processing is not
helping me.
Anything else?
Else Akka is awesome!!
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://akka.io/faq/
>>>>>>>>>> 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 http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/groups/opt_out.