Add caching layer for repeated PURL metadata queries
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- redis
- Área
- backend, databases, performance
Línea de trabajo
El issue no especifica archivos, pruebas ni puntos de entrada. Comienza rastreando las funciones de consulta de metadatos, búsqueda de versiones y recuperación de URL; después, revisa sus rutas de acceso a la base de datos/API antes de elegir un enfoque de caché e invalidación. Se considera completado cuando las consultas repetidas de PURL evitan llamadas redundantes, mientras que las actualizaciones invalidan los datos afectados, con cobertura para las tres operaciones.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem : -
Currently, PurlDB processes repeated queries for the same PURL without any caching mechanism. This leads to redundant database/API calls, especially during large-scale operations such as SBOM imports or repeated metadata lookups.
Proposed Solution :-
Introduce a caching layer to store frequently accessed PURL metadata. This could include:
- In-memory caching (e.g., LRU cache)
- Optional Redis-based caching for scalability
- Cache invalidation strategy when data updates
The caching should be applied to:
- metadata queries
- version lookups
- URL retrieval functions
Benefits :-
- Improved performance for repeated queries
- Reduced database/API load
- Faster SBOM processing
- Better scalability for large datasets
Additional Context :-
Similar issues around repeated metadata access and inefficiencies have been observed in related tools interacting with PurlDB. Adding caching would improve overall system responsiveness and usability.
- Lenguaje dominante
- HTML
- Estrellas
- 70
- Forks
- 74
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 7
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin 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 aboutcode-org/purldb
-
purlcli failsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
aboutcode-org/purldb#891 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Incorrect set comparison between package names and PURLs in NPM sync logicPosiblemente ocupada @MuhammadBilal64 la tomó hace 26 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
aboutcode-org/purldb#890 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
PypiVersionAPI.get_latest_date() crashes when a release entry is missing upload_time_iso_8601Posiblemente ocupada @drawliin la tomó hace 208 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
aboutcode-org/purldb#863 ·
Los mantenedores suelen responder en 1 día
-
Add doctest and tests for clearcode coordinate helpersPosiblemente ocupada @drawliin la tomó hace 216 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
aboutcode-org/purldb#861 ·
Los mantenedores suelen responder en 1 día
-
Preserve version ordering in packagedb VersionResponsePosiblemente ocupada @drawliin la tomó hace 217 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
aboutcode-org/purldb#857 ·
Los mantenedores suelen responder en 1 día
Todos los issues de aboutcode-org/purldb
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
cloudevents/sdk-go#1346 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
cyrusimap/cyrus-imapd#6640 ·
Los mantenedores suelen responder en 2 días
-
GD decoder discards the finfo media type in mediaTypeByBinary() since 4.4.0Posiblemente ocupada @lazerg la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
Intervention/image#1556 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 60/100
Los mantenedores suelen responder en 1 día