Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 13:55
    Aaronontheweb commented #3811
  • 13:53
    Aaronontheweb commented #3811
  • 13:48
    Zetanova commented #3811
  • 13:21
    Aaronontheweb commented #3811
  • 12:15
    PetrPejcel opened #3917
  • 09:56
    Zetanova commented #3903
  • 09:42
    Zetanova commented #3811
  • 09:38
    Zetanova commented #3811
  • 09:37
    Zetanova commented #3811
  • 08:37
    Pzixel commented #3908
  • 08:20
    Zetanova synchronize #3916
  • 08:13
    Horusiath commented #3908
  • 08:12
    Horusiath commented #3908
  • 08:11
    Horusiath commented #3908
  • 07:58
    Horusiath commented #3284
  • 07:56
    Horusiath commented #3284
  • 07:32
    ismaelhamed commented #3284
  • 07:24
    Zetanova opened #3916
  • Sep 16 15:35
    Aaronontheweb commented #3284
  • Sep 16 07:55
    ismaelhamed commented #3284
Aaron Stannard
@Aaronontheweb
since the DNS system still barfs up those DNS assertions whenever I use NuGet.exe
Bartosz Sypytkowski
@Horusiath
when I said new connection, I meant new instance of DbConnection
Aaron Stannard
@Aaronontheweb
switching to the alpha channel I think
Zetanova
@Zetanova
@Horusiath the SnapshotStore is implemented as an actor and can use the singleton dbconnection and LinkList. Why not implement JournalDbEngine like this too? And maybe both .WithRouter()
Bartosz Sypytkowski
@Horusiath
@Zetanova SnapshotStore now will use dbconnection per request to. Also I'm concerned, that routers will affect reliability of message ordering
Zetanova
@Zetanova
@Horusiath even with this Hash-Router?
Bartosz Sypytkowski
@Horusiath
and since we already use async ADO.NET API for database communication I'm not so sure if spawning more journals/snapshot stores will be much help - but this could be measured
Zetanova
@Zetanova
I am not so sure that if the JournalEntires are processed in parallel, that they will be on disk in serial, most likly overlapped with the SeqNr.
of course in sql u can sort by SeqNr. on a FileStorage its maybe a bug
Bartosz Sypytkowski
@Horusiath
seqnr is generated by persistent actor itself
Zetanova
@Zetanova
yes but not saved
the JournalEntries are processed in batch
if one batch gets SeqNr 1-10 and the second batch 11-20
then it will land on disk most likly overlapped
1,2,3,4,5,6,11,7,8,12,8,13,14,9,15,10,16,17,18,19,20
Bartosz Sypytkowski
@Horusiath
AFAIK we use file storage only for snapshots right now - and it's highly not recommended to use it for anything else than tests
Zetanova
@Zetanova
and what are EventStorageEngines are doing with this seq. ?
ordering in memory and saving them or replying them 1:1 later?
Aaron Stannard
@Aaronontheweb
@stefansedich nope, we're still screwed: https://bugzilla.xamarin.com/show_bug.cgi?id=35509
Bartosz Sypytkowski
@Horusiath
sequenceNr is necessary to ordering events in scope of the persistent id used
Zetanova
@Zetanova
i dont not see your new code, but the current one from JournalDbEngine will overlap the batches
Bartosz Sypytkowski
@Horusiath
basically it's increased monotonically by the persistent actor (therefore there can be only 1 instance of it per persistent id at the moment) and saved with event. Once persistent actors recovers, the highest seqNr is retrieved from the journal before continuing any work
Aaron Stannard
@Aaronontheweb
working on compiling Mono from scratch now to see if that fixes it #yolo
Zetanova
@Zetanova
Is JournalDbEngine created for each PersistentActor?
Bartosz Sypytkowski
@Horusiath
This message was deleted
my bad, it's created once for whole journal
Zetanova
@Zetanova
yes
and even if
Bartosz Sypytkowski
@Horusiath
with regard, that there's only one journal for each persistent backend
Zetanova
@Zetanova
if the PersistentActor is calling WriteMessages() with the first batch
sec
and who is calling WriteMessages() ?
Bartosz Sypytkowski
@Horusiath
journal itself
Zetanova
@Zetanova
parallel, most likly because i get this race conditions
it is fine until the batch of one PersitentActor are executed in parallel
and there should be a check in the Recovery Processdur
when the SeqNr > SnapshotNr+1 then RecoveryFailure
Bartosz Sypytkowski
@Horusiath
sorry, but I'm programming from like 15 hours now, but I seem to missed SnapshotNr somewhere in our discussion ;)
Zetanova
@Zetanova
I am allready missing Event-1 of an AR and get insatnly Event-2
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