Search Unity

Are there any plans to add a delta downloader?

Discussion in 'Unity Hub' started by DoctorShinobi, Mar 28, 2018.

  1. DoctorShinobi

    DoctorShinobi

    Joined:
    Oct 5, 2012
    Posts:
    219
    With Unity Hub being a thing now, this feels like an excellent time to request delta downloading of Unity versions as a feature. Before Unity Hub, you had to redownload the entire Unity editor any time you wished to upgrade even to a slightly newer version. Is this still the case with Unity Hub? If not, is it planned to be added in the future? Having the Hub download only the missing\changed files compared to the last version will save users a lot of time and Unity a lot of money on bandwidth expenses
     
  2. DanielTG

    DanielTG

    Joined:
    Feb 15, 2018
    Posts:
    111
    Thank you for the feedback. This is 'mostly' still the case with the Unity Hub today.

    If I understand the request correctly, I believe the new Unity Package Manager (and new package format) will help alleviate the size of the editor downloads/installs going forward. Basically, we are moving to a model where you first install a baseline Editor release (e.g 2018.1) and then selectively download/install/enable Packages (features/components/build platforms etc...) depending on your project needs; downloaded packages are then stored locally on your machine and linked to a specific project. The way the new project templates work and Package Manager UI (in 2018.1 beyond) is a example of how to manage this modular approach.

    It would be great to hear more feedback from yourself and other on this forum on how would like to see this managed via the Hub in the future.

    Thanks
    Daniel
     
  3. DoctorShinobi

    DoctorShinobi

    Joined:
    Oct 5, 2012
    Posts:
    219
    Thanks for the answer. The package manager is great, but it's not exactly what I meant so I'll try to rephrase that.

    Let's say you download Unity version 2017.3f1(Which is a few gigs in size as far as I remember). Next you want to download 2017.3.1f1(Which is also a few gigs). Most files between those two versions are probably unchanged, and therefore it's a waste to redownload them. With delta downloading the hub would only download the new\changed files between the versions, and create a copy of the shared files inside the new version's installation folder.
    As I mentioned, this saves a lot of time for the user when downloading multiple installations, and at the same time saves money for Unity since you don't have to pay as much for bandwidth.

    What I'm saying is that when you want to upgrade you should only need to download the modified editor files instead of the entire installation. This is something that would change Unity Hub from nice to have to a big time saver for me.
     
  4. vigoAtWork

    vigoAtWork

    Joined:
    Apr 25, 2016
    Posts:
    12
    When Unity Hub was first released, such incremental updates were exactly what I was expecting to get - especially with the often-updated LTS releases (or the even more frequent patch releases in Unity 5.x days).

    Some numbers for updating from 2018.4.1f1 to 2018.4.2f1, with Android, iOS and webGL build support:
    - download size is approximately 3.2 GB, so north of 5 minutes on a 100 MBit connection
    - install size is 7.9 GB
    - a gzipped tar-archive of the install is about 2.7 GB, the lzma-variant only 2 GB
    - rsyncing from 2018.4.2f1 to 2018.4.1f1 yields "speedup is 6.75", i.e. an uncompressed delta of 1.1 GB
    So even with this rather naive approach to delta compressed updates, update size would be reduced to less than 300 MB. Using a git repository for releases, and just sending compressed diffs would be even smaller, so there's your implementation already ;)

    As the OP already put it: win-win, faster download, less bandwidth.

    If that's not feasible, using better compression would help at least a bit (up to 2 GB vs 3.2 GB), that'd be a nice start.
     
    MoinTom likes this.
  5. vigoAtWork

    vigoAtWork

    Joined:
    Apr 25, 2016
    Posts:
    12
    Small update - using xdelta3, the patch file to update 2018.4.13f1 to 2018.4.14f1 is just above 150 MB, that's less than 2% of the original 7.9 GB (aka ~8000 MB). I know nobody is reading this, but the amount of simple optimizations - the "low hanging fruit" - that Unity /isn't/ using is really astonishing.