Sistemas Distribuidos · Trabajo práctico final
Agustín Martínez, Alan Fierro, Nicolás Mangini y Tomás Alcázar
MMO medieval, persistente y distribuido
Jugadores entran a instancias pagando oro, combaten contra un jefe y reciben las recompensas que correspondan por victoria o derrota. Los ítems pueden venderse en un mercado global; el oro también se compra con dinero real.
3 datacenters
Brasil, Estados Unidos y Zúrich. El cliente y los centros se comunican por gRPC. Un combate global tiene una instancia lógica con líder y réplicas; los nodos recuperados se sincronizan antes de reincorporarse.
Estado y restricciones
Datos personales y bancarios: solo en el datacenter hogar. Cambios de oro y objetos: conservar 90 días. Durante saturación se priorizan sesiones existentes.
Cliente e infraestructura
Desconexión, latencia, caída de módulos o datacenters y particiones de red. Seguridad queda fuera de esta versión por la actualización del docente.
Enunciado original
Consultá la consigna completa del trabajo.
P · Problema
RequisitoF · Fallas
G · Garantías
RequisitoS · Solución
PropuestaLeer desarrollo
S · Soluciones
PropuestasComparar S1 y S2
| Decisión | S1 · Cola | S2 · Reserva |
|---|
Trade-offs
Límites y costosTrade-off
Límites y costosInteracción de módulos
6 pasosTérminos de este caso
Seleccioná un módulo para ver qué hace, qué estado administra y con quién interactúa. El esquema es lógico: no representa servidores individuales.
Mapa de módulos
Gestor de ingreso
Coordina validación de cupo, cobro de entrada y registro único del jugador; resuelve reintentos por requestId.
Líneas continuas: interacción entre funciones. Líneas punteadas: persistencia o recuperación. Los almacenamientos son responsabilidades lógicas y pueden implementarse mediante componentes replicados.
El estado personal y bancario permanece en el hogar; las instancias y el estado del juego pueden operar entre datacenters según su función.
Instancia normal
Una mazmorra se ejecuta en un datacenter. Por defecto nace en el hogar de quien la crea y puede ser reubicada si ese datacenter falla.
Ubicación del estado
| Estado | Ubicación / política | Mecanismo |
|---|---|---|
| Datos personales y bancarios | Solo en el datacenter hogar. | Base local replicada entre nodos. |
| Pagos y Outbox | Datacenter hogar del jugador. | Pago y Outbox juntos; oro e identificador en una transacción; conciliación con el proveedor tras recuperación. |
| Pertenencia jugador-instancia | Estado coordinado en los tres datacenters. | WAL confirmado por mayoría 2/3; pertenencia exclusiva, sin replicar todos los datos del jugador. |
| Eventos de combate y mercado | Particionados por instancia o por ítem. | Consumidor único por partición; mayoría para confirmar; sincronización antes de reincorporar nodos. |
| Directorio de zonas | Una copia local por datacenter. | Actualización asíncrona desde logs. |
| Oro e inventario | Estado de juego; puede moverse entre datacenters. | Transacciones atómicas de ingreso y venta; identificadores únicos para evitar duplicaciones. |
| Cambios económicos (90 días) | Requerimiento de negocio, sin ubicación definida. | Auditoría aún no detallada. |