Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 14 21:02
    Aaronontheweb synchronize #3975
  • Oct 14 21:02
    Aaronontheweb opened #3975
  • Oct 14 20:11
    IgorFedchenko commented #3973
  • Oct 14 20:10
    IgorFedchenko synchronize #3973
  • Oct 14 20:06
    IgorFedchenko synchronize #3973
  • Oct 14 20:06
    IgorFedchenko synchronize #3973
  • Oct 14 19:42
    IgorFedchenko edited #3973
  • Oct 14 18:08
    Aaronontheweb commented #3937
  • Oct 14 17:27
    Aaronontheweb commented #90
  • Oct 14 17:26
    Aaronontheweb commented #90
  • Oct 14 17:25
    Aaronontheweb assigned #90
  • Oct 14 17:16

    Aaronontheweb on dev

    Provide static GetRoutees.Insta… (compare)

  • Oct 14 17:16
    Aaronontheweb closed #3974
  • Oct 14 17:16
    Aaronontheweb milestoned #3974
  • Oct 14 16:05
    jackowild opened #90
  • Oct 14 15:08
    Aaronontheweb commented #3974
  • Oct 14 15:08
    Aaronontheweb commented #3974
  • Oct 13 14:40
    cptjazz synchronize #3974
  • Oct 13 14:07
    cptjazz opened #3974
  • Oct 13 08:30
    ismaelhamed commented #3937
Zetanova
@Zetanova
SeqNr of the Snapshot
Bartosz Sypytkowski
@Horusiath
snapshot uses the same sequencer as journal, but it doesn't increment it
Zetanova
@Zetanova
If one Journal Event is missing in the recovery it should Fail
because of this bug, i have this state, not the AR is getting the second Event on recovery and missing the first one.
State of the AR can be then unlear and dangures
yes , i the same
did my TAX decalaration today at night
last minute
Bartosz Sypytkowski
@Horusiath
to make some quick summary: you've encountered moment, when you had sql journal storing in parallel events a-1 and a-2, but for some reason a-2 has been stored, while a-1 not, right?
Zetanova
@Zetanova
yes, because of the bug
it was now 4times
i am testing with 200 AR's
each gets a command and is persisting two events
(Created+Updated)
Zetanova
@Zetanova
I removed now the locks from the DBSnapotStore and getting again the Error at PendingOperations.Remove(tokenSource);
in the LoadAsync method
wahahahah
PipeTo is not waiting to complition
This message was deleted
Zetanova
@Zetanova
=> Concurrent execution in the Snapshot Actor
LoadAsync() => sawns a new thread (or takes one from the pool)
PipeTo is just execution on the same new thread and the end
if 10 messages are comming
then there will be lots of simultan executoon inside the actor
Bartosz Sypytkowski
@Horusiath
in case of snapshot actor this shouldn't be a problem
Zetanova
@Zetanova
if this execution has some side effect, it is most likly a race condition
sure it is
if an PA is taking two snapshots
at the same time
it is allready possible that the first is saved after the second
Bartosz Sypytkowski
@Horusiath
if you have events: a-1, a-2, a-3, a-4 and snapshots at the moment of a-1 and a-3, for the sake of consistency it doesn't matter which snapshot will it receive
if it will receive snapshot a-1, it will startup at point of a-1 and recover from events a-2 to the end of the stream
if it will receive snapshot a-3 it will use only event a-4 and above to recover
Zetanova
@Zetanova
thats clear in the Snapshot store
Bartosz Sypytkowski
@Horusiath
or you are using words snapshots and events interchangeably
Zetanova
@Zetanova
I removed the lock i insered on PendingOperations
because i thought it is not required
but its in parallel execution because of this PipeTo
Bartosz Sypytkowski
@Horusiath
but if you're talking about event batches, this also shouldn't happen, as persistent actor won't emit second batch of messages to the journal until it receives confirmation about successfully stored first one
Zetanova
@Zetanova
then its fine
Horusiath @Horusiath enough for today, time to sleep
Zetanova
@Zetanova
gn8
Zetanova
@Zetanova
good morning
i tought about this PipeTo pattern thats creates basicly a free concurrent operation in the actor.
If it schould be supported, then there schould be some kind of operation manager in the ActorBase
So that the developer is forced to declare the execution mode.
One Modes would be the free asynchrone background thread, It schould be with cancelation support like in the DbSnapshot Actor with pendingOperations
Zetanova
@Zetanova
and One Mode that the Task schould completed before the next message of the actor can be processed like the RunTask() in the ReciverActor behaivior
The first mode would be a background thread that can basicly be awaited or canceled on PreStop of the actor
the second mode is basicly a Task.WhenAll() then NextMessage
Zetanova
@Zetanova
But currently this StartOperationAsync().PipeTo(Sender) is a fire and forget approach, very missleading and lose of control. If the Async Method is outside of the actor then the side effect of it will not have much impact. But if it is used with a AsyncMethod inside the actor then the side effect will have most propaly a big role.