this post was submitted on 22 Jun 2023
22 points (95.8% liked)

Lemmy.world Support

3250 readers
7 users here now

Lemmy.world Support

Welcome to the official Lemmy.world Support community! Post your issues or questions about Lemmy.world here.

This community is for issues related to the Lemmy World instance only. For Lemmy software requests or bug reports, please go to the Lemmy github page.

This community is subject to the rules defined here for lemmy.world.

To open a support ticket Static Badge


You can also DM https://lemmy.world/u/lwreport or email [email protected] (PGP Supported) if you need to reach our directly to the admin team.


Follow us for server news ๐Ÿ˜

Outages ๐Ÿ”ฅ

https://status.lemmy.world



founded 2 years ago
MODERATORS
 

Title suffices I think. Have other people noticed this? I've tried poking around for other threads a bit.

What could be causing this?

you are viewing a single comment's thread
view the rest of the comments
[โ€“] maggoats 2 points 2 years ago (1 children)

Huh! That's possible, but that doesn't sound right to me. I think for example that if I post a comment on a lemmy.ml thread, my client sends a request to A, lemmy.world, and then A sends a request to B, lemmy.ml, and then third-parties C would see the result of my like if they individually request content from B.

I don't think cross-instance interaction is shared with every federated instance at once. They each need to go "find out" on their own.

[โ€“] marsara9 2 points 2 years ago (1 children)

From what I can tell, and I've only been reading the docs for a few days now. Everything is considered an actor.... Users, comments, posts, communities and even the instance itself. When you create a new post to a community you're essentially replying to that community's actor. If that community is not on your instance then your instance needs to post that reply via an ActivityPub service call. Now once the target instance receives that post request it adds it to it's database but then that instance needs to inform all of the other instances that something has been added to that community. So it'll queue up a service call to every other instances that has federated with that community's instance.

So in the end if you're a user on instance A but trying to create a post to a community that belongs to instance B, A has to tell B about the post. Next B then, since it's the owner of that community, has to inform instance C,D,E, etc... that there's now a new reply to that community.

Again I might still be missing something as I've only been reading these for about a day or so. But if this is correct then each action anyone takes produces a lot of network traffic to update every other instance in the fediverse.

[โ€“] maggoats 1 points 2 years ago (1 children)

Oh, I see what you mean! That's right... Instances update their listeners, they're not polled.

So then what would cause the slowdown in updating federated instances? The servers themselves are still responding. I guess there must be a queue of updates to other instances that's not getting emptied fast enough? That would explain a comment of mine to a separate instance showing up here but not there. I'm not familiar with the inner workings.

Thanks for the discussion by the way!

[โ€“] marsara9 5 points 2 years ago

Ya for every action we take, that could mean 500+ service calls that the instance itself has to make. (Just go to /instances on any server and count the number that are listed). And that's assuming that everyone is only communicating on their own instances and just lurking on content from other instances.

I'm currently trying to build an enhanced search engine just for the fediverse, my first thought was to build essentially an instance that has no communities and would subscribe to literally everything to get updates, but after looking at the ActivityPub protocol I'm worried that my server would instantly crash from all of the network traffic. I'm not quite ready to shell out for anything larger than a Pi just yet. So now I'm looking to see what I can do with the public APIs and just Lemmy. This way I can poll for the data rather than receive pushes....