Extremely slow cloning when using large SemVer range
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- go
- Ambito
- performance
Direzione di ricerca
Inizia leggendo il codice di clonazione in fluxcd/pkg/git e confronta il modo in cui vengono gestiti gli intervalli SemVer ampi con il comportamento di estrazione dei tag di ImagePolicies descritto nell’issue. Riproduci la discrepanza con un GitRepository che utilizzi un intervallo ampio e il numero ridotto di tag segnalato, quindi esegui il profiling dell’utilizzo della CPU di source-controller. Il lavoro è completato quando viene supportata l’estrazione di pattern SemVer per GitRepositories oppure viene identificato e risolto il collo di bottiglia nel confronto degli intervalli.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Some info to set the stage:
- We use a monorepo style structure
GitRepositoriesdo not support parsing and extracting tags likeImagePolicies- you can parse+extract SemVer in OCI tags like
my-app-v1.2.3=>1.2.3 - you must use exclusively plain SemVer tags for
GitRepositories
- you can parse+extract SemVer in OCI tags like
- To get around this deficiency, we've allocated chunks of major SemVer git tags to projects in the repo.
- project-1 gets 0.0.0 -> 999999.x.x
- project-2 gets 1000000.0.0 -> 1999999.x.x
- ...
This means when a team wants to deploy a dev version of kustomizations that control their app, it ends up looking something like this:
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: project-1-dev
namespace: flux-system
spec:
interval: 1m0s
ref:
semver: '>=1000000 <2000000'
secretRef:
name: example-ssh-key
url: ssh://git@github.com/owner/monorepo.git
This has been working very well for a long time, but there is a huge performance problem when the SemVar range is that big. I want to be clear, projects do not actually use that many tags (as writing, the most I see is ~60 majors).
Here is a graph of the enormous performance discrepancy:
In the graph you can see that dev cloning is 50-75x slower and this project in particular only has 49 tags. On top of this it also causes relatively high CPU usage from the source-controller pod.
Potential solutions (in order of preference)
- Allow SemVer pattern extractions like
ImagePolicies. This way we don't have to (ab)use git tags like this. - Figure out why it takes so long to compare SemVer tags. I looked around in fluxcd/pkg/git but nothing in the cloning code stood out to me.
- Lingua principale
- Go
- Stelle
- 283
- Fork
- 252
- Merge medio
- 1h 6m
- PR unite (30g)
- 12
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di fluxcd/source-controller
-
area/docs good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
fluxcd/source-controller#666 · 2 commenti ·
-
area/git bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
fluxcd/source-controller#2165 · 3 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
fluxcd/source-controller#2150 ·
-
GitRepository `.spec.ref.commit` + `.spec.ref.branch` does not shallow clone, contrary to the docs Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 42/100
fluxcd/source-controller#2146 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
fluxcd/source-controller#2136 · 1 commento ·
Tutte le issue di fluxcd/source-controller
Issue simili
-
agentic-workflows
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
agentic-workflows
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
microsoft/agent-framework-go#1179 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
[Bug]: OLLAMA_KEEP_ALIVE="5m" / "24h" crashes Ollama embedding and vision models with ValueError Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
infiniflow/ragflow#20223 · 1 reazione ·
-
bug needs triage pkg/translator/faro
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
open-telemetry/opentelemetry-collector-contrib#51484 · 1 commento ·