These are chat archives for akkadotnet/akka.net

11th
Apr 2017
Weston
@ronnyek
Apr 11 2017 05:32
so akka.net persistence... is there any mechanisms to effectively let me store state... like say last 1000 measurements
so as messages come across the wire, store em
not for replay
but so I can say give me last so many measurements
would I just include a queue and serialize that as a part of persisent write
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:36
@ronnyek it sounds like you're trying to make some kind of persistent queue on akka ;)
Weston
@ronnyek
Apr 11 2017 05:36
well not for explicitly building a queue there
just want to do something like redis lists
and not use redis =)
not hating on redis
but I do think service fabric had something like a persistent queue
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:38
it is possible, you could have persistent actor with ring buffer, and on incoming message PersistAsync it and when persistence is confirmed, order deletion of events up to CurrentSequenceNr - 1000
Weston
@ronnyek
Apr 11 2017 05:38
I guess I'm just saying seems like its more persisting of messages
not just state
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:39
but at this moment I don't think it's super fast (from what I know, SF queue isn't fast either)
Weston
@ronnyek
Apr 11 2017 05:39
I read an article I think you wrote about slapping a tcp listener to provide telnet like functionality
do you actually do that
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:42
what do you mean? If you can use this example from blog post for Telnet - if so, then yes
I'm working on fixing and optimizing akka.io (you've probably seen branch already) to allow it to work safely with akka.streams and make it faster (it's 2x faster already) and more GC-friendly
Weston
@ronnyek
Apr 11 2017 05:44
cool
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:44
but I don't know if guys will decide to push it into the next release
Weston
@ronnyek
Apr 11 2017 05:45
was it slow?
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:46
hard to say, I've added some tests, but so far I was measuring only 1 server <-> 1 client ping pong message exchange
Weston
@ronnyek
Apr 11 2017 05:47
High Performance
50 million msg/sec on a single machine. Small memory footprint; ~2.5 million actors per GB of heap.
thats from regular akka site
is that something akka.net comes close to?
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:49
yes, but keep in mind, this information is incomplete: 1. It's talking about infrastructure overhead, no way you'll be anywhere close to those numbers in real life scenario. 2. They didn't say on what machine they were making those numbers
Weston
@ronnyek
Apr 11 2017 05:50
yeah I know how benchmarks can be swung
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:50
I case of akka.net I've measured to go up to 3.5-4mln msgs/sec per logical core (so on 4 physical / 8 logical cores I hit 21-27 mln msg/sec)
Weston
@ronnyek
Apr 11 2017 05:51
bitchin
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:51
but those are in-proc messages, when you want to do I/O you'll be a lot slower
Weston
@ronnyek
Apr 11 2017 05:51
well I"m going to do both
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:52
also afaik akka guys benchmarks were made on some big amazon instances
Weston
@ronnyek
Apr 11 2017 05:52
so io is just ability to add some out of box transports to akka... streams is stream processing and reactive streams are the routing/flows etc
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:54
reactive streams are mostly about applying a backpressure mechanism in optimal way, Akka.Streams supports it natively, but ultimately if you want to integrate with some 3rd party protocol or driver, you're limited to possibilities of it

Those are the numbers I've managed to get: Akka.IO ping/pong server test - so client sends ping to server and awaits for pong before sending the next message. 1 client/1server. Message size: 50B.

Current /dev branch

Elapsed: 00:00:08.5385318
Inbound avg.: 52051 msgs/sec
Outbound avg.: 52051 msgs/sec

Current akka-io branch

Elapsed: 00:00:03.5353069
Inbound avg.: 125716 msgs/sec
Outbound avg.: 125714 msgs/sec

Weston
@ronnyek
Apr 11 2017 05:57
nice
Bartosz Sypytkowski
@Horusiath
Apr 11 2017 05:58
those numbers should be nice to spread horizontally
Horusiath @Horusiath afk, time for work
Alex Valuyskiy
@alexvaluyskiy
Apr 11 2017 06:09
@ronnyek On my local PC inproc benchmark has shown 43 mil msg/sec (Akka.NET 1.1.3). It could be faster in the next version of Akka.NET
Weston
@ronnyek
Apr 11 2017 06:16
yeah I think the internal stuff will be just fine
its now more a question about how to get it ingesting as much data as possible
and whether or not this even makes sense
I mean its gonna be like sensor data.... read these measurements etc
which seems like it'd be perfect
Marc Piechura
@marcpiechura
Apr 11 2017 06:27
@ronnyek @Aaronontheweb has worked on such a project IOT + Akka streams, maybe he can share some of his experiences
Makciek
@Makciek
Apr 11 2017 10:16
Hello
Is it possible to set some additional parameters in actor receive logging(ILogReceive on actor and actor.debug.receive=on)? Ex all my message have some base class with kind of Id field and I want logs to include that Id.
ErrCode
@ErrCode
Apr 11 2017 11:13

Hi, I'm trying to prototype an idea with Akka.net. When I try to use Akka.Net with NUnit 3 test cases being run within VS2015 IDE (via NUnit Test adaptor), I'm running into a strange exception:

System.IO.FileLoadException : Could not load file or assembly 'Akka, Version=1.1.3.31, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)

My test project does not use strong name signing so I am surprised to be seeing this message. Is it something expected?

Makciek
@Makciek
Apr 11 2017 11:14
Check if all akka dlls are in bin directory of your tests
ErrCode
@ErrCode
Apr 11 2017 11:20
@Makciek, thanks for that idea. Yes, it does appear to be a Akka.dll in the bin directory (I'm using only the main Akka Nuget at the moment)
but still getting the exception :(
Makciek
@Makciek
Apr 11 2017 11:23
Does your akka project use some umanaged dll/ P/Inovkes?
or you have some custom build step that copy some dlls to you exe projet but not to test projet
try coping your exe projekts bin content to test project bin
if these doesn't work, check your app/web.config
ErrCode
@ErrCode
Apr 11 2017 11:26
Hmm... we are using SQLite.Interop.dll (which probably wraps the native SQLite dll)... but before trying to use Akka.Net it was always able to run the tests
I'll try creating a fresh project to test your theory out about unmanaged dlls/P/Invokes.
Didn't think such things would matter
ErrCode
@ErrCode
Apr 11 2017 11:43
Well that was really unexpected. A fresh test project for my Akka.net test cases doesn't have an issue with loading the Akka.net DLL.
If I can't use my unmanaged DLLs with Akka.net then I don't think I can proceed with using Akka.net
Makciek
@Makciek
Apr 11 2017 11:45
you can
you must simply place 'em in bin folders both your exes & tests folders
check if you choosed target corectly
ErrCode
@ErrCode
Apr 11 2017 11:48
As far as I can see the dlls are put into the test's bin directory.
Franky Ostyn
@FOstyn
Apr 11 2017 13:28
@ErrCode
Had the same problem a couple days ago. Check the version for the 'System.Collections.Immutable', must be v1.1.36 not the latest v1.3.1
Weston
@ronnyek
Apr 11 2017 15:16
@Aaronontheweb if you are ever around and can comment about iot consumption with akka... I'm not necessarily trying to get supre detailed, just get your impression of how it worked out
and scale of data
Aaron Stannard
@Aaronontheweb
Apr 11 2017 15:59
@ronnyek we have people running entire power plant metering grids on Akka.NET
so the networks of what all is being supported can grow quite large
Weston
@ronnyek
Apr 11 2017 16:03
actual ingesion rates pretty high tho
?
oh
also, did you guys just manually build front end endpoint to that
or use something like akka.io with the tcplistener or http
ErrCode
@ErrCode
Apr 11 2017 23:28
@FOstyn thanks for that tip. I checked my project in VS and it does say 1.1.36 for System.Collections.Immutable.
Will try a bit more to see if I can work out why it works for a fresh project, but not my exisiting one.
ErrCode
@ErrCode
Apr 11 2017 23:49
Really need it to be able to integrate with our exisiting code base as this is not something I can simply just rewrite and start from fresh.
Chris Ochs
@gamemachine
Apr 11 2017 23:56
so our common use case for a lot of things is turning out to be basically what the default model in ms orleans is, which is actor per id in a cluster. I'm looking at testing out sharding for this, although I'm a little concerned about all the added complexity in that route that we don't need. Like rebalancing, persistent journal would not be needed in our case. We need short lived actors that if they die they do not restart. So I'm thinking about just a simple algorithm for assigning the node, give the actor a guid id, and deploy it (remotely if needed)