Code Monkey home page Code Monkey logo

gsredis's Introduction

Note: currently in development, not ready for production! Only test in safe environments.

gsredis

gsredis is a plugin for the Glowstone server software, that replaces the default Anvil file format used by Glowstone and other PC-edition servers (e.g. Vanilla, Spigot, Sponge) with a redis data store.

Why would I need this?

All of the mentioned server software, including Glowstone, use the file system to store and read world data (chunks). This makes it hard to have a centralized, concurrent storage system for multiple servers.

For example, a minigame server network with 10+ servers running the same world will need to deploy map changes on each server. Using network-based file storage solutions can be tedious and slow, especially because of file locks and concurrency issues.

Using a centralized and concurrent data storage system like redis, you can efficiently read and write world data to a common system. This also makes deployment a breeze, as you only need to deploy changes to the central data store and restart server instances. Each server will then stream world data directly from the redis server.

Schema

Why Glowstone?

Vanilla and wrappers around it (Spigot, Paper, Sponge) have their world I/O code strictly tied to the file system (Anvil format). There is no easy way to adapt the system using only plugins on these platforms.

Glowstone is a clean-room rewrite of the Vanilla server software, and uses the Bukkit/Spigot/Paper plugin API. It is a more efficient server software, but because it is a rewrite, there may be inconsistencies and missing features between it and Vanilla wrappers.

Around the end of 2017, we introduced an API that lets plugins developed for Glowstone use custom world storage solutions, while keeping the Anvil file format as the default. gsredis uses that API to interface between the Redis client and Glowstone.

Does it work?

This project is currently work-in-progress and certain critical aspects may be broken.

Block storage (a.k.a. Chunk Service I/O) is currently functional. Other types of data, such as structures, statistics, scoreboards, tile entities, and tile ticks are planned but unsupported.

Entity storage (i.e. mobs and objects, except players) is not implemented, and I cannot guarantee they will be supported by gsredis.

Player data storage is limited to a few properties such as position, username, and first-played-time/last-played-time. Other properties such as health, inventory, and XP are not saved.

gsredis's People

Contributors

aramperes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.