Prashanth Gedde Narayanaswamy, ingeniero de datos en Netflix, describe una metodología para optimizar el pipeline de sesión de su empresa mediante la ejecución paralela de experimentos en Apache Spark. El problema inicial era que los fallos de rendimiento, como errores Out-Of-Memory (OOM) y fugas de memoria, solo ocurrían a escala de producción completa debido a la asimetría de datos, lo que impedía la depuración rápida con muestras pequeñas. La solución implementada se basa en el aislamiento de ramas (branch-driven isolation) utilizando la herramienta Dataflow de Netflix y su orquestador Maestro. Al asignar nombres de rama únicos a cada variante experimental, se evitan colisiones y se permite ejecutar múltiples pruebas simultáneamente contra la misma ventana de tiempo, reduciendo el tiempo total de ejecución de la suma de las duraciones individuales a la duración del trabajo más lento.
Para gestionar la complejidad operativa de monitorear múltiples instancias, el autor empleó un agente de IA para actualizar configuraciones, desplegar cambios y comparar métricas de memoria y fallos. Además, utilizó tmux en el entorno de desarrollo en la nube de Workbench para mantener sesiones persistentes, permitiendo reanudar trabajos interrumpidos por desconexiones de red o cierre de la laptop. Esta configuración permitió ejecutar cuatro o cinco ciclos de experimentación completos durante un solo viaje de regreso a casa. Los resultados identificaron que la causa raíz de los fallos residía en el uso excesivo de memoria por eventos individuales debido a la encapsulación de campos en Scala Option y atributos de cadena inflados. La corrección consistió en eliminar estos envoltorios y reducir el peso de cada evento, lo que redujo la memoria de pico del 112% al 58% de la ranura sin necesidad de fugas a disco. Este enfoque demuestra que la estabilidad en pipelines de datos masivos depende más de optimizar el peso individual de los registros que de aumentar la memoria del clúster.
