Skip to content

Add opt-in Synology Hyper Backup WebDAV mode#608

Open
taglia wants to merge 1 commit into
internxt:mainfrom
taglia:hyper-backup-webdav-optimizations
Open

Add opt-in Synology Hyper Backup WebDAV mode#608
taglia wants to merge 1 commit into
internxt:mainfrom
taglia:hyper-backup-webdav-optimizations

Conversation

@taglia

@taglia taglia commented Jun 17, 2026

Copy link
Copy Markdown

Summary

This PR adds an opt-in WebDAV compatibility/performance mode for Synology Hyper Backup, enabled with WEBDAV_HYPER_BACKUP_MODE=true.

The default WebDAV behavior remains unchanged unless this flag is enabled.

Motivation

Synology Hyper Backup performs many repeated WebDAV metadata and listing operations while creating tasks, uploading backup chunks, and restoring data. Against the current WebDAV implementation this can result in long idle periods between uploads and very slow overall backup throughput.

In the tested environment, this reduced the estimated time to upload 100 GB with Hyper Backup from about 72 hours to about 11.5 hours.

Changes

  • Add WEBDAV_HYPER_BACKUP_MODE configuration support.
  • Add an in-memory WebDAV fast-path cache for repeated path, item, folder listing, GET, and HEAD lookups.
  • Optimize Hyper Backup zero-byte placeholder handling for bucket/index files.
  • Use a faster file replacement path for existing files in Hyper Backup mode.
  • Hide and asynchronously clean up stale Synology lock keepalive files that can block task creation.
  • Add targeted timing logs for WebDAV request diagnostics.
  • Improve Docker WebDAV startup and healthcheck behavior.

Validation

Tested with Synology Hyper Backup using the Docker WebDAV container.

Performance observed in the same environment:

Mode Observed upload rate Estimated time for 100 GB
Existing WebDAV behavior 100 GB in ~72 hours ~72 hours
WEBDAV_HYPER_BACKUP_MODE=true 2.3 TB in ~11 days ~11.5 hours

Additional validation:

  • Completed the full 2.3 TB backup in about 11 days.
  • Completed an integrity check successfully.
  • After rebasing onto current main, completed a 4.1 GB backup/restore smoke test.
  • Restored about 2.96 GB and verified checksums for about 20 files; all matched.
  • Docker image builds successfully.

Notes

This is intentionally gated behind WEBDAV_HYPER_BACKUP_MODE=true because some behavior is tailored to Synology Hyper Backup's WebDAV access pattern, especially zero-byte placeholder handling and stale lock keepalive cleanup.

@taglia taglia requested a review from larryrider as a code owner June 17, 2026 10:14
@taglia taglia force-pushed the hyper-backup-webdav-optimizations branch from 79ea69f to 3011c72 Compare June 17, 2026 11:33
@taglia taglia force-pushed the hyper-backup-webdav-optimizations branch from 3011c72 to a86375f Compare June 17, 2026 11:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant