bootc-dev / bootc-dev/bootc

[ostree-rs-ext] Parallelize Writing OCI image

Aperta
#1,683 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
triaged
Lingua principale
Rust
Stelle
2.3k
Fork
230
Merge medio
3g 3h
PR unite (30g)
36

Descrizione

Currently, ostree-rs-ext is single threaded. When outputting a compressed gz images, this makes it so it requires around ~6min on a 2c/4t system for a large image such as Bazzite.

This could be more than halved by outputting the layers in parallel, as there is no implicit requirement for them to be linked. However, the current code makes it difficult to achieve due to the shared ostree object.

This consumes a large part of the build process, so let's try to improve on that over the next few months.

The compressed images it outputs compare favorably to compression by podman size-wise. In addition, when uploading multiple tags, podman recompresses the image per tag, so it cumulatively takes longer as opposed to uploading the raw oci with skopeo. Therefore, this fix should go to ostree-rs-ext.

Another 2 minutes could be spared by parallelizing ostree, however that would be much harder to do.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Non sono indicati file o test specifici. Inizia tracciando la scrittura dei layer OCI compressi da parte di ostree-rs-ext e il modo in cui viene usato l’oggetto ostree condiviso; definisci come completato il fatto di scrivere in modo sicuro i layer indipendenti in parallelo, mantenendo le dimensioni compresse favorevoli e riducendo il tempo di build delle immagini di grandi dimensioni.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rust
Ambito
build-system, performance
Tipo di issue
Refactoring
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.