<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Server Rewrite on MCSR Ranked Blog</title><link>https://blog.mcsrranked.com/tags/server-rewrite/</link><description>Recent content in Server Rewrite on MCSR Ranked Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Thu, 05 Nov 2026 11:00:00 +0900</lastBuildDate><atom:link href="https://blog.mcsrranked.com/tags/server-rewrite/index.xml" rel="self" type="application/rss+xml"/><item><title>Rebuild the Core - Progress on the Server Rewrite</title><link>https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/</link><pubDate>Thu, 05 Nov 2026 11:00:00 +0900</pubDate><guid>https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/</guid><description>&lt;img src="https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/rebuild-the-core_thumbnail.png" alt="Featured image of post Rebuild the Core - Progress on the Server Rewrite" /&gt;&lt;p&gt;Hello, everyone! We&amp;rsquo;re so glad with finally I can post about this publicly.&lt;br&gt;&#10;We know that content updates have been somewhat lacking aside from the recent replay updates, and we believe you have noticed this as well.&lt;/p&gt;&#10;&lt;p&gt;In the background, We&amp;rsquo;ve been putting so much effort into reinsfrastructuring the entire MCSR Ranked backend(the server).&lt;br&gt;&#10;Now, we will explain why we have to do that, what&amp;rsquo;s going to be changed, and when it will happen.&lt;/p&gt;&#10;&lt;h2 id="problems-of-current-server-infrastructure"&gt;Problems of current server infrastructure&#10;&lt;/h2&gt;&lt;p&gt;The backend code for MCSR Ranked began to be rewritten in late 2022. Wow, it’s already been nearly 4 years.&lt;br&gt;&#10;During this process, I (RedLime) wrote 99% of the backend code, and you might be surprised, this was my first attempt at a WebSocket project.&lt;br&gt;&#10;In short, before starting this project, I had absolutely no idea how WebSocket worked, and I literally started learning about it as I began the project.&lt;br&gt;&#10;I also lacked a significant amount of technical knowledge regarding various backends.&lt;/p&gt;&#10;&lt;p&gt;However, with a lot of help of Google search, I made the first version of the backend, and surprisingly, the server started &lt;em&gt;working&lt;/em&gt;!&lt;br&gt;&#10;But, this initial backend was not designed to accommodate thousands of players playing simultaneously.&lt;br&gt;&#10;Because We never even imagined that the project would eventually reach thousands of concurrent users. It was literally our passion project.&lt;/p&gt;&#10;&lt;p&gt;Fast forward some years later, several issues began to surface.&lt;br&gt;&#10;From 2023 to 2024, there were a few performance issues on the server, but since these were primarily database optimization problems, they could be fixed easily.&#10;However, from late 2025 to early 2026, a massive influx of players began all at once due to the Tubbo&amp;rsquo;s Midoffs and spectacular plays of Ludwig.&#10;The average number of concurrent users jumped more than 10x in an instant, which was completely unexpected. As a result, various structural problems with the backend design began to be discovered.&lt;/p&gt;&#10;&lt;h3 id="memory-usage-and-performance-with-database"&gt;Memory usage and performance with Database&#10;&lt;/h3&gt;&lt;p&gt;We had used a No-SQL database. because the initial MCSR Ranked backend required various changes, which facilitates data structure modifications.&lt;br&gt;&#10;However, at this point, the database&amp;rsquo;s structure become relatively stabilized, and various problems also arised due to the inherent limitations of No-SQL.&lt;br&gt;&#10;Memory usages and performance degration were particularly severe. Specifically, as the number of matches and users increased, memory began to occupy up to 50% of the current server&amp;rsquo;s total memory, and is still increasing.&lt;br&gt;&#10;And also, due to the limit of No-SQL, performance lags significantly when using queries that link multiple tables for analysis. Consequently, it was difficult to implement various analytical functions within the server.&lt;br&gt;&#10;This naturally became a major obstacle to adding new features to the server and established a critical challenge that needed to be resolved.&lt;/p&gt;&#10;&lt;h3 id="everything-is-in-single-coreprocess"&gt;Everything is in single core/process&#10;&lt;/h3&gt;&lt;p&gt;&lt;img alt="Old Server Infrastructure" class="gallery-image" data-flex-basis="313px" data-flex-grow="130" height="936" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/old_server_infra.png" srcset="https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/old_server_infra_hu_11c4424801548014.png 800w, https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/old_server_infra.png 1224w" width="1224"&gt;&lt;/p&gt;&#10;&lt;p&gt;Similarly, another issue has appeared that was not a problem in the past but has emerged as the number of users increased.&lt;br&gt;&#10;Currently, the MCSR Ranked backend bundles all services into a single process. This includes the game server, API, Discord bot, website proxy, and other services.&lt;br&gt;&#10;Therefore, if even one of these elements has a significant heavy performance load or an error that causes the process to crash, the entire server crashes with it.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Feinberg ranked server crash videos" class="gallery-image" data-flex-basis="515px" data-flex-grow="214" height="592" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/feinberg_crash.png" srcset="https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/feinberg_crash_hu_f0a69a56d288fb3d.png 800w, https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/feinberg_crash.png 1272w" width="1272"&gt;&#10;Yes, the situations shown in these videos were caused precisely by this problem.&lt;/p&gt;&#10;&lt;p&gt;Another problem is that since all of this works within a single process, the server&amp;rsquo;s full CPU performance cannot be utilized. Although the server currently has multiple cores, the game server process was using only a single core. This resulted in a waste of performance.&lt;br&gt;&#10;Fortunately, since the Database and proxy processing systems were using multiple cores, it was not a complete waste.&lt;/p&gt;&#10;&lt;h3 id="hard-to-hotfix-for-specific-element"&gt;Hard to hotfix for specific element&#10;&lt;/h3&gt;&lt;p&gt;&lt;img alt="maintenance messages" class="gallery-image" data-flex-basis="325px" data-flex-grow="135" height="853" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/downtime_issue.png" srcset="https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/downtime_issue_hu_1b9a7845413428a7.png 800w, https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/downtime_issue.png 1156w" width="1156"&gt;&#10;This issue is directly related to the single process problem mentioned above.&lt;br&gt;&#10;If a minor issue occurred in the server logic requiring a hotfix, or if changes were needed to the API, the entire server had to be restarted unconditionally. This was the case even for a single line of code change.&lt;/p&gt;&#10;&lt;p&gt;This is important because it means that any ongoing Ranked Mode gameplay must also be suspended. Basically, it takes at least an hour to inspect and restart the entire server.&#10;We have to wait for ongoing matches to finish, apply the patch, and then perform a final check of the changes.&lt;br&gt;&#10;While this would be perfectly reasonable for large-scale updates, the same steps are required even to apply a single line of code change.&lt;br&gt;&#10;Since such long downtime is not ideal, a method was needed to manage each process more efficiently.&lt;/p&gt;&#10;&lt;h2 id="the-new-infrastructure"&gt;The new infrastructure&#10;&lt;/h2&gt;&lt;p&gt;To resolve all these issues and ensure scalability to accommodate more players in the future, we have built a new server infrastructure.&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="New Server Infrastructure Graphic" class="gallery-image" data-flex-basis="477px" data-flex-grow="198" height="776" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/new_server_infra.png" srcset="https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/new_server_infra_hu_ee46c8433171bd85.png 800w, https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/new_server_infra.png 1544w" width="1544"&gt;&lt;/p&gt;&#10;&lt;p&gt;We have separated each major feature into a separate process: The game server, API, and Discord bot, to ensure that applying changes does not affect other services.&lt;br&gt;&#10;Furthermore, because the processes are separated, each service can utilize an entire single core, which grants significantly more CPU performance available to the service.&lt;/p&gt;&#10;&lt;p&gt;Additionally, the API and Game Server can also be split into multiple processes. This allows us to handle increased demand in the future by simply adding more processes, while also making the deployment of updates much easier.&lt;br&gt;&#10;In particular, if changes are required for the Game Server, we create a new process with the updated changes and prevent access to the existing process, enabling the changes to be applied to players sequentially.&lt;/p&gt;&#10;&lt;p&gt;The database has also been migrated to a SQL-based architecture. This allows for more efficient memory usage, smaller data sizes, and improved performance.&lt;br&gt;&#10;While it is difficult to go into specific details about this, just know a lot of effort has been put into it. 🫠&lt;/p&gt;&#10;&lt;h2 id="future-plans--new-features"&gt;Future Plans &amp;amp; New Features&#10;&lt;/h2&gt;&lt;p&gt;In fact, We&amp;rsquo;ve already started the private test with this new server infrastructure!&#10;This update is planned around the near future if we don&amp;rsquo;t have any major issue while in the private testing phase, and we expect it around &lt;strong&gt;this December or start of Season 13!&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="Match api bulk files" class="gallery-image" data-flex-basis="1435px" data-flex-grow="598" height="215" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/match_api_bulk.png" srcset="https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/match_api_bulk_hu_3f71fafe181c0d19.png 800w, https://blog.mcsrranked.com/p/rebuild-the-core-progress-on-the-server-rewrite/match_api_bulk.png 1286w" width="1286"&gt;&#10;Also, we&amp;rsquo;ve implemented some new features for testing the new server performance already:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Match API bulk files for download and every match API data in a specific season.&lt;/li&gt;&#10;&lt;li&gt;Fastest time leaderboard with Country filter.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;After this update, we will start to work on some wanted features:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Pronouns&lt;/li&gt;&#10;&lt;li&gt;New Seed Rush Mode&lt;/li&gt;&#10;&lt;li&gt;Notification of Report Reviewed&lt;/li&gt;&#10;&lt;li&gt;Cosmetics Update&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Some tasks applied only in the client, such as standardization or UI rework among other things, haven&amp;rsquo;t been included in this list. Of course, those will also be worked on.&lt;/p&gt;&#10;&lt;h2 id="postscript"&gt;Postscript&#10;&lt;/h2&gt;&lt;p&gt;We would like to take this opportunity to apologize for the updates that have been delayed due to the work on this massive undertaking.&lt;br&gt;&#10;The &lt;a class="link" href="#future-plans--new-features" &gt;features mentioned&lt;/a&gt; earlier will be implemented after the deployment of the server rewrite, and we look forward to introducing even more contents to MCSR Ranked in 2027.&lt;br&gt;&#10;Thank you for your patience.&lt;/p&gt;&#10;&lt;p&gt;I would also like to give thanks to &lt;strong&gt;Roco&lt;/strong&gt; and &lt;a class="link" href="https://x.com/xyz3va" target="_blank" rel="noopener"&#10; &gt;&lt;strong&gt;eva (xyzeva)&lt;/strong&gt;&lt;/a&gt; for their contributions to this update.&lt;br&gt;&#10;With Eva, she provided the concepts and demo architecture for this new infrastructure. Without her, this project wouldn&amp;rsquo;t have been possible.&lt;br&gt;&#10;Roco also helped an entire rewrite process, with her efforts, we are on track to complete this work within this year.&lt;/p&gt;&#10;&lt;h2 id="discussion"&gt;Discussion&#10;&lt;/h2&gt;&lt;p&gt;Feel free to discuss about this update in &lt;a class="link" href="https://discord.mcsrranked.com" target="_blank" rel="noopener"&#10; &gt;our Discord Server&lt;/a&gt;!&lt;/p&gt;&#10;&lt;p&gt;Thank you everyone for your suggestions or feedback. :)&lt;/p&gt;&#10;</description></item></channel></rss>