Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation/learning: Glossary update #6531

Merged
merged 1 commit into from
Sep 28, 2016
Merged

Documentation/learning: Glossary update #6531

merged 1 commit into from
Sep 28, 2016

Conversation

sinsharat
Copy link
Contributor

@sinsharat sinsharat commented Sep 27, 2016

added glossary items.
#6394

@@ -12,6 +12,10 @@ It has a unique identification, and records other nodes' progress internally whe

Member is an instance of etcd. It hosts a node, and provides service to clients.

## Machine (deprecated)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's just remove machine?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure will remove it.

@@ -26,10 +30,93 @@ Peer is another member of the same cluster.

A proposal is a request (for example a write request, a configuration change request) that needs to go through raft protocol.

## Quorum

The number of members of a group/cluster required to be present to perform a set of instructions/operations, usually a majority.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The number of members of a cluster required to be available to perform requests (except for local request when specified). Quorum is the majority (N/2 + 1) of the cluster. For example, when there are 5 members in the cluster, the quorum is 3. When there are 6 members, the quorum is still 3. When there are 7 members, the quorum is 4.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure will modify the description.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xiang90 i had a doubt, for example when members are 6 the quorum should be 4 based on N/2+1. Do we have a special handling for this to keep it 3 only?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry. i made a mistake. it should be 4

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok no issues will correct it.
Thanks!


## Transaction

Transaction is a set of instructions which are to be performed as an atomic operation based on a certain set of conditions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Transaction is a set of operations that are to be executed atomically based on a certain set of conditions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok will modify the description.

## Keys

Keys are unique idetifiers. Keys are used to store values to the store and the values can be retrieved from the store using the keys.
In certain cases like server certification a key can be referred to as a unique identifier used for encrypting the values.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove the second sentence? it is not etcd specific.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok. will remove it. But i thought we support certificates.


## Lease

Lease is a contract given for a specified time. It can be used to attach to the keys to make keys available as long as the lease lasts. Once the lease expires all the keys associated with it also expire.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for a specified duration?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok will modify it.


Revision is the current revision of etcd. It is incremented every time the v3 backed is modified (e.g., Put, Delete, Txn).

## ModRevision
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Every time a key gets updated the modRevision gets updated to the current revision of the store.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok will modify the description.


ModRevision is the etcd revision of the last update done on a key. Every time a key gets updated the modrevision gets incremented by 1.

## Version
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Version of the key

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xiang90 i had mentioned both the cases(key version as well as etcd server and API version) under the version title. Do you want me to mention them separately?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xiang90 need your opinion on this.
Thanks!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. I want to make them separate. Actually I think software version is not etcd specific. i do not think we need to mention it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok will remove that part then.


## Version

Version is the number of times the key has been modified since it was created.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version of a newly created key is 1. Once a key get deleted, the version of the key gets back to 0.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok will modify the description.


## Watches

Watches are used by clients to watch over a specified key or a apecified set of keys.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When there is a modification on the watched keys, watchers will be notified.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok will modify the description.


Mirroring is a process of mirroring a prefix in the key-value space of an etcd cluster into another prefix in another cluster. Mirroring is designed for copying configuration to various clusters distributed around the world.

## Migration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's remove this? i want this doc to be v3 centric.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok will remove it.

@xiang90
Copy link
Contributor

xiang90 commented Sep 27, 2016

Let's group this a little bit? We can order them alphabetically? @heyitsanthony opinions?

@sinsharat
Copy link
Contributor Author

@xiang90 yes i was thinking the same to keep it in alphabetical order. Will organize them like that.

@sinsharat
Copy link
Contributor Author

@xiang90 i have done the changes as per your suggestion. Let me know if any other change is required.
Thank you!

@xiang90
Copy link
Contributor

xiang90 commented Sep 27, 2016

LGTM. Defer to @heyitsanthony and @gyuho


Node is an instance of raft state machine.
Alarms are a means to recognize any fault in the etcd server.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The quota alarm isn't really a fault. How about: The etcd server raises an alarm whenever the cluster needs operator intervention to remain reliable.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok sure will modify the description.


## Member
Authentication is used to authenticate a user before the user can perform a set of operations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not a good definition because it's referencing itself (i.e., x is used to x). Try: Authentication manages user access permissions for etcd resources.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes you are right will modify it.

Member is an instance of etcd. It hosts a node, and provides service to clients.
## Client

Client is a caller of the cluster's HTTP API.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this isn't true, there are grpc clients as well.
A client connects to the etcd cluster to issue service requests such as fetching key-value pairs, writing data, or watching for updates.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i didn't modify this definition it was there from before. But will correct it.


## Cluster

Cluster consists of several members.

The node in each member follows raft consensus protocol to replicate logs. Cluster receives proposals from members, commits them and apply to local store.

## Command
Copy link
Contributor

@heyitsanthony heyitsanthony Sep 27, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is really etcd jargon. Remove?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure will remove it.


## Compaction

Compaction discards all etcd event history prior to a given revision. Since etcd uses a multiversion concurrency control model, it preserves all key updates as event history. When the event history up to some revision is no longer needed, all superseded keys may be compacted away to reclaim storage space in the etcd backend database.
Copy link
Contributor

@heyitsanthony heyitsanthony Sep 27, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think it needs to explain that etcd is MVCC?
Compaction discards all etcd event history and superseded keys prior to a given revision. It is used to reclaim storage space in the etcd backend database.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure will modify the definition.


## Transaction

Transaction is a set of operations that are to be executed atomically based on a certain set of conditions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the set of conditions stuff is necessary since people will see that when they try to create a transaction.

An atomically executed set of operations. All modified keys in a transaction share the same modification revision.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok will change it


Transaction is a set of operations that are to be executed atomically based on a certain set of conditions.

## Version of the key
Copy link
Contributor

@heyitsanthony heyitsanthony Sep 27, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Key version, the "of the' is superfluous

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok will change it

## Version of the key

Version is the number of times the key has been modified since it was created.
The version of a newly created key is 1. Once a key get deleted, the version of the key gets back to 0.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The number of writes to a key since it was created, starting at 1. The version of a nonexistent or deleted key is 0.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok will chnage it.


The alternative of Member in etcd before 2.0
Watches are used by clients to watch over a specified key or a specified set of keys.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a circular definition Xes are used by clients to X and watches don't work on arbitrary sets

A client opens a watcher to observe updates on a given key range.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok will change the definition.

## Keys

Keys are unique idetifiers. Keys are used to store values to the store and the values can be retrieved from the store using the keys.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably should define ranges too since they're used everywhere

## Key range

A set of keys containing either an individual key, a lexical interval for all x such that a < x <= b, or all keys greater than a given key.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will add it.

@sinsharat
Copy link
Contributor Author

@heyitsanthony i have done the changes as per your suggestion. I have tweaked your lease suggestion a bit to make it clear. let me know if its fine with you.
Also i would like you to re-look at the definition you provided for mod revision, because i feel it's defined more in technical term which users might find difficult to understand and the glossary is meant for new etcd users who might not be familiar with these technicality.
Thank you!

@heyitsanthony
Copy link
Contributor

lgtm

@gyuho gyuho merged commit 0ca0260 into etcd-io:master Sep 28, 2016
@sinsharat sinsharat deleted the glossary_update branch September 28, 2016 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

4 participants