Skytable supports automated snapshots that can be used for periodic backups. Skytable's snapshotting system is dead simple and works in a similar way to BGSAVE.
Snapshots aren't enabled by default — you have to enable them by using the configuration file or command line arguments. To your existing configuration file, just add the following block:
every = 3600
atmost = 4
failsafe = true # optional
Here's what these values mean:
every- Number of seconds to wait before creating another snapshot
atmost- The maximum number of snapshots to keep
failsafe- This indicates whether the database should stop accepting write operations if snapshotting fails
Storage of snapshots
All the created snapshots are stored in a
data/snaps folder in the current directory.
The snapshot folders are named in the format:
YYYYMMDD-HHMMSS. On the other hand,
remote snapshots are stored in the
How snapshots work
As mentioned earlier, snapshots work just like
BGSAVE. A task is spawned that starts encoding
(and writing data) to a folder (which appears to be a copy of the ks folder); once all the data is successfully flushed to disk, the task exits.
Methods of creating snapshots
Snapshots can be created automatically by using the configuration file. However, if you want to create snapshots remotely, you can use the
MKSNAP action. This will only
create snapshots if it is enabled on the server-side, unless you use
truly remote snapshots.
Irrespective of whether snapshots are enabled on the server side, you can use truly remote snapshots.
Such snapshots can be created by using the
MKSNAP action. To do this,
pass a second argument to
MKSNAP with the desired name of your snapshot. This will create
a snapshot in the
Since snapshots are intended for data backups — you can do a little trick to make these
backups offsite-backups: mount a network file system or a different drive and create a folder
for storing your snapshots in it. Now, symlink the
data/snaps directory to your
remotely mounted directory. You now have offsite backups!