Slow introspection query execution for large schemas
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- python
- Domínio
- api, performance
Direção de pesquisa
Comece com graphql_sync e get_introspection_query e, em seguida, compare o caminho de execução deles com o módulo referenciado graphql_compiler/fast_introspection.py. Reproduza a consulta de introspecção em um schema com cerca de dez mil tipos e faça o profiling da execução. Considera-se concluído quando o overhead dominante tiver sido identificado e tratado, com uma melhoria medida em relação ao tempo de execução reportado de 26 segundos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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!
- Linguagem predominante
- Python
- Estrelas
- 531
- Forks
- 150
- Merge médio
- 1d 16h
- PRs com merge (30d)
- 5
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de graphql-python/graphql-core
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 35/100
graphql-python/graphql-core#278 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
graphql-python/graphql-core#257 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
graphql-python/graphql-core#223 · 1 comentário ·
-
documentation good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 35/100
graphql-python/graphql-core#220 · 4 comentários ·
-
help wanted investigate
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
graphql-python/graphql-core#217 · 8 comentários ·
Todas as issues de graphql-python/graphql-core
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
EvaluationSuite.run fails with default args_for_task and mutates supplied kwargsTalvez já em andamento @ktz03 assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
huggingface/evaluate#825 ·
Mantenedores costumam responder em até 1 dia
-
dependencies feature github_actions good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
wemake-services/wemake-django-template#3149 ·
Mantenedores costumam responder em até 1 dia
-
[request] vsg/1.1.16Abertaupstream update
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
conan-io/conan-center-index#31142 ·
Mantenedores costumam responder em até 1 dia
-
area:core bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia