Notable changes:
-
Added
fsfreeze
support to thebenji-k8s
Docker image. Just add thebenji-backup.me/fsfreeze: yes
annotation to the PVC. Kubernetes hosts are accessed via pods which are deployed by a DaemonSet, see the Helm chart for details. -
Use bulk inserts to speed up backups of images based on a previous version. This also decreases memory usage.
-
Switched from in-memory block lists to an iterator based approach. This will increase performance and decrease memory usage when backing up large images.
-
Fixed a wrong index on the
blocks
table. This should also increase performance. The database will need to be migrated withbenji database-migrate
. -
Laid the foundation for structured logging.
-
Removed database table
stats
and assorted code and commands. Statistics are now kept together with the other version metadata in theversions
table. This means they are also removed when the version is removed. If you want to keep historic statistics you need to export them beforehand withbenji -m ls
orbenji metadata-export
. This is a breaking change and you might need to adjust your scripts. As statistics are now included in a version's metadata the metadata version has changed to1.1.0
. Old metadata backups and exports with a metadata version of1.0.0
can be imported by the current version. The statistics will be empty in that case. The database will need to be migrated withbenji database-migrate
. -
Fixed a bug in the time calculation of
benji enforce
which could lead to a late expiration of versions, the timing was a few hours off.
I'd like to thank @olifre and @adambmedent for their testing efforts!