Krypton icon indicating copy to clipboard operation
Krypton copied to clipboard

Implement a backup system

Open BomBardyGamer opened this issue 4 years ago • 0 comments

Description

Introduce a backup system that's built-in to the server so users can guarantee the security of their worlds if something goes wrong.

Goals

The following are goals of this system:

  • Provide a high-performance and efficient automatic backup systems
  • Provide the ability to automatically backup your worlds on a timer, and also manually queue backups
  • Provide hooks in to common backup systems, such as AWS S3, Google Drive, or Microsoft OneDrive.
  • Provide an API for listening for backups and creating new upload sources.
  • Possibly using a custom data storage format to more efficiently store data than Anvil, and supporting custom writing formats in the API.

Non goals

The following, however, are not goals of this system:

  • Replace any of the standard loading or saving logic
  • Using a custom packing format, such as a replacement for ZIP or TAR.

Motivation

Worlds are very important, they are where most of the game takes place, and securing their usability should be vital. However, sometimes things go wrong, and sometimes we can't guarantee this security. In Krypton, this is especially true, as it is quite unstable, and in my time testing it, I have had to delete and repopulate the region folder of the world I use to test so many times that I've actually forgotten most of them.

For vanilla Minecraft, and especially Bukkit, there are numerous solutions that attempt to implement backups in to Minecraft. However, I have had mixed results using them in production environments for servers I have worked for in the past, them being slow, inefficient, or consuming huge amounts of memory.

This system is intended to replace any possible third-party solutions.

BomBardyGamer avatar Sep 20 '21 09:09 BomBardyGamer