Slow introspection query execution for large schemas
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- api, performance
Línea de trabajo
Comienza con graphql_sync y get_introspection_query, y luego compara su ruta de ejecución con el módulo referenciado graphql_compiler/fast_introspection.py. Reproduce la consulta de introspección en un esquema de alrededor de diez mil tipos y perfila la ejecución. Se considera terminado cuando se haya identificado y abordado la sobrecarga dominante, con una mejora medida respecto al tiempo de ejecución reportado de 26 segundos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The graphql-core graphql_sync function takes approximately 20x slower than a module that I wrote that solely executes the introspection query. https://github.com/kensho-technologies/graphql-compiler/blob/main/graphql_compiler/fast_introspection.py
With the graphql-core Python library, executing the default introspection query (outputted from get_introspection_query) on a schema of around ten thousand types with graphql_sync takes 26 seconds to run. Writing my own module that calls the same graphql-core Type resolvers executes the same query on the same schema in 1.37 seconds.
I'm not sure what exactly is the time sink with the graphql-core's approach, but it might have to do with the generality of graphql_sync and thus, computing the next field to resolve at every step, and also graphql_sync's recursive nature. Interestingly, I ran the same query on the same schema using Graphql.js, and the execution took less than 2 seconds (around 1.7 seconds).
Thank you for your time and all the work to port GraphQL.js to Python!
- Lenguaje dominante
- Python
- Estrellas
- 531
- Forks
- 147
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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 graphql-python/graphql-core
-
Dificultad 4/5 3-5 días Aptitud para principiantes 50/100
graphql-python/graphql-core#272 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
graphql-python/graphql-core#269 · 1 comentario ·
-
Publish a major version Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
graphql-python/graphql-core#267 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
graphql-python/graphql-core#257 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
graphql-python/graphql-core#247 · 8 comentarios ·
Todos los issues de graphql-python/graphql-core
Issues similares
-
essnmx good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
-
[Feature] 奇物选择添加优先级 Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
syfoud/Simulated_Scepter#174 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Giskard-AI/giskard-oss#2840 · 1 comentario ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Abiertoarea: repo bug perceived difficulty: 2
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
yeti-platform/yeti#1380 ·