Invocar transações

As transações de invocação são usadas para invocar um ou mais comandos de cluster em um nó de destino. Elas são semelhantes a chamadas de procedimento remoto feitas para um comando definido no cluster.

De maneira semelhante às transações de gravação, as transações de invocação oferecem suporte a transações cronometradas e não cronometradas. Consulte a seção Ações cronometradas e não cronometradas para mais informações sobre transações cronometradas.

Transação de invocação não cronometrada

Sequência de operações de uma transação de invocação sem tempo
Figura 1: transação de invocação não cronometrada

Ação de solicitação de invocação

Direção: iniciador -> destino

Semelhante à ação de solicitação de leitura e à ação de solicitação de gravação, nessa ação o iniciador fornece ao destino:

  • Solicitações de invocação: uma lista de caminhos para comandos de cluster, bem como argumentos opcionais para os comandos, chamados de campos de comando.
  • Solicitação cronometrada: um flag que indica se essa ação faz parte de uma transação de invocação cronometrada.
  • Suprimir resposta: um flag que indica se a ação de resposta de invocação precisa ser suprimida.
  • ID de interação: um número inteiro usado para corresponder a ação de solicitação de invocação a ação de resposta de invocação.

Ação de resposta de invocação

Direção: destino -> iniciador

Depois que o destino recebe a ação de solicitação de invocação, ele finaliza a transação com uma ação de resposta de invocação que contém:

  • Respostas de invocação: uma lista de respostas de comando ou status para cada solicitação de invocação enviada.
  • ID de interação: um número inteiro usado para corresponder a ação de resposta de invocação à ação de solicitação de invocação.

Restrições de invocação não cronometrada

A ação de solicitação de invocação pode ser um grupo, mas, nesse caso, o flag Suprimir resposta precisa ser definido. Caso contrário, a rede poderá ser inundada por respostas simultâneas de todos os membros de um grupo.

Para ativar esse comportamento, o caminho usado na lista de solicitações de invocação pode conter grupos ou curingas, mas apenas no campo "Endpoint". Além disso, se a ação for um grupo, essa transação será encerrada sem resposta.

Transações de invocação cronometradas

Semelhante às transações de gravação cronometradas, as transações de invocação cronometradas também começam com a ação de solicitação cronometrada.

Sequência de operações de uma transação de invocação programada
Figura 2: transação de invocação cronometrada

Ação de solicitação cronometrada

Direção: iniciador -> destino

Um iniciador começa a transação enviando essa ação que contém:

  • Tempo limite: quantos milissegundos essa transação pode permanecer aberta. Durante esse período, a próxima ação enviada pelo iniciador será considerada válida.

Depois que a ação de solicitação cronometrada é recebida, o destino precisa confirmar a ação de solicitação cronometrada com uma ação de resposta de status. Depois que o iniciador recebe uma ação de resposta de status informando que não há erros, ele envia uma ação de solicitação de invocação.

Ação de solicitação de invocação

Igual à ação de solicitação de invocação descrita anteriormente.

Ação de resposta de invocação

Igual à ação de resposta de invocação descrita anteriormente.

Restrições de invocação cronometrada

Todos os comandos de invocação podem ser chamados em uma interação cronometrada. A ação de solicitação cronometrada , a ação de solicitação de invocação e a ação de resposta de invocação são Unicast-apenas e, portanto, não podem ser usadas como grupo em transações de invocação cronometradas.

A ação de solicitação de invocação oferece suporte ao uso de caminhos com grupos, bem como curingas, mas a ação de resposta de invocação não oferece suporte ao uso de curingas.