These are chat archives for akkadotnet/akka.net

10th
Apr 2016
Zetanova
@Zetanova
Apr 10 2016 08:16
@Horusiath I am overloading the sql-server (localdb) and the CircuteBreaker opens. On the Dev machine the db-files are storged on a SSD and the serverside not and this makes allready the difference. How to increase the timeout times or trothle the quries of the journal?
Bartosz Sypytkowski
@Horusiath
Apr 10 2016 08:26
@Zetanova which timeout you want to increase?
Bartosz Sypytkowski
@Horusiath
Apr 10 2016 08:38
@schepersk concerning lack of rebalancing in your example - I think, that this may be caused by the default threshold required between two nodes, which is 10 by default (so node with the highest number of shards needs to have at least 10 more shards than the node with the lowest number of them). You can change this setting with akka.cluster.sharding.least-shard-allocation-strategy.rebalance-threshold = X - I've made that on the example in core repo (lowered threshold to 3), and everything works fine.
Zetanova
@Zetanova
Apr 10 2016 08:41
@Horusiath from the CircuteBreaker or connectionTimeout. but i think i increased the connectionTimeout allready to 45sec. What is the default timeout from the CircuteBreaker ? i could activate the backpresure-mode in my coordinator.
i think the scheduler is breaking, i am suddenly dont get messages that are scheduled for 1sec to itself
"Context.System.Scheduler.ScheduleTellOnce(TimeSpan.FromSeconds(1), Coordinator, c, Self);" and now its stopped working, an other schedule dont fire too. And some timeouts dont fire
Zetanova
@Zetanova
Apr 10 2016 08:56
In the DB-EventJournal table i have still IX_EventJournal_SequenceNr and IX_EventJournal_Timestamp
maybe thats why i am getting the sequence warnings from the Journal
Zetanova
@Zetanova
Apr 10 2016 09:22
and should the Metadata table not have only index on "PersistenceID" and not on SequenceNr ?
Zetanova
@Zetanova
Apr 10 2016 13:03
@Horusiath In the Journal table of one db, where soem empty pid's, the clustered prim key was not created and that created the behaivior and sql-server perf. problems. I needed to extend my backpressure algo. in my coordinator, to trigger beside MaxChildreanCount on MaxRecoveringCount too. Recovering to many PR's at the same time will overwhelm the sql-connection pool.
I know that this is relatated to a the uninteresting "sql-persistent-plugin" but what is missing is some throttle mechanismuss in the Journal itself.
Bartosz Sypytkowski
@Horusiath
Apr 10 2016 15:56
@Zetanova
  1. you have empty Peristence Ids in your journal?
  2. you should know, that the current querying mechanism and persistence views will be obsoleted in favor of Akka.Peristence.Query plugins which will be bridges between persistence and akka streams
Kris Schepers
@schepersk
Apr 10 2016 20:10
@Horusiath I gave it a quick try, but can't see any difference.. I'll try again tomorrow..
Aaron Stannard
@Aaronontheweb
Apr 10 2016 20:36
so here's what I have planned for beating the hell out of Wire cc @rogeralsing
I'm currently making some major updates to https://github.com/Aaronontheweb/faker-csharp to generate random test structures
going to be releasing a 2.0 of it which allows me to Fake objects that take constructor arguments, etc
to make things even more fucked up
I've specced out a new library
that allows me to generate completely random CLR class definitions
at run-time
like, gibberish data structures
but still valid C# data types
I can configure these generators to obey certain rules
so if there's some type of known configuration that Wire can't and never will support, we won't generate anything that violates that constraint
but otherwise my plan is to use a model-based testing approach
to blast Wire with thousands of random types of structures and systematically determine which ones fail
and I'll include some models which test surrogated types and stuff like that too
actually, I wonder if there's something out there for the random CLR class generator
Aaron Stannard
@Aaronontheweb
Apr 10 2016 20:42
either way, I think this will give us a very robust model for testing Wire in action
and I'd like to get this up and running before the 1.5
any thoughts?
Aaron Stannard
@Aaronontheweb
Apr 10 2016 20:48
ah, just realized
TL;DR; verison
Create random data structure --> Fake populates values of random data structures --> Wire serializes --> Wire deserializes --> Verify that deserialize == serialize across all properties
do this for thousands of data structures
on each run of the test