Become a premium member to remove ads
haloman30

CU Updates #34 - The Future is BungeeCord...

3 posts in this topic

...and none of us can stop it.

 

Jokes aside, BungeeCord has been something that's been talked about internally for a little while now - and for good reason. Our MC server has been slowly getting less stable and less polished than I'd like. More unexplainable bugs, more lag, and more generally strange things - that's been a common occurrence in some form or fashion since 2014, really. But as time has gone on and the server has grown in functionality (and plugin count), with numerous MC updates piled on top, it's only gotten worse. Every step forward has been followed by a step backwards from something else.

 

I've been a sort of advocate of what's known as "Hybrid Servers" for a while now. That's what our server currently is. And for smaller-scale servers, it is a good approach. Even for servers like ours can work with enough time and effort. However, I don't like to settle. And with the first increases in player population in years - as inconsistent as it sometimes seems - it's become more evident something needs to be done - and that needs to be sooner rather than later.

 

I've been putting it off for a long time. But when I reach a point where I don't even have the will to try and investigate certain bugs because there's so many damned factors involved - it's time for us to rethink our setup.

 

Internally, we've just switched our clunky job tracker to something similar to Trello that's built into the forums. In the coming days, the store page at https://donate.chaoticunited.net will be migrated from CraftingStore to a new software (I'll save details on that for when it's actually up and live), and most importantly - work has begun on migrating to BungeeCord - once and for all.

 

I feel like I've heard this before...

 

If you've been here for a while, chances are you have. This isn't the first time I've tried to move everything into a BungeeCord environment. Every time prior, however, there was far less incentive to follow through and there were far more issues that, at the time, I didn't have the means to work through. What kind of issues, you may ask? Well, I'm not gonna go into all of them in detail - but the general premise behind it is:

 

Interconnectivity.

 

Thus far, I and anyone who's played here in the past, well, ever, has gotten used to the fact that you can go from anywhere, to anywhere. You can /tpa to your buddy in survival, then immediately jump over to a Parkour course, then teleport to your Creative plot and then go play some SkyBlock. No needing to join that separate server first, no nonsense. Just do /is join, /plotme home, and you're there. This is something that I refuse to lose in the switch over to BungeeCord. Along with that, I won't be forcing myself or anyone else - staff or player - to relearn how to play or moderate on the server and use its features. My ideal vision is to have it where, to those who aren't really attentive, it won't look like anything's changed at all.

 

I don't yet know how close I'll get to that goal - but that's where I'm aiming for. So far, however, prospects are bright. As of now, after less than a week of total time put in, PermissionsEx has been modified to use a single .yml file - which means that groups are synced across all servers without any need for them to be updated across all servers separately. This system isn't flawless - as many other commands need to be setup to properly issue updates to the other servers - but it's a system that, even as it is now, works enough to make PEX viable for the foreseeable future. Fun fact, from what I can tell no permission plugin available today has any native support for a single .yml file across multiple servers. Not entirely sure why, to be honest. I suppose because the means to do it are a bit hacky - I will admit that. But hey, it still works just fine - it just doesn't feel as nice.

 

Along with that, I've went and purchased a plugin for a whole $5 that keeps Essentials data synchronized to MySQL. How useful this will be after it's all said and done, I don't yet know. Some things synchronize well - such as nicknames. Other things - like mail - do not.

 

So, as a result, Mail has been re-implemented to use SQL natively. Yeah, I know - mail. Yippie-dee-doo, big deal. I know /mail isn't the most exciting of plugins, but it's in a sense a test for future commands. Most likely, a LOT of commands/features will need to be adapted or rewritten to use SQL as a data source rather than plain ol' .yml's. In the past, I wanted to avoid having many plugins tied to SQL - because we'd have database server maintenance so often that it was creating a ton of server downtime. At this point however, the DB server is stable enough and a number of plugins already depend on it - so why fight it anymore? Besides - it makes this kind of stuff tons easier to work with.

 

This sounds like a lot of work. What's the end benefit to the server?

 

I'm glad you asked - because in the past, this was something I struggled to answer, hence why it never really happened until now. But some of the benefits will be things such as:

  • Performance Improvements - Rather than having one server with 80+ plugins listening on a lot of events (all slightly increasing latency), we'll be dealing with several isolated servers that are only superficially connected. Most servers won't need any more than 20 or 30 plugins - save for a couple special cases.
  • Crashes won't such as much - Right now, if a server crash happens, everyone gets kicked out. Doesn't matter if its a bug in Creative world or Survival - EVERYONE must wait for the server to restart. In a BungeeCord environment, if a server crash happens, that gamemode will be down for a minute or two - but everyone else is unaffected. On top of that, you won't even get kicked back to the main menu. You'll likely end up in either Hub or the Waiting Room (more info on that below), able to walk into a portal once your desired server is rebooted.
  • Bug-fixing won't be a nightmare - Rather than having 80+ plugins that could be causing the issue, the list of plugins to diagnose will be a mere fraction of that number. As such, there's less things likely to go wrong - and less things to rule out when trying to find the source of a strange issue.
  • More room for new content - Once bugs are able to be fixed and lag isn't a common issue anymore, we'll be able to focus even more on adding new stuff - without fearing that the server will crumble under the pressure.

 

Currently, the planned server architecture is as follows (subject to change, of course):

  • Hub - Will contain Spawn worlds as well as Builder world
  • Survival
  • Creative
  • SkyBlock
  • Minigames - Will contain all existing minigames
  • Waiting Room - Will act as a stripped-down fallback server in the event that ALL other servers require a restart. The idea of this one is that it won't be tied to SQL databases or anything of that sort. More of a "set it and forget it" mentality. A sneak peek of the build that we'll be using for this can be found as the topic banner image - which some of you particularly old folk might reciognize.

 

Does this mean any world resets?

 

No. At least, most likely no - it depends on the timing. Currently, the plan is to reset Survival/SkyBlock on 1.17. We were considering doing one on 1.16, but while the worlds are relatively old, they haven't been public for even a year yet. They were used internally during the move to 1.13, and later got upgraded to 1.14. Hence why in survival, you won't see any of the new villages until you go a bit further out, and won't see beehives until even further than that.

 

However - we also aren't entirely sure how long this will take to get everything migrated over to an elegant BungeeCord setup. Right now my (very loose and very subject-to-change) plans for the transition are as follows:

  • Get all core functionality moved over
  • Once the fundamentals are stable, Builder/Spawn worlds will be locked from new builds on the main server and will be done exclusively on Bungee
  • If possible, some test runs will be done with the public on BungeeCord
  • Once any critical bugs are resolved (and any remaining features are brought over in at least a basic form), Main server will be shut off for a while as all remaining player data, worlds, etc. are moved over to the new server
  • Launch time and copious prayer that everything continues to work

 

This is still a fairly early announcement - so don't expect anything to happen anytime soon. If you're worried about any loss of progress, don't! When we do the final move-over, all existing data will be migrated over. Playtime for autorank, ranks themselves, homes, builds, and so on - nothing will be lost. And even if we do happen to forget something, we aren't just nuking the old server folder. It's gonna stay right where it is initially, and once it seems like everything is mostly alright, it'll be archived.

 

So...what's the point of this announcement then?

 

Information, of course! I like to let y'all know what's going on inside from time to time, and I figure that a major change to our server architecture is one that's certainly worth bringing to public light. As usual, if you've got any questions or concerns, let me know! I'm happy to alleviate any fears or answer any questions any of you might have!

 

Otherwise, until next time.

 

- haloman30

Share this post


Link to post
Share on other sites

Halo, Eptic, and Nuke,

 

This is exciting news and should be a great choice to keep things running stable and more responsive!  I can't wait to see the "new" hub server.  Please hollar if you need any testing.

 

Thanks,

 

Peeks

 

 

Share this post


Link to post
Share on other sites

5 hours ago, peekomo said:

Halo, Eptic, and Nuke,

 

This is exciting news and should be a great choice to keep things running stable and more responsive!  I can't wait to see the "new" hub server.  Please hollar if you need any testing.

 

Thanks,

 

Peeks

 

 

 

Yep, should bring a much-needed increase in overall polish and allow more room for future expansion. This time around, unlike the times we've tried to before, we'll be doing it right.

 

When we do inevitably need folk to test I'll holler :^)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now