Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Apr 03 22:24
    huzaifak opened #4367
  • Apr 03 21:45
    Aaronontheweb commented #4344
  • Apr 03 05:55
    Lutando commented #4344
  • Apr 02 17:23
    huzaifak commented #4303
  • Apr 02 17:23
    huzaifak closed #4303
  • Apr 02 02:13
    ShawnYun commented #4366
  • Apr 01 17:18
    huzaifak commented #4303
  • Apr 01 14:30
    Aaronontheweb commented #4366
  • Apr 01 14:29
    Aaronontheweb closed #4360
  • Apr 01 14:29
    Aaronontheweb commented #4360
  • Apr 01 06:43

    dependabot-preview[bot] on nuget

    (compare)

  • Apr 01 06:43
    dependabot-preview[bot] closed #151
  • Apr 01 06:43
    dependabot-preview[bot] commented #151
  • Apr 01 06:43
    dependabot-preview[bot] labeled #152
  • Apr 01 06:43
    dependabot-preview[bot] opened #152
  • Apr 01 06:43

    dependabot-preview[bot] on nuget

    Bump AkkaVersion from 1.4.1 to … (compare)

  • Apr 01 06:43

    dependabot-preview[bot] on nuget

    (compare)

  • Apr 01 06:43
    dependabot-preview[bot] closed #125
  • Apr 01 06:43
    dependabot-preview[bot] commented #125
  • Apr 01 06:43
    dependabot-preview[bot] labeled #127
Christian Sparre
@christiansparre
For a monitoring solution for our services (not using clustering), what would be the best way to present a "list/tree" of actors of a local actorsystem. Having each actor respond to a "getchildren" message or is there a way to ask the actorsystem this? Is there a way to traverse the actor tree?
Zetanova
@Zetanova
@christiansparre the get list/tree its the same as to work with system file directories. You need to ask each folder for the child-items. But i dont know if there is a system message for doing it like Akka.Actor.Identity
Arjen Smits
@Danthar
There is no officially supported way of doing this. But there is a hacky one.
Lejdholt
@Lejdholt
Hi, AroundReceive for UntypedActor allways returns true and ReceiveActor inherites from UntypedActor without changing this behavior. Shouldn't ReceiveActor return false for AroundReceive if for some reason the message wasn't handled by a Receive function defined in a ReceiveActor?
Arjen Smits
@Danthar
@christiansparre check out this repo by @rogeralsing https://github.com/rogeralsing/Beacon
The actor in there illustrates a way you can "explore" your actorsystem.
However once again. this is not officially supported stuff. But it should give you a nice sample on how you can do this.
basically what it boils down to is you recursively apply an Identify message on an ActorSelection with wildcard
Problem is, you never know when you are done. So running this could kill your cluster :P because you;d end up continually spamming it with identify messages.
But it you could tweak it with clear end-conditions, or be able to restrict it parts of your cluster only. It could be the basis of a nice tool.
Bartosz Sypytkowski
@Horusiath
@Lejdholt it's a very good notice.
could you set that as an issue on github?
Lejdholt
@Lejdholt
Was hoping it was me who didn't understand ;P. But yes, I'll do that.
Bartosz Sypytkowski
@Horusiath
@eyantiful since you can send message through cluster in multiple ways, you need to be more precise. There are few various examples here i.e. cluster section from core repo and cluster web crawler
Lejdholt
@Lejdholt
@Horusiath here is the new issue akkadotnet/akka.net#1894
Jeff Cyr
@JeffCyr
@Lejdholt @Horusiath I think Unhandled(object msg) is called somewhere else in ReceiveActor
eyantiful
@eyantiful
@Horusiath sorry for the minimalism.
I have a custom serializer (ProtoBuf.Net) for type Message.
Message has (among others) IActorRef property for the initiator actor.
In the samples you mentioned the default serializer is used as far as i can tell.
Might be ISurrogated interface which should be surrogated?
I guess the question is more is passing IActorRef around good practice?
In a low-latency application what is the overhead of the resolving for each message?
Lejdholt
@Lejdholt
@JeffCyr If I want to log handled messages (commands) to a message store in my ReceiveActor without doing it in every receive function, how would I do that? I thought I could use AroundReceive for this, guess not. Feels a bit inconsistent but I think i'm missing something.
Jeff Cyr
@JeffCyr
@Lejdholt Do you expect an actor to receive a lot of unhandled messages? Why not log every messages?
Lejdholt
@Lejdholt
@JeffCyr No but I dont want to store commands that wasn't handled. Storing commands are for followup, what command resultet in that event, through correlationids and causationids
Artur Karbone
@ArturKarbone
Is there a more advanced way to control ITellScheduler? Cron-like for instance. Currently ITellScheduler provides initial delay and iterval.
I want something like once at 2AM during workdays, stuff like that. Thanks
Lejdholt
@Lejdholt
logging commands to a "normal" log is already done in the parent actor.
Jeff Cyr
@JeffCyr
@ArturKarbone Not sure if this is production ready, but I think you are looking for https://github.com/akkadotnet/Akka.Quartz.Actor cc @maxim-s
Artur Karbone
@ArturKarbone
@JeffCyr i think this is what i need. Thanks
Bartosz Sypytkowski
@Horusiath
@eyantiful in order to serialize IActorRefs, serializer must support surrogates (both Wire and JSON.NET do), otherwise you'd need to pass it i.e. string determining path to an actor, and then resolve it by yourself.
passing IActorRef is good, if used when necessary. Also how low-latency do you mean?
eyantiful
@eyantiful
@Horusiath we should support 15k concurrent msgs in under 100ms.
When you say resolving do you mean ActorSelection?
Jeff Cyr
@JeffCyr
@eyantiful Are you able to batch messages? Akka.Remote cannot handle 150K msg/sec
We are working on increasing the performance of Akka.Remote in v1.5
eyantiful
@eyantiful
@JeffCyr are you talking from single node? the figures are for the cluster as a whole.
@JeffCyr Im currently POC to see how far can we go with minimum nodes in order to asses cluster size...
Jeff Cyr
@JeffCyr
@eyantiful Yes I meant for a single node, I made a benchmark with two nodes on the same machine on loopback, I could get ~6K msg/sec
On v1.5 we were at 100K msg/sec for the same test, and there were still room for improvements
eyantiful
@eyantiful
@JeffCyr Default serializer change ?
Bartosz Sypytkowski
@Horusiath
@eyantiful actor system on a single machine (8 cores) can serve around 20-27mln msg/sec - this can be ofc slowed significantly by things such as persistence, but it also points how important local affinity of actors is
Bartosz Sypytkowski
@Horusiath
also for communication between nodes, take a look at Wire - it supports everything, default akka serializer should support and has quite good performance - you can see some comparison here
Vagif Abilov
@object
I get exception while executing TakeSnapshot command for persistence actors implemented in F#:
"Unable to cast object of type 'Akka.Serialization.WireSerializer' to type 'Akka.Serialization.NewtonSoftJsonSerializer'."
System.InvalidCastException: Unable to cast object of type 'Akka.Serialization.WireSerializer' to type 'Akka.Serialization.NewtonSoftJsonSerializer'.
at Akka.Persistence.FSharp.FunPersistentActor`3.OnCommand(Object msg)
at Akka.Persistence.UntypedPersistentActor.ReceiveCommand(Object message)
at Akka.Persistence.UntypedPersistentActor.Receive(Object message)
at Akka.Actor.ActorBase.AroundReceive(Receive receive, Object message)
at Akka.Persistence.Eventsourced.<ProcessingCommands>b__90_0(Receive receive, Object message)
at Akka.Persistence.Eventsourced.AroundReceive(Receive receive, Object message)
at Akka.Actor.ActorCell.ReceiveMessage(Object message)
at Akka.Actor.ActorCell.Invoke(Envelope envelope)
I inspected Akka code and apparently this line fails:
let serializer = UntypedActor.Context.System.Serialization.FindSerializerForType typeof<obj> :?> Akka.Serialization.NewtonSoftJsonSerializer
Bartosz Sypytkowski
@Horusiath
@object which version of Akka.FSharp are you using?
Vagif Abilov
@object
1.0.7
Jeff Cyr
@JeffCyr
@eyantiful Yes I was using Wire
Bartosz Sypytkowski
@Horusiath
ok, this is a bug
Vagif Abilov
@object
I have configured Wire as serializer, and as you can see that it casts to Newtonsoft.Json
Bartosz Sypytkowski
@Horusiath
I thought, we removed that line some time ago
Vagif Abilov
@object
So the workaround is to get rid of this line and compile from sources?
Zetanova
@Zetanova
This GC Collections test of PerfUtil for Gen0-2 looks interesting
Bartosz Sypytkowski
@Horusiath
@object yes, cause this line was part of workaround, we've made for json.net not being able to properly deserialize some of the f# types
Vagif Abilov
@object
I see. Should I create an issue for that or you will take care of this?
Bartosz Sypytkowski
@Horusiath
please set an issue, I have a limited time for last few months and I could forget that