https://grafana.lem.rocks/d/bdid38k9p0t1cf/federation-health-single-instance-overview?orgId=1&var-instance=lemmy.world&var-remote_instance=aussie.zone

Parallel sending of federated activities to other instances. This can be especially useful for instances on the other side of the world, where latency introduces serious bottlenecks when only sending one activity at a time. A few instances have already been using intermediate software to batch activities together, which is not standard ActivityPub behavior, but it allows them to eliminate most of the delays introduced by latency. This mostly affects instances in Australia and New Zealand, but we’ve also seen federation delays with instances in US from time to time. This will likely not be enabled immediately after the upgrade, but we’re planning to enable this shortly after.

https://lemmy.world/post/23471887

  • Zagorath
    link
    fedilink
    English
    arrow-up
    20
    ·
    1 day ago

    Basically, the way Lemmy is designed, each instance has to tell each other instance what its users did (where relevant—no need to send to aussie.zone a post made in a community that there are 0 aussie.zone subscribers, for example). That includes posts, comments, and upvotes. And the way it’s designed, the originating server (in this case, LW) has to send it to the receiving server (AZ), then the receiving server sends a confirmation back, and then the originating server can send the next one.

    Because LW is hosted in Germany, and AZ in Australia, there’s a minimum amount of time thanks to the physical constraints of sending signals over that long distance. And double that because it’s a return trip, and a small amount more for processing time. It ends up measuring in the hundreds of milliseconds. Which leaves you with a maximum of a few hundred thousand actions sent from LW to AZ per day. If LW users are doing more than this, then the delay will slowly grow. If they send less, the delay will shrink, or remain at near 0.

    Now, the most recent version of Lemmy actually lets you set it so that instead of sending just one at a time, you can have multiple threads, so you’re sending multiple at a time. But LW only upgraded to this version a few days ago, and they didn’t turn on this feature when they did so.

    • Alphane Moon@lemmy.world
      link
      fedilink
      English
      arrow-up
      21
      ·
      1 day ago

      Wait, every single action is sent individually and the next action is sent upon confirmation of successful delivery?

      This is is wild.

        • Alphane Moon@lemmy.world
          link
          fedilink
          English
          arrow-up
          5
          ·
          1 day ago

          I guess it’s good that this issue is in the process of being resolved while the network is small and primarily consists of technically minded users.

          • Kichae@lemmy.ca
            link
            fedilink
            English
            arrow-up
            4
            arrow-down
            1
            ·
            1 day ago

            I mean, it’s not being resolved, since the issue is that LW is too big to effectively federate, and LW is refusing to take the steps to improve the situation. Weirdly enough, this is less of an issue if the network scales horizontally, with a large number of small nodes.

            But also, this is a symptom of the current attitude of “it shouldn’t matter where the community is hosted”. The fediverse is a simulacrum of centralized social media, and a poor one at that. The more we try and beat it into that shape, the more it’s going to get all weird on us.

            Like, a significant issue here is the insistence people have had that up/down-votes be synchronized. People want to know what the global passive-aggressive opinion on a post or comment is, rather than the local one, which requires every single button press to be sent to each and every subscribing website. And people expect stuff to be sent out as a live stream, rather than being held back for batching, too.

            There’s a significant cultural issue to be sorted out here. Better mechanical features aren’t going to solve it in the long run.

            • Alphane Moon@lemmy.world
              link
              fedilink
              English
              arrow-up
              5
              ·
              23 hours ago

              LW is too big to effectively federate

              LW is like ~35% of Lemmy’s 55K MAU, right? So around ~19K MAU. For the Threadiverse to be viable on a mass scale, support for an instance with ~20K MAUs is a must. I would argue it’s a must for an instance with 2 million MAUs.

              This includes graceful support for up/down votes.

            • Die4Ever@programming.dev
              link
              fedilink
              English
              arrow-up
              3
              ·
              edit-2
              22 hours ago

              Like, a significant issue here is the insistence people have had that up/down-votes be synchronized. People want to know what the global passive-aggressive opinion on a post or comment is, rather than the local one, which requires every single button press to be sent to each and every subscribing website. And people expect stuff to be sent out as a live stream, rather than being held back for batching, too.

              I figure this could be reduced a lot if even just 1 minute worth of votes were batched together, although I don’t think the ActivityPub standard technically includes batched activities currently