Delta update generation hangs when replacing large files (500MB+) with same filename #2735
Replies: 1 comment 1 reply
-
This is for the binary delta creation process. First I'd try using BinaryDelta or generate_appcast on top of tree which contains one performance fix (#2693). The repository ReadMe explains how to download a nightly distribution build if you don't want to build from source. If the slow performance is due to compression, there are different compression algorithm flags to these tools, but likely it's due to bsdiff, but worth verifying this secondly. Thirdly, if you could share a reproducible case that may be helpful to verify on my end to confirm it's indeed hanging indefinitely rather than just taking a long time, and if I can experiment around with making anything go smoother. I'm fairly sure I've generate binary diffs with executables near 500 MB before, so there could be a specific problematic pattern here. Fourthly, if all else fails, you may get improved performance if you split the file in spirit of:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Delta update generation hangs seemingly indefinitely when the app bundle contains a large file (~500MB) that has been replaced with a new file of the same name between versions.
Steps to Reproduce
Create an app bundle containing a large file (500MB+) with a specific filename
In a new version, replace that file with a different file of similar size but keep the same filename
Attempt to generate delta updates using Sparkle's delta generation tools
Process hangs during delta generation
Expected Behavior
Delta update generation should complete successfully, creating a delta patch that efficiently handles the large file replacement.
Actual Behavior
The delta generation process hangs seemingly indefinitely and never completes.
Additional Context
The issue specifically occurs when the filename remains the same but the file content changes
File size appears to be around 500MB where this becomes problematic
Questions
Is there a known file size limit for delta generation?
Are there recommended approaches for handling large asset updates?
Can files be skipped from the diff algo and simply replaced in the delta update?
Impact
This prevents us from using delta updates for app versions that include large asset file updates, forcing users to download the entire app bundle instead of just the changes.
Beta Was this translation helpful? Give feedback.
All reactions