R · Liberar
Una solicitud de liberación de bloqueo. token es el token de fencing recibido en esa adquisición, y la liberación solo ocurre si coincide con el token actualmente retenido. La respuesta es Liberado R o No encontrado N.
token — el mecanismo para no soltar el bloqueo ajeno
Sin la verificación del token aparece una secuencia peligrosa. Mientras una solicitud de liberación se reintenta a través de un failover, el bloqueo original puede ser recuperado por la expiración del lease y concedido de nuevo a otro cliente — y entonces la liberación que llega tarde soltaría el bloqueo de ese nuevo poseedor. Liberar solo cuando el token coincide corta ese camino.
Si el token es distinto, llega N (no encontrado) y el bloqueo permanece intacto. Los reintentos de liberación deben enviarse siempre con el mismo token, y el emparejamiento de respuestas también usa el token reflejado de vuelta (Reglas de emparejamiento de respuestas).
Notación de bytes:
opes un carácter ASCII,tokenes binario (u64, big-endian), ykeyes texto UTF-8 (longitud variable, mostrado comoNen la estructura). El\nfinal es0A. La cabecera fija es un valor binario y puede contener0x0A, así que hay que consumirla primero según su número de bytes antes de buscar el salto de línea.
Flujo
Si hay un esperador para la clave liberada, se le entrega directamente al primero de la cola sin volver a competir por ella — por separado del R (liberado) enviado a quien libera, el esperador recibe un A (adquirido) con un nuevo token.