Jump to content

Delta update

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by PohranicniStraze (talk | contribs) at 04:12, 17 January 2020 (sp). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A delta update is an update that only requires the user to download the code that has changed, not the whole program. It can significantly save time and bandwidth. The name is drawn from the fact that the Greek letter delta, Δ or δ, is used to denote change in mathematical sciences.

Example

Any app that is ready for updating can be updated faster and more efficiently due to this new system. If, for example, a game that is 300 megabytes is updated with a new racetrack that adds an additional two megabytes to the application's size, only two megabytes will be downloaded instead of 302 megabytes.

Uses

Linux

Fedora Linux has supported binary delta updates by default using the yum presto plugin since June 2009. This is based on RPM Package Manager's deltarpm system (2004), which was in turn based on bsdiff.[1] This functionality has been inherited by Fedora-derived operating systems, including RedHat Enterprise Linux and its variant, CentOS. OpenSUSE also uses deltarpms with its zapper manager.

A similar system for the dpkg-APT package manager system of Debian is debdelta (2006); despite an apparent halt on the homepage, its package repository as well as the source code remains actively maintained.[2] Debdelta is not installed by default and not many mirrors have been set up for it. A member of the developer team has proposed yet another format that integrates directly into the currently mirrored main repositories called patch debs in 2018.[3]

A descendant of Debian, Ubuntu developers have tried over and over to implement delta updates for their system. Around 2006 they tried to create one, but was confronted with too many options and dropped the efforts.[4] In 2011 they tried to just set up debdelta, but dropped the efforts in May of that year.[5]

The Arch Linux package manager pacman used to support a form of delta updating using VCDiff (xdelta). It was scrapped due to an arbitrary command execution vulnerbility (CVE-2019-18183) due to a lack of string escaping.[6]

Windows

Windows Update has supported delta updates since Windows XP which are called express installation files. On redistributing updates, Windows Server Update Services has supported delta updates since Windows Server 2003.[7]

FreeBSD

FreeBSD has supported delta updates using portsnap[8] since November 2005.[9] Given FreeBSD's traditional stance of focusing on source code updates, no method of delta binary updates currently exists.

Google

Google refers to delta updates as "smart updates." This has been implemented in Google's Android operating system devices that run on Android 2.3 or above. Google engineers have estimated that smart updates would be only about one third the size of a full update on average.

Google's open source project Chromium requires frequent updates to narrow the window of vulnerability.[10] It uses a more aggressive diffing algorithm called "courgette" [11] to reduce diff size of two binary executable files, which reduces the diff patch from 6.7% to 0.76% for one version update.[12] The technology helped Chrome to push its updates to 100% of users in less than 10 days.

App APK updates in Android's Play Store use bsdiff since 2016, a new efficient delta update algorithm introduced in 2003.[13]

Apple iOS

Apple's iOS is also capable of delta updates for operating system and application updates making users reducing bandwidth usage and reliance on the iTunes desktop software to download and apply updates. [14]

Over-the-air software updates

Over-the-air (OTA) software updates have been used widely across many mobile devices; Apple iOS, Google Android, Microsoft Windows Phone 8, and BlackBerry 10.

References

  1. ^ "Fedora Features/Presto".
  2. ^ "debdelta at the Debian Project". (for source code, see debian "developer information" for package; for repository, see http://debdeltas.debian.net/debian-deltas/pool/.)
  3. ^ "Teams/Dpkg/Spec/DeltaDebs". Debian Wiki.
  4. ^ "SmallerUpdates". Ubuntu Wiki. Retrieved 13 January 2020.
  5. ^ "UbuntuDebdeltaSupport".
  6. ^ "Deltup". ArchWiki. Retrieved 13 January 2020.
  7. ^ "Determine Bandwidth Options to Use for Your Deployment".
  8. ^ "Secure FreeBSD ports tree updating".
  9. ^ "FreeBSD 6.0-RELEASE Announcement".
  10. ^ "Smaller is faster (and safer too),".
  11. ^ "Software Updates: Courgette".
  12. ^ "Software Updates: Courgette".
  13. ^ Google Play’s new delta algorithm reduces size of Android app updates
  14. ^ "Technical Q&A QA1779: Reducing Download Size for iOS App Updates". developer.apple.com. Retrieved 2015-07-07.