Get desktop application:
View/edit binary Protocol Buffers messages
CompactionRequest compacts the key-value store up to a given revision. All superseded keys with a revision less than the compaction revision will be removed.
revision is the key-value store revision for the compaction operation.
physical is set so the RPC will wait until the compaction is physically applied to the local database such that compacted entries are totally removed from the backend database.
Used in:
result is logical comparison operation for this comparison.
target is the key-value field to inspect for the comparison.
key is the subject key for the comparison operation.
version is the version of the given key
create_revision is the creation revision of the given key
mod_revision is the last modified revision of the given key.
value is the value of the given key, in bytes.
lease is the lease id of the given key.
leave room for more target_union field tags, jump to 64
range_end compares the given target to all keys in the range [key, range_end). See RangeRequest for more details on key ranges.
TODO: fill out with most of the rest of RangeRequest fields when needed.
Used in:
Used in:
option (versionpb.etcd_version_msg) = "3.0";
Used as request type in: KV.DeleteRange
Used as field type in: ,
key is the first key to delete in the range.
range_end is the key following the last key to delete for the range [key, range_end). If range_end is not given, the range is defined to contain only the key argument. If range_end is one bit larger than the given key, then the range is all the keys with the prefix (the given key). If range_end is '\0', the range is all keys greater than or equal to the key argument.
If prev_kv is set, etcd gets the previous key-value pairs before deleting it. The previous key-value pairs will be returned in the delete response.
[(versionpb.etcd_version_field)="3.1"];
option (versionpb.etcd_version_msg) = "3.0";
Used as response type in: KV.DeleteRange
Used as field type in: ,
deleted is the number of keys deleted by the delete range request.
if prev_kv is set in the request, the previous key-value pairs will be returned.
[(versionpb.etcd_version_field)="3.1"];
Used in: , ,
key is the key in bytes. An empty key is not allowed.
create_revision is the revision of last creation on this key.
mod_revision is the revision of last modification on this key.
version is the version of the key. A deletion resets the version to zero and any modification of the key increases its version.
value is the value held by the key, in bytes.
lease is the ID of the lease that attached to key. When the attached lease expires, the key will be deleted. If lease is 0, then no lease is attached to the key.
TTL is the advisory time-to-live in seconds. Expired lease will return -1.
ID is the requested ID for the lease. If ID is set to 0, the lessor chooses an ID.
ID is the lease ID for the granted lease.
TTL is the server chosen lease time-to-live in seconds.
ID is the lease ID for the lease to keep alive.
ID is the lease ID from the keep alive request.
TTL is the new time-to-live for the lease.
(message has no fields)
ID is the lease ID to revoke. When the ID is revoked, all associated keys will be deleted.
Used in:
TODO: int64 TTL = 2;
ID is the lease ID for the lease.
keys is true to query all the keys attached to this lease.
ID is the lease ID from the keep alive request.
TTL is the remaining TTL in seconds for the lease; the lease will expire in under TTL+1 seconds.
GrantedTTL is the initial granted time in seconds upon lease creation/renewal.
Keys is the list of keys attached to this lease.
Used in:
ID is the member ID for this member.
name is the human-readable name of the member. If the member is not started, the name will be an empty string.
peerURLs is the list of URLs the member exposes to the cluster for communication.
clientURLs is the list of URLs the member exposes to clients for communication. If the member is not started, clientURLs will be empty.
isLearner indicates if the member is raft learner.
members is a list of all members associated with the cluster.
option (versionpb.etcd_version_msg) = "3.0";
Used as request type in: KV.Put
Used as field type in: ,
key is the key, in bytes, to put into the key-value store.
value is the value, in bytes, to associate with the key in the key-value store.
lease is the lease ID to associate with the key in the key-value store. A lease value of 0 indicates no lease.
If prev_kv is set, etcd gets the previous key-value pair before changing it. The previous key-value pair will be returned in the put response.
[(versionpb.etcd_version_field)="3.1"];
// If ignore_value is set, etcd updates the key using its current value. // Returns an error if the key does not exist.
[(versionpb.etcd_version_field)="3.2"];
// If ignore_lease is set, etcd updates the key using its current lease. // Returns an error if the key does not exist.
[(versionpb.etcd_version_field)="3.2"];
option (versionpb.etcd_version_msg) = "3.0";
Used as response type in: KV.Put
Used as field type in: ,
if prev_kv is set in the request, the previous key-value pair will be returned.
[(versionpb.etcd_version_field)="3.1"]; // TODO: Move to new file
option (versionpb.etcd_version_msg) = "3.0";
Used as request type in: KV.Range
Used as field type in:
key is the first key for the range. If range_end is not given, the request only looks up key.
range_end is the upper bound on the requested range [key, range_end). If range_end is '\0', the range is all keys >= key. If range_end is key plus one (e.g., "aa"+1 == "ab", "a\xff"+1 == "b"), then the range request gets all keys prefixed with key. If both key and range_end are '\0', then the range request returns all keys.
limit is a limit on the number of keys returned for the request. When limit is set to 0, it is treated as no limit.
revision is the point-in-time of the key-value store to use for the range. If revision is less or equal to zero, the range is over the newest key-value store. If the revision has been compacted, ErrCompacted is returned as a response.
sort_order is the order for returned sorted results.
sort_target is the key-value field to use for sorting.
serializable sets the range request to use serializable member-local reads. Range requests are linearizable by default; linearizable requests have higher latency and lower throughput than serializable requests but reflect the current consensus of the cluster. For better performance, in exchange for possible stale reads, a serializable range request is served locally without needing to reach consensus with other nodes in the cluster.
keys_only when set returns only the keys and not the values.
count_only when set returns only the count of the keys in the range.
min_mod_revision is the lower bound for returned key mod revisions; all keys with lesser mod revisions will be filtered away.
[(versionpb.etcd_version_field)="3.1"];
// max_mod_revision is the upper bound for returned key mod revisions; all keys with // greater mod revisions will be filtered away.
[(versionpb.etcd_version_field)="3.1"];
// min_create_revision is the lower bound for returned key create revisions; all keys with // lesser create revisions will be filtered away.
[(versionpb.etcd_version_field)="3.1"];
// max_create_revision is the upper bound for returned key create revisions; all keys with // greater create revisions will be filtered away.
[(versionpb.etcd_version_field)="3.1"];
Used in:
option (versionpb.etcd_version_enum) = "3.0";
default, no sorting
lowest target value first
highest target value first
Used in:
option (versionpb.etcd_version_enum) = "3.0";
option (versionpb.etcd_version_msg) = "3.0";
Used as response type in: KV.Range
Used as field type in:
kvs is the list of key-value pairs matched by the range request. kvs is empty when count is requested.
TODO: Move to new file
more indicates if there are more keys to return in the requested range.
count is set to the number of keys within the range when requested.
Used in:
request is a union of request types accepted by a transaction.
option (versionpb.etcd_version_msg) = "3.0";
Used in: , , , , , , , , , , , , ,
cluster_id is the ID of the cluster which sent the response.
member_id is the ID of the member which sent the response.
revision is the key-value store revision when the request was applied, and it's unset (so 0) in case of calls not interacting with key-value store. For watch progress responses, the header.revision indicates progress. All future events received in this stream are guaranteed to have a higher revision number than the header.revision number.
raft_term is the raft term when the request was applied.
revision of the store that has most recently been committed (been through consensus).
raft term that the last committed item was committed in.
Used in:
response is a union of response types returned by a transaction.
(message has no fields)
NOTE: This is mostly unimplemented, only returning the header and version currently.
version is the cluster protocol version used by the responding member.
dbSize is the size of the backend database physically allocated, in bytes, of the responding member.
leader is the member ID which the responding member believes is the current leader.
raftIndex is the current raft committed index of the responding member.
raftTerm is the current raft term of the responding member.
raftAppliedIndex is the current raft applied index of the responding member.
errors contains alarm/health information and status.
dbSizeInUse is the size of the backend database logically in use, in bytes, of the responding member.
isLearner indicates if the member is raft learner.
storageVersion is the version of the db file. It might be get updated with delay in relationship to the target cluster version.
From google paxosdb paper: Our implementation hinges around a powerful primitive which we call MultiOp. All other database operations except for iteration are implemented as a single call to MultiOp. A MultiOp is applied atomically and consists of three components: 1. A list of tests called guard. Each test in guard checks a single entry in the database. It may check for the absence or presence of a value, or compare with a given value. Two different tests in the guard may apply to the same or different entries in the database. All tests in the guard are applied and MultiOp returns the results. If all tests are true, MultiOp executes t op (see item 2 below), otherwise it executes f op (see item 3 below). 2. A list of database operations called t op. Each operation in the list is either an insert, delete, or lookup operation, and applies to a single database entry. Two different operations in the list may apply to the same or different entries in the database. These operations are executed if guard evaluates to true. 3. A list of database operations called f op. Like t op, but executed if guard evaluates to false.
Used in: ,
compare is a list of predicates representing a conjunction of terms. If the comparisons succeed, then the success requests will be processed in order, and the response will contain their respective responses in order. If the comparisons fail, then the failure requests will be processed in order, and the response will contain their respective responses in order.
success is a list of requests which will be applied when compare evaluates to true.
failure is a list of requests which will be applied when compare evaluates to false.
Used in: ,
succeeded is set to true if the compare evaluated to true or false otherwise.
responses is a list of responses corresponding to the results from applying success if succeeded is true or failure if succeeded is false.