Grupo 7 · Sistemas Distribuidos · Defensa
Asteria Online
Un MMORPG que corre en tres datacenters, donde nada se cobra dos veces.
El problema que defendemos · Problema 3 del TP
Dos jugadores tocan comprar a la vez la misma espada única. ¿De quién es?
La garantía: un objeto único tiene un solo dueño, siempre. Hay dos formas de cumplirla, y cada una pierde algo distinto.
Arquitectura general
Siete componentes repartidos en tres datacenters
Problema 3 · Interacciones
Una sola llamada decide al dueño, con el acuerdo de dos de tres
El problemaProblema 3 del TP
Problema 3 · Mercado de objetos
Un objeto único tiene un solo dueño, siempre
SoluciónCambiar de dueño necesita dos de tres datacenters: gana el primero.
Id de operaciónReserva y confirmaciónCuentas con Raft
→ aceptar la misión
Solución A, la que elegimos · acuerdo de dos de tres
Gana el primero, el otro no paga, y el lado aislado no vende
Solución AFallas y trade-offs · Problema 3
Nunca dos dueños, aunque un lado no pueda comprar un rato
FallaQué hace el sistemaQué se gana y qué se pierde
F3.1clientePierde señal después de comprar.Al volver, consulta la compra por su id. Si la reenvía, no se compra dos veces.Ganacompra una sola vez y sabe cómo terminó.
F3.2clienteVe el mercado desactualizado.La compra se valida contra el servidor, no contra lo que ve el jugador. Si ya se vendió, se le libera la reserva (no pagó nada, así que no hay compensación).Ganaun solo dueño.Pierdepuede intentar comprar algo que ya no está.
F3.3infraSe cortan los datacenters entre sí.Del lado que quedó solo no se puede comprar: se le libera la reserva y se le avisa que reintente.Gananunca hay dos dueños consistenciaPierdeno se puede comprar desde ese lado mientras dure el corte.
Solución B, la que descartamos · vender igual y arreglar después
Los dos lados venden; al reconectar hay dos dueños
Problema 3 · Las dos soluciones, criterio por criterio
Acuerdo de dos de tres: menos disponibilidad, nunca dos dueños
Solución APedir el acuerdo de dos de tres
Solución BComprar igual y arreglar los choques después
¿Un solo dueño?
Siempre.
No: durante el corte puede haber dos dueños.
¿Se compra durante el corte?
Sólo del lado con dos datacenters.
Sí, de los dos lados.
Para el jugador
Un mensaje claro: "reintentá".
Una compra que parecía hecha y después se deshace.
Dificultad
Baja: usa lo que ya tiene el servicio de cuentas.
Alta: hay que deshacer compras y compensar.
Decisión
Elegida
Descartadarompe la garantía de un solo dueño
¿Preguntas?
Un objeto único, un solo dueño: deciden dos de tres datacenters, el segundo no paga y el lado aislado no vende.