Load balancing
See original GitHub issueA few months ago I had a suggestion send to tastybento about storing all island data (from blocks to signs and even chests) and it would be amazing if this can really be added.
The suggestion: I don’t know or it’s even possible but is it possible to save all island blocks/chests/signs/hoppers to MySQL/Redis?`
With this it’s possible to create mega skyblock servers with all the same islands, that can grow over 2500 players.
Now it’s not possible to hit over 500 people since the server won’t be able to handle it. If you can create something it’s possible to share all the data between servers, that would just be amazing.
The answer: Huh, interesting. I see what you want - load balancing. Ideally, I’d spin up a VPS when the number of users became too high, say when the server count hit 300+. Then when it was operational, and the player count went over say 450, I’d start directing new players to that server. Their islands would be pulled from a central store that would be duplicated and placed into the new world just before they joined. Then when they logged out, the island would be placed back into store.
Challenges
- You’d need to use Bungee and Spigot to make this work and be able to dynamically add Bungee servers as required
- Players would not necessarily be adjacent to the players they were next to previously. This might be okay for skyblock, but for acid island it could cause issues
- It’d be very tough to handle if players logged out on someone else’s island. When they logged in again, they may have to just be sent to spawn all the time.
- Warping to offline player’s island would have to be done in some way, i.e., pasting the island just in time.
- Saving and pasting islands is computationally intensive, but I’d probably use ASyncWorldEdit and just wait for the islands to be pasted. This could cause some delay before players could enter their island after logging on, but that could be hidden by sending them to spawn first and loading their island in expectation they would teleport there.
Now, I’m not saying I can do this! But it’s a neat idea!
Issue Analytics
- State:
- Created 5 years ago
- Reactions:15
- Comments:29 (17 by maintainers)
Top GitHub Comments
I wrote an entire Skyblock Core around this concept -
If absolutely needed, you could just save it in minecraft’s own format (.mca) - Although the files are somewhat large, don’t work cross-version, and have tons of other issues, it works for basic Skyblock servers. The real issue is AcidIsland, but with some funky math (and hidden teleports, maybe?), we could use the 512x512 .mca file size to our advantage.
Push