[Idea] Bukkit server clustering

Discussion in 'Archived: Plugin Requests' started by Zillo7, Oct 18, 2011.

  1. Offline

    Zillo7

    I just had an idea for those people who run a server, but lack the upstream bandwidth to run a large map with a lot of players...

    What if a group of servers were to run as a cluster, each using the same plugins, but only running a part of the world?
    When a player moves into an area of another server, they'd automatically connect to that server, and their inventory/health will be transferred with them.
    When a player uses chat, the message is sent to the main server, then broadcast to every other server, commands would be invoked in every server as well(maybe?).
    When a new server is added to the cluster, it gets the map seed from the main server, along with the section it should generate. It then copies all the plugins installed, and their configuration settings.
    bukkit cluster sample.png
    This would definitely be a complicated plugin, and there's a few problems with it:
    Teleportation plugins wouldn't work too well, being that each server only runs a small section of the world
    Plugins like Iconomy might have problems if the player's account doesn't get updated on all servers
    Plugins that require two player's input wouldn't work if the players are in different servers

    What do you all think of this? Would a plugin like this work?
     
  2. Offline

    nickrak

    Awesome idea, but this would require some heavy client-side modding. And mostly likely, custom-designed plugins that are made to run in a cluster.
     
  3. Offline

    Zillo7

    It doesn't seem like it would need a client-side mod, since it mostly does work from server to server, but it would surely break a lot of people's plugins.
     
  4. Offline

    nickrak

    When the player walks off Server A onto Server B, Server A would have to tell the client to connect to the other server.
     
  5. Offline

    Zillo7

    This looks like something that's perfect for spout then!:D
     
  6. Offline

    Tim Andersen

    its allready done.. look at the plugin called transporter. it got server to server chat, server to server inventories and so on.. its all done.

    and spout is required. ;)
     
  7. Offline

    croxis

    There is a proxy program which clients connect to and the proxy automatically manages which server the client is getting data from. However there is currently no solution for doing a cluster for the same world. It is an interesting thought but there are edge cases to consider such as pistons on the border of two servers, tnt explosions, what happens if a node dies, etc.
     
  8. Offline

    Zillo7

    It could work like those border plugins, where if you reach the border, it'd say 'you can't go any farther' or something. Except before blocking movement, it'll check if a server exists for the section they're entering, and change the server if there is one.
    You could also have a buffer in between the two server's sections (moving over 1000X in server A will bring you to 1100X in server B), where noone can get to in any server. That would prevent any problems with interacting with blocks on the border.

    Transporter looks like it changes servers when you go into a portal, this plugin would work whenever you reach a border.
     
  9. Offline

    croxis

    Right, my comment wasn't that it isn't possible but these literal edge cases need to be thought about
     

Share This Page