🤖 perf: pool members read GET /api/v2/users/me on every workspace read, doubling the request budget
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 65/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- go, kubernetes
- Área
- backend, documentation, performance
Línea de trabajo
Start in internal/controller/coderworkspacepoolmember_ready.go at readPoolMemberWorkspace and confirmPoolMemberCreate to see the per-member GET /api/v2/users/me call. Cache the operator user ID keyed by the token Secret's resourceVersion, preserving provenance checks, then update the measured table in docs/how-to/workspace-pools.md. Done means member reads no longer call /api/v2/users/me and request counts match the plan budget.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
Measured in Kind with Coder v2.37.2 while working on #441 (#153 plan PR 12): a pool of 10 ready members makes 26 Coder requests per minute. Plan section 9 budgets at most 13.
Each member read sends two requests: GET /api/v2/workspaces/<id> and GET /api/v2/users/me (readPoolMemberWorkspace and confirmPoolMemberCreate in internal/controller/coderworkspacepoolmember_ready.go). So a ready member makes 2 requests per minute and a member that builds makes 24 instead of 12. The pool adds 6 per minute.
/api/v2/users/me is one path for every member of the operator, and Coder rate-limits per user and per path (512 per minute by default, coderd/httpmw/ratelimit.go keyByNormalizedEndpoint). From the measured rates, about 500 ready members or about 40 members that build reach that limit (inferred, not tested at that size).
Proposal
Read the operator user once per operator token (for example, cache the ID keyed by the token Secret's resourceVersion) instead of once per member read, and keep the provenance checks that use it. Then update the measured table in docs/how-to/workspace-pools.md.
Trigger
Before pools are recommended for more than a few dozen members, or together with #153 plan PR 13.
Refs #153
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: xhigh
- Lenguaje dominante
- Go
- Estrellas
- 5
- Forks
- 3
- Merge medio
- 1 h 50 min
- PR fusionados (30 d)
- 160
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de coder/coder-k8s
-
CoderWorkspacePool: count bound and used members only when their owner matches the pool's ownerAbierto
Dificultad 3/5 Medio día Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 Medio día Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 8/100
Los mantenedores suelen responder en 1 día
Todos los issues de coder/coder-k8s
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
open-feature/flagd-schemas#237 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
superplanehq/superplane#9234 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
betterleaks/betterleaks#469 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
prime-radiant-inc/evener#5901 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día