-70% de tiempo de ejecución en una Lambda crítica
Trabajo actual en DEPT · para un cliente financiero de EE.UU.
- Problema
- La Lambda más pesada corría una query compleja que traía mucha información sobre millones de registros, y gastaba buena parte del tiempo ordenándolos en la base de datos.
- Qué hice
- Lo ataqué por varios frentes: simplifiqué las queries, mejoré los joins y los índices, y reescribí desde cero la lógica del backend detrás. La reescritura también sacó el ordenamiento de la base: los resultados se agrupan en un objeto cuyas claves son un ID numérico chico (como mucho ~2.000 valores), que JavaScript recorre en orden ascendente. En vez de un ORDER BY sobre millones de filas, quedan ordenados solo un par de miles de grupos.
- Resultado
- De ~2,5 s a ~800 ms (600 ms en el mejor caso): alrededor de 70% menos de tiempo de ejecución, y menos uso de CPU y memoria, medido con CloudWatch y Splunk.