2. Cenário
• 5 operações : SQS, S3, serialização, unzip
• 15 operações relacionais
• Cada ciclo está uma transação
20 operações por
ciclo
• Ciclos levando em média 1 segundo
• Degradação de performance com a paralelização
• 600 ~ 900 ciclos processados em 15 minutos
Centenas de
Milhares de ciclos
para processar
5. Fase 1 - Nível de Isolamento
Read
Commited
Read
Uncommited
6. Fase 2 - Fila
Acelerar
Importação
Concorrência
Escalar
dinamicamente
7. Fase 3 – Disco RDS
• Média de 100 IOPS
• Picos de centenas de IOPSMagnético
• Média de 3 IOPS / GB
• Picos de 3000 IOPS / segSSD
• SSD com provisionamento de IOPSPIOS
13. FASE 4 – Eliminar Updates
Concorrentes
•UPDATES SÓ GERAM SCRIPTS QUANDO OS DADOS
EFETIVAMENTE MUDAM;
•OS DADOS MUDAM BASTANTE?? ENTÃO TIRA ISSO DA
TRANSAÇÃO;
18. Números Finais
• ~600 ciclos em 15 min
• Paralelização limitada com
degradação de performance
Antes
• ~50 mil ciclos em 15 min (+80x)
• Paralelização de até 55
consoles SEM degradação de
performance
Depois
20. Dicas
•Log;
•Use uma boa ferramenta de profiler;
•Teste com massa de dados. Preferência que seja espelho
de PRD (Foi assim que avançamos);
•Use snapshots;
•Automatize a construção do cenário para otimização;