Skip to content

Avoid mapReduce for issue TOC sections#478

Merged
robertatakenaka merged 1 commit into
masterfrom
codex/fix-mapreduce-logs
Jun 23, 2026
Merged

Avoid mapReduce for issue TOC sections#478
robertatakenaka merged 1 commit into
masterfrom
codex/fix-mapreduce-logs

Conversation

@rondinelisaad

Copy link
Copy Markdown
Member

O que esse PR faz?

Substitui o uso de item_frequencies("section") na página de sumário do fascículo por distinct("section").

Essa alteração evita que o MongoEngine acione mapReduce para listar as seções dos artigos, reduzindo logs e operações temporárias no MongoDB como criação de coleções tmp.mr.article_*, drop de inline e renameCollection.

Onde a revisão poderia começar?

opac/webapp/main/views.py

A revisão pode começar pela função issue_toc, no trecho que monta a lista de seções do fascículo.

Como este poderia ser testado manualmente?

  1. Subir a aplicação com uma base MongoDB contendo fascículos e artigos publicados.
  2. Acessar a página de sumário de um fascículo.
  3. Verificar se a página continua exibindo corretamente as seções dos artigos.
  4. Confirmar que o filtro por seção continua funcionando quando habilitado.
  5. Observar os logs do MongoDB ao acessar a página e verificar que não aparecem novas operações relacionadas a tmp.mr.article_* ou mapReduce.

Algum cenário de contexto que queira dar?

Os logs do MongoDB estavam mostrando operações repetidas de mapReduce, com criação de coleções temporárias tmp.mr.article_*, remoção da coleção inline e renomeação da coleção temporária.

A chamada item_frequencies era usada apenas para obter os nomes distintos das seções. Como a contagem/frequência não era utilizada, distinct("section") atende ao mesmo objetivo de forma mais simples e sem acionar mapReduce.

Screenshots

Não aplicável. A alteração é interna e não muda a interface visual esperada.

Quais são tickets relevantes?

Não informado.

Referências

  • Logs do MongoDB indicando operações tmp.mr.article_*, drop opac_br.inline e renameCollection.
  • Código alterado: opac/webapp/main/views.py.

@robertatakenaka robertatakenaka self-assigned this Jun 23, 2026
@robertatakenaka robertatakenaka self-requested a review June 23, 2026 17:42

@robertatakenaka robertatakenaka left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

O método .distinct("section") vai direto ao ponto: ele pede ao banco de dados (provavelmente MongoDB, considerando a sintaxe) apenas os valores únicos, o que é infinitamente mais rápido e consome menos memória.

@robertatakenaka robertatakenaka merged commit 6610a96 into master Jun 23, 2026
4 checks passed
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.

2 participants