M · Movido
Informa ao cliente que este nó não é o líder, então vá até o líder em vez disso (somente cluster). O corpo é o endereço de cliente do líder (host:port) como texto — o endereço ao qual o próprio cliente se conecta, não a porta Raft.
Os clientes oficiais só guardam o endereço como dica do líder quando ele coincide exatamente com um endereço já cadastrado na allowlist, e então fecham essa session. Um acquire do qual até um único byte pode ter sido enviado não é associado arbitrariamente ao M nem reenviado; termina como Indeterminate. Requisições independentes posteriores e requisições ainda não enviadas que o writer ainda não possui usam a nova conexão ao líder. Se nenhum líder ainda foi eleito e não há endereço para indicar, um E no_leader é enviado no lugar.
Veja Protocolo (Cluster) para o comportamento completo do cluster.
Notação de bytes:
opé um caractere ASCII, eaddré texto UTF-8 (comprimento variável, mostrado comoNna estrutura). O\nfinal é0A.
Fluxo
M não contém owner nem key, e uma session pode misturar vários acquires. Na transição líder→seguidor, requisições em commit podem coexistir com as recusadas pelo seguidor; portanto um M não prova que um pending específico não adquiriu o lock. Essa regra conservadora evita acquires duplicados e extensão do lease com o mesmo owner.