this post was submitted on 07 Jul 2023
16 points (100.0% liked)
Fediverse
28556 readers
940 users here now
A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).
If you wanted to get help with moderating your own community then head over to [email protected]!
Rules
- Posts must be on topic.
- Be respectful of others.
- Cite the sources used for graphs and other statistics.
- Follow the general Lemmy.world rules.
Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration), Search Lemmy
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I think this is going outside the realm of self-hosting and moreso into actually creating a server architecture. All servers would need to use the same database, so you'd want likely as its own server a database server, caches on the front-end servers so popular things aren't queried for the same info again and again.
I've never set up anything like this, so this is just me trying to think of how I'd throw it together, I'm sure there's a bunch of async problems I've not even considered how to tackle, and even having the DB be offsite from either of the front-end servers would be less than ideal.
I suppose you could have the DB in one of the servers, but then that one now has the same frontend-load as the other while it also is the only one doing DB queries, so the load's not really being distributed properly. ๐ซ
I think storing the DB in multiple places is the most important part of this. There could even be different levels of cohosting. You would ideally always have at least two servers hosting the full DB going all the way back in time. Those would be the most important to implement just to have an always available service. Then you could have people that might not have enough resources to hold everything just host all of the most recent and high-demand data. Some advanced server architecture will for sure be needed if this model is going to succeed. It just isn't possible to do everything on a single server. As far as processing load from running the server, I can't imagine that will be much of a problem compared to actually storing the data. I am sure a lot of this is all problems that have already been solved and old solutions could be used. Maybe something similar to the torrenting system, with just a few controller servers.