Guto Carvalho # 2022-21-08 @ BSB
Guto Carvalho # 2022-21-08 @ BSB

Entendendo o Dogpile Effect

by

Se você está se inscrevendo para vagas de Cloud Engineer ou DevOps Engineer esse termo pode aparecer em sua entrevista. Eu confesso que hoje em dia eu não vejo a turma falando disso, parece uma questão superada do ponto de vista de engenharia de software, posts com esse termo datam de 2014 e achei alguns até mais antigos, no entando, parece que os recrutadores adoram perguntar isso, então bora lá entender o que é para saber responder :)

O que é?

Basicamente é o nome que se dá para aquele momento que os objetos em seu CACHE expiram e seu ambiente começa a tomar requests sem parar, frontend, backend e em especial sua database serão bastante exigidos pois seu CACHE praticamente sumiu.

Imagine centenas de milhares de processos fazendo requests no seu frontend, backend e indiretamente no seu banco de dados, tudo vai ficar bem lento, o load vai subir muito, especialmente se você não tiver uma estratégia de escalabilidade configurada, e isso pode gerar até uma indisponibilidade de suas APPs gerando um enorme prejuizo financeiro e de imagem.

Como previnir isso?

Geralmente o pessoal usa os semáforos ou “semaphore lock”. Nesse caso, quando um valor expira o primeiro request a requisitar o valor gerar um tipo de LOCK, com isso o valor vai ser regerado, enquanto isso, caso outros processos solicitem o mesmo valor, estes vão receber um conteúdo mais antigo (stale content) até que o novo valor seja regerado e armazenado no cache. Quando o novo valor estiver no cache, o lock será removido e o conteúdo novo servido para os novos requests.

Mas servir conteúdo antigo ou desatualizado não é ruim?

Acredite, ruim seria sua aplicação ficar indisponível, servir um conteúdo desatualizado por poucos segundos será o menor dos seus problemas.

Amarrando as pontas

Cada stack ou linguagem tem ferramentas, técnicas métodos para implementar o semaphore lock, isso é algo a ser tratado em nível de código de aplicação – geralmente.

Essa é uma pergunta mais do ponto de vista de arquitetura e engenharia de software do que de infraestrutura, mas é importante entender o conceito e responder corretamente ao entrevistador.

Refs

[s]
Guto

Este post é do tipo #MindNotes, entenda aqui.

Se gostou manda um alo no twitter @gutocarvalho.