Notable changes:
* Restores are now multi-threaded just like backups. This should speed things up quite a bit.
* Multi-threaded removal of blocks was implemented. This should speed up `benji cleanup` with B2. Due to a
simplification in the code `benji cleanup` for S3 based storages is probably slower than before. Try increasing
`simultaneousRemovals` in your configuration if you're affected by this. If this doesn't help, please
open an issue.
* The backup scripts got another major overhaul:
* It is now possible to hook into strategic points in the backup process with custom `bash` functions.
* Prometheus metrics were reimplemented with these hooks and are now specific to the `benji-k8s` Docker image.
* The foundations for freezing the filesystem before a Ceph snapshot were laid.
* The scripts in the `benji-k8s` Docker image now generate Kubernetes events about backup failure or
success. These events are attached to the affected PersistentVolumeClain and can for example be
viewed with `kubectl describe pvc`.
* `benji-backup-pvc` was renamed to `benji-pvc-backup`.
* Support for the try/catch construct based on the `bash-oo-framework` was removed. It had limitations
and was causing problems with certain IDEs.
* The default for simultaneous read and writes was increased from one to three to get better out-of-the-box
performance. The default for the simultaneous removals was set to five.
* Left over locks due to power outages are similar events can now be overridden. This applies to `benji rm` and
`benji cleanup`.
* A typo was fixed in the `metadata-backup` command. It is now correctly spelled `metadata-backup` and
not `netadata-backup` as before. User action might be required if you're using this command in your scripts.
* A bug was fixed where blocks where not properly cleaned up when multiple storages were in use.
* The documentation was updated, but we're still not up-to-date at all fronts.