Get desktop application:
View/edit binary Protocol Buffers messages
* AdvanceStateMachineVersion state machine command: changes state machine behavior to the given version, if and only if the requested_version is greater than the state machine's current version. This is currently only used internally by the Raft servers. It is not currently sent by the client library, rather it is appended by the Raft leader automatically as needed.
(message has no fields)
Used in:
Used in:
* The version of the state machine behavior that the replicated state machine is running after applying this command (this will be at least the requested version, but may be higher if the state machine was already running a higher version).
* CloseSession state machine command: Terminate a session with the cluster. This cleans up any state that the session held; future RPCs on this session will have errors. \since This command was introduced in state machine version 2. State machines running version 1 will ignore this command; they only expire sessions based on timeouts.
(message has no fields)
Used in:
* The ID assigned to the client as previously returned by OpenSession.
Used in:
(message has no fields)
* The type of "service-specific error" replies that this service returns.
* If error_code is NOT_LEADER and this field is set, the client should try the server found at this address, which is likely to be the current leader.
Used in:
* This must be the first value in the enum and is never assigned explicitly. If new values are added, old code will see them as set and equal to this value (though they will still serialize to the correct value).
* The server is not the current cluster leader. The client should look elsewhere for the cluster leader. The server MAY provide a hint as to who the leader is (see leader_hint field).
* This is included in some RPCs to prevent processing of duplicated RPCs.
Used in:
* A session ID returned from the OpenSession RPC. Valid client IDs will always be strictly greater than 0.
* The lowest numbered RPC for which the client has not yet received a response. The server may discard all copies of responses for RPCs with smaller numbers.
* A strictly increasing sequence number for the RPC.
* GetConfiguration RPC: Get the current cluster configuration. This will only return stable configurations; the client will be asked to retry otherwise.
(message has no fields)
(message has no fields)
* Identifies the configuration. Pass this to SetConfiguration later.
* The list of servers in the configuration.
* GetServerInfo RPC: Retrieve basic information from the given server used for reconfiguration.
(message has no fields)
(message has no fields)
* Server ID, listening addresses.
* Identifies which RPC is being executed.
* OpenSession state machine command: Open a new session with the cluster. Sessions are necessary for some RPCs to provide exactly-once semantics.
(message has no fields)
Used in:
(message has no fields)
Used in:
* The ID assigned to the client.
* Read-only Tree state machine query: retrieves information from the hierarchical key-value store.
(message has no fields)
Used in:
The following are mutually exclusive.
Used in:
Used in:
Used in:
The following are mutually exclusive.
Used in:
Used in:
* Read-write Tree state machine command: modifies the hierarchical key-value store and retrieves information from it.
(message has no fields)
Used in:
/ See ExactlyOnceRPCInfo.
The following are mutually exclusive.
Used in:
Used in:
Used in:
Used in:
Used in:
The following are mutually exclusive.
* A server in a configuration. Used in the GetConfiguration and SetConfiguration RPCs.
Used in: , , ,
* The ID of the server.
* The network address(es) of the server (comma-delimited).
* SetConfiguration RPC: Change the cluster's configuration.
(message has no fields)
* The ID of the cluster's current configuration.
* The list of servers in the new configuration.
* Set if the operation succeeded.
* Set if the supplied 'old_id' is no longer current. Call GetConfiguration, re-apply your changes, and try again.
* Set if the reconfiguration was aborted because some servers are unavailable or too slow.
Used in:
* The servers that were unavailable to join the cluster.
Used in:
The following are mutually exclusive.
Used in:
(message has no fields)
* StateMachineCommand RPC from clients that is processed by the replicated state machine.
(message has no fields)
* This is what the state machine takes in from the replicated log. These are read-write: they may modify the state machine state.
The following are mutually exclusive.
* This is what the state machine outputs for read-write commands from the log.
The following are mutually exclusive.
* StateMachineQuery RPC from clients that is processed by the replicated state machine.
(message has no fields)
* These are read-only queries that (in the current implementation) are not written to the replicated log (but behave as if they were from the client's perspective). These are read-only: they may not modify the state machine state.
The following are mutually exclusive.
* This is what the state machine outputs for read-only queries.
The following are mutually exclusive.
* The status code returned from Tree operations. For now, this should be the exact same as Client::Status and Tree::Status.
Used in: ,
* This must be the first value in the enum and is never assigned explicitly. If new values are added, old code will see them as set and equal to this value (though they will still serialize to the correct value).
* This is only used internally in the client library; it is never sent over the network.
* This session is no longer valid. Its state has been discarded on the server. The client should treat this as a fatal error.
* A predicate on Tree operations. If set, operations will return CONDITION_NOT_MET and have no effect unless the file at 'path' has the contents 'contents'.
Used in: ,
* The absolute path to the file that must have the contents specified in 'contents'.
* The contents that the file specified by 'path' must have for the operation to succeed.
* VerifyRecipient RPC: Make sure we're talking to the intended recipient (to avoid disastrous confusion). This is called automatically by Client::SessionManager when creating new sessions.
(message has no fields)
* The cluster UUID that the recipient must match, if any.
* The server ID of the recipient, if any.
* The recipient's cluster UUID.
* The recipient's server ID.
* Set to true if everything matched successfully.
* If there was an error, a message describing why.