Hello,

We are using fuseki and we would like to implement a backup policy similar in capabilities to what [autopostgresqlbackup] has to offer.

Are there any existing solutions out there that can do all / part of these?

We would like to take:
* daily backups for a week
* weekly backups - 1 per week, last 4 weeks
* monthly backups - 1/ month, last 6 months


I believe this could be scripted with via the HTTP API + directory access.

The backup api in [fuseki-server-protocol] can trigger a backup and can also list existing backups.

Unfortunately in the current implementation, backup is not consistent.
In case of a server crash during backup, the file will remain there incomplete. Also, since tasks are stored in memory and cleaned (periodically / on restart) there is no way to know for sure if the backup was successful or not.

In have encountered the above quite often in some workloads.

The in-consistency could be solved by writing the backup to temporary file name and on completion, renaming it to final file name.
Rename is usually atomic operation on POSIX file systems.

/backup-list API can list all backups or split backups in complete / incomplete. IMO for now, it can list all of them.

The in progress backup could be stored alongside the other backups with a file marker like: dataset_date.nq.gz.INCOMPLETE .
Once it's done it can be renamed to dataset_date.nq.gz .

Cleanup might be handled externally. In case of a crash, the file will remain INCOMPLETE until it is removed by system by checking a specific amount of time has passed since backup was started (1-2 days).

WDYT?


[autopostgresqlbackup] https://github.com/k0lter/autopostgresqlbackup
[fuseki-server-protocol] https://jena.apache.org/documentation/fuseki2/fuseki-server-protocol.html


Thanks,
--
Eugen Stan

+40770 941 271  / https://www.netdava.com
begin:vcard
fn:Eugen Stan
n:Stan;Eugen
email;internet:eugen.s...@netdava.com
tel;cell:+40720898747
x-mozilla-html:FALSE
url:https://www.netdava.com
version:2.1
end:vcard

Reply via email to