Semana 3 de 8
Big Data Lab · Semana 03 · Distribución física

Distributed Cluster Lab

NexoRetail 360 ya eligió su familia NoSQL en la Semana 2. Un nodo del clúster falló el mes pasado durante una campaña y algunos pedidos quedaron temporalmente inaccesibles: ahora debes decidir cómo distribuir los datos entre nodos y cuántas copias conservar.

Antes de comenzar

Caracterizarás una clave de partición con SQL real, formularás una hipótesis sobre distribución y disponibilidad, configurarás un clúster simulado, fallarás nodos a propósito y decidirás qué factor de replicación recomendarías para producción.

Producirás una evidencia de aprendizaje con tu hipótesis, tus mediciones de skew/disponibilidad y tu decisión justificada. Tiempo orientativo: 30–40 minutos.

El reto

¿Distribución equilibrada o disponibilidad garantizada?

Contexto
Un nodo del clúster de NexoRetail 360 falló el mes pasado durante una campaña y algunos pedidos quedaron temporalmente inaccesibles.
Problema
Dirección técnica pregunta: ¿cuántos nodos y qué factor de replicación se necesitan para que un fallo aislado no vuelva a bloquear operaciones, sin gastar en réplicas que no se justifiquen?
Misión
Pregunta central: ¿cómo afecta la elección de clave de partición, factor de replicación y número de nodos a la distribución y disponibilidad de los datos?
Decisión esperada
Recomendar una clave de partición y un factor de replicación para producción, justificados con la disponibilidad, el skew y el riesgo observados.
Qué aprenderás

Objetivos de la sesión

  • Diferenciar particionado (dónde vive un dato) de replicación (cuántas copias tiene).
  • Medir disponibilidad y riesgo de pérdida ante fallos de nodo.
  • Comparar el costo de almacenamiento y la latencia aproximada entre consistencia fuerte y eventual.
  • Justificar un factor de replicación con evidencia, no por defecto.
Conceptos esenciales

Identidad, partición y replicación

Cada registro tiene una identidad lógica (recordId) y, por separado, un valor de partición (partitionValue) que una función hash convierte en el nodo donde vive originalmente. Ese es el particionado. La replicación es un concepto distinto: cuántas copias adicionales de ese mismo dato se guardan para tolerar un fallo de nodo. Ambos se miden por separado en este laboratorio.

El resto de los conceptos (skew, disponibilidad, fallo de nodo, rebalancing) se irán introduciendo justo antes de que los uses, en las secciones de Experimento y Análisis — no hace falta memorizarlos todos ahora. DuckDB-Wasm (Laboratorio de datos) caracteriza el dato real; el particionado/replicación/fallos los calcula el modelo del clúster de esta semana, no DuckDB.

Concepto clave

¿Qué es el skew de partición?

Qué es: el desbalance entre cuántos registros primarios caen en cada nodo, comparado con una distribución perfectamente uniforme.

Por qué importa: una clave de baja cardinalidad (pocos valores distintos, ej. "región") puede concentrar muchos registros en pocos nodos, aunque el hash sea correcto.

Qué observar aquí: la sección "Skew de partición" mide solo bloques primarios (el efecto puro del hashing), sin contar réplicas.

Concepto clave

¿Qué es el factor de replicación?

Qué es: cuántas copias físicas de un mismo dato se guardan en nodos distintos, incluida la copia primaria.

Por qué importa: a mayor factor de replicación, más fallos simultáneos tolera el sistema, pero también más almacenamiento y latencia de coordinación consume.

Qué observar aquí: con factor de replicación 1, un solo fallo de nodo puede volver un dato no disponible; con factor 2 o 3, la disponibilidad se sostiene mejor ante ese mismo fallo.

Concepto clave

¿Qué significa rebalancing?

Qué es: recalcular dónde vive cada dato (y sus réplicas) cuando cambia el número de nodos o el factor de replicación.

Por qué importa: cambiar la topología del clúster no es gratis: implica mover copias entre nodos, lo que consume ancho de banda y tiempo.

Qué observar aquí: al escalar el clúster o cambiar el factor de replicación, el registro de eventos muestra cuántas copias se crearon y cuántas se retiraron.

Tu misión

Pasos del laboratorio

  1. Inspecciona filas reales en el Laboratorio de datos (abajo).
  2. Elige o inspecciona una clave de partición candidata.
  3. Predice cómo se distribuirá entre nodos.
  4. Formula tu hipótesis antes de ver resultados.
  5. Configura nodos y factor de replicación.
  6. Distribuye filas reales en el clúster simulado.
  7. Observa el skew y las copias físicas.
  8. Falla un nodo a propósito.
  9. Analiza el efecto sobre la disponibilidad.
  10. Rebalancea/re-replica y decide.

Laboratorio de datos: caracteriza antes de particionar

El laboratorio procesa una muestra manejable localmente y utiliza esa muestra para estudiar decisiones arquitectónicas aplicables a sistemas de mucha mayor escala. DuckDB-Wasm calcula realmente cardinalidad y filas por clave; el particionado/replicación/fallos que ves en las secciones siguientes los sigue calculando el modelo del clúster de esta semana, no DuckDB — DuckDB caracteriza el dato, no simula el almacenamiento distribuido.

🔒 Procesamiento local

Los datos que selecciones aquí se procesan en este navegador y no se envían al servidor del curso ni a ninguna API externa.

Inicializando motor local de datos…

Hipótesis

Una hipótesis es tu predicción antes de observar los resultados. Regístrala ahora: una vez bloqueada, no podrás cambiarla, solo reformularla después de ver el resultado.

Completa las tres preguntas y pulsa «Registrar hipótesis y comenzar» para desbloquear el clúster.

Qué observar

Antes de operar el clúster

Mientras almacenas registros y fallas nodos, observa especialmente:

  • Filas reales — cuántas se enviaron al clúster desde el Laboratorio de datos.
  • Valores de partición — cuántos valores distintos hay y qué tan repetidos están.
  • Distribución entre nodos — si los registros primarios quedan equilibrados o concentrados.
  • Factor de replicación — cuántas copias físicas existen por cada registro lógico.
  • Nodos fallados — qué ocurre con la disponibilidad cuando fallas uno a propósito.
  • Disponibilidad — cómo cambia según el modelo de consistencia elegido.
Pausa para pensar

Antes de fallar un nodo: ¿qué registros crees que quedarán en riesgo, y por qué esos y no otros?

Clúster distribuido

Pulsa "Fallar" en cualquier nodo para comprobar si las réplicas mantienen disponibles los datos. Cada bloque muestra "identificador de registro · valor de partición"; "primaria" es la copia que determina el hash (según el valor de partición), "réplica" son copias adicionales. Registros distintos con el mismo valor de partición aparecen como bloques separados.

Particionado vs. replicación

Particionado: una función hash decide en qué nodo vive originalmente cada dato. Cambia solo si cambia el número de nodos.

Replicación: cuántas copias adicionales de ese mismo dato se guardan en otros nodos para tolerar fallos. Cambia solo si cambia el factor de replicación. No son el mismo concepto ni resuelven el mismo problema.

El modelo de almacenamiento (Semana 2) define cómo representamos los datos; el particionado define cómo los distribuimos físicamente. No son el mismo nivel de decisión.

Métricas

Registros lógicos0
Copias físicas0
Disponibilidad100%según el modelo de consistencia
Registros en riesgo01 fallo más = pérdida total
Almacenamiento estimado0 MB2 MB/copia · didáctico
Latencia aproximada0 mscoordinación de réplicas
El factor de replicación indica cuántas copias físicas conserva cada dato.

Skew de partición

Registros PRIMARIOS por nodo (solo el efecto del hashing/particionado, sin contar réplicas). Una clave de alta cardinalidad no garantiza automáticamente una distribución perfecta: compáralo con lo que predijiste.

Sin registros aún.

¿Qué ocurrió?

Almacena registros y falla un nodo para ver un resumen basado en tus resultados reales.

¿Por qué ocurrió?

Aquí verás la relación entre la clave de partición, el factor de replicación y lo observado.

¿Qué significa?

Aquí verás qué implicaría este resultado para el clúster real de NexoRetail 360.

Registro de eventos

Decisión de ingeniería

¿Qué recomendarías para producción?

Responde con base en la disponibilidad, el skew y el riesgo observados, no en un valor por defecto.

Cierre conceptual

Lo que descubriste: cómo la clave de partición determina la distribución (skew) y cómo el factor de replicación determina la disponibilidad ante fallos de nodo — dos decisiones independientes.

Concepto para recordar: una clave de alta cardinalidad no garantiza equilibrio por sí sola, y más réplicas no son gratis: cuestan almacenamiento y latencia de coordinación.

Conexión con la próxima semana: en la Semana 4 distribuirás también el procesamiento, no solo el almacenamiento.

Evidencia de aprendizaje

Genera tu evidencia

Esta evidencia resume tu caracterización de datos, tu hipótesis, tus mediciones del clúster y tu decisión. Puedes utilizarla para discusión, entrega o reflexión posterior.

Continuidad curricular

Antes: en la Semana 2 elegiste el modelo de almacenamiento y la ruta de ingesta/procesamiento para tu fuente de datos. El modelo de almacenamiento seleccionado define cómo representamos los datos; el particionado define cómo los distribuimos físicamente.

Después: ya distribuimos los datos entre nodos. En la Semana 4 distribuiremos también el procesamiento, no solo el almacenamiento.