Backups to SMB no longer crawl; add occ backup:cancel
Each 30-second step opened the location again and read its list of index files. Over SMB that cost a request per file, so on a large repository opening took longer than the step: each step stored one 4 MiB pack and the list grew further. A first backup of nc01 to a Storage Box over SMB managed 12 GiB in 35 hours. occ backup:run and system cron now keep the repository open for the whole run (reopened when another process took a step or the location was edited), opening no longer counts towards the step's time, and SMB folders are listed in one request. occ backup:cancel stops a running backup: no new step starts and the step in progress finishes first. A run of an earlier version, which does not hold back its next step, is marked cancelled after two minutes unless it is recording its snapshot.
This commit is contained in:
@@ -13,6 +13,23 @@ instead carried by the app description, the git tag, the release, and this file.
|
||||
- The list of backup runs (web interface and `occ backup:status`) shows the total size of each
|
||||
backup next to what it uploaded: an incremental backup of 1 TB that uploads 800 MB now shows
|
||||
both. `occ backup:status` shows sizes in GiB where that reads better than MiB.
|
||||
- `occ backup:cancel <run>` stops a running backup; `occ backup:status` shows the run numbers.
|
||||
No new step of the run starts, the step in progress finishes (usually within a minute), then
|
||||
the process working on the run (`occ backup:run` or cron) stops. What it already stored is
|
||||
removed by the next cleanup. A backup started by an earlier version is stopped as well: after
|
||||
two minutes it is marked cancelled while it works, and its process stops at the end of the
|
||||
step.
|
||||
|
||||
### Fixed
|
||||
- Backups to SMB locations, and to other slow locations with many packs, slowed to a crawl: each
|
||||
30-second step opened the location again, and reading the list of index files took longer
|
||||
than the step itself. Each step then stored a single 4 MiB pack, which made the list longer
|
||||
still. A first full backup of 0.8 TB to a Hetzner Storage Box over SMB managed 12 GiB in 35
|
||||
hours. `occ backup:run` and system cron now open the location once per run, opening no longer
|
||||
counts towards the step's time, and SMB folders are listed in one request instead of one per
|
||||
file. A backup to an SMB location that is not getting anywhere keeps running in its old
|
||||
process after the update: update first, then stop it with `occ backup:cancel <run>` and start
|
||||
it again. The new backup reuses the packs the old one stored.
|
||||
|
||||
## [0.9.5-beta.6] - 2026-10-12
|
||||
|
||||
|
||||
Reference in New Issue
Block a user