• v0.9.4-beta.5 — bugfix release
    CI / unit (8.2) (push) Has been cancelled
    CI / unit (8.3) (push) Has been cancelled
    CI / unit (8.4) (push) Has been cancelled
    CI / psalm (push) Has been cancelled
    CI / integration (mariadb, 32) (push) Has been cancelled
    CI / integration (mariadb, 33) (push) Has been cancelled
    CI / integration (mariadb, 34) (push) Has been cancelled
    CI / integration (mariadb, 35) (push) Has been cancelled
    CI / integration (pgsql, 32) (push) Has been cancelled
    CI / integration (pgsql, 33) (push) Has been cancelled
    CI / integration (pgsql, 34) (push) Has been cancelled
    CI / integration (pgsql, 35) (push) Has been cancelled
    CI / integration (sqlite, 32) (push) Has been cancelled
    CI / integration (sqlite, 33) (push) Has been cancelled
    CI / integration (sqlite, 34) (push) Has been cancelled
    CI / integration (sqlite, 35) (push) Has been cancelled
    CI / integration-targets (push) Has been cancelled
    CI / integration-user (32) (push) Has been cancelled
    CI / integration-user (33) (push) Has been cancelled
    CI / integration-user (34) (push) Has been cancelled
    CI / integration-user (35) (push) Has been cancelled
    CI / integration-full-restore (push) Has been cancelled
    Pre-Release

    dillard released this 2026-10-09 12:05:48 +02:00 | 193 commits to main since this release

    Bugfix release: faster restores.

    Fixed

    • Restores and occ backup:verify --deep fetched every blob with its own request, so on a
      remote location they ran far below the speed of the connection. The blobs of a pack are now
      read from one open stream, in the order they were written. Restoring 86 MB in 202 files from a
      Hetzner Storage Box over SMB went from 0.78 MB/s to 4.2 MB/s, the speed of reading the packs
      as plain files over that connection.
    • Reading from an SFTP location waited a full round trip for every 256 KiB, whatever the line
      speed. Reads now keep up to 8 requests in flight. Restoring 1.97 GB in 500 files from a Hetzner
      Storage Box (47 ms away) took 694 s before the fix above, 499 s with it and 142 s with both
      (2.8 → 3.9 → 13.9 MB/s); a full 51 GB restore ran at 13.0 MB/s. When a server error
      interrupts such a read, it goes on from the same position with Nextcloud's own SFTP stream;
      after three failing files in a row, or on a Nextcloud whose SFTP library lacks what this needs,
      only Nextcloud's own stream is used.
    • README: a WebDAV location on a slow upload needs a higher davstorage.request_timeout.

    Package

    ng_backup-0.9.4.tar.gz is the signed app store package (code-signed with the Nextcloud certificate for ng_backup); .sig is its app store signature.

    Downloads