These are chat archives for akkadotnet/akka.net

6th
Dec 2017
jalchr
@jalchr
Dec 06 2017 14:03

How can I get the children of a shard ?
In regular actor: we do this:

var child = Context.Child(actorName);

What should I do for a shard to query its children or check for existence ?

Bartosz Sypytkowski
@Horusiath
Dec 06 2017 18:06
@jalchr are you trying to get children of your sharded actor? Or do you want to check which sharded actors are currently active within the shard?
jalchr
@jalchr
Dec 06 2017 20:26
The second option
Bart de Boer
@boekabart
Dec 06 2017 20:30
I have a question about basic Akka.Net, no remoting/clustering. It's about Dispatcher behaviour, I think.
I have a pipeline of actors (read xml to many fragments, process the fragments (in various ways, in about 3 parallel pipelines), then aggregate into a single actor, that outputs 'arrays' each N seconds, to a Serializer actor and then to a WriteFileContents actor.
What I observe, and this is unexpected, is that when I'm reading a 200.000 fragment xml file, I do quickly see some entities ending up in my 'buffer' , which gets triggered to output every 10 seconds, and it does output every 10 seconds roughly. However, it seems that under the 'load' of those many, many entities in the 'upstream' part of the system, that the couple of messages at the 'downstream' (after the buffer) get handled only VERY sporadically - at least less than once every 10 seconds (meaning that i'm going to write multiple files in the same second)
so it seems the default dispatcher behaviour doesn't help me to quickly 'stream' the pieces of data all the way to the end, it seems to prefer moving the entire bulk through the pipeline slowly ('breadth-first' instead of 'depth-first').
Bart de Boer
@boekabart
Dec 06 2017 20:35
I would have thought that the default 100 messages limit on the mailbox processing (throughput ) would prevent that, and would give all actors a chance to handle their messages constantly (sub-second intervals). The processing of each message definitely does not take 1/10th second or even close to that.