Thanks for working on this! I finally got to playing with CDN mirror a
bit, and it seems to basically work ok, so next I'm going to write AB
tests that check that it remains useful. Specifically:

1. What should the test be?

I tried 'bitbake -S printdiff core-image-sato' on a blank build
directory, and the result against current master is:

===========
Checking sstate mirror object availability: 100%
|##################################################################################################################################################|
Time: 0:05:35
The differences between the current build and any cached tasks start
at the following tasks:
/srv/work/alex/poky/meta/recipes-sato/images/core-image-sato.bb:do_deploy_source_date_epoch
/srv/work/alex/poky/meta/recipes-core/base-files/base-files_3.0.14.bb:do_install
===========

I think this is pretty good! The two missing objects depend on the
current date, and so should go to the exception list in the test, and
otherwise there is a 100% match rate. The bitbake targets could be
'world core-image-sato-sdk', and target machines could be qemux86_64
and qemuarm64.

Just to be sure that mismatches elsewhere will be reported as CDN
misses, adding my shadow 4.14 update and re-running the command shows:
============
The differences between the current build and any cached tasks start
at the following tasks:
/srv/work/alex/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb:do_package
/srv/work/alex/poky/meta/recipes-sato/pulseaudio-sato/pulseaudio-client-conf-sato_1.bb:do_package
/srv/work/alex/poky/meta/recipes-core/initscripts/initscripts_1.0.bb:do_package
/srv/work/alex/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb:do_package
/srv/work/alex/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.10.bb:do_package
/srv/work/alex/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2023.09.01.bb:do_package
/srv/work/alex/poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb:do_package
/srv/work/alex/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.5.bb:do_package
/srv/work/alex/poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb:do_package
/srv/work/alex/poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb:do_package
/srv/work/alex/poky/meta/recipes-sato/shutdown-desktop/shutdown-desktop.bb:do_package
virtual:native:/srv/work/alex/poky/meta/recipes-support/libbsd/libbsd_0.11.7.bb:do_prepare_recipe_sysroot
/srv/work/alex/poky/meta/recipes-support/ca-certificates/ca-certificates_20211016.bb:do_package
/srv/work/alex/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb:do_package
virtual:native:/srv/work/alex/poky/meta/recipes-extended/shadow/shadow_4.14.0.bb:do_recipe_qa
... (a few more missing do_package objects)
===========

2. When to run the test, and against which commit in poky?

RP suggested that the test could run in an antiphase with the nightly
a-quick (i.e. 12 hours after). We can do that for a start, but I'm
(perhaps prematurely) worrying that this will be unstable: either
because the objects from the nightly haven't yet propagated to CDN, or
because master has meanwhile (e.g. in the 12 hours that have passed)
gained new commits without corresponding cache objects. Are those real
concerns?

Thoughts?

Alex


On Fri, 22 Sept 2023 at 19:32, Michael Halstead
<mhalst...@linuxfoundation.org> wrote:
>
> Right now we have https://cdn.jsdelivr.net/yocto/sstate set up as a CDN 
> mirroring proxy endpoint. It's fast and completely free to the project. 
> However, it will only work for files smaller than 64MB and will send a 
> redirect to the main server at sstate.yoctoproject.org for files larger than 
> 64MB.
>
> The good news is that we have a fast free CDN provided by 
> https://www.jsdelivr.com/ and their many sponsors for 99.4% of our files.
>
> Here is an estimated distribution of sstate files currently available:
> 1 KB-4 KB: 103168
> 4 KB-16 KB: 1218048
> 16 KB-64 KB: 1886976
> 64 KB-256 KB: 1225216
> 256 KB-1 MB: 170752
> 1 MB-4 MB: 92928
> 4 MB-16 MB: 83200
> 16 MB-64 MB: 40448
> 64 MB-256 MB: 17664
> 256 MB-1 GB: 7936
> 1 GB-4 GB: 2560
>
> I'm still working on a CDN solution for the larger files but we can begin 
> testing https://cdn.jsdelivr.net/yocto/sstate today.
>
> Here is an example link to a file that is currently popular from each 
> location:
>
> http://sstate.yoctoproject.org/all/universal/c6/81/sstate:re2c-native:x86_64-linux:3.1:r0:x86_64:11:c681f19e2786732c7920860d0b27cdcf3a79c9441d9bdaa82319a12e96e6246e_deploy_source_date_epoch.tar.zst
>
> https://cdn.jsdelivr.net/yocto/sstate/all/universal/c6/81/sstate:re2c-native:x86_64-linux:3.1:r0:x86_64:11:c681f19e2786732c7920860d0b27cdcf3a79c9441d9bdaa82319a12e96e6246e_deploy_source_date_epoch.tar.zst
>
> I'm also attaching a list of the largest files in sstate. Anything we can do 
> to reduce the size of these or to split them into smaller pieces will help 
> with hosting and with the user's download experience.
>
> --
> Michael Halstead
> Linux Foundation / Yocto Project
> Systems Operations Engineer
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#61381): https://lists.yoctoproject.org/g/yocto/message/61381
Mute This Topic: https://lists.yoctoproject.org/mt/101525879/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to