diff --git a/Documentation/dev-internal/logging.md b/Documentation/dev-internal/logging.md index 2eca00dd5ff..aa97dc2b5ab 100644 --- a/Documentation/dev-internal/logging.md +++ b/Documentation/dev-internal/logging.md @@ -3,7 +3,7 @@ etcd uses the [capnslog][capnslog] library for logging application output categorized into *levels*. A log message's level is determined according to these conventions: * Error: Data has been lost, a request has failed for a bad reason, or a required resource has been lost - * Examples: + * Examples: * A failure to allocate disk space for WAL * Warning: (Hopefully) Temporary conditions that may cause errors, but may work fine. A replica disappearing (that may reconnect) is a warning. @@ -26,4 +26,4 @@ etcd uses the [capnslog][capnslog] library for logging application output catego * Send a normal message to a remote peer * Write a log entry to disk -[capnslog]: [https://github.com/coreos/pkg/tree/master/capnslog] +[capnslog]: https://github.com/coreos/pkg/tree/master/capnslog diff --git a/Documentation/op-guide/configuration.md b/Documentation/op-guide/configuration.md index 1f7064ea6f9..338bd3e33d8 100644 --- a/Documentation/op-guide/configuration.md +++ b/Documentation/op-guide/configuration.md @@ -299,7 +299,7 @@ Follow the instructions when using these flags. [build-cluster]: clustering.md#static [reconfig]: runtime-configuration.md [discovery]: clustering.md#discovery -[iana-ports]: https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=etcd +[iana-ports]: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt [proxy]: ../v2/proxy.md [restore]: ../v2/admin_guide.md#restoring-a-backup [security]: security.md diff --git a/Documentation/op-guide/grpc_proxy.md b/Documentation/op-guide/grpc_proxy.md index 670aa68a19c..5d0e775664d 100644 --- a/Documentation/op-guide/grpc_proxy.md +++ b/Documentation/op-guide/grpc_proxy.md @@ -101,7 +101,7 @@ bar ## Client endpoint synchronization and name resolution -The proxy supports registering its endpoints for discovery by writing to a user-defined endpoint. This serves two purposes. First, it allows clients to synchronize their endpoints against a set of proxy endpoints for high availability. Second, it is an endpoint provider for etcd [gRPC naming][dev-guide/grpc_naming.md]. +The proxy supports registering its endpoints for discovery by writing to a user-defined endpoint. This serves two purposes. First, it allows clients to synchronize their endpoints against a set of proxy endpoints for high availability. Second, it is an endpoint provider for etcd [gRPC naming](../dev-guide/grpc_naming.md). Register proxy(s) by providing a user-defined prefix: diff --git a/Documentation/production-users.md b/Documentation/production-users.md index a30696267ab..a31855b91c8 100644 --- a/Documentation/production-users.md +++ b/Documentation/production-users.md @@ -104,7 +104,7 @@ PD(Placement Driver) is the central controller in the TiDB cluster. It saves the ## QingCloud -- *Application*: [QingCloud](qingcloud) appcenter cluster for service discovery as [metad](metad) backend. +- *Application*: [QingCloud][qingcloud] appcenter cluster for service discovery as [metad][metad] backend. - *Launched*: December 2016 - *Cluster Size*: 1 cluster of 3 members per user. - *Order of Data Size*: kilobytes @@ -186,7 +186,7 @@ In [hyper.sh][hyper.sh], the container service is backed by [hypernetes][hyperne - *Cluster Size*: 1000+ deployments, each deployment contains a 3 node cluster. - *Order of Data Size*: 100s of Megabytes - *Operator*: daocloud.io -- *Environment*: Baremetal and virtual machines +- *Environment*: Baremetal and virtual machines - *Backups*: None, all data can be recreated if necessary. In [DaoCloud][DaoCloud], we use Docker and Swarm to deploy and run our applications, and we use etcd to save metadata for service discovery. @@ -203,8 +203,9 @@ In [DaoCloud][DaoCloud], we use Docker and Swarm to deploy and run our applicati - *Environment*: AWS, Kubernetes - *Backups*: EBS volume backups -At Branch, we use kubernetes heavily as our core microservice platform for staging and production. -[Branch]:https://branch.io +At [Branch][branch], we use kubernetes heavily as our core microservice platform for staging and production. + +[branch]: https://branch.io ## Baidu Waimai @@ -213,7 +214,7 @@ At Branch, we use kubernetes heavily as our core microservice platform for stagi - *Cluster Size*: 3 clusters of 5 members - *Order of Data Size*: several gigabytes - *Operator*: Baidu Waimai Operations Department -- *Environment*: CentOS 6.5 +- *Environment*: CentOS 6.5 - *Backups*: backup scripts ## Salesforce.com diff --git a/Documentation/reporting_bugs.md b/Documentation/reporting_bugs.md index a4596d49add..d9284368a39 100644 --- a/Documentation/reporting_bugs.md +++ b/Documentation/reporting_bugs.md @@ -1,6 +1,6 @@ # Reporting bugs -If any part of the etcd project has bugs or documentation mistakes, please let us know by [opening an issue][issue]. We treat bugs and mistakes very seriously and believe no issue is too small. Before creating a bug report, please check that an issue reporting the same problem does not already exist. +If any part of the etcd project has bugs or documentation mistakes, please let us know by [opening an issue][etcd-issue]. We treat bugs and mistakes very seriously and believe no issue is too small. Before creating a bug report, please check that an issue reporting the same problem does not already exist. To make the bug report accurate and easy to understand, please try to create bug reports that are: diff --git a/Documentation/v2/README.md b/Documentation/v2/README.md index 0666ac701f1..df39c476621 100644 --- a/Documentation/v2/README.md +++ b/Documentation/v2/README.md @@ -67,13 +67,13 @@ You have successfully started an etcd and written a key to the store. The [official etcd ports][iana-ports] are 2379 for client requests, and 2380 for peer communication. To maintain compatibility, some etcd configuration and documentation continues to refer to the legacy ports 4001 and 7001, but all new etcd use and discussion should adopt the IANA-assigned ports. The legacy ports 4001 and 7001 will be fully deprecated, and support for their use removed, in future etcd releases. -[iana-ports]: https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=etcd +[iana-ports]: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt ### Running local etcd cluster First install [goreman](https://github.com/mattn/goreman), which manages Procfile-based applications. -Our [Procfile script](./Procfile) will set up a local example cluster. You can start it with: +Our [Procfile script](../../V2Procfile) will set up a local example cluster. You can start it with: ```sh goreman start @@ -162,4 +162,4 @@ Currently only the amd64 architecture is officially supported by `etcd`. ### License -etcd is under the Apache 2.0 license. See the [LICENSE](LICENSE) file for details. +etcd is under the Apache 2.0 license. See the [LICENSE](../../LICENSE) file for details. diff --git a/Documentation/v2/api_v3.md b/Documentation/v2/api_v3.md index 06d1bd2410f..0bbaec15846 100644 --- a/Documentation/v2/api_v3.md +++ b/Documentation/v2/api_v3.md @@ -18,7 +18,7 @@ A key’s lifetime spans a generation. Each key may have one or multiple generat ### Physical View -etcd stores the physical data as key-value pairs in a persistent [b+tree][b+tree]. Each revision of the store’s state only contains the delta from its previous revision to be efficient. A single revision may correspond to multiple keys in the tree. +etcd stores the physical data as key-value pairs in a persistent [b+tree][b+tree]. Each revision of the store’s state only contains the delta from its previous revision to be efficient. A single revision may correspond to multiple keys in the tree. The key of key-value pair is a 3-tuple (major, sub, type). Major is the store revision holding the key. Sub differentiates among keys within the same revision. Type is an optional suffix for special value (e.g., `t` if the value contains a tombstone). The value of the key-value pair contains the modification from previous revision, thus one delta from previous revision. The b+tree is ordered by key in lexical byte-order. Ranged lookups over revision deltas are fast; this enables quickly finding modifications from one specific revision to another. Compaction removes out-of-date keys-value pairs. @@ -73,7 +73,7 @@ Any completed operations are durable. All accessible data is also durable data. #### Linearizability -Linearizability (also known as Atomic Consistency or External Consistency) is a consistency level between strict consistency and sequential consistency. +Linearizability (also known as Atomic Consistency or External Consistency) is a consistency level between strict consistency and sequential consistency. For linearizability, suppose each operation receives a timestamp from a loosely synchronized global clock. Operations are linearized if and only if they always complete as though they were executed in a sequential order and each operation appears to complete in the order specified by the program. Likewise, if an operation’s timestamp precedes another, that operation must also precede the other operation in the sequence. @@ -83,10 +83,10 @@ etcd does not ensure linearizability for watch operations. Users are expected to etcd ensures linearizability for all other operations by default. Linearizability comes with a cost, however, because linearized requests must go through the Raft consensus process. To obtain lower latencies and higher throughput for read requests, clients can configure a request’s consistency mode to `serializable`, which may access stale data with respect to quorum, but removes the performance penalty of linearized accesses' reliance on live consensus. -[persistent-ds]: [https://en.wikipedia.org/wiki/Persistent_data_structure] -[btree]: [https://en.wikipedia.org/wiki/B-tree] -[b+tree]: [https://en.wikipedia.org/wiki/B%2B_tree] -[seq_consistency]: [https://en.wikipedia.org/wiki/Consistency_model#Sequential_consistency] -[strict_consistency]: [https://en.wikipedia.org/wiki/Consistency_model#Strict_consistency] -[serializable_isolation]: [https://en.wikipedia.org/wiki/Isolation_(database_systems)#Serializable] -[Linearizability]: [#Linearizability] +[persistent-ds]: https://en.wikipedia.org/wiki/Persistent_data_structure +[btree]: https://en.wikipedia.org/wiki/B-tree +[b+tree]: https://en.wikipedia.org/wiki/B%2B_tree +[seq_consistency]: https://en.wikipedia.org/wiki/Consistency_model#Sequential_consistency +[strict_consistency]: https://en.wikipedia.org/wiki/Consistency_model#Strict_consistency +[serializable_isolation]: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Serializable +[Linearizability]: #linearizability diff --git a/Documentation/v2/backward_compatibility.md b/Documentation/v2/backward_compatibility.md index a6bf506e42c..c8fdf96f71c 100644 --- a/Documentation/v2/backward_compatibility.md +++ b/Documentation/v2/backward_compatibility.md @@ -32,7 +32,7 @@ The consistent flag for read operations is removed in etcd 2.0.0. The normal rea The read consistency guarantees are: -The consistent read guarantees the sequential consistency within one client that talks to one etcd server. Read/Write from one client to one etcd member should be observed in order. If one client write a value to an etcd server successfully, it should be able to get the value out of the server immediately. +The consistent read guarantees the sequential consistency within one client that talks to one etcd server. Read/Write from one client to one etcd member should be observed in order. If one client write a value to an etcd server successfully, it should be able to get the value out of the server immediately. Each etcd member will proxy the request to leader and only return the result to user after the result is applied on the local member. Thus after the write succeed, the user is guaranteed to see the value on the member it sent the request to. @@ -56,6 +56,7 @@ Proxy mode in 2.0 will provide similar functionality, and with improved control ## Discovery Service A size key needs to be provided inside a [discovery token][discoverytoken]. + [discoverytoken]: clustering.md#custom-etcd-discovery-service ## HTTP Admin API diff --git a/Documentation/v2/configuration.md b/Documentation/v2/configuration.md index 98a58057cba..bab27d71ac8 100644 --- a/Documentation/v2/configuration.md +++ b/Documentation/v2/configuration.md @@ -234,7 +234,7 @@ The security flags help to [build a secure etcd cluster][security]. + env variable: ETCD_DEBUG ### --log-package-levels -+ Set individual etcd subpackages to specific log levels. An example being `etcdserver=WARNING,security=DEBUG` ++ Set individual etcd subpackages to specific log levels. An example being `etcdserver=WARNING,security=DEBUG` + default: none (INFO for all packages) + env variable: ETCD_LOG_PACKAGE_LEVELS @@ -272,7 +272,7 @@ Follow the instructions when using these flags. [build-cluster]: clustering.md#static [reconfig]: runtime-configuration.md [discovery]: clustering.md#discovery -[iana-ports]: https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=etcd +[iana-ports]: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt [proxy]: proxy.md [reconfig]: runtime-configuration.md [restore]: admin_guide.md#restoring-a-backup diff --git a/Documentation/v2/libraries-and-tools.md b/Documentation/v2/libraries-and-tools.md index 620b2f1000c..3e51ca33396 100644 --- a/Documentation/v2/libraries-and-tools.md +++ b/Documentation/v2/libraries-and-tools.md @@ -115,7 +115,6 @@ - [mattn/etcdenv](https://github.com/mattn/etcdenv) - "env" shebang with etcd integration - [kelseyhightower/confd](https://github.com/kelseyhightower/confd) - Manage local app config files using templates and data from etcd - [configdb](https://git.autistici.org/ai/configdb/tree/master) - A REST relational abstraction on top of arbitrary database backends, aimed at storing configs and inventories. -- [scrz](https://github.com/scrz/scrz) - Container manager, stores configuration in etcd. - [fleet](https://github.com/coreos/fleet) - Distributed init system - [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) - Container cluster manager introduced by Google. - [mailgun/vulcand](https://github.com/mailgun/vulcand) - HTTP proxy that uses etcd as a configuration backend. diff --git a/Documentation/v2/reporting_bugs.md b/Documentation/v2/reporting_bugs.md index 0187ab02072..f632632e019 100644 --- a/Documentation/v2/reporting_bugs.md +++ b/Documentation/v2/reporting_bugs.md @@ -1,6 +1,6 @@ # Reporting Bugs -If you find bugs or documentation mistakes in the etcd project, please let us know by [opening an issue][issue]. We treat bugs and mistakes very seriously and believe no issue is too small. Before creating a bug report, please check that an issue reporting the same problem does not already exist. +If you find bugs or documentation mistakes in the etcd project, please let us know by [opening an issue][etcd-issue]. We treat bugs and mistakes very seriously and believe no issue is too small. Before creating a bug report, please check that an issue reporting the same problem does not already exist. To make your bug report accurate and easy to understand, please try to create bug reports that are: diff --git a/Documentation/v2/rfc/v3api.md b/Documentation/v2/rfc/v3api.md index cab075e2bf7..c082e3fdeee 100644 --- a/Documentation/v2/rfc/v3api.md +++ b/Documentation/v2/rfc/v3api.md @@ -7,25 +7,25 @@ To prove out the design of the v3 API the team has also built [a number of examp # Design 1. Flatten binary key-value space - + 2. Keep the event history until compaction - access to old version of keys - user controlled history compaction - + 3. Support range query - Pagination support with limit argument - Support consistency guarantee across multiple range queries - + 4. Replace TTL key with Lease - more efficient/ low cost keep alive - a logical group of TTL keys - + 5. Replace CAS/CAD with multi-object Txn - MUCH MORE powerful and flexible - + 6. Support efficient watching with multiple ranges -7. RPC API supports the completed set of APIs. +7. RPC API supports the completed set of APIs. - more efficient than JSON/HTTP - additional txn/lease support @@ -56,7 +56,7 @@ the size in the future a little bit or make it configurable. // A put is always successful Put( PutRequest { key = foo, value = bar } ) -PutResponse { +PutResponse { cluster_id = 0x1000, member_id = 0x1, revision = 1, @@ -119,7 +119,7 @@ RangeResponse { Txn(TxnRequest { // mod_revision of foo0 is equal to 1, mod_revision of foo1 is greater than 1 compare = { - {compareType = equal, key = foo0, mod_revision = 1}, + {compareType = equal, key = foo0, mod_revision = 1}, {compareType = greater, key = foo1, mod_revision = 1}} }, // if the comparison succeeds, put foo2 = bar2 @@ -156,7 +156,7 @@ Watch( WatchRequest{ end_revision = 10000, // server decided notification frequency progress_notification = true, - } + } … // this can be a watch request stream ) @@ -176,7 +176,7 @@ WatchResponse { }, } … - + // a notification at 2000 WatchResponse { cluster_id = 0x1000, @@ -185,9 +185,9 @@ WatchResponse { raft_term = 0x1, // nil event as notification } - - … - + + … + // put (foo0=bar3000) event at 3000 WatchResponse { cluster_id = 0x1000, @@ -204,8 +204,8 @@ WatchResponse { }, } … - + ``` -[api-protobuf]: https://github.com/coreos/etcd/blob/master/etcdserver/etcdserverpb/rpc.proto -[kv-protobuf]: https://github.com/coreos/etcd/blob/master/storage/storagepb/kv.proto +[api-protobuf]: https://github.com/coreos/etcd/blob/release-2.3/etcdserver/etcdserverpb/rpc.proto +[kv-protobuf]: https://github.com/coreos/etcd/blob/release-2.3/storage/storagepb/kv.proto diff --git a/README.md b/README.md index 24467d06d70..4a0b41b2468 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ That's it! etcd is now running and serving client requests. For more The [official etcd ports][iana-ports] are 2379 for client requests, and 2380 for peer communication. -[iana-ports]: https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=etcd +[iana-ports]: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt ### Running a local etcd cluster @@ -133,5 +133,3 @@ See [reporting bugs](Documentation/reporting_bugs.md) for details about reportin ### License etcd is under the Apache 2.0 license. See the [LICENSE](LICENSE) file for details. - - diff --git a/etcdctl/README.md b/etcdctl/README.md index 508c9198bab..90913558447 100644 --- a/etcdctl/README.md +++ b/etcdctl/README.md @@ -965,7 +965,7 @@ RPC: RoleGrantPermission #### Ouptut -`Role updated`. +`Role updated`. #### Examples diff --git a/etcdctl/READMEv2.md b/etcdctl/READMEv2.md index 608c1963f96..5ee2329e3ed 100644 --- a/etcdctl/READMEv2.md +++ b/etcdctl/READMEv2.md @@ -331,6 +331,6 @@ etcdctl is under the Apache 2.0 license. See the [LICENSE][license] file for det [authentication]: ../Documentation/v2/authentication.md [etcd]: https://github.com/coreos/etcd [github-release]: https://github.com/coreos/etcd/releases/ -[license]: https://github.com/coreos/etcdctl/blob/master/LICENSE +[license]: ../LICENSE [semver]: http://semver.org/ [username-flag]: #--username--u