I spent several hours tracing in production (updating the code a dozen times with extra logging) to identify the actual path the lemmy_server code uses for outbound federation of votes to subscribed servers.

Major popular servers, Beehaw, Leemy.world, Lemmy.ml - have a large number of instance servers subscribing to their communities to get copies of every post/comment. Comment votes/likes are the most common activity, and it is proposed that during the PERFORMANCE CRISIS that outbound vote/like sharing be turned off by these overwhelmed servers.

pull request for draft:

https://github.com/LemmyNet/lemmy/compare/main...RocketDerp:lemmy_comment_votes_nofed1:no_federation_of_votes_outbound0

EDIT: LEMMY_SKIP_FEDERATE_VOTES environment variable

  • King@lemm.ee
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    Somewhat related, but why are we federating votes? Why not just federate the upvote count and downvote count? Does each server need to track the identity of every voter on a subscribed community?

    Each server will track votes from their own users, preventing duplicate votes.

    • RoundSparrowOPM
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Why not just federate the upvote count and downvote count?

      I think the answer to that is that it isn’t an optimized design.

      Does each server need to track the identity of every voter on a subscribed community?

      I think so. Which isn’t a terrible assumption that user who votes will eventually comment/post and that profile will be of use.