[ostree-rs-ext] Parallelize Writing OCI image
- 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