Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 12:23
    Aaronontheweb closed #5944
  • 12:16
    dependabot[bot] synchronize #5859
  • 12:16
    dependabot[bot] synchronize #5941
  • 12:16
    dependabot[bot] synchronize #5951
  • 12:16

    dependabot[bot] on nuget

    Bump NUnit from 3.7.1 to 3.13.3… (compare)

  • 12:16

    dependabot[bot] on nuget

    Bump Fsharp.Core from 6.0.1 to … (compare)

  • 12:16

    dependabot[bot] on nuget

    Bump FluentAssertions from 5.10… (compare)

  • 12:16
    dependabot[bot] edited #5859
  • 12:16
    dependabot[bot] edited #5941
  • 12:16
    dependabot[bot] edited #5951
  • 12:16
    dependabot[bot] synchronize #5370
  • 12:16
    dependabot[bot] synchronize #5366
  • 12:16
    dependabot[bot] synchronize #5417
  • 12:16
    dependabot[bot] synchronize #5364
  • 12:16
    dependabot[bot] synchronize #5365
  • 12:16

    dependabot[bot] on nuget

    Bump System.Collections.Immutab… (compare)

  • 12:16

    dependabot[bot] on nuget

    Bump System.Threading.Channels … (compare)

  • 12:16

    dependabot[bot] on nuget

    Bump System.Configuration.Confi… (compare)

  • 12:16

    dependabot[bot] on nuget

    Bump Microsoft.Extensions.Depen… (compare)

  • 12:16

    dependabot[bot] on nuget

    Bump Microsoft.Extensions.Depen… (compare)

Aaron Stannard
@Aaronontheweb
I didn't have tracing enabled because it would have affected my bandwidth tests, but with the metrics piece running there wasn't any measurable difference in CPU consumption

I ran a 200 node cluster with Phobos 2.0.2 this week and pushed 2.1b+ messages through it

in the span of about 2 hours

tommaybe
@tommaybe
Thanks, I'll leave a thumbs-up. Good to hear and we'll proceed then!
Aaron Stannard
@Aaronontheweb
so I think that came out to 350k msg/s or so
tommaybe
@tommaybe
Our prod load is ~50k / s so that should be good :-D
Aaron Stannard
@Aaronontheweb
image.png
(that's about half of it)
and here's the issue on the OTel metrics specification repo itself: open-telemetry/opentelemetry-specification#2318
@gerardpeters pushing a new 1.6.1 tag now
apparently AzDo cached our old build pipeline which was using a version of Ubuntu that is out of support
even after I re-ran the job
Aaron Stannard
@Aaronontheweb
so byte rot was the issue there
ok, that's fixed
live now
gerardpeters
@gerardpeters
Awesome! Thx
Aaron Stannard
@Aaronontheweb
RabbitMQ + Akka.Streams backpressure support with reliable delivery to cluster sharded entity actors
TL;DR; how to guarantee your cluster processes things without flooding the system with retries
Aaron Stannard
@Aaronontheweb
ran some large tests with the most recent Akka.NET v1.5 nightly last night, results here: https://twitter.com/Aaronontheweb/status/1517486647088140288
Akka.Cluster.Sharding performs much better with it
Andreas Dirnberger
@Zetanova
hi, does anybody know why there is no keepalive/deadline feature in SourceRef and SinkRef of Akka.Steams ?
Maybe i cannot find it, but its
relatively hard for the consumer of an SourceRef to detect that the remote node is offline
and the pull-messages are going into deathletter
My obvious solution for it, is to add a keepalive message into the stream, but it seams strange that there is nothing inhouse to detect that the stream failed.
Assaf Wodeslavsky
@assafwo_twitter
hi all. is anyone looking for a [somewhat experienced] akka.net developer? also, where is the best place to look for akka.net jobs?
Aaron Stannard
@Aaronontheweb
@assafwo_twitter I'll send you a DM
Aaron Stannard
@Aaronontheweb
ran some more numbers investigating that .NET 6 performance degradation issue: https://github.com/akkadotnet/akka.net/issues/5385#issuecomment-1119566953
Aaron Stannard
@Aaronontheweb
@/all Akka.NET v1.4.38 is now live on nuget! https://twitter.com/AkkaDotNET/status/1522598528945639424 - this PR contains some of the same fixes that are currently in v1.5 but don't involve any breaking changes
Wick
@wickstargazer
Hey guys does anyone know about Atleastoncedelivery? I am using it with Deduplicatedelivery from akka.persistence.extras.
Its working until the ConfirmDelivery in the first class breaks somehow and the message goes into auto deduplicating forever. I suspect somehow the unconfirmed deliveries object inside is broken from memory but no way to prove it
Not using phobos ATM as I am trying to POC the first system. And struggling a bit with actors not being ramped up when more messages coming in. I setup statsd successfully and cluster + lighthouse as well
Would appreciate a ton since I am stuck here for almost a week now and it's the last spot. Am I using it wrong? As the delivery is quiet large in payload and maybe waiting too long?
Let me know anyone can help or need more info
Wick
@wickstargazer
So basically it works fine ATM if I do 200-500 messages. But once it hit 1000+ there will be messages that are not confirmed and keeps auto de duplicating for eternity
Aaron Stannard
@Aaronontheweb
@/all Akka.NET Community Standup tomorrow at 12pm CDT: https://twitter.com/AkkaDotNET/status/1523687906593943553
Aaron Stannard
@Aaronontheweb
@wickstargazer I'll help you out with that
been heads down doing trainings this week
Andreas Dirnberger
@Zetanova
@Aaronontheweb looked now your standup. I want to mention one thing, the ChannelExecutor solve/reduces beside the Idle-CPU problem the heavy-duty/DoS problem too. All other Dispatcher have the intrinsic problem of DoS. When the node gets overwhelmed with messages, like in a Batch-Processing with bad Fad-Out pattern, the Cluster Heartbeat messages get simply delayed and trigger the dissociation
Aaron Stannard
@Aaronontheweb
@Zetanova we don't really have that issue with the DedicatedThreadPool either
but I see your point
Aaron Stannard
@Aaronontheweb
IMHO I'm pretty happy with the ChannelExecutor but we do need to find a way to improve its throughput
I haven't looked too closely at how to do that yet, do you have any ideas @Zetanova ?
Drew
@to11mtm

I need to try channelexecutor again on Akka.Persistence.Linq2Db... I tried it once early on and couldn't get it to work =/
OTOH, Every ADO Provider but SQLite is async AFAIK so it's not a big deal at present.

The main thing that would be nice IMO, and maybe there is a way to do this and it's just not doc'd, It would be nice to do something along the lines of, 'I want a dedicated channel just for this thing'.

Drew
@to11mtm

@Aaronontheweb One thing to maybe look into, https://github.com/Cysharp/ValueTaskSupplement/blob/master/src/ValueTaskSupplement/ValueTaskEx.WhenAny.cs (Or it's non-generic version, you get the idea.)

Specifically, around https://github.com/akkadotnet/akka.net/blob/189380020609d7dec7ae2c90910dde1cd3236f98/src/core/Akka/Dispatch/ChannelSchedulerExtension.cs#L139-L177

You may need to do some refactoring to use it effectively, BUT there's some side benefits too, because Task.WhenAny AFAIK will always allocate a new array anyway, and this uses ValueTaskSource for pooling IIRC

On a related note, Task.WhenAlldoes the same thing, that one (on the coworkers) likely winds up being a bigger alloc, but would be harder to elide I would guess, short of reflection magic (i.e. calling InternalWhenAll to elide the defensive copy.

2 replies
Drew
@to11mtm
Also note it tells you which task finished first, which may have some interesting used case somewhere, IDK
Wick
@wickstargazer
@Aaronontheweb i got to the point where its throwing this error Error while creating actor instance of type FlowAccount.Business.API.Domains.Actors.BusinessDocumentActor with 0 args
this is in cluster router
i am using the var props1 = DependencyResolver.For(BusinessSystemActors.ActorSystem).Props<BusinessDocumentActor>();
BusinessSystemActors.BusinessDocumentRouter = BusinessSystemActors.ActorSystem.ActorOf(props1.WithRouter(FromConfig.Instance), "businessDocument");
and actorselection
Joe
@foxjazz
what is this
Huynh Ngoc Quy
@nquy.huynh.work_gitlab

Hi @Aaronontheweb, I'm trying to use Remember Entities Persistence Mode by mongodb plugin but it not persist any entities or states

akka {
    cluster {
        sharding {
            remember-entities = true
            journal-plugin-id = "akka.persistence.journal.sharding"
            snapshot-plugin-id = "akka.persistence.snapshot-store.sharding"
        }
    }
    persistence{
        journal {
            plugin = "akka.persistence.journal.mongodb"
            mongodb.class = "Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.MongoDb"
            mongodb.collection = "EventJournal"
            sharding {
                class = "Akka.Persistence.MongoDb.Journal.MongoDbJournal, Akka.Persistence.MongoDb"
                connection-string = "mongodb://localhost:27017/db"
                collection = "ShardingEventJournal"
            }
        }
        snapshot-store {
            plugin = "akka.persistence.snapshot-store.mongodb"
            mongodb.class = "Akka.Persistence.MongoDb.Snapshot.MongoDbSnapshotStore, Akka.Persistence.MongoDb"
            mongodb.collection = "SnapshotStore"
            sharding {
                class = "Akka.Persistence.MongoDb.Snapshot.MongoDbSnapshotStore, Akka.Persistence.MongoDb"
                connection-string = "mongodb://localhost:27017/db"
                collection = "TradeOrderShardingSnapshotStore"
            }
        }
    }
}

Any ideals?