this post was submitted on 05 Jun 2024
84 points (94.7% liked)
Programming
17433 readers
227 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Mastodon and lemmy handle this in slightly different ways. Mastodon (according to the link) replicates media on every instance while lemmy (mostly) only replicates thumbnails. That means a popular post doesn't cause load for one server on mastodon but does on lemmy. But Mastodon has a higher aggregate cost due to all the replicated data, which is what the linked proposal solves by making it sublinear.
If the torrent is instance to instance I don't see any real benefit (and instance to client is infeasible). On Mastodon side you still have data duplication driving storage costs and bandwidth usage regardless of whether it's delivered via direct http or torrent. On the lemmy side it wouldn't gain much (asymmetric load is based on subscription count and so not very bursty) but would add a lot of non-determinism and complexity to the already fragile federation process.
Conventional solutions like cache/CDN/Object Storage or switching to a shared hosting solution (decoupled from instances like your link proposes) seems like a more feasible way to address things.
This is a good answer.
I'm not sure if I'd agree that instance to client is infeasible though. Peertube does it OK.
Data size and user expectations is the main difference. It's possible but there'd be a lot of latency and overhead for just scrolling down a page with a bunch of images. Maybe there's fancy stuff you could do by batching images together and reusing connection pools but it feels sisyphean.
The point would be that it's a failover. It takes about two seconds for the video here to start streaming from the webseed and that's probably just the wait for enough video to load in order to render. The standard peers don't really become load bearing until the server is struggling.