These are chat archives for akkadotnet/akka.net

8th
Jun 2016
Aaron Stannard
@Aaronontheweb
Jun 08 2016 18:13 UTC
@cconstantin making some pretty major mailbox and dispatcher changes today - big one is that bounded collections will no longer block
excess messages go to deadletters instead
you needed to change some of the mailbox stuff recently for streams, right?
(these changes align us to the JVM)
Chris Constantin
@cconstantin
Jun 08 2016 18:15 UTC
yep … the change I made was for testing to ensure stream actors are using the correct dispatcher
Aaron Stannard
@Aaronontheweb
Jun 08 2016 18:16 UTC
these changes are pretty severe
basically threw away all of the previous mailbox code
Chris Constantin
@cconstantin
Jun 08 2016 18:16 UTC
yeah, I had to go through a bunch of hoops for that stream code
Aaron Stannard
@Aaronontheweb
Jun 08 2016 18:16 UTC
we had a totally separate implementation for ConcurrentMailbox away from everything else
and the mixture of public / private / internal stuff doesn't make a lot of sense
what I'm basically doing is changing things around a bit
and giving the dispatcher a bigger role in how the mailboxes work
Chris Constantin
@cconstantin
Jun 08 2016 18:17 UTC
I can update the streams code once you’re done, it’s in StreamTestDefaultMailbox in Akka.Streams.TestKit.Tests
Aaron Stannard
@Aaronontheweb
Jun 08 2016 18:17 UTC
cool, I'd appreciate that
I think I can make it all work in one shot here
Chris Constantin
@cconstantin
Jun 08 2016 18:17 UTC
np, lmk
Aaron Stannard
@Aaronontheweb
Jun 08 2016 18:17 UTC
but if I can't I'll let you know
upshot of these changes
  • much lower memory footprint for all actors
  • sane API
  • faster mailbox throughput (I think)
this will also make it possible for me to swap out the ConcurrentQueue implementations with something like a lock-free MSPC queue
Chris Constantin
@cconstantin
Jun 08 2016 18:19 UTC
cool
Aaron Stannard
@Aaronontheweb
Jun 08 2016 18:19 UTC
since we'll be fully utilizing the IMessageQueue abstraction
other advantage of doing this is I can finally clean up the ActorCell code
and enforce our shutdown guarantees there
Alex Valuyskiy
@alexvaluyskiy
Jun 08 2016 20:03 UTC

@Aaronontheweb probably we should add these routers issues to 1.1
akkadotnet/akka.net#967
akkadotnet/akka.net#1518
akkadotnet/akka.net#1700
akkadotnet/akka.net#1685
akkadotnet/akka.net#1875

and these two
akkadotnet/akka.net#1670
akkadotnet/akka.net#1526

Alex Valuyskiy
@alexvaluyskiy
Jun 08 2016 20:08 UTC
I've seen that you have added weighted routers and cluster metrics to 1.1 release. Do you think that features are important for Cluster stability release? Akka Jvm also have AutoDown Providers and WeaklyUp features, but they also don't important for stability release
simonpetty
@simonpetty
Jun 08 2016 20:32 UTC
hey geys...anyone aware of a DynamoDB plugin being developed for dotnet? (the scala one is here: https://github.com/akka/akka-persistence-dynamodb)
i'm trying to port it myself but it's on a later version of akka
Aaron Stannard
@Aaronontheweb
Jun 08 2016 21:06 UTC
@alexvaluyskiy eh, if I had to cut anything due to a deadline it would be those
the important thing is to extract it out of Akka.Cluster
since the JVM had to do that later
I'm working on the low-level actorcell and dispatcher stuff now
which is at a layer below the router fixes
we need this to guarantee clean shutdowns
which interferes with some of the remoting system stuff right now
i.e. when remoting is trying to shut down
or when a disassociation happens
I need to get the UID fixes merged in too
and that PR is ready to go
akkadotnet/akka.net#2073
but you're right - cluster metrics could wait until a later release
not mission critical in the short run
let's see if we can do it, and if we can't no big deal
release it in 1.5 or in a patch release later
@simonpetty not that I know of
simonpetty
@simonpetty
Jun 08 2016 21:12 UTC
ta. always worth checking ;)
Maciek Misztal
@mmisztal1980
Jun 08 2016 21:40 UTC
hey @Aaronontheweb , is it possible ot have a cluster router always target the current role leader?
Aaron Stannard
@Aaronontheweb
Jun 08 2016 21:47 UTC
@mmisztal1980 not at the moment
although with the router changes we're about to add
it will be possible to have a "controller" actor
that drives the routing table
for a Router
so you could easily have a controller that subscribes to LeaderChanged messages
and changes the router that way