v18.1.3
A performance and reliability release, bringing v17's recent fixes and performance work
forward to v18: pushing and pulling scale much better on large sites, restore points and
media syncing are more reliable, and a background job now tidies up abandoned temp
folders left behind by interrupted server-to-server transfers.
Changed
- Bumped uSync, uSync.BackOffice and uSync.BackOffice.Management.Api to 18.1.3.
- Working out what needs to sync now scales much better with the number of items
involved, with far fewer database queries during large syncs.
- Memory and CPU use during export/import (file hashing, comparison, and zip creation)
has been reduced, with no change to existing sync pack contents.
- Server-to-server push/pull requests no longer buffer entire request/response bodies
in memory, reducing memory pressure on large transfers.
- The remote content/media browser used when choosing what to push or pull now issues
far fewer database queries per page.
Added
- A background job that automatically removes abandoned temporary pack/receive folders
left behind when a remote clean-up request couldn't reach the target server (for
example, a restart mid-push). Controlled via
uSync:TempFolderCleanup:Enabled
(default true) and uSync:TempFolderCleanup:CutOffHours (default 24).
Fixed
- Publisher: server-to-server requests now honour
uSync:Publisher:Settings:RequestTimeout
again. Every request — restore point steps, sync pack uploads, imports — was silently
capped at 100 seconds instead of the configured value. Set it to 0 for no limit.
- Restore point archives are now built on disk instead of in memory, so creating a
restore point of a large site no longer risks taking the process down.
- The restore point working folder is only deleted once its archive is confirmed
stored, so a failure at that point no longer leaves neither the folder nor the zip.
- Media writes no longer wait forever on each other — one stalled write could
previously block every media import that followed it.
- A paged file push no longer re-sends the entire file set on every page. A paging bug
meant each page copied and transferred every file rather than just its own slice, so
a push spanning several pages uploaded the whole file set that many times over.
- Media items renamed then imported are no longer left behind under their old file
names.
PushFiles now carries the same large-upload handling as the other server-to-server
endpoints (PushPack, PushMedia, PushInlineMedia).
- The two Publisher temp-folder health checks, which had been disabled and
non-functional since Umbraco 14's backoffice rewrite, are removed — the temp folder
cleanup job above replaces what they were for.