Skip to content

Commit

Permalink
Merge pull request #3091 from balena-io/vipulgupta2048/fix-linksss
Browse files Browse the repository at this point in the history
patch: Delete unused links
  • Loading branch information
flowzone-app[bot] authored Oct 15, 2024
2 parents 016e9b7 + 4f56424 commit 4a19149
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 11 deletions.
2 changes: 1 addition & 1 deletion pages/learn/deploy/delta.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ excerpt: How binary delta updates work on {{ $names.company.lower }}, and how to

# Delta updates

When a new release is successfully created, your devices are notified, and will initiate an update of their running containers. The regular device update uses the Docker pull mechanism. It requests all the [layers](https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/#/images-and-layers) of the new container image that are not present on the device (i.e. not shared with the previous image). Then from these layers the new image is assembled on the device, and replaces the previous version of the fleet services. This process potentially moves a lot of data, uses a lot of space on the device to hold both the old and the new images, and the device can be in a sensitive state while Docker is updating (e.g. in case there's an unexpected power outage during that time).
When a new release is successfully created, your devices are notified, and will initiate an update of their running containers. The regular device update uses the Docker pull mechanism. It requests all the [layers](https://docs.docker.com/engine/storage/drivers/#images-and-layers) of the new container image that are not present on the device (i.e. not shared with the previous image). Then from these layers the new image is assembled on the device, and replaces the previous version of the fleet services. This process potentially moves a lot of data, uses a lot of space on the device to hold both the old and the new images, and the device can be in a sensitive state while Docker is updating (e.g. in case there's an unexpected power outage during that time).

To address some of these issues, we have implemented a "binary delta" update process. Instead of initiating a Docker pull when the device is notified about an update, it requests the {{ $names.company.lower }} servers to provide just the differences between the old and new container image. This comparison is done on the full image level, comparing the actual content, regardless of the layers used, resulting in the minimum amount of change required to get from the previous release to the new one. In the worst case (i.e. completely replaced image) the binary delta is equal size to the Docker pull (the device needs to download the full image). In most cases, the binary delta will be much smaller.

Expand Down
10 changes: 0 additions & 10 deletions pages/learn/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -257,29 +257,19 @@ When it's finished building the device(s) will update as before. Remember anythi
[fleet-types]:/learn/accounts/fleet-types
[architecture]:/reference/base-images/devicetypes/#machine-names-and-architectures
[balenablocks]:{{ $links.balenaHubUrl }}/blocks
[balenahub]:{{ $links.balenaHubUrl }}
[cli-install]:{{ $links.githubCli }}/blob/master/INSTALL.md
[cli]:/reference/cli/
[configuration]:/learn/manage/configuration/
[dashboard]:{{ $links.dashboardUrl }}
[devvprod]:/understanding/understanding-devices/2.0.0/#development-vs-production-images
[dockerfile]:/learn/develop/dockerfile
[dockerLayerDocs]:https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/
[gitdocs]:/learn/deploy/deployment/#git-push
[help]:{{ $links.supportUrl }}
[link-to-signup]:{{ $links.dashboardUrl }}/signup
[local-mode]:/learn/develop/local-mode
[multicontainer]:/learn/develop/multicontainer
[npminstall]:{{ $links.githubCli }}/blob/master/INSTALL.md#npm-installation
[projects]:{{ $links.blogSiteUrl }}/tags/project/
[releases]:{{ $links.githubCli }}/releases
[service]:/learn/manage/variables/
[support]:/support/
[supported-devices]:/reference/hardware/devices/
[terminal]:/learn/manage/ssh-access
[token]:/learn/accounts/#access-tokens
[variables]:/learn/manage/variables/
[balena-glossary]:/learn/more/glossary/
<!-- Language related links -->
Expand Down

0 comments on commit 4a19149

Please sign in to comment.