Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 14:20
    Aaronontheweb commented #4092
  • 14:14
    Aaronontheweb labeled #4089
  • 14:14
    Aaronontheweb labeled #4089
  • 14:11
    Aaronontheweb synchronize #4089
  • 14:10
    Aaronontheweb synchronize #4086
  • 14:09

    Aaronontheweb on dev

    Convert to ImmutableHashSet for… (compare)

  • 14:09
    Aaronontheweb closed #4090
  • 12:04
    nagytech synchronize #4092
  • 11:53
    nagytech synchronize #4092
  • 11:49
    nagytech edited #4092
  • 11:40
    nagytech opened #4092
  • 11:32
    nagytech edited #4091
  • 11:32
    nagytech opened #4091
  • 10:13
    nagytech commented #3954
  • 05:29
    nagytech commented #4090
  • 05:29
    nagytech opened #4090
  • Dec 11 23:52
    scptre commented #4082
  • Dec 11 14:26
    nagytech commented #3954
  • Dec 11 11:18
    nagytech edited #4089
  • Dec 11 11:17
    nagytech opened #4089
Zetanova
@Zetanova
@Horusiath currently in JournalDbEngine and DbSnapshotStore the dbconnection is a singleton but executes concurrent sqlCommands on it (at least it is trying to do). the dbConnection should be create for each execution and disposed after. It is backed by the sql-connection-pool
Bartosz Sypytkowski
@Horusiath
this part is covered by #1306 - it will use new connection for each operation
Zetanova
@Zetanova
its not realy using a new connection, its peeking one from the sql-connection-pool
Bartosz Sypytkowski
@Horusiath
yes, I know ;)
Aaron Stannard
@Aaronontheweb
@stefansedich working on upgrading the version of Mono on our build agents
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