Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 17:25
    valdisz synchronize #3889
  • 17:17
    valdisz synchronize #3889
  • 15:44
    valdisz synchronize #3889
  • 09:22
    ismaelhamed commented #3863
  • Oct 19 23:39
    valdisz synchronize #3889
  • Oct 19 23:08
    edvinasz commented #2947
  • Oct 19 13:36
    Aaronontheweb commented #3973
  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3995
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump BenchmarkDotNet from 0.10.… (compare)

  • Oct 19 13:34
    dependabot-preview[bot] edited #3995
  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3993
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump Google.Protobuf from 3.9.1… (compare)

  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3991
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump Microsoft.Extensions.Depen… (compare)

  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3989
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump ApiApprover from 3.0.1 to … (compare)

  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3992
  • Oct 19 13:34
    dependabot-preview[bot] edited #3993
  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3985
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump System.Reflection.Emit fro… (compare)

Ralf
@Ralf1108
when the processing is finished then all messages are unstashed and actor switches back to orginal state
now the original message can be answered
this works
but i also added passivation to the actor
so if the passivate message arrives during processing .. the passivate message will be handled and actor is shutdown
the orginal sender wont get a nice repsonse.. but instead could deathwatch the actor :-(
so if i could check if there are currently stashed messages i would also stash the passivate message... that should work
does this makes sense?
i could keep track of stashed messages count by myself. wondered if the count or "not empty stash" could be checked
maybe using reflection :P
Maxim Cherednik
@maxcherednik
just thinking what I would do
what is this passivation message? what do you mean by this?
Arjen Smits
@Danthar
Its a pattern
Ralf
@Ralf1108
yes, i implemented it like this.
parent sent passivate to child and stops forwarding messages to child
child stops it self when nothing doing anything else
parent gets informed via deathwatch
Arjen Smits
@Danthar
@Ralf1108 what you can do. Is once you receive the passivate message
unstash all messages, then send the passivate message to yourself again. Basically forward it. Because you also change the state of your actor (switching from processing to the other state).
You could have the passivate message be handled differently
so if your in processing and receive a passivate. Unstash and forward passivate message to yourself
then all stashed messages get handled
Ralf
@Ralf1108
i get the idea
Arjen Smits
@Danthar
:+1:
Ralf
@Ralf1108
i think it would be enough to just stash the passivate message when in the processing state
Arjen Smits
@Danthar
thats also possible.
Ralf
@Ralf1108
when processing is finished... unstash all moves original message first and then passivate message into mailbox
so normal workflow occurs
thx guys for helping out !!! :+1:
Arjen Smits
@Danthar
np
@maxcherednik passivate is a pattern used to reduce the amount of idle actors in your topology
imagine you have an actor per user in your system
and your routing messages to those user actors
you would have an coordinator as the parent of those user actors
which receives user messages and forwards them to the correct actor
then, depending on a strategy of your own making
for example a timeout
lets say that once a user actor has not seen a message in X amount of time
you want to stop it, so its state is unloaded from memory
the coordinator sends a passivate message to the user actor and starts buffering messages for that actor
actor stops, deathwatch notifies the coordinator
if the coordinator receives messages for that user again
it starts up the actor again
and forwards the message once the actor is up
this kind of pattern is very useful if you have a large pool of stateful actors which only occasionally receive messages.
Arjen Smits
@Danthar
Cluster Sharding uses passivate
Ralf
@Ralf1108
i like this pattern. it allows to manage thousands of actors and only the hotspot actors which are currently in use will be available in memory. similar to a garbage collector
Maxim Cherednik
@maxcherednik
@Danthar I see. Thx. Just never used it.
I am just wondering why don't I have this logic inside the Actor based on timeout - stop self...
then once new message arrives - the parent will just create it again and send the message to it