Questão nº 86
Questão de Engenharia de Software · CEBRASPE SUSEP 2025 (nº 86)
A respeito da arquitetura de sistemas web, julgue os itens que se seguem.
O padrão Cache-Aside (Lazy Loading) pode sofrer race conditions em cenários de alta concorrência, a menos que sejam adotadas técnicas de sincronização.
Resposta comentada
No Cache-Aside (Lazy Loading), a aplicação só busca no banco e popula o cache quando dá miss (dado não está no cache). Em alta concorrência, várias requisições podem dar miss ao mesmo tempo para a mesma chave, todas indo ao banco e escrevendo no cache em paralelo — gerando race condition (condição de corrida: quando o resultado depende da ordem imprevisível de execução entre threads). Sem sincronização (ex.: lock, mutex, single-flight), podem ocorrer leituras sujas, dados obsoletos sobrescrevendo dados novos ou "thundering herd" (efeito manada no banco).
- Correta: Certo. Sem mecanismo de sincronização, requisições concorrentes competem pela mesma chave e podem gravar valores desatualizados ou disparar múltiplas idas ao banco, caracterizando race condition.
Fica de olho: a banca costuma trocar "pode sofrer" por "é imune a" ou "garante consistência automaticamente" — aí o item vira Errado. Outra variação clássica: afirmar que o Cache-Aside sempre evita race conditions por ser lazy, quando na verdade o caráter lazy é justamente o que abre a janela para concorrência.
Fonte: CEBRASPE SUSEP 2025 Analista Técnico - Área: Tecnologia da Informação e Ciência de Dados. Reproduzida para fins de estudo.