Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(query): performance with large offset #823

Merged
merged 1 commit into from
Nov 18, 2022

Conversation

aprendendofelipe
Copy link
Collaborator

Ajuste na query de conteúdos para melhorar a performance quando navegamos por páginas distantes da inicial, ou seja, quando offset é grande.

Com essa mudança não deveremos mais obter tantos erros de timeout das lambdas e os erros 504 para os usuários.

@vercel
Copy link

vercel bot commented Nov 17, 2022

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated
tabnews ✅ Ready (Inspect) Visit Preview Nov 17, 2022 at 7:01PM (UTC)

@aprendendofelipe
Copy link
Collaborator Author

Apenas para comparação, no momento a página 50 está levando cerca de 21s para responder:

https://www.tabnews.com.br/api/v1/contents?strategy=new&page=50

@filipedeschamps filipedeschamps merged commit a2cdef5 into main Nov 18, 2022
@filipedeschamps filipedeschamps deleted the large-offset-query-performance branch November 18, 2022 00:37
@filipedeschamps
Copy link
Owner

filipedeschamps commented Nov 18, 2022

Merged!! Let's goooooo!!!

E olha a diferença que absurdaaaaaaaa!!!

Antes Depois
image image

Isso para a mesma URL da página 50: https://www.tabnews.com.br/api/v1/contents?strategy=new&page=50

[edit]

Isso considerando que o banco estava com o load pós deploy (gerando os estáticos novamente e com ~45 conexões abertas)

@aprendendofelipe
Copy link
Collaborator Author

E olha a diferença que absurdaaaaaaaa!!!

TOP! E indexando published_at deve melhorar um pouco mais.

E como outras situações ainda podem fazer o banco demorar mais do que 60s para responder, futuramente podemos implementar um timeout similar ao que fiz no #811.

Assim, dentro do limite de 60s da lambda, podemos gerar logs e redirecionar para uma página de erro mais amigável do que a página 504 da Vercel.

@filipedeschamps
Copy link
Owner

Gráfico de 15 dias com a média de performance das paginações (extremamente notável quando o deploy foi feito):

image

Se os endpoints tivessem mais acessos, ficaria ainda mais notável o quão estável ficou o retorno, independente da página 🤝

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants