Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 20 17:25
    valdisz synchronize #3889
  • Oct 20 17:17
    valdisz synchronize #3889
  • Oct 20 15:44
    valdisz synchronize #3889
  • Oct 20 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)

Zetanova
@Zetanova
remove this toList and stuff
Christian Duhard
@cduhard
the current code is
            var groups =
                _pendingCommands.GroupBy(cmd => cmd.PersistenceId == terminated.ActorRef.Path.Name).ToArray();
            _pendingCommands = groups.First(x => !x.Key).ToList();
            var commands = groups.First(x => x.Key);
            foreach (var pendingCommand in commands)
            {
                var child = Recreate(pendingCommand.AggregateId, pendingCommand.PersistenceId);
                child.Tell(pendingCommand.Command, pendingCommand.Sender);
            }
Zetanova
@Zetanova
var pid = terminated.ActorRef.Path.Name;
int i = 0;
foreach (var pendingCommand in _pendingCommands.Where(cmd => cmd.PersistenceId == pid))

{

    var child = Recreate(pendingCommand.AggregateId, pendingCommand.PersistenceId);

    child.Tell(pendingCommand.Command, pendingCommand.Sender);
    i++;       
}

var commands = new List<PendingCommand>(_pendingCommands.Count - i);
commands.AddRange(_pendingCommands.Where(cmd => cmd.PersistenceId != pid));
_pendingCommands = commands;
Christian Duhard
@cduhard
got it, thanks. I'll give this a try.
@Zetanova what are you using for storage?
Zetanova
@Zetanova
sql-server for now. but the storage type should be picked by the AR-type
Christian Duhard
@cduhard
how do you mean?
Zetanova
@Zetanova
file, document-store, sql are all valid
Christian Duhard
@cduhard
i was going to give EventStore a try
Zetanova
@Zetanova
File => for very large AR's maybe explicit on a partition/drive SSD
DocumentStore => normal for AR's
sql => maybe faster for some kind of operations (need to test later on)
Christian Duhard
@cduhard
weird getting dead letters now
Zetanova
@Zetanova
In a local akka.net buget build where to set the BUILD_NUMBER of a package? Want to patch the Akka.Persistence.Sql.Common so that the SqlServer is dont updating it on install
Zetanova
@Zetanova
RELEASE_NOTES.md file.
Christian Duhard
@cduhard
wonder why EventStore ain't got no love for a Akka.Persistence
Yin Zhang
@melcloud
Dear all,
just wondering if it is safe to use PersistView?
My idea is to have an actor which persist events such as quoteCreated. Then once another service is online, a persistView actor is created and do at least once delivery to that service
Zetanova
@Zetanova
@Horusiath You already change in Akka.Persistence.Sql.Common the DbConnection to short use pattern?
Bartosz Sypytkowski
@Horusiath
@rogeralsing I think, we still have some problems concerning stashing and message duplicates - we changed custom equality to reference equality to detect duplicates inside the stash, but actually sometimes we may want to store the same message twice (like in the case of singleton messages or strings)
@Zetanova what do you mean?
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