Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 18 19:12
    IgorFedchenko commented #3998
  • Oct 18 18:29
    Aaronontheweb commented #3998
  • Oct 18 18:24
    Aaronontheweb opened #3998
  • Oct 18 18:19

    Aaronontheweb on fix-readme-logo

    (compare)

  • Oct 18 17:30
    Aaronontheweb milestoned #3973
  • Oct 18 16:38
    jaydeboer opened #3997
  • Oct 18 15:53
    Aaronontheweb synchronize #3973
  • Oct 18 15:52

    dependabot-preview[bot] on dev

    Bump Microsoft.NET.Test.Sdk fro… (compare)

  • Oct 18 15:52

    dependabot-preview[bot] on nuget

    (compare)

  • Oct 18 15:52
    dependabot-preview[bot] closed #3996
  • Oct 18 15:52
    Aaronontheweb commented #3996
  • Oct 18 14:53
    Aaronontheweb commented #3973
  • Oct 18 12:20
    IgorFedchenko commented #3973
  • Oct 18 12:17
    IgorFedchenko commented #3973
  • Oct 18 11:58
    IgorFedchenko synchronize #3973
  • Oct 18 11:33
    IgorFedchenko commented #3973
  • Oct 18 11:25
    IgorFedchenko synchronize #3973
  • Oct 18 07:04
    dependabot-preview[bot] labeled #3996
  • Oct 18 07:04
    dependabot-preview[bot] opened #3996
  • Oct 18 07:04

    dependabot-preview[bot] on nuget

    Bump Microsoft.NET.Test.Sdk fro… (compare)

Bartosz Sypytkowski
@Horusiath
for persisting multiple events at once you may just use PersistAll method
Alex Achinfiev
@aachinfiev
Your first point is my use case for the import case. Looks very interesting. I need to check that out. Thanks :)
Michael Chandler
@optiks
Hello. Is it possible to intercept ICanTell.Tell()? I'd like to add some logging. Or would this be better done by monitoring the mailbox or
  • or some other means.
Basically, I want to be able to visualise the messages flying around. I'd like to generate a sequence diagram or similar. AroundReceive works for the receiving side, but not the sending side.
Aaron Stannard
@Aaronontheweb
@optiks on the sending side...
unfortunately I don't think you can intercept the .Tell operation without using something like PostSharp to do IL weaving
since that's built into objects like all of the IActorRef implementations
Kevin Avignon
@Kavignon
@Horusiath Well I'd Actor A to start first and it starts 4 actors at different moments. And once they're not useful any more, I'd like to dispose of them
Michael Chandler
@optiks
@Aaronontheweb Thanks. I had a poke around and came to the same conclusion. It would be a nice extensibility point :)
Michael Chandler
@optiks
Hacky workaround is to use an extension method. i.e. Duplicate ActorRefImplicitSenderExtensions. It just needs to be defined in each project due to scoping.
Aaron Stannard
@Aaronontheweb
@to11mtm yeah, we're going to bring that back into the picture
I'd be up for releasing that now
seen a couple of interesting ideas
one is the aftorref caching
the other is lazily creating the remote actor ref
for the sender
if it's not needed
@schepersk dude, I'm so sorry - looks like I totally missed your messages over the past week
do you still need help with those cluster issues?
Bartosz Sypytkowski
@Horusiath
@Kavignon with standard akka.fsharp you can use mailbox.Context.Child(name) to try to get the child from the parent by name. If such actor didn't exist, it will return ActorsRefs.Nobody as a reference.
Aaron Stannard
@Aaronontheweb
seems weird to me that now that we have TeamCity formatting for NBench all of our performance specifications suddenly stop being racy again
the concurrent programming version of the observer effect :p
Sean Farrow
@SeanFarrow
@aaronontheweb is that just on the server or building locally as well
Aaron Stannard
@Aaronontheweb
@SeanFarrow building locally it's worked fine for the most part. We had issues on the server where the time-sensitive Akka.Streams NBench specs would fail
5ms deadlines on some of them
Aaron Stannard
@Aaronontheweb
blob
there we go
we're going to be adding this to the Multi node test runner as well
that'll allow TeamCity's "flaky tests" report to help signal to us where we need to go spend some time hardening stuff
the benchmarking stuff is a bit harder to fix mostly because benchmarking concurrent code is a dark art
we do things like toggle the processor priority to help it get scheduled ahead of everything else, but we're still at the mercy of the OS when it comes to that
in the grand scheme of things, relativistic benchmarking is the way to solve that
build up a history of every benchmark run for the same hardware profile and judge any new benchmark relative to the old ones
and use an estimated weighted moving average or some sort of threshold system to determine if a new change is seriously out of line or not
but that requires storing the state somewhere and adding a bunch of fun network calls to the assertion engine NBench uses
and better hardware finger printing
Aaron Stannard
@Aaronontheweb
next thing happening to NBench is .NET Core support; after we're tied to the constraints of what .NET Core does (i.e. no more performance counters,) we can come up with a strategy that will work X-plat
question for someone in the room: any Unity3D programmers in here? what's going on with their .NET version roadmap? https://unity3d.com/unity/roadmap
Still on .NET 2.0?
Andrey Leskov
@andreyleskov
Hi all. I'm looking for saving snapshot after all of produced events persistence
from docs I've found DeferAsync method
but it will be called after first scheduled PersisteAsync
I'm using PersistAll, so DeferAsync will be called many times
how can I call a method after all of events been persisted?
Bartosz Sypytkowski
@Horusiath
@andreyleskov DeferAsync works in combination with PersistAsync, but it's not necessary for Persist itself. Also Persist takes callback to be called, when event persist will be confirmed
Andrey Leskov
@andreyleskov

@Horusiath
I had a code:

 var events = CurrentState.Change();
 PersistAll(events, e => Publisher.Publish(e));
 SaveSnapshot(CurrentState);

And it produce invalid snapshots sometimes - it cannot be restored from persisted events. I assume some of events can be lost.
So I'm looking for a way to save snapshot after all events will be persisted, not just one.
Now switched to

 var events = CurrentState.Change();
 PersistAll(events, e => Publisher.Publish(e));
var state  = CurrentState;
Defer(state, s => SaveSnapshot(s));
May be this is a stupid problem but I can't figure out better solution from documentation 8 (
Bartosz Sypytkowski
@Horusiath
@andreyleskov standard approach is to save snapshot every X events persisted. Snapshots are used only as optimization in case when event stream for persistent actor gets long, and may be time consuming to replay
Andrey Leskov
@andreyleskov
@Horusiath yes, and I'm using it exact for this purpose ) Just removed code that decide how often we should save snapshots. Do you mean it is better to switch to
PersistAll ( events, e => { 
if(Decider.ShouldSave(e))
   SaveSnapshot(CurrentState);
});