Skip to content
Viet Nguyen edited this page Mar 22, 2016 · 23 revisions

##How Minecraft Normally Work Usually, in a traditional Minecraft server, player flow is like this:

   Player A                            Player B                            Player C
      |                                   |                                   |
      |                                   |                                   |
      |                                   |                                   |
      +-----------------------------------+-----------------------------------+
                                          |
                                          |
                                          |Server 1
                                          |
                                          |
                                          |SERVER_world_1
                                    SERVER_world_1_nether
                                    SERVER_world_1_the_end

or some server attempts to scale like this:

   Player A                            Player B                            Player C
      |                                   |                                   |
      |                                   |                                   |
      |                                   |                                   |
      +-----------------------------------+-----------------------------------+
                   |                                    |
                   |                                    |
                   |                                    |
                   ▼                                    ▼ 
                Server 1                             Server 2
                   |                                    |
                   |                                    |
                   |                                    |
                   ▼                                    ▼ 
             SERVER_world_1                       SERVER_world_2
             SERVER_world_1_nether                SERVER_world_2_nether
             SERVER_world_1_the_end               SERVER_world_2_the_end

Above are the old ways of handling players. Bottleneck usually happens when a single machine gets filled up with high amount of concurrent players.

#The Right Way to Scale Let's visualize a smarter way to distribute players. In Minecraftly, it's like this:

        Player A                       Player B                       Player C
           |                              |                              |
           |                              |                              |
           |                              |                              |
                                                                       
       Server 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 10 or 11 or 12... or 
           |                              |                              |
           |                              |                              |
           |                              |                              |
                                                                       
+------------------------------------------------------------------------------------+
| PLAYER_world_A               PLAYER_world_B                 PLAYER_world_C         |
| PLAYER_world_A_nether        PLAYER_world_B_nether          PLAYER_world_C_nether  |
| PLAYER_world_A_the_end       PLAYER_world_B_the_end         PLAYER_world_C_the_end |
+------------------------------------------------------------------------------------+

As you can see, in this method, it doesn't matter which server brings player his/her own world when they log in, as long as one server delivers the correct world to the correct player at the correct moment.

So, where do we store those world folders? The worlds are stored in a common file system or something? The answer is yes. It can simply be a NFS server or a scale out NAS cluster. Any solution works, as long as all servers share the same common file system folder.

Clone this wiki locally