Tema: consensus
-
Qué garantiza un clúster Raft: mayorías, un solo líder y lecturas linealizables
Los sistemas de consenso como etcd (Raft) permiten que una mayoría de servidores acuerde un registro ordenado; permanecen correctos ante cualquier número de fallos, pero solo avanzan mientras una mayoría sea alcanzable. Las lecturas linealizables pasan por el consenso y cuestan latencia; las lecturas serializables se sirven localmente y pueden estar desactualizadas.
-
Bloqueos distribuidos y leases de líder: expiración, fencing tokens y lo que un bloqueo no puede garantizar
Un bloqueo distribuido es un lease que expira: un proceso detenido por el recolector de basura, por contención de CPU o por un retraso de red puede seguir actuando cuando su lease ya pasó a otro cliente. Solo un fencing token monótonamente creciente, verificado por el recurso protegido, hace que el bloqueo sea seguro para la corrección; si se usa solo para evitar trabajo duplicado, basta con menos.
-
Relojes lógicos: marcas de tiempo de Lamport, relojes vectoriales y relojes híbridos
Los relojes de pared de máquinas distintas no coinciden, así que ordenar eventos por marca de tiempo hace perder actualizaciones. Las marcas de Lamport dan un orden coherente con la causalidad, los relojes vectoriales además detectan actualizaciones concurrentes y los relojes lógicos híbridos mantienen un valor cercano a la hora real sin perder el orden causal.
Legible por máquina: JSON