B · Ocupado
A resposta enviada quando uma requisição de aquisição (A) chega, mas a fila de espera daquela chave atingiu o limite do servidor (max_waiters, padrão 16.384), de modo que não foi possível enfileirá-la. O lock não foi obtido, mas a requisição em si não tem nada de errado.
owner é o correlacionador: o valor enviado na requisição, devolvido sem alteração. Com ele sabe-se exatamente qual tentativa de aquisição foi recusada (Regras de Correspondência de Resposta).
Tratamento no cliente
Não falhe de imediato. Enquanto restar orçamento de wait, tente novamente com backoff (nos clientes oficiais: começando em 10ms e dobrando até 200ms). Assim que a fila esvaziar, a tentativa seguinte entra nela normalmente. Só quando a saturação persistir até esgotar o wait é que se deve reportar o erro de "ocupado" a quem chamou.
As novas tentativas precisam usar o mesmo owner — caso contrário, se a aquisição tiver se concretizado nesse meio-tempo, o servidor não a reconhecerá como a mesma.
Notação de bytes:
opé um caractere ASCII,owneré binário (u64, big-endian), ekeyé texto UTF-8 (comprimento variável, mostrado comoNna estrutura). O\nfinal é0A. O cabeçalho fixo é um valor binário e pode conter0x0A, então precisa ser consumido primeiro pela contagem de bytes, antes de procurar a nova linha.
Fluxo
Esse limite não é controle de fluxo, e sim uma defesa de memória — impede que um cliente autenticado acumule esperas indefinidamente em uma única chave e esgote a memória do servidor. Ele é definido com folga bem acima do fan-out normal, então em operação normal essa resposta não aparece. O limite é ajustado por max_waiters na configuração do cluster.