Reto de ingeniería
El equipo de analítica ejecuta un trabajo por lotes sobre millones de registros de ventas. Corrido en un solo proceso tarda demasiado. Alguien propone "simplemente agregar más workers", pero otra persona del equipo advierte que eso no siempre ayuda. Tu trabajo es comprobarlo: ¿cuándo agregar paralelismo reduce el tiempo, y cuándo solo agrega overhead?
Objetivos de la sesión
- Diferenciar almacenamiento distribuido (Semana 3) de procesamiento distribuido.
- Relacionar particiones, workers y desbalance (skew) con el tiempo total de un trabajo.
- Interpretar throughput, utilización, speedup y eficiencia, no solo la duración.
- Reconocer cuándo agregar workers deja de mejorar el rendimiento proporcionalmente.
1 · Laboratorio de datos
Aquí trabajas con datos reales de muestra, procesados en tu propio navegador con DuckDB-Wasm (un motor SQL que corre localmente mediante un Web Worker). No es una simulación: las consultas de esta sección se ejecutan de verdad sobre las filas que elijas.
Los datos que selecciones aquí (el dataset incluido, uno generado o un archivo de tu equipo) se procesan en este navegador. Este laboratorio no los envía al servidor del curso ni a ninguna API externa.
Inicializando motor local de datos…
Fuente: —
Filas (consulta real): —
Esquema
Consultas predefinidas
Consulta ejecutada localmente mediante DuckDB-Wasm — datos reales, no inventados por JavaScript.
2 · Hipótesis
Completa las dos preguntas y pulsa «Registrar hipótesis y comenzar» para desbloquear la ejecución.
4 · Pipeline de procesamiento
Simulación arquitectónica — modelo didáctico de distribución del procesamiento, no un clúster real.
Fase actual: en espera.
5 · Rendimiento simulado
Los tiempos son simulados para enseñar relaciones causales (particiones, skew, E/S, coordinación); no son un benchmark real.
6 · Comparación secuencial vs. distribuido
| Modo | Duración | Speedup |
|---|
7 · Distribución de carga por partición
8 · Decisión de ingeniería
9 · Evidencia de aprendizaje
Continuidad curricular
Antes: en la Semana 3 distribuimos el almacenamiento entre nodos.
Después: ya distribuimos también el procesamiento. En la Semana 5 los datos dejarán de llegar en lotes fijos: veremos qué pasa cuando llegan de forma continua (streaming).