Where communities thrive


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

    Aaronontheweb on dev

    Provide static GetRoutees.Insta… (compare)

  • 17:16
    Aaronontheweb closed #3974
  • 17:16
    Aaronontheweb milestoned #3974
  • 16:05
    jackowild opened #90
  • 15:08
    Aaronontheweb commented #3974
  • 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
  • Oct 12 15:50
    IrvinDominin opened #127
  • Oct 11 18:21
    Aaronontheweb commented #3973
Boban
@bobanco
basicly i was trying to see the performance of how many entities we can allocate per second
and also each entity is persistent and persists its state
Bartosz Sypytkowski
@Horusiath
but entities with remember-entities=on? all entities in one shard or maybe one entity for each shard?
Boban
@bobanco
mb this is not the true performance testing of the sharding itself
Bartosz Sypytkowski
@Horusiath
without batching, event journals are still pretty slow
Boban
@bobanco
hm does batching helps even if each persistent entity is unique?
Bartosz Sypytkowski
@Horusiath
especially then - batching is applicable, when many persistent entities are trying to persist their events at the same time
Boban
@bobanco
hm..how i can use batcing journal? or there is not ready one?
Bartosz Sypytkowski
@Horusiath
i've tested it on sqlite, sqlserver and postgres on various settings - using current defaults, I was getting around 400-700 events/sec (simply limits of full connection rountrips on ADO.NET), with batching journal - 8000-12000 events/sec
it's part of shared persistence sql lib, but it needs implementation per each concrete provider
Boban
@bobanco
does postgres has implemented it?
i mean the postgres persistence implementation
Bartosz Sypytkowski
@Horusiath
there was PR (not merged) made long ago ;) It needs to be updated
AkkaNetContrib/Akka.Persistence.PostgreSql#32
this is the PR
console app for stress tests is attached
Boban
@bobanco
will take a look
with jvm lagom framework whihc under the hood is using akka sharding and persistence i was getting troughput > 3k
same workload
Bartosz Sypytkowski
@Horusiath
lagom with cassandra?
Boban
@bobanco
oh yes
i forgot abt the cassandra
Bartosz Sypytkowski
@Horusiath
their cassandra plugin also implements some sort of request batching
Boban
@bobanco
any idea when postgres PR will get merged?
if i can get better troughput mb i can avoid convincing my team and also myself to use jvm for this microservice, cuz entire ecosystem is running on .net
and akka.net
i also made prototype on a top of orleans, it was even worse the mysql storage provider was falling :smile:
Bartosz Sypytkowski
@Horusiath
I guess mysql is not a top used storage in .net - probably most of the implementations in all libraries will end up pretty buggy
Boban
@bobanco
i can switch to postgres or cassandra
if i can avoid this issue
sharding together with persistence will give awesome scalability, only need now to find the right persistence :)
@Horusiath SqlServer persistence has implemented this batching journal right? can i use it in 1.3.1?
Bartosz Sypytkowski
@Horusiath
@bobanco not yet - I'm updating a related PR right now
I hope I'll made it in time before 1.3.1 release
Boban
@bobanco
@Horusiath thank you man
Bartosz Sypytkowski
@Horusiath
also if it's an option for you, you may want to use redis, even just for sharding-related data
@alexvaluyskiy put some work there
Joshua Garnett
@joshgarnett
@bobanco if it helps I’m going to be launching a game with Akka.Net + MySQL, so will likely be contributing improvements to that plugin. On a previous game we were using the JVM Akka + MySQL (Aurora to be specific) and targetting 50K/journals per second. With db sharding in place we were close to hitting that target
Boban
@bobanco
@joshgarnett thanks for the info, are u planing to implement the batching journal or i should take the contribution on it? 50k events per second is fairly good enough for my case
Joshua Garnett
@joshgarnett
I’m probably a month out from digging further into the changes needed, so if you need something sooner, you should give it a go
Boban
@bobanco
yh i will work on it tonight as i need to close this prototyping by the end of this week
Joshua Garnett
@joshgarnett
Good luck
Boban
@bobanco
tx :smile:
@Horusiath redis persistence is updated to be used in the last version?
Boban
@bobanco

@Horusiath i have implemented the batcing journal but it doesn't work :smile: am getting null reference exception here is log

[ERROR][08-Sep-17 23:30:19][Thread 0008][akka://system/system/akka.persistence.journal.mysql] Object reference not set to an instance of an object.
Cause: [akka://system/system/akka.persistence.journal.mysql#1985097534]: Akka.Actor.ActorInitializationException: Exception during creation ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at Akka.Persistence.Sql.Common.Journal.BatchingSqlJournal`2.PreStart()
   at Akka.Actor.ActorBase.AroundPreStart()
   at Akka.Actor.ActorCell.<>c__DisplayClass168_0.<Create>b__0()
   at Akka.Actor.ActorCell.UseThreadContext(Action action)
   at Akka.Actor.ActorCell.Create(Exception failure)
   --- End of inner exception stack trace ---
   at Akka.Actor.ActorCell.Create(Exception failure)
   at Akka.Actor.ActorCell.SysMsgInvokeAll(EarliestFirstSystemMessageList messages, Int32 currentState)

here is the repo

@Horusiath Please take a look what is missing

Sean Farrow
@SeanFarrow

Hi All,

Three quick persistence queries:
Firstly, I know it uses google protocol buffers, how does it handle serialization, I couldn't find the code. I've got a custom type that doesn't currently serialize with protobuff so was wondering whether this would still be handled.
Secondly, how can I stop and rehydrate an actor after a period of time, this is a process that is offline currently so could take some time.
Finally, can someone confirm that as long as the persistence id's are the same the actor hierarchy can be changed.

Alfredo Herrera
@alfredherr
@heynickc , thank you
Bartosz Sypytkowski
@Horusiath
@object I'm working on Akkling upgrade right now, but I run into some problems with Paket
Bartosz Sypytkowski
@Horusiath
@bobanco see akkadotnet/Akka.Persistence.SqlServer#81 - I've updated the batching PR for SqlServer. I think in your case the problem may be either in serializer initialization (using default-serializer key instead of serializer) or with connection string - .net core lack of support for ConfigurationManager caused some issues and if you're using connection-string-name it may be problematic.