Atualmente em testes: o código do GitHub será aberto quando concluído.

Token de Fencing

  • O token em uma resposta de aquisição A é um u64 monotonicamente crescente. Não importa a chave nem a quantas aquisições ela já passou, o valor sempre é maior que qualquer token emitido antes dele.
  • No modo single, o contador global do servidor garante a monotonicidade; no modo cluster, é o número de emissão replicado por consenso — o token é atribuído de forma determinística no momento em que um comando confirmado (committed) é aplicado, então todo nó calcula o mesmo valor, e ele continua crescendo mesmo após uma troca de líder.
  • Se o recurso protegido aplicar a regra "rejeitar qualquer token menor que o último visto", ele pode bloquear o acesso de um detentor antigo que acorda tarde após a expiração do lease (com um token menor) — a última linha de defesa contra atrasos do lado do cliente (como uma pausa de GC) que o servidor de lock não tem como controlar.

Veja Como Funciona para o cenário que torna essa validação necessária.