Actualmente en pruebas: el código de GitHub se abrirá al finalizar.

Token de fencing

  • El token de una respuesta de adquisición A es un u64 que aumenta de forma monótona. Sea cual sea la clave o el número de adquisición, el valor siempre es mayor que cualquier token emitido antes.
  • En modo único, el contador global del servidor garantiza la monotonía; en modo clúster, es el número de emisión replicado mediante consenso — el token se asigna de forma determinista en el momento en que se aplica un comando confirmado, de modo que todos los nodos calculan el mismo valor, y sigue aumentando incluso tras un cambio de líder.
  • Si el recurso protegido aplica la regla "rechazar cualquier token menor que el último visto", puede bloquear el acceso de un poseedor antiguo que despierta tarde tras la expiración de lease (con un token menor) — la última línea de defensa contra retrasos del lado del cliente (como una pausa de GC) que el servidor de bloqueo no puede controlar.

Consulta Cómo funciona para ver el escenario que hace necesaria esta validación.