From 82e85bbd768c656a6a71cf9340e2321875df047c Mon Sep 17 00:00:00 2001 From: Nate W <4453979+nate-double-u@users.noreply.github.com> Date: Tue, 6 Apr 2021 11:12:04 -0700 Subject: [PATCH] Sorting links in footnotes sections throughout site. (#184) Signed-off-by: Nate W <4453979+nate-double-u@users.noreply.github.com> --- .../benchmarks/etcd-2-1-0-alpha-benchmarks.md | 2 +- .../benchmarks/etcd-2-2-0-rc-benchmarks.md | 2 +- .../etcd-storage-memory-benchmark.md | 1 - .../docs/next/dev-guide/api_grpc_gateway.md | 2 +- content/docs/next/dev-guide/local_cluster.md | 2 +- content/docs/next/dl-build.md | 2 +- content/docs/next/faq.md | 22 +++--- content/docs/next/learning/api.md | 2 +- content/docs/next/learning/api_guarantees.md | 7 +- content/docs/next/learning/data_model.md | 4 +- content/docs/next/learning/lock/README.md | 4 +- content/docs/next/learning/why.md | 68 +++++++++---------- content/docs/next/metrics.md | 2 +- content/docs/next/op-guide/clustering.md | 8 +-- content/docs/next/op-guide/hardware.md | 1 - content/docs/next/op-guide/monitoring.md | 2 +- .../next/op-guide/runtime-configuration.md | 10 +-- content/docs/next/op-guide/security.md | 6 +- .../docs/next/op-guide/supported-platform.md | 2 +- .../next/platforms/container-linux-systemd.md | 6 +- content/docs/next/upgrades/upgrading-etcd.md | 15 ++-- content/docs/v2.3/admin_guide.md | 2 +- content/docs/v2.3/configuration.md | 1 - content/docs/v2.3/runtime-configuration.md | 2 +- content/docs/v2.3/security.md | 6 +- .../benchmarks/etcd-2-1-0-alpha-benchmarks.md | 2 +- .../benchmarks/etcd-2-2-0-rc-benchmarks.md | 2 +- .../docs/v3.1/dev-guide/api_grpc_gateway.md | 3 +- content/docs/v3.1/dev-guide/local_cluster.md | 3 +- content/docs/v3.1/dl_build.md | 5 +- content/docs/v3.1/faq.md | 16 ++--- content/docs/v3.1/learning/api_guarantees.md | 4 +- content/docs/v3.1/learning/data_model.md | 4 +- content/docs/v3.1/learning/why.md | 5 +- content/docs/v3.1/metrics.md | 2 +- content/docs/v3.1/op-guide/clustering.md | 6 +- content/docs/v3.1/op-guide/configuration.md | 4 +- content/docs/v3.1/op-guide/monitoring.md | 4 +- .../v3.1/op-guide/runtime-configuration.md | 6 +- content/docs/v3.1/op-guide/security.md | 4 +- .../docs/v3.1/op-guide/supported-platform.md | 2 +- content/docs/v3.1/upgrades/_index.md | 9 +-- .../benchmarks/etcd-2-1-0-alpha-benchmarks.md | 2 +- .../benchmarks/etcd-2-2-0-rc-benchmarks.md | 2 +- .../etcd-storage-memory-benchmark.md | 1 - .../docs/v3.2/dev-guide/api_grpc_gateway.md | 3 +- content/docs/v3.2/dev-guide/local_cluster.md | 3 +- content/docs/v3.2/dl_build.md | 5 +- content/docs/v3.2/faq.md | 18 ++--- content/docs/v3.2/learning/api.md | 2 +- content/docs/v3.2/learning/api_guarantees.md | 4 +- content/docs/v3.2/learning/data_model.md | 4 +- content/docs/v3.2/learning/why.md | 58 ++++++++-------- content/docs/v3.2/metrics.md | 2 +- content/docs/v3.2/op-guide/clustering.md | 6 +- content/docs/v3.2/op-guide/configuration.md | 4 +- content/docs/v3.2/op-guide/monitoring.md | 2 +- .../v3.2/op-guide/runtime-configuration.md | 6 +- content/docs/v3.2/op-guide/security.md | 6 +- .../docs/v3.2/op-guide/supported-platform.md | 2 +- .../v3.2/platforms/container-linux-systemd.md | 6 +- content/docs/v3.2/upgrades/upgrading-etcd.md | 9 +-- .../benchmarks/etcd-2-1-0-alpha-benchmarks.md | 2 +- .../benchmarks/etcd-2-2-0-rc-benchmarks.md | 2 +- .../docs/v3.3/dev-guide/api_grpc_gateway.md | 2 +- content/docs/v3.3/dev-guide/local_cluster.md | 2 +- content/docs/v3.3/dl_build.md | 4 +- content/docs/v3.3/faq.md | 18 ++--- content/docs/v3.3/learning/api.md | 2 +- content/docs/v3.3/learning/api_guarantees.md | 4 +- content/docs/v3.3/learning/data_model.md | 4 +- content/docs/v3.3/learning/why.md | 58 ++++++++-------- content/docs/v3.3/metrics.md | 2 +- content/docs/v3.3/op-guide/clustering.md | 8 +-- content/docs/v3.3/op-guide/configuration.md | 8 +-- content/docs/v3.3/op-guide/monitoring.md | 2 +- .../v3.3/op-guide/runtime-configuration.md | 6 +- content/docs/v3.3/op-guide/security.md | 6 +- .../docs/v3.3/op-guide/supported-platform.md | 2 +- .../v3.3/platforms/container-linux-systemd.md | 6 +- content/docs/v3.3/upgrades/upgrading-etcd.md | 15 ++-- .../benchmarks/etcd-2-1-0-alpha-benchmarks.md | 2 +- .../benchmarks/etcd-2-2-0-rc-benchmarks.md | 2 +- .../docs/v3.4/dev-guide/api_grpc_gateway.md | 2 +- content/docs/v3.4/dev-guide/local_cluster.md | 2 +- content/docs/v3.4/dl-build.md | 4 +- content/docs/v3.4/faq.md | 22 +++--- content/docs/v3.4/learning/api.md | 2 +- content/docs/v3.4/learning/api_guarantees.md | 2 +- content/docs/v3.4/learning/data_model.md | 4 +- content/docs/v3.4/learning/why.md | 58 ++++++++-------- content/docs/v3.4/metrics.md | 2 +- content/docs/v3.4/op-guide/clustering.md | 8 +-- content/docs/v3.4/op-guide/configuration.md | 27 ++++---- content/docs/v3.4/op-guide/monitoring.md | 2 +- .../v3.4/op-guide/runtime-configuration.md | 10 +-- content/docs/v3.4/op-guide/security.md | 6 +- .../docs/v3.4/op-guide/supported-platform.md | 2 +- .../v3.4/platforms/container-linux-systemd.md | 6 +- content/docs/v3.4/upgrades/upgrading-etcd.md | 15 ++-- 100 files changed, 352 insertions(+), 386 deletions(-) diff --git a/content/docs/next/benchmarks/etcd-2-1-0-alpha-benchmarks.md b/content/docs/next/benchmarks/etcd-2-1-0-alpha-benchmarks.md index 035522df..fc00fcd1 100644 --- a/content/docs/next/benchmarks/etcd-2-1-0-alpha-benchmarks.md +++ b/content/docs/next/benchmarks/etcd-2-1-0-alpha-benchmarks.md @@ -54,5 +54,5 @@ Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send req | 256 | 64 | all servers | 1033 | 121.5 | | 256 | 256 | all servers | 3061 | 119.3 | -[hey]: https://github.com/rakyll/hey [hack-benchmark]: https://github.com/coreos/etcd/tree/master/hack/benchmark +[hey]: https://github.com/rakyll/hey diff --git a/content/docs/next/benchmarks/etcd-2-2-0-rc-benchmarks.md b/content/docs/next/benchmarks/etcd-2-2-0-rc-benchmarks.md index c31920c5..22b1adad 100644 --- a/content/docs/next/benchmarks/etcd-2-2-0-rc-benchmarks.md +++ b/content/docs/next/benchmarks/etcd-2-2-0-rc-benchmarks.md @@ -72,7 +72,7 @@ Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send req - write QPS to all servers is increased by 30~80% because follower could receive latest commit index earlier and commit proposals faster. -[hey]: https://github.com/rakyll/hey [c7146bd5]: https://github.com/coreos/etcd/commits/c7146bd5f2c73716091262edc638401bb8229144 [etcd-2.1-benchmark]: etcd-2-1-0-alpha-benchmarks [hack-benchmark]: https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark +[hey]: https://github.com/rakyll/hey diff --git a/content/docs/next/benchmarks/etcd-storage-memory-benchmark.md b/content/docs/next/benchmarks/etcd-storage-memory-benchmark.md index b5a5e220..4a92a719 100644 --- a/content/docs/next/benchmarks/etcd-storage-memory-benchmark.md +++ b/content/docs/next/benchmarks/etcd-storage-memory-benchmark.md @@ -99,4 +99,3 @@ Based on the result, we know the value size does not significantly impact the me [btree]: https://en.wikipedia.org/wiki/B-tree [pagecache]: https://en.wikipedia.org/wiki/Page_cache - diff --git a/content/docs/next/dev-guide/api_grpc_gateway.md b/content/docs/next/dev-guide/api_grpc_gateway.md index 5e68a936..cd290b9c 100644 --- a/content/docs/next/dev-guide/api_grpc_gateway.md +++ b/content/docs/next/dev-guide/api_grpc_gateway.md @@ -130,8 +130,8 @@ curl -L http://localhost:2379/v3/kv/put \ Generated [Swagger][swagger] API definitions can be found at [rpc.swagger.json][swagger-doc]. [api-ref]: ./api_reference_v3 -[go-client]: https://github.com/etcd-io/etcd/tree/master/client/v3 [etcdctl]: https://github.com/coreos/etcd/tree/master/etcdctl +[go-client]: https://github.com/etcd-io/etcd/tree/master/client/v3 [grpc]: https://www.grpc.io/ [grpc-gateway]: https://github.com/grpc-ecosystem/grpc-gateway [json-mapping]: https://developers.google.com/protocol-buffers/docs/proto3#json diff --git a/content/docs/next/dev-guide/local_cluster.md b/content/docs/next/dev-guide/local_cluster.md index 6067adfd..60b7a5aa 100644 --- a/content/docs/next/dev-guide/local_cluster.md +++ b/content/docs/next/dev-guide/local_cluster.md @@ -149,5 +149,5 @@ To exercise etcd's fault tolerance, kill a member and attempt to retrieve the ke Restarting the member re-establish the connection. `etcdctl` will now be able to retrieve the key successfully. To learn more about interacting with etcd, read [interacting with etcd section][interacting]. -[interacting]: ./interacting_v3 [clustering]: ../op-guide/clustering +[interacting]: ./interacting_v3 diff --git a/content/docs/next/dl-build.md b/content/docs/next/dl-build.md index 388d76e7..63a0e391 100644 --- a/content/docs/next/dl-build.md +++ b/content/docs/next/dl-build.md @@ -64,6 +64,6 @@ OK If OK is printed, then etcd is working! +[example-hardware-configurations]: op-guide/hardware#example-hardware-configurations [github-release]: https://github.com/etcd-io/etcd/releases/ [go]: https://golang.org/doc/install -[example-hardware-configurations]: op-guide/hardware#example-hardware-configurations diff --git a/content/docs/next/faq.md b/content/docs/next/faq.md index d82fe06d..cb09dae4 100644 --- a/content/docs/next/faq.md +++ b/content/docs/next/faq.md @@ -155,21 +155,21 @@ If none of the above suggestions clear the warnings, please [open an issue][new_ etcd sends a snapshot of its complete key-value store to refresh slow followers and for [backups][backup]. Slow snapshot transfer times increase MTTR; if the cluster is ingesting data with high throughput, slow followers may livelock by needing a new snapshot before finishing receiving a snapshot. To catch slow snapshot performance, etcd warns when sending a snapshot takes more than thirty seconds and exceeds the expected transfer time for a 1Gbps connection. -[hardware-setup]: op-guide/hardware -[supported-platform]: op-guide/supported-platform -[wal_fsync_duration_seconds]: metrics#disk -[tuning]: tuning -[new_issue]: https://github.com/etcd-io/etcd/issues/new +[api-mvcc]: learning/api#revisions [backend_commit_metrics]: metrics#disk -[raft]: https://raft.github.io/raft.pdf [backup]: op-guide/recovery#snapshotting-the-keyspace -[chubby]: http://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf -[runtime reconfiguration]: op-guide/runtime-configuration [benchmark]: https://github.com/coreos/etcd/tree/master/tools/benchmark [benchmark-result]: op-guide/performance -[api-mvcc]: learning/api#revisions +[chubby]: http://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf +[fio]: https://github.com/axboe/fio +[fio-blog-post]: https://www.ibm.com/cloud/blog/using-fio-to-tell-whether-your-storage-is-fast-enough-for-etcd +[hardware-setup]: op-guide/hardware [maintenance-compact]: op-guide/maintenance#history-compaction-v3-api-key-value-database [maintenance-defragment]: op-guide/maintenance#defragmentation [maintenance-disarm]: https://github.com/etcd-io/etcd/blob/master/etcdctl/README.md#alarm-disarm -[fio]: https://github.com/axboe/fio -[fio-blog-post]: https://www.ibm.com/cloud/blog/using-fio-to-tell-whether-your-storage-is-fast-enough-for-etcd +[new_issue]: https://github.com/etcd-io/etcd/issues/new +[raft]: https://raft.github.io/raft.pdf +[runtime reconfiguration]: op-guide/runtime-configuration +[supported-platform]: op-guide/supported-platform +[tuning]: tuning +[wal_fsync_duration_seconds]: metrics#disk diff --git a/content/docs/next/learning/api.md b/content/docs/next/learning/api.md index 1df97bbf..52ae69cd 100644 --- a/content/docs/next/learning/api.md +++ b/content/docs/next/learning/api.md @@ -477,9 +477,9 @@ message LeaseKeepAliveResponse { * TTL - the new time-to-live, in seconds, that the lease has remaining. [elections]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/election.go -[kv-proto]: https://github.com/etcd-io/etcd/blob/master/api/mvccpb/kv.proto [grpc-api]: ../dev-guide/api_reference_v3 [grpc-service]: https://github.com/etcd-io/etcd/blob/master/api/etcdserverpb/rpc.proto +[kv-proto]: https://github.com/etcd-io/etcd/blob/master/api/mvccpb/kv.proto [locks]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/mutex.go [mvcc]: https://en.wikipedia.org/wiki/Multiversion_concurrency_control [stm]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/stm.go diff --git a/content/docs/next/learning/api_guarantees.md b/content/docs/next/learning/api_guarantees.md index ef64dcb4..226eae61 100644 --- a/content/docs/next/learning/api_guarantees.md +++ b/content/docs/next/learning/api_guarantees.md @@ -60,10 +60,9 @@ etcd ensures linearizability for all other operations by default. Linearizabilit etcd provides [a lease mechanism][lease]. The primary use case of a lease is implementing distributed coordination mechanisms like distributed locks. The lease mechanism itself is simple: a lease can be created with the grant API, attached to a key with the put API, revoked with the revoke API, and will be expired by the wall clock time to live (TTL). However, users need to be aware about [the important properties of the APIs and usage][why] for implementing correct distributed coordination mechanisms. -[txn]: api#transaction +[lease]: https://web.stanford.edu/class/cs240/readings/89-leases.pdf [linearizability]: https://cs.brown.edu/~mph/HerlihyW90/p463-herlihy.pdf -[strict_serializability]: http://jepsen.io/consistency/models/strict-serializable [serializable_isolation]: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Serializable -[Linearizability]: #Linearizability -[lease]: https://web.stanford.edu/class/cs240/readings/89-leases.pdf +[strict_serializability]: http://jepsen.io/consistency/models/strict-serializable +[txn]: api#transaction [why]: why#notes-on-the-usage-of-lock-and-lease diff --git a/content/docs/next/learning/data_model.md b/content/docs/next/learning/data_model.md index d0d35489..b49d569e 100644 --- a/content/docs/next/learning/data_model.md +++ b/content/docs/next/learning/data_model.md @@ -24,6 +24,6 @@ The key of key-value pair is a 3-tuple (major, sub, type). Major is the store re etcd also keeps a secondary in-memory [btree][btree] index to speed up range queries over keys. The keys in the btree index are the keys of the store exposed to user. The value is a pointer to the modification of the persistent b+tree. Compaction removes dead pointers. -[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 +[btree]: https://en.wikipedia.org/wiki/B-tree +[persistent-ds]: https://en.wikipedia.org/wiki/Persistent_data_structure diff --git a/content/docs/next/learning/lock/README.md b/content/docs/next/learning/lock/README.md index e35defa2..8b045ab6 100644 --- a/content/docs/next/learning/lock/README.md +++ b/content/docs/next/learning/lock/README.md @@ -55,7 +55,7 @@ failed to write to storage: error: given version (4703569812595502721) differ fr ### Notes on the parameters related to stop the world GC pause `client` program includes two constant values: `nrGarbageObjects` and `sessionTTL`. These parameters are configured for causing lease expiration with stop the world GC pause of go runtime. They heavily rely on resources of a machine for executing the example. If lease expiration doesn't happen on your machine, update these parameters and try again. -[why.md]: ../why#notes-on-the-usage-of-lock-and-lease [fencing]: https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html -[unsafe-lock]: https://martin.kleppmann.com/2016/02/unsafe-lock.png [fencing-tokens]: https://martin.kleppmann.com/2016/02/fencing-tokens.png +[unsafe-lock]: https://martin.kleppmann.com/2016/02/unsafe-lock.png +[why.md]: ../why#notes-on-the-usage-of-lock-and-lease diff --git a/content/docs/next/learning/why.md b/content/docs/next/learning/why.md index 280ed21f..72ae43d7 100644 --- a/content/docs/next/learning/why.md +++ b/content/docs/next/learning/why.md @@ -97,48 +97,48 @@ Why do etcd and other systems provide lease if they provide mutual exclusion bas Note that in the case of etcd keys, it can be locked efficiently because of the mechanisms of lease and version number validation. If users need to protect resources which aren't related to etcd, the resources must provide the version number validation mechanism and consistency of replicas like keys of etcd. The lock feature of etcd itself cannot be used for protecting external resources. -[production-users]: https://github.com/etcd-io/etcd/blob/master/ADOPTERS.md -[grpc]: https://www.grpc.io +[chubby]: https://research.google/pubs/pub27897/ +[cockroach]: https://github.com/cockroachdb/cockroach +[cockroach-grant]: https://www.cockroachlabs.com/docs/stable/grant.html +[consul-acl]: https://www.consul.io/docs/internals/acl.html [consul-bulletproof]: https://www.consul.io/docs/internals/sessions.html +[consul-json]: https://www.consul.io/docs/agent/http.html#formatted-json-output +[consul-linread]: https://www.consul.io/docs/agent/http.html#consistency +[consul-lock]: https://www.consul.io/commands/lock +[consul-reconfig]: https://www.consul.io/docs/guides/servers.html +[consul-txn]: https://www.consul.io/docs/agent/http/kv.html#txn +[consul-watch]: https://www.consul.io/docs/agent/watches.html +[container-linux]: https://coreos.com/why [curator]: http://curator.apache.org/ -[cockroach]: https://github.com/cockroachdb/cockroach -[spanner]: https://cloud.google.com/spanner/ -[tidb]: https://github.com/pingcap/tidb -[etcd-v3lock]: https://godoc.org/github.com/etcd-io/etcd/server/etcdserver/api/v3lock/v3lockpb -[etcd-v3election]: https://godoc.org/github.com/etcd-io/etcd/server/etcdserver/api/v3election/v3electionpb -[etcd-etcdctl-lock]: https://github.com/etcd-io/etcd/blob/master/etcdctl/README.md#lock-options-lockname-command-arg1-arg2- +[dbtester-comparison-results]: https://github.com/coreos/dbtester/tree/master/test-results/2018Q1-02-etcd-zookeeper-consul +[etcd-commonname]: ../op-guide/authentication#using-tls-common-name [etcd-etcdctl-elect]: https://github.com/etcd-io/etcd/blob/master/etcdctl/README.md#elect-options-election-name-proposal +[etcd-etcdctl-lock]: https://github.com/etcd-io/etcd/blob/master/etcdctl/README.md#lock-options-lockname-command-arg1-arg2- +[etcd-json]: ../dev-guide/api_grpc_gateway +[etcd-linread]: api_guarantees#isolation-level-and-consistency-of-replicas [etcd-mvcc]: data_model +[etcd-rbac]: ../op-guide/authentication#working-with-roles [etcd-recipe]: https://godoc.org/github.com/etcd-io/etcd/client/v3/experimental/recipes -[consul-lock]: https://www.consul.io/commands/lock -[newsql-leader]: http://dl.acm.org/citation.cfm?id=2960999 [etcd-reconfig]: ../op-guide/runtime-configuration -[zk-reconfig]: https://zookeeper.apache.org/doc/current/zookeeperReconfig.html -[consul-reconfig]: https://www.consul.io/docs/guides/servers.html -[etcd-linread]: api_guarantees#isolation-level-and-consistency-of-replicas -[consul-linread]: https://www.consul.io/docs/agent/http.html#consistency -[etcd-json]: ../dev-guide/api_grpc_gateway -[consul-json]: https://www.consul.io/docs/agent/http.html#formatted-json-output [etcd-txn]: api#transaction -[zk-txn]: https://zookeeper.apache.org/doc/r3.4.3/api/org/apache/zookeeper/ZooKeeper.html#multi(java.lang.Iterable) -[consul-txn]: https://www.consul.io/docs/agent/http/kv.html#txn +[etcd-v3election]: https://godoc.org/github.com/etcd-io/etcd/server/etcdserver/api/v3election/v3electionpb +[etcd-v3lock]: https://godoc.org/github.com/etcd-io/etcd/server/etcdserver/api/v3lock/v3lockpb [etcd-watch]: api#watch-streams -[zk-watch]: https://zookeeper.apache.org/doc/current/zookeeperProgrammers.html#ch_zkWatches -[consul-watch]: https://www.consul.io/docs/agent/watches.html -[etcd-commonname]: ../op-guide/authentication#using-tls-common-name -[etcd-rbac]: ../op-guide/authentication#working-with-roles -[zk-acl]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl -[consul-acl]: https://www.consul.io/docs/internals/acl.html -[cockroach-grant]: https://www.cockroachlabs.com/docs/stable/grant.html -[spanner-roles]: https://cloud.google.com/spanner/docs/iam#roles -[zk-bindings]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#ch_bindings -[container-linux]: https://coreos.com/why -[locksmith]: https://github.com/coreos/locksmith -[kubernetes]: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ -[dbtester-comparison-results]: https://github.com/coreos/dbtester/tree/master/test-results/2018Q1-02-etcd-zookeeper-consul [etcdlease]: https://godoc.org/github.com/etcd-io/etcd/client/v3/leasing -[lease]: https://web.stanford.edu/class/cs240/readings/89-leases.pdf -[chubby]: https://research.google/pubs/pub27897/ [fencing]: https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html -[physicalclock]: http://www.dainf.cefetpr.br/~tacla/SDII/PracticalUseOfClocks.pdf [fencing-zk]: https://fpj.me/2016/02/10/note-on-fencing-and-distributed-locks/ +[grpc]: https://www.grpc.io +[kubernetes]: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ +[lease]: https://web.stanford.edu/class/cs240/readings/89-leases.pdf +[locksmith]: https://github.com/coreos/locksmith +[newsql-leader]: http://dl.acm.org/citation.cfm?id=2960999 +[physicalclock]: http://www.dainf.cefetpr.br/~tacla/SDII/PracticalUseOfClocks.pdf +[production-users]: https://github.com/etcd-io/etcd/blob/master/ADOPTERS.md +[spanner]: https://cloud.google.com/spanner/ +[spanner-roles]: https://cloud.google.com/spanner/docs/iam#roles +[tidb]: https://github.com/pingcap/tidb +[zk-acl]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl +[zk-bindings]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#ch_bindings +[zk-reconfig]: https://zookeeper.apache.org/doc/current/zookeeperReconfig.html +[zk-txn]: https://zookeeper.apache.org/doc/r3.4.3/api/org/apache/zookeeper/ZooKeeper.html#multi(java.lang.Iterable) +[zk-watch]: https://zookeeper.apache.org/doc/current/zookeeperProgrammers.html#ch_zkWatches diff --git a/content/docs/next/metrics.md b/content/docs/next/metrics.md index 36bd1c35..ca0b3446 100644 --- a/content/docs/next/metrics.md +++ b/content/docs/next/metrics.md @@ -116,8 +116,8 @@ Heavy file descriptor (`process_open_fds`) usage (i.e., near the process's file {{< metrics-list dir="../content/docs/next/metrics" regexp="." >}} +[go-grpc-prometheus]: https://github.com/grpc-ecosystem/go-grpc-prometheus [prometheus]: https://prometheus.io/ [prometheus-getting-started]: https://prometheus.io/docs/introduction/getting_started/ [prometheus-naming]: https://prometheus.io/docs/practices/naming/ [v2-http-metrics]: /docs/v2.3/metrics/#http-requests -[go-grpc-prometheus]: https://github.com/grpc-ecosystem/go-grpc-prometheus diff --git a/content/docs/next/op-guide/clustering.md b/content/docs/next/op-guide/clustering.md index 554c36c9..a800c07f 100644 --- a/content/docs/next/op-guide/clustering.md +++ b/content/docs/next/op-guide/clustering.md @@ -486,15 +486,15 @@ When the `--proxy` flag is set, etcd runs in [proxy mode][proxy]. This proxy mod To setup an etcd cluster with proxies of v2 API, please read the the [clustering doc in etcd 2.3 release][clustering_etcd2]. +[clustering_etcd2]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/clustering.md [conf-adv-client]: configuration#--advertise-client-urls [conf-listen-client]: configuration#--listen-client-urls [discovery-proto]: ../dev-internal/discovery_protocol +[gateway]: gateway +[proxy]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/proxy.md [rfc-srv]: http://www.ietf.org/rfc/rfc2052.txt [runtime-conf]: runtime-configuration [runtime-reconf-design]: runtime-reconf-design -[proxy]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/proxy.md -[clustering_etcd2]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/clustering.md -[security-guide]: security [security-guide-dns-srv]: security#notes-for-dns-srv +[security-guide]: security [tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup -[gateway]: gateway diff --git a/content/docs/next/op-guide/hardware.md b/content/docs/next/op-guide/hardware.md index 1397956c..d4b6f57d 100644 --- a/content/docs/next/op-guide/hardware.md +++ b/content/docs/next/op-guide/hardware.md @@ -95,4 +95,3 @@ Example application workload: A 3,000 node Kubernetes cluster [fio]: https://github.com/axboe/fio [fio-blog-post]: https://www.ibm.com/cloud/blog/using-fio-to-tell-whether-your-storage-is-fast-enough-for-etcd [tuning]: ../tuning.md - diff --git a/content/docs/next/op-guide/monitoring.md b/content/docs/next/op-guide/monitoring.md index af695b31..8639137d 100644 --- a/content/docs/next/op-guide/monitoring.md +++ b/content/docs/next/op-guide/monitoring.md @@ -130,6 +130,6 @@ Sample dashboard: ![](../etcd-sample-grafana.png) -[prometheus]: https://prometheus.io/ [grafana]: http://grafana.org/ +[prometheus]: https://prometheus.io/ [template]: ../grafana.json diff --git a/content/docs/next/op-guide/runtime-configuration.md b/content/docs/next/op-guide/runtime-configuration.md index 7e1d8bf8..f80f1a93 100644 --- a/content/docs/next/op-guide/runtime-configuration.md +++ b/content/docs/next/op-guide/runtime-configuration.md @@ -240,13 +240,13 @@ It is enabled by default. [cluster-reconf]: #cluster-reconfiguration-operations [conf-adv-peer]: configuration#clustering-flags [conf-name]: configuration#member-flags +[design-learner]: ../learning/design-learner [disaster recovery]: recovery +[error cases when promoting a member]: #error-cases-when-promoting-a-learner-member +[fault tolerance table]: /docs/v2.3/admin_guide#fault-tolerance-table [majority failure]: #restart-cluster-from-majority-failure +[member migration]: /docs/v2.3/admin_guide#member-migration +[member-api]: /docs/v2.3/members_api [member-api-grpc]: ../dev-guide/api_reference_v3 [remove member]: #remove-a-member [runtime-reconf]: runtime-reconf-design -[error cases when promoting a member]: #error-cases-when-promoting-a-learner-member -[design-learner]: ../learning/design-learner -[member-api]: /docs/v2.3/members_api -[member migration]: /docs/v2.3/admin_guide#member-migration -[fault tolerance table]: /docs/v2.3/admin_guide#fault-tolerance-table diff --git a/content/docs/next/op-guide/security.md b/content/docs/next/op-guide/security.md index 39b293d4..53489108 100644 --- a/content/docs/next/op-guide/security.md +++ b/content/docs/next/op-guide/security.md @@ -437,9 +437,9 @@ No. etcd doesn't encrypt key/value data stored on disk drives. If a user need to ### I’m seeing a log warning that "directory X exist without recommended permission -rwx------" When etcd create certain new directories it sets file permission to 700 to prevent unprivileged access as possible. However, if user has already created a directory with own preference, etcd uses the existing directory and logs a warning message if the permission is different than 700. -[cfssl]: https://github.com/cloudflare/cfssl -[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup -[tls-guide]: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md [alt-name]: http://wiki.cacert.org/FAQ/subjectAltName [auth]: authentication +[cfssl]: https://github.com/cloudflare/cfssl [dm-crypt]: https://en.wikipedia.org/wiki/Dm-crypt +[tls-guide]: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md +[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup diff --git a/content/docs/next/op-guide/supported-platform.md b/content/docs/next/op-guide/supported-platform.md index 683f7481..4dbd4420 100644 --- a/content/docs/next/op-guide/supported-platform.md +++ b/content/docs/next/op-guide/supported-platform.md @@ -40,5 +40,5 @@ To avoid inadvertently running a possibly unstable etcd server, `etcd` on unstab Currently amd64 and ppc64le architectures are officially supported by `etcd`. -[go-issue]: https://github.com/golang/go/issues/599 [go-atomic]: https://golang.org/pkg/sync/atomic/#pkg-note-BUG +[go-issue]: https://github.com/golang/go/issues/599 diff --git a/content/docs/next/platforms/container-linux-systemd.md b/content/docs/next/platforms/container-linux-systemd.md index 788430ff..c6daa62b 100644 --- a/content/docs/next/platforms/container-linux-systemd.md +++ b/content/docs/next/platforms/container-linux-systemd.md @@ -199,9 +199,9 @@ To stop and disable: systemctl disable --now etcd2.service ``` -[systemd-docs]: https://github.com/systemd/systemd +[container-linux-ct]: https://github.com/coreos/container-linux-config-transpiler [container-linux-docs]: https://coreos.com/os/docs/latest [container-linux-faq]: https://github.com/coreos/docs/blob/master/etcd/os-faq.md -[container-linux-provision]: https://github.com/coreos/docs/blob/master/os/provisioning.md [container-linux-ignition]: https://github.com/coreos/docs/blob/master/ignition/what-is-ignition.md -[container-linux-ct]: https://github.com/coreos/container-linux-config-transpiler +[container-linux-provision]: https://github.com/coreos/docs/blob/master/os/provisioning.md +[systemd-docs]: https://github.com/systemd/systemd diff --git a/content/docs/next/upgrades/upgrading-etcd.md b/content/docs/next/upgrades/upgrading-etcd.md index 20de2fd0..0d712ba9 100644 --- a/content/docs/next/upgrades/upgrading-etcd.md +++ b/content/docs/next/upgrades/upgrading-etcd.md @@ -11,18 +11,13 @@ This section contains documents specific to upgrading etcd clusters and applicat * [Migrate applications from using API v2 to API v3][migrate-apps] ## Upgrading an etcd v3.x cluster -* [Upgrade etcd from 3.0 to 3.1][upgrade-3-1] -* [Upgrade etcd from 3.1 to 3.2][upgrade-3-2] -* [Upgrade etcd from 3.2 to 3.3][upgrade-3-3] -* [Upgrade etcd from 3.3 to 3.4][upgrade-3-4] +* [Upgrade etcd from 3.0 to 3.1](upgrade_3_1) +* [Upgrade etcd from 3.1 to 3.2](upgrade_3_2) +* [Upgrade etcd from 3.2 to 3.3](upgrade_3_3) +* [Upgrade etcd from 3.3 to 3.4](upgrade_3_4) ## Upgrading from etcd v2.3 -* [Upgrade a v2.3 cluster to v3.0][upgrade-cluster] +* [Upgrade a v2.3 cluster to v3.0](upgrade_3_0) [migrate-apps]: ../op-guide/v2-migration -[upgrade-cluster]: upgrade_3_0 -[upgrade-3-1]: upgrade_3_1 -[upgrade-3-2]: upgrade_3_2 -[upgrade-3-3]: upgrade_3_3 -[upgrade-3-4]: upgrade_3_4 diff --git a/content/docs/v2.3/admin_guide.md b/content/docs/v2.3/admin_guide.md index 131f0a4d..b67cba04 100644 --- a/content/docs/v2.3/admin_guide.md +++ b/content/docs/v2.3/admin_guide.md @@ -304,9 +304,9 @@ By default, etcd uses the default configuration of the Go 1.4 runtime, which mea When using etcd in heavy-load scenarios on machines with multiple cores it will usually be desirable to increase the number of threads that etcd can utilize. To do this, simply set the environment variable GOMAXPROCS to the desired number when starting etcd. For more information on this variable, see the [Go runtime documentation][golang-runtime]. [add-a-member]: ../runtime-configuration#add-a-new-member -[golang1.5-runtime]: https://golang.org/doc/go1.5#runtime [golang-memstats]: https://golang.org/pkg/runtime/#MemStats [golang-runtime]: https://golang.org/pkg/runtime +[golang1.5-runtime]: https://golang.org/doc/go1.5#runtime [metrics]: ../metrics [prometheus]: http://prometheus.io/ [remove-a-member]: ../runtime-configuration#remove-a-member diff --git a/content/docs/v2.3/configuration.md b/content/docs/v2.3/configuration.md index 1e7533a2..d2256897 100644 --- a/content/docs/v2.3/configuration.md +++ b/content/docs/v2.3/configuration.md @@ -284,7 +284,6 @@ Follow the instructions when using these flags. + default: false [build-cluster]: ../clustering#static -[reconfig]: ../runtime-configuration [discovery]: ../clustering#discovery [iana-ports]: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt [proxy]: ../proxy diff --git a/content/docs/v2.3/runtime-configuration.md b/content/docs/v2.3/runtime-configuration.md index 4e87da87..f092278b 100644 --- a/content/docs/v2.3/runtime-configuration.md +++ b/content/docs/v2.3/runtime-configuration.md @@ -180,7 +180,7 @@ It is recommended to enable this option. However, it is disabled by default beca [disaster recovery]: ../admin_guide#disaster-recovery [fault tolerance table]: ../admin_guide#fault-tolerance-table [majority failure]: #restart-cluster-from-majority-failure -[member-api]: ../members_api [member migration]: ../admin_guide#member-migration +[member-api]: ../members_api [remove member]: #remove-a-member [runtime-reconf]: ../runtime-reconf-design diff --git a/content/docs/v2.3/security.md b/content/docs/v2.3/security.md index 4857d6da..13325089 100644 --- a/content/docs/v2.3/security.md +++ b/content/docs/v2.3/security.md @@ -189,8 +189,8 @@ Make sure that you sign your certificates with a Subject Name your member's publ If you need your certificate to be signed for your member's FQDN in its Subject Name then you could use Subject Alternative Names (short IP SANs) to add your IP address. The `etcd-ca` tool provides `--domain=` option for its `new-cert` command, and openssl can make [it][alt-name] too. -[cfssl]: https://github.com/cloudflare/cfssl -[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup -[tls-guide]: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md [alt-name]: http://wiki.cacert.org/FAQ/subjectAltName [auth]: ../authentication +[cfssl]: https://github.com/cloudflare/cfssl +[tls-guide]: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md +[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup diff --git a/content/docs/v3.1/benchmarks/etcd-2-1-0-alpha-benchmarks.md b/content/docs/v3.1/benchmarks/etcd-2-1-0-alpha-benchmarks.md index 6f19a6d0..b310ebf4 100644 --- a/content/docs/v3.1/benchmarks/etcd-2-1-0-alpha-benchmarks.md +++ b/content/docs/v3.1/benchmarks/etcd-2-1-0-alpha-benchmarks.md @@ -53,5 +53,5 @@ Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send req | 256 | 64 | all servers | 1033 | 121.5 | | 256 | 256 | all servers | 3061 | 119.3 | -[hey]: https://github.com/rakyll/hey [hack-benchmark]: https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark +[hey]: https://github.com/rakyll/hey diff --git a/content/docs/v3.1/benchmarks/etcd-2-2-0-rc-benchmarks.md b/content/docs/v3.1/benchmarks/etcd-2-2-0-rc-benchmarks.md index 4c15066a..72f344d3 100644 --- a/content/docs/v3.1/benchmarks/etcd-2-2-0-rc-benchmarks.md +++ b/content/docs/v3.1/benchmarks/etcd-2-2-0-rc-benchmarks.md @@ -70,7 +70,7 @@ Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send req - write QPS to all servers is increased by 30~80% because follower could receive latest commit index earlier and commit proposals faster. -[hey]: https://github.com/rakyll/hey [c7146bd5]: https://github.com/coreos/etcd/commits/c7146bd5f2c73716091262edc638401bb8229144 [etcd-2.1-benchmark]: etcd-2-1-0-alpha-benchmarks [hack-benchmark]: https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark +[hey]: https://github.com/rakyll/hey diff --git a/content/docs/v3.1/dev-guide/api_grpc_gateway.md b/content/docs/v3.1/dev-guide/api_grpc_gateway.md index 9adf6662..07e334ff 100644 --- a/content/docs/v3.1/dev-guide/api_grpc_gateway.md +++ b/content/docs/v3.1/dev-guide/api_grpc_gateway.md @@ -44,11 +44,10 @@ curl -L http://localhost:2379/v3alpha/kv/put \ Generated [Swagger][swagger] API definitions can be found at [rpc.swagger.json][swagger-doc]. [api-ref]: ./api_reference_v3 -[go-client]: https://github.com/etcd-io/etcd/tree/master/client/v3 [etcdctl]: https://github.com/coreos/etcd/tree/master/etcdctl +[go-client]: https://github.com/etcd-io/etcd/tree/master/client/v3 [grpc]: http://www.grpc.io/ [grpc-gateway]: https://github.com/grpc-ecosystem/grpc-gateway [json-mapping]: https://developers.google.com/protocol-buffers/docs/proto3#json [swagger]: http://swagger.io/ [swagger-doc]: https://github.com/etcd-io/etcd/blob/master/Documentation/dev-guide/apispec/swagger/rpc.swagger.json - diff --git a/content/docs/v3.1/dev-guide/local_cluster.md b/content/docs/v3.1/dev-guide/local_cluster.md index f997ce52..0da33270 100644 --- a/content/docs/v3.1/dev-guide/local_cluster.md +++ b/content/docs/v3.1/dev-guide/local_cluster.md @@ -87,6 +87,5 @@ hello To learn more about interacting with etcd, read [interacting with etcd section][interacting]. -[interacting]: ./interacting_v3 [clustering]: ../op-guide/clustering - +[interacting]: ./interacting_v3 diff --git a/content/docs/v3.1/dl_build.md b/content/docs/v3.1/dl_build.md index 84ed7be4..4fece56f 100644 --- a/content/docs/v3.1/dl_build.md +++ b/content/docs/v3.1/dl_build.md @@ -71,8 +71,7 @@ OK If OK is printed, then etcd is working! -[github-release]: https://github.com/coreos/etcd/releases/ -[go]: https://golang.org/doc/install [build-script]: ../build [cmd-directory]: ../cmd - +[github-release]: https://github.com/coreos/etcd/releases/ +[go]: https://golang.org/doc/install diff --git a/content/docs/v3.1/faq.md b/content/docs/v3.1/faq.md index 45087128..4896a155 100644 --- a/content/docs/v3.1/faq.md +++ b/content/docs/v3.1/faq.md @@ -116,15 +116,15 @@ Every new etcd cluster generates a new cluster ID based on the initial cluster c Usually this warning happens after tearing down an old cluster, then reusing some of the peer addresses for the new cluster. If any etcd process from the old cluster is still running it will try to contact the new cluster. The new cluster will recognize a cluster ID mismatch, then ignore the request and emit this warning. This warning is often cleared by ensuring peer addresses among distinct clusters are disjoint. -[hardware-setup]: ./op-guide/hardware -[supported-platform]: ./op-guide/supported-platform -[wal_fsync_duration_seconds]: ./metrics#disk -[tuning]: ./tuning -[new_issue]: https://github.com/coreos/etcd/issues/new [backend_commit_metrics]: ./metrics#disk -[raft]: https://raft.github.io/raft.pdf [backup]: https://github.com/coreos/etcd/blob/master/Documentation/op-guide/recovery.md#snapshotting-the-keyspace -[chubby]: http://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf -[runtime reconfiguration]: https://github.com/coreos/etcd/blob/master/Documentation/op-guide/runtime-configuration.md [benchmark]: https://github.com/coreos/etcd/tree/master/tools/benchmark [benchmark-result]: https://github.com/coreos/etcd/blob/master/Documentation/op-guide/performance.md +[chubby]: http://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf +[hardware-setup]: ./op-guide/hardware +[new_issue]: https://github.com/coreos/etcd/issues/new +[raft]: https://raft.github.io/raft.pdf +[runtime reconfiguration]: https://github.com/coreos/etcd/blob/master/Documentation/op-guide/runtime-configuration.md +[supported-platform]: ./op-guide/supported-platform +[tuning]: ./tuning +[wal_fsync_duration_seconds]: ./metrics#disk diff --git a/content/docs/v3.1/learning/api_guarantees.md b/content/docs/v3.1/learning/api_guarantees.md index 419c9690..64ef936f 100644 --- a/content/docs/v3.1/learning/api_guarantees.md +++ b/content/docs/v3.1/learning/api_guarantees.md @@ -59,7 +59,7 @@ 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. +[Linearizability]: #linearizability [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 +[strict_consistency]: https://en.wikipedia.org/wiki/Consistency_model#Strict_consistency diff --git a/content/docs/v3.1/learning/data_model.md b/content/docs/v3.1/learning/data_model.md index 48f7153d..f64b4aa0 100644 --- a/content/docs/v3.1/learning/data_model.md +++ b/content/docs/v3.1/learning/data_model.md @@ -22,6 +22,6 @@ The key of key-value pair is a 3-tuple (major, sub, type). Major is the store re etcd also keeps a secondary in-memory [btree][btree] index to speed up range queries over keys. The keys in the btree index are the keys of the store exposed to user. The value is a pointer to the modification of the persistent b+tree. Compaction removes dead pointers. -[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 +[btree]: https://en.wikipedia.org/wiki/B-tree +[persistent-ds]: https://en.wikipedia.org/wiki/Persistent_data_structure diff --git a/content/docs/v3.1/learning/why.md b/content/docs/v3.1/learning/why.md index eddc52e9..6fb3fc96 100644 --- a/content/docs/v3.1/learning/why.md +++ b/content/docs/v3.1/learning/why.md @@ -16,8 +16,7 @@ etcd stores metadata in a consistent and fault-tolerant way. Distributed systems TODO -[etcd-concurrency]: https://godoc.org/github.com/coreos/etcd/clientv3/concurrency [container-linux]: https://coreos.com/why -[locksmith]: https://github.com/coreos/locksmith +[etcd-concurrency]: https://godoc.org/github.com/coreos/etcd/clientv3/concurrency [kubernetes]: http://kubernetes.io/docs/whatisk8s - +[locksmith]: https://github.com/coreos/locksmith diff --git a/content/docs/v3.1/metrics.md b/content/docs/v3.1/metrics.md index 6aecea87..ac696e95 100644 --- a/content/docs/v3.1/metrics.md +++ b/content/docs/v3.1/metrics.md @@ -115,8 +115,8 @@ Heavy file descriptor (`process_open_fds`) usage (i.e., near the process's file {{< metrics-list dir="../content/docs/v3.1/metrics" regexp="." >}} [glossary-proposal]: learning/glossary#proposal +[go-grpc-prometheus]: https://github.com/grpc-ecosystem/go-grpc-prometheus [prometheus]: http://prometheus.io/ [prometheus-getting-started]: http://prometheus.io/docs/introduction/getting_started/ [prometheus-naming]: http://prometheus.io/docs/practices/naming/ [v2-http-metrics]: /docs/v2.3/metrics/#http-requests -[go-grpc-prometheus]: https://github.com/grpc-ecosystem/go-grpc-prometheus diff --git a/content/docs/v3.1/op-guide/clustering.md b/content/docs/v3.1/op-guide/clustering.md index 61ad6a37..bf4d652b 100644 --- a/content/docs/v3.1/op-guide/clustering.md +++ b/content/docs/v3.1/op-guide/clustering.md @@ -468,14 +468,14 @@ When the `--proxy` flag is set, etcd runs in [proxy mode][proxy]. This proxy mod To setup an etcd cluster with proxies of v2 API, please read the the [clustering doc in etcd 2.3 release][clustering_etcd2]. +[clustering_etcd2]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/clustering.md [conf-adv-client]: configuration#--advertise-client-urls [conf-listen-client]: configuration#--listen-client-urls [discovery-proto]: ../dev-internal/discovery_protocol +[gateway]: gateway +[proxy]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/proxy.md [rfc-srv]: http://www.ietf.org/rfc/rfc2052.txt [runtime-conf]: runtime-configuration [runtime-reconf-design]: runtime-reconf-design -[proxy]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/proxy.md -[clustering_etcd2]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/clustering.md [security-guide]: security [tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup -[gateway]: gateway diff --git a/content/docs/v3.1/op-guide/configuration.md b/content/docs/v3.1/op-guide/configuration.md index 7b623d0c..cbab3dd6 100644 --- a/content/docs/v3.1/op-guide/configuration.md +++ b/content/docs/v3.1/op-guide/configuration.md @@ -284,12 +284,12 @@ Follow the instructions when using these flags. + default: basic [build-cluster]: clustering#static -[reconfig]: runtime-configuration [discovery]: clustering#discovery [iana-ports]: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt [proxy]: /docs/v2.3/proxy +[reconfig]: runtime-configuration [restore]: /docs/v2.3/admin_guide#restoring-a-backup [security]: security +[static bootstrap]: clustering#static [systemd-intro]: http://freedesktop.org/wiki/Software/systemd/ [tuning]: ../tuning#time-parameters -[static bootstrap]: clustering#static diff --git a/content/docs/v3.1/op-guide/monitoring.md b/content/docs/v3.1/op-guide/monitoring.md index 38fe2fb8..9bcddb9d 100644 --- a/content/docs/v3.1/op-guide/monitoring.md +++ b/content/docs/v3.1/op-guide/monitoring.md @@ -78,7 +78,7 @@ Sample dashboard: ![](../etcd-sample-grafana.png) -[prometheus]: https://prometheus.io/ +[demo]: http://dash.etcd.io/dashboard/db/test-etcd [grafana]: http://grafana.org/ +[prometheus]: https://prometheus.io/ [template]: ../grafana.json -[demo]: http://dash.etcd.io/dashboard/db/test-etcd diff --git a/content/docs/v3.1/op-guide/runtime-configuration.md b/content/docs/v3.1/op-guide/runtime-configuration.md index ad7fb9e4..53ae978b 100644 --- a/content/docs/v3.1/op-guide/runtime-configuration.md +++ b/content/docs/v3.1/op-guide/runtime-configuration.md @@ -178,10 +178,10 @@ It is enabled by default. [conf-adv-peer]: configuration#--initial-advertise-peer-urls [conf-name]: configuration#--name [disaster recovery]: recovery +[fault tolerance table]: /docs/v2.3/admin_guide#fault-tolerance-table [majority failure]: #restart-cluster-from-majority-failure +[member migration]: /docs/v2.3/admin_guide#member-migration +[member-api]: /docs/v2.3/members_api [member-api-grpc]: ../dev-guide/api_reference_v3#service-cluster-etcdserveretcdserverpbrpcproto [remove member]: #remove-a-member [runtime-reconf]: runtime-reconf-design -[member-api]: /docs/v2.3/members_api -[member migration]: /docs/v2.3/admin_guide#member-migration -[fault tolerance table]: /docs/v2.3/admin_guide#fault-tolerance-table diff --git a/content/docs/v3.1/op-guide/security.md b/content/docs/v3.1/op-guide/security.md index 3051d561..a29e114b 100644 --- a/content/docs/v3.1/op-guide/security.md +++ b/content/docs/v3.1/op-guide/security.md @@ -220,7 +220,7 @@ Make sure to sign the certificates with a Subject Name the member's public IP ad The certificate needs to be signed for the member's FQDN in its Subject Name, use Subject Alternative Names (short IP SANs) to add the IP address. The `etcd-ca` tool provides `--domain=` option for its `new-cert` command, and openssl can make [it][alt-name] too. +[alt-name]: http://wiki.cacert.org/FAQ/subjectAltName [cfssl]: https://github.com/cloudflare/cfssl -[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup [tls-guide]: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md -[alt-name]: http://wiki.cacert.org/FAQ/subjectAltName +[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup diff --git a/content/docs/v3.1/op-guide/supported-platform.md b/content/docs/v3.1/op-guide/supported-platform.md index 5e6165f8..08fc7bbb 100644 --- a/content/docs/v3.1/op-guide/supported-platform.md +++ b/content/docs/v3.1/op-guide/supported-platform.md @@ -37,5 +37,5 @@ To avoid inadvertently running a possibly unstable etcd server, `etcd` on unstab Currently only the amd64 architecture is officially supported by `etcd`. -[go-issue]: https://github.com/golang/go/issues/599 [go-atomic]: https://golang.org/pkg/sync/atomic/#pkg-note-BUG +[go-issue]: https://github.com/golang/go/issues/599 diff --git a/content/docs/v3.1/upgrades/_index.md b/content/docs/v3.1/upgrades/_index.md index 8695e486..7b3fafbb 100644 --- a/content/docs/v3.1/upgrades/_index.md +++ b/content/docs/v3.1/upgrades/_index.md @@ -8,14 +8,11 @@ This section contains documents specific to upgrading etcd clusters and applicat * [Migrate applications from using API v2 to API v3][migrate-apps] ## Upgrading an etcd v3.x cluster -* [Upgrade etcd from 3.0 to 3.1][upgrade-3-1] -* [Upgrade etcd from 3.1 to 3.2][upgrade-3-2] +* [Upgrade etcd from 3.0 to 3.1](upgrade_3_1) +* [Upgrade etcd from 3.1 to 3.2](upgrade_3_2) ## Upgrading from etcd v2.3 -* [Upgrade a v2.3 cluster to v3.0][upgrade-cluster] +* [Upgrade a v2.3 cluster to v3.0](upgrade_3_0) [migrate-apps]: ../op-guide/v2-migration -[upgrade-cluster]: upgrade_3_0 -[upgrade-3-1]: upgrade_3_1 -[upgrade-3-2]: upgrade_3_2 diff --git a/content/docs/v3.2/benchmarks/etcd-2-1-0-alpha-benchmarks.md b/content/docs/v3.2/benchmarks/etcd-2-1-0-alpha-benchmarks.md index 1d3672cd..320b5c27 100644 --- a/content/docs/v3.2/benchmarks/etcd-2-1-0-alpha-benchmarks.md +++ b/content/docs/v3.2/benchmarks/etcd-2-1-0-alpha-benchmarks.md @@ -52,5 +52,5 @@ Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send req | 256 | 64 | all servers | 1033 | 121.5 | | 256 | 256 | all servers | 3061 | 119.3 | -[hey]: https://github.com/rakyll/hey [hack-benchmark]: https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark +[hey]: https://github.com/rakyll/hey diff --git a/content/docs/v3.2/benchmarks/etcd-2-2-0-rc-benchmarks.md b/content/docs/v3.2/benchmarks/etcd-2-2-0-rc-benchmarks.md index d5468e60..0fc91a25 100644 --- a/content/docs/v3.2/benchmarks/etcd-2-2-0-rc-benchmarks.md +++ b/content/docs/v3.2/benchmarks/etcd-2-2-0-rc-benchmarks.md @@ -70,7 +70,7 @@ Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send req - write QPS to all servers is increased by 30~80% because follower could receive latest commit index earlier and commit proposals faster. -[hey]: https://github.com/rakyll/hey [c7146bd5]: https://github.com/coreos/etcd/commits/c7146bd5f2c73716091262edc638401bb8229144 [etcd-2.1-benchmark]: etcd-2-1-0-alpha-benchmarks [hack-benchmark]: https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark +[hey]: https://github.com/rakyll/hey diff --git a/content/docs/v3.2/benchmarks/etcd-storage-memory-benchmark.md b/content/docs/v3.2/benchmarks/etcd-storage-memory-benchmark.md index 034f622f..c123530c 100644 --- a/content/docs/v3.2/benchmarks/etcd-storage-memory-benchmark.md +++ b/content/docs/v3.2/benchmarks/etcd-storage-memory-benchmark.md @@ -97,4 +97,3 @@ Based on the result, we know the value size does not significantly impact the me [btree]: https://en.wikipedia.org/wiki/B-tree [pagecache]: https://en.wikipedia.org/wiki/Page_cache - diff --git a/content/docs/v3.2/dev-guide/api_grpc_gateway.md b/content/docs/v3.2/dev-guide/api_grpc_gateway.md index 67e29f3c..c8693c83 100644 --- a/content/docs/v3.2/dev-guide/api_grpc_gateway.md +++ b/content/docs/v3.2/dev-guide/api_grpc_gateway.md @@ -58,11 +58,10 @@ curl -L http://localhost:2379/v3alpha/kv/txn \ Generated [Swagger][swagger] API definitions can be found at [rpc.swagger.json][swagger-doc]. [api-ref]: ./api_reference_v3 -[go-client]: https://github.com/etcd-io/etcd/tree/master/client/v3 [etcdctl]: https://github.com/coreos/etcd/tree/master/etcdctl +[go-client]: https://github.com/etcd-io/etcd/tree/master/client/v3 [grpc]: http://www.grpc.io/ [grpc-gateway]: https://github.com/grpc-ecosystem/grpc-gateway [json-mapping]: https://developers.google.com/protocol-buffers/docs/proto3#json [swagger]: http://swagger.io/ [swagger-doc]: https://github.com/etcd-io/etcd/blob/master/Documentation/dev-guide/apispec/swagger/rpc.swagger.json - diff --git a/content/docs/v3.2/dev-guide/local_cluster.md b/content/docs/v3.2/dev-guide/local_cluster.md index e4688f5b..3b4cb95a 100644 --- a/content/docs/v3.2/dev-guide/local_cluster.md +++ b/content/docs/v3.2/dev-guide/local_cluster.md @@ -87,6 +87,5 @@ hello To learn more about interacting with etcd, read [interacting with etcd section][interacting]. -[interacting]: ./interacting_v3 [clustering]: ../op-guide/clustering - +[interacting]: ./interacting_v3 diff --git a/content/docs/v3.2/dl_build.md b/content/docs/v3.2/dl_build.md index 46438bc9..304af5ae 100644 --- a/content/docs/v3.2/dl_build.md +++ b/content/docs/v3.2/dl_build.md @@ -62,8 +62,7 @@ OK If OK is printed, then etcd is working! -[github-release]: https://github.com/coreos/etcd/releases/ -[go]: https://golang.org/doc/install [build-script]: ../build [cmd-directory]: ../cmd - +[github-release]: https://github.com/coreos/etcd/releases/ +[go]: https://golang.org/doc/install diff --git a/content/docs/v3.2/faq.md b/content/docs/v3.2/faq.md index d8ab7739..bfff466f 100644 --- a/content/docs/v3.2/faq.md +++ b/content/docs/v3.2/faq.md @@ -135,19 +135,19 @@ If none of the above suggestions clear the warnings, please [open an issue][new_ etcd sends a snapshot of its complete key-value store to refresh slow followers and for [backups][backup]. Slow snapshot transfer times increase MTTR; if the cluster is ingesting data with high throughput, slow followers may livelock by needing a new snapshot before finishing receiving a snapshot. To catch slow snapshot performance, etcd warns when sending a snapshot takes more than thirty seconds and exceeds the expected transfer time for a 1Gbps connection. -[hardware-setup]: ./op-guide/hardware -[supported-platform]: ./op-guide/supported-platform -[wal_fsync_duration_seconds]: ./metrics#disk -[tuning]: ./tuning -[new_issue]: https://github.com/coreos/etcd/issues/new +[api-mvcc]: learning/api#revisions [backend_commit_metrics]: ./metrics#disk -[raft]: https://raft.github.io/raft.pdf [backup]: https://github.com/coreos/etcd/blob/master/Documentation/op-guide/recovery.md#snapshotting-the-keyspace -[chubby]: http://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf -[runtime reconfiguration]: https://github.com/coreos/etcd/blob/master/Documentation/op-guide/runtime-configuration.md [benchmark]: https://github.com/coreos/etcd/tree/master/tools/benchmark [benchmark-result]: https://github.com/coreos/etcd/blob/master/Documentation/op-guide/performance.md -[api-mvcc]: learning/api#revisions +[chubby]: http://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf +[hardware-setup]: ./op-guide/hardware [maintenance-compact]: op-guide/maintenance#history-compaction [maintenance-defragment]: op-guide/maintenance#defragmentation [maintenance-disarm]: https://github.com/etcd-io/etcd/tree/master/etcdctl#alarm-disarm +[new_issue]: https://github.com/coreos/etcd/issues/new +[raft]: https://raft.github.io/raft.pdf +[runtime reconfiguration]: https://github.com/coreos/etcd/blob/master/Documentation/op-guide/runtime-configuration.md +[supported-platform]: ./op-guide/supported-platform +[tuning]: ./tuning +[wal_fsync_duration_seconds]: ./metrics#disk diff --git a/content/docs/v3.2/learning/api.md b/content/docs/v3.2/learning/api.md index f0ef2555..c6c38c57 100644 --- a/content/docs/v3.2/learning/api.md +++ b/content/docs/v3.2/learning/api.md @@ -477,9 +477,9 @@ message LeaseKeepAliveResponse { * TTL - the new time-to-live, in seconds, that the lease has remaining. [elections]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/election.go -[kv-proto]: https://github.com/coreos/etcd/blob/master/mvcc/mvccpb/kv.proto [grpc-api]: ../dev-guide/api_reference_v3 [grpc-service]: https://github.com/coreos/etcd/blob/master/etcdserver/etcdserverpb/rpc.proto +[kv-proto]: https://github.com/coreos/etcd/blob/master/mvcc/mvccpb/kv.proto [locks]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/mutex.go [mvcc]: https://en.wikipedia.org/wiki/Multiversion_concurrency_control [stm]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/stm.go diff --git a/content/docs/v3.2/learning/api_guarantees.md b/content/docs/v3.2/learning/api_guarantees.md index ca11014a..b30b17fc 100644 --- a/content/docs/v3.2/learning/api_guarantees.md +++ b/content/docs/v3.2/learning/api_guarantees.md @@ -59,8 +59,8 @@ 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. +[Linearizability]: #linearizability [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 +[strict_consistency]: https://en.wikipedia.org/wiki/Consistency_model#Strict_consistency [txn]: api#transaction diff --git a/content/docs/v3.2/learning/data_model.md b/content/docs/v3.2/learning/data_model.md index 48f7153d..f64b4aa0 100644 --- a/content/docs/v3.2/learning/data_model.md +++ b/content/docs/v3.2/learning/data_model.md @@ -22,6 +22,6 @@ The key of key-value pair is a 3-tuple (major, sub, type). Major is the store re etcd also keeps a secondary in-memory [btree][btree] index to speed up range queries over keys. The keys in the btree index are the keys of the store exposed to user. The value is a pointer to the modification of the persistent b+tree. Compaction removes dead pointers. -[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 +[btree]: https://en.wikipedia.org/wiki/B-tree +[persistent-ds]: https://en.wikipedia.org/wiki/Persistent_data_structure diff --git a/content/docs/v3.2/learning/why.md b/content/docs/v3.2/learning/why.md index a42279d4..2e698a99 100644 --- a/content/docs/v3.2/learning/why.md +++ b/content/docs/v3.2/learning/why.md @@ -77,42 +77,42 @@ In theory, it’s possible to build these primitives atop any storage systems pr For distributed coordination, choosing etcd can help prevent operational headaches and save engineering effort. -[production-users]: ../production-users -[grpc]: http://www.grpc.io +[cockroach-grant]: https://www.cockroachlabs.com/docs/grant.html +[cockroach]: https://github.com/cockroachdb/cockroach +[consul-acl]: https://www.consul.io/docs/internals/acl.html [consul-bulletproof]: https://www.consul.io/docs/internals/sessions.html +[consul-json]: https://www.consul.io/docs/agent/http.html#formatted-json-output +[consul-linread]: https://www.consul.io/docs/agent/http.html#consistency +[consul-lock]: https://www.consul.io/docs/commands/lock.html +[consul-reconfig]: https://www.consul.io/docs/guides/servers.html +[consul-txn]: https://www.consul.io/docs/agent/http/kv.html#txn +[consul-watch]: https://www.consul.io/docs/agent/watches.html +[container-linux]: https://coreos.com/why [curator]: http://curator.apache.org/ -[cockroach]: https://github.com/cockroachdb/cockroach -[spanner]: https://cloud.google.com/spanner/ -[tidb]: https://github.com/pingcap/tidb -[etcd-v3lock]: https://godoc.org/github.com/coreos/etcd/etcdserver/api/v3lock/v3lockpb -[etcd-v3election]: https://godoc.org/github.com/coreos/etcd/etcdserver/api/v3election/v3electionpb -[etcd-etcdctl-lock]: https://github.com/etcd-io/etcd/tree/master/etcdctl/README.md#lock-lockname-command-arg1-arg2- +[dbtester-comparison-results]: https://github.com/coreos/dbtester/tree/master/test-results/2018Q1-02-etcd-zookeeper-consul +[etcd-commonname]: ../op-guide/authentication#using-tls-common-name [etcd-etcdctl-elect]: https://github.com/etcd-io/etcd/tree/master/etcdctl/README.md#elect-options-election-name-proposal +[etcd-etcdctl-lock]: https://github.com/etcd-io/etcd/tree/master/etcdctl/README.md#lock-lockname-command-arg1-arg2- +[etcd-json]: ../dev-guide/api_grpc_gateway +[etcd-linread]: api_guarantees#linearizability [etcd-mvcc]: data_model +[etcd-rbac]: ../op-guide/authentication#working-with-roles [etcd-recipe]: https://godoc.org/github.com/coreos/etcd/contrib/recipes -[consul-lock]: https://www.consul.io/docs/commands/lock.html -[newsql-leader]: http://dl.acm.org/citation.cfm?id=2960999 [etcd-reconfig]: ../op-guide/runtime-configuration -[zk-reconfig]: https://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html -[consul-reconfig]: https://www.consul.io/docs/guides/servers.html -[etcd-linread]: api_guarantees#linearizability -[consul-linread]: https://www.consul.io/docs/agent/http.html#consistency -[etcd-json]: ../dev-guide/api_grpc_gateway -[consul-json]: https://www.consul.io/docs/agent/http.html#formatted-json-output [etcd-txn]: api#transaction -[zk-txn]: https://zookeeper.apache.org/doc/r3.4.3/api/org/apache/zookeeper/ZooKeeper.html#multi(java.lang.Iterable) -[consul-txn]: https://www.consul.io/docs/agent/http/kv.html#txn +[etcd-v3election]: https://godoc.org/github.com/coreos/etcd/etcdserver/api/v3election/v3electionpb +[etcd-v3lock]: https://godoc.org/github.com/coreos/etcd/etcdserver/api/v3lock/v3lockpb [etcd-watch]: api#watch-streams -[zk-watch]: https://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html#ch_zkWatches -[consul-watch]: https://www.consul.io/docs/agent/watches.html -[etcd-commonname]: ../op-guide/authentication#using-tls-common-name -[etcd-rbac]: ../op-guide/authentication#working-with-roles -[zk-acl]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl -[consul-acl]: https://www.consul.io/docs/internals/acl.html -[cockroach-grant]: https://www.cockroachlabs.com/docs/grant.html +[grpc]: http://www.grpc.io +[kubernetes]: http://kubernetes.io/docs/whatisk8s +[locksmith]: https://github.com/coreos/locksmith +[newsql-leader]: http://dl.acm.org/citation.cfm?id=2960999 +[production-users]: ../production-users +[spanner]: https://cloud.google.com/spanner/ [spanner-roles]: https://cloud.google.com/spanner/docs/iam#roles +[tidb]: https://github.com/pingcap/tidb +[zk-acl]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl [zk-bindings]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#ch_bindings -[container-linux]: https://coreos.com/why -[locksmith]: https://github.com/coreos/locksmith -[kubernetes]: http://kubernetes.io/docs/whatisk8s -[dbtester-comparison-results]: https://github.com/coreos/dbtester/tree/master/test-results/2018Q1-02-etcd-zookeeper-consul +[zk-reconfig]: https://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html +[zk-txn]: https://zookeeper.apache.org/doc/r3.4.3/api/org/apache/zookeeper/ZooKeeper.html#multi(java.lang.Iterable) +[zk-watch]: https://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html#ch_zkWatches diff --git a/content/docs/v3.2/metrics.md b/content/docs/v3.2/metrics.md index 42825a71..1c555bbd 100644 --- a/content/docs/v3.2/metrics.md +++ b/content/docs/v3.2/metrics.md @@ -115,8 +115,8 @@ Heavy file descriptor (`process_open_fds`) usage (i.e., near the process's file {{< metrics-list dir="../content/docs/v3.2/metrics" regexp="." >}} [glossary-proposal]: learning/glossary#proposal +[go-grpc-prometheus]: https://github.com/grpc-ecosystem/go-grpc-prometheus [prometheus]: http://prometheus.io/ [prometheus-getting-started]: http://prometheus.io/docs/introduction/getting_started/ [prometheus-naming]: http://prometheus.io/docs/practices/naming/ [v2-http-metrics]: /docs/v2.3/metrics/#http-requests -[go-grpc-prometheus]: https://github.com/grpc-ecosystem/go-grpc-prometheus diff --git a/content/docs/v3.2/op-guide/clustering.md b/content/docs/v3.2/op-guide/clustering.md index a2ffca2c..09c5a028 100644 --- a/content/docs/v3.2/op-guide/clustering.md +++ b/content/docs/v3.2/op-guide/clustering.md @@ -468,14 +468,14 @@ When the `--proxy` flag is set, etcd runs in [proxy mode][proxy]. This proxy mod To setup an etcd cluster with proxies of v2 API, please read the the [clustering doc in etcd 2.3 release][clustering_etcd2]. +[clustering_etcd2]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/clustering.md [conf-adv-client]: configuration#--advertise-client-urls [conf-listen-client]: configuration#--listen-client-urls [discovery-proto]: ../dev-internal/discovery_protocol +[gateway]: gateway +[proxy]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/proxy.md [rfc-srv]: http://www.ietf.org/rfc/rfc2052.txt [runtime-conf]: runtime-configuration [runtime-reconf-design]: runtime-reconf-design -[proxy]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/proxy.md -[clustering_etcd2]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/clustering.md [security-guide]: security [tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup -[gateway]: gateway diff --git a/content/docs/v3.2/op-guide/configuration.md b/content/docs/v3.2/op-guide/configuration.md index f5076847..51127262 100644 --- a/content/docs/v3.2/op-guide/configuration.md +++ b/content/docs/v3.2/op-guide/configuration.md @@ -303,12 +303,12 @@ Follow the instructions when using these flags. + default: "simple" [build-cluster]: clustering#static -[reconfig]: runtime-configuration [discovery]: clustering#discovery [iana-ports]: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt [proxy]: /docs/v2.3/proxy +[reconfig]: runtime-configuration [restore]: /docs/v2.3/admin_guide#restoring-a-backup [security]: security +[static bootstrap]: clustering#static [systemd-intro]: http://freedesktop.org/wiki/Software/systemd/ [tuning]: ../tuning#time-parameters -[static bootstrap]: clustering#static diff --git a/content/docs/v3.2/op-guide/monitoring.md b/content/docs/v3.2/op-guide/monitoring.md index ae6e86c2..55444ecc 100644 --- a/content/docs/v3.2/op-guide/monitoring.md +++ b/content/docs/v3.2/op-guide/monitoring.md @@ -121,6 +121,6 @@ Sample dashboard: ![](../etcd-sample-grafana.png) -[prometheus]: https://prometheus.io/ [grafana]: http://grafana.org/ +[prometheus]: https://prometheus.io/ [template]: ../grafana.json diff --git a/content/docs/v3.2/op-guide/runtime-configuration.md b/content/docs/v3.2/op-guide/runtime-configuration.md index 0dc907dd..0475195f 100644 --- a/content/docs/v3.2/op-guide/runtime-configuration.md +++ b/content/docs/v3.2/op-guide/runtime-configuration.md @@ -166,10 +166,10 @@ It is enabled by default. [conf-adv-peer]: configuration#--initial-advertise-peer-urls [conf-name]: configuration#--name [disaster recovery]: recovery +[fault tolerance table]: /docs/v2.3/admin_guide#fault-tolerance-table [majority failure]: #restart-cluster-from-majority-failure +[member migration]: /docs/v2.3/admin_guide#member-migration +[member-api]: /docs/v2.3/members_api [member-api-grpc]: ../dev-guide/api_reference_v3#service-cluster-etcdserveretcdserverpbrpcproto [remove member]: #remove-a-member [runtime-reconf]: runtime-reconf-design -[member-api]: /docs/v2.3/members_api -[member migration]: /docs/v2.3/admin_guide#member-migration -[fault tolerance table]: /docs/v2.3/admin_guide#fault-tolerance-table diff --git a/content/docs/v3.2/op-guide/security.md b/content/docs/v3.2/op-guide/security.md index 89728a3e..a59b8122 100644 --- a/content/docs/v3.2/op-guide/security.md +++ b/content/docs/v3.2/op-guide/security.md @@ -220,8 +220,8 @@ Make sure to sign the certificates with a Subject Name the member's public IP ad The certificate needs to be signed for the member's FQDN in its Subject Name, use Subject Alternative Names (short IP SANs) to add the IP address. The `etcd-ca` tool provides `--domain=` option for its `new-cert` command, and openssl can make [it][alt-name] too. -[cfssl]: https://github.com/cloudflare/cfssl -[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup -[tls-guide]: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md [alt-name]: http://wiki.cacert.org/FAQ/subjectAltName [auth]: authentication +[cfssl]: https://github.com/cloudflare/cfssl +[tls-guide]: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md +[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup diff --git a/content/docs/v3.2/op-guide/supported-platform.md b/content/docs/v3.2/op-guide/supported-platform.md index 7b5bf3e6..28606add 100644 --- a/content/docs/v3.2/op-guide/supported-platform.md +++ b/content/docs/v3.2/op-guide/supported-platform.md @@ -38,5 +38,5 @@ To avoid inadvertently running a possibly unstable etcd server, `etcd` on unstab Currently amd64 and ppc64le architectures are officially supported by `etcd`. -[go-issue]: https://github.com/golang/go/issues/599 [go-atomic]: https://golang.org/pkg/sync/atomic/#pkg-note-BUG +[go-issue]: https://github.com/golang/go/issues/599 diff --git a/content/docs/v3.2/platforms/container-linux-systemd.md b/content/docs/v3.2/platforms/container-linux-systemd.md index 60882052..34f783e5 100644 --- a/content/docs/v3.2/platforms/container-linux-systemd.md +++ b/content/docs/v3.2/platforms/container-linux-systemd.md @@ -197,9 +197,9 @@ To stop and disable: systemctl disable --now etcd2.service ``` -[systemd-docs]: https://github.com/systemd/systemd +[container-linux-ct]: https://github.com/coreos/container-linux-config-transpiler [container-linux-docs]: https://coreos.com/os/docs/latest [container-linux-faq]: https://github.com/coreos/docs/blob/master/etcd/os-faq.md -[container-linux-provision]: https://github.com/coreos/docs/blob/master/os/provisioning.md [container-linux-ignition]: https://github.com/coreos/docs/blob/master/ignition/what-is-ignition.md -[container-linux-ct]: https://github.com/coreos/container-linux-config-transpiler +[container-linux-provision]: https://github.com/coreos/docs/blob/master/os/provisioning.md +[systemd-docs]: https://github.com/systemd/systemd diff --git a/content/docs/v3.2/upgrades/upgrading-etcd.md b/content/docs/v3.2/upgrades/upgrading-etcd.md index 8695e486..7b3fafbb 100644 --- a/content/docs/v3.2/upgrades/upgrading-etcd.md +++ b/content/docs/v3.2/upgrades/upgrading-etcd.md @@ -8,14 +8,11 @@ This section contains documents specific to upgrading etcd clusters and applicat * [Migrate applications from using API v2 to API v3][migrate-apps] ## Upgrading an etcd v3.x cluster -* [Upgrade etcd from 3.0 to 3.1][upgrade-3-1] -* [Upgrade etcd from 3.1 to 3.2][upgrade-3-2] +* [Upgrade etcd from 3.0 to 3.1](upgrade_3_1) +* [Upgrade etcd from 3.1 to 3.2](upgrade_3_2) ## Upgrading from etcd v2.3 -* [Upgrade a v2.3 cluster to v3.0][upgrade-cluster] +* [Upgrade a v2.3 cluster to v3.0](upgrade_3_0) [migrate-apps]: ../op-guide/v2-migration -[upgrade-cluster]: upgrade_3_0 -[upgrade-3-1]: upgrade_3_1 -[upgrade-3-2]: upgrade_3_2 diff --git a/content/docs/v3.3/benchmarks/etcd-2-1-0-alpha-benchmarks.md b/content/docs/v3.3/benchmarks/etcd-2-1-0-alpha-benchmarks.md index 1d3672cd..320b5c27 100644 --- a/content/docs/v3.3/benchmarks/etcd-2-1-0-alpha-benchmarks.md +++ b/content/docs/v3.3/benchmarks/etcd-2-1-0-alpha-benchmarks.md @@ -52,5 +52,5 @@ Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send req | 256 | 64 | all servers | 1033 | 121.5 | | 256 | 256 | all servers | 3061 | 119.3 | -[hey]: https://github.com/rakyll/hey [hack-benchmark]: https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark +[hey]: https://github.com/rakyll/hey diff --git a/content/docs/v3.3/benchmarks/etcd-2-2-0-rc-benchmarks.md b/content/docs/v3.3/benchmarks/etcd-2-2-0-rc-benchmarks.md index c347c912..65514d25 100644 --- a/content/docs/v3.3/benchmarks/etcd-2-2-0-rc-benchmarks.md +++ b/content/docs/v3.3/benchmarks/etcd-2-2-0-rc-benchmarks.md @@ -70,7 +70,7 @@ Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send req - write QPS to all servers is increased by 30~80% because follower could receive latest commit index earlier and commit proposals faster. -[hey]: https://github.com/rakyll/hey [c7146bd5]: https://github.com/coreos/etcd/commits/c7146bd5f2c73716091262edc638401bb8229144 [etcd-2.1-benchmark]: etcd-2-1-0-alpha-benchmarks [hack-benchmark]: https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark +[hey]: https://github.com/rakyll/hey diff --git a/content/docs/v3.3/dev-guide/api_grpc_gateway.md b/content/docs/v3.3/dev-guide/api_grpc_gateway.md index 7bd74790..11598b84 100644 --- a/content/docs/v3.3/dev-guide/api_grpc_gateway.md +++ b/content/docs/v3.3/dev-guide/api_grpc_gateway.md @@ -128,8 +128,8 @@ curl -L http://localhost:2379/v3/kv/put \ Generated [Swagger][swagger] API definitions can be found at [rpc.swagger.json][swagger-doc]. [api-ref]: ./api_reference_v3 -[go-client]: https://github.com/etcd-io/etcd/tree/master/client/v3 [etcdctl]: https://github.com/coreos/etcd/tree/master/etcdctl +[go-client]: https://github.com/etcd-io/etcd/tree/master/client/v3 [grpc]: https://www.grpc.io/ [grpc-gateway]: https://github.com/grpc-ecosystem/grpc-gateway [json-mapping]: https://developers.google.com/protocol-buffers/docs/proto3#json diff --git a/content/docs/v3.3/dev-guide/local_cluster.md b/content/docs/v3.3/dev-guide/local_cluster.md index b1d7b008..bdef9091 100644 --- a/content/docs/v3.3/dev-guide/local_cluster.md +++ b/content/docs/v3.3/dev-guide/local_cluster.md @@ -147,5 +147,5 @@ To exercise etcd's fault tolerance, kill a member and attempt to retrieve the ke Restarting the member re-establish the connection. `etcdctl` will now be able to retrieve the key successfully. To learn more about interacting with etcd, read [interacting with etcd section][interacting]. -[interacting]: ./interacting_v3 [clustering]: ../op-guide/clustering +[interacting]: ./interacting_v3 diff --git a/content/docs/v3.3/dl_build.md b/content/docs/v3.3/dl_build.md index 1ea37a12..bbe9e5e9 100644 --- a/content/docs/v3.3/dl_build.md +++ b/content/docs/v3.3/dl_build.md @@ -63,8 +63,8 @@ OK If OK is printed, then etcd is working! -[github-release]: https://github.com/etcd-io/etcd/releases/ -[go]: https://golang.org/doc/install [build-script]: ../build [cmd-directory]: ../cmd [example-hardware-configurations]: op-guide/hardware#example-hardware-configurations +[github-release]: https://github.com/etcd-io/etcd/releases/ +[go]: https://golang.org/doc/install diff --git a/content/docs/v3.3/faq.md b/content/docs/v3.3/faq.md index e62c7b65..d86c1fc0 100644 --- a/content/docs/v3.3/faq.md +++ b/content/docs/v3.3/faq.md @@ -145,19 +145,19 @@ If none of the above suggestions clear the warnings, please [open an issue][new_ etcd sends a snapshot of its complete key-value store to refresh slow followers and for [backups][backup]. Slow snapshot transfer times increase MTTR; if the cluster is ingesting data with high throughput, slow followers may livelock by needing a new snapshot before finishing receiving a snapshot. To catch slow snapshot performance, etcd warns when sending a snapshot takes more than thirty seconds and exceeds the expected transfer time for a 1Gbps connection. -[hardware-setup]: ./op-guide/hardware -[supported-platform]: ./op-guide/supported-platform -[wal_fsync_duration_seconds]: ./metrics#disk -[tuning]: ./tuning -[new_issue]: https://github.com/etcd-io/etcd/issues/new +[api-mvcc]: learning/api#revisions [backend_commit_metrics]: ./metrics#disk -[raft]: https://raft.github.io/raft.pdf [backup]: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/recovery.md#snapshotting-the-keyspace -[chubby]: http://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf -[runtime reconfiguration]: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/runtime-configuration.md [benchmark]: https://github.com/coreos/etcd/tree/master/tools/benchmark [benchmark-result]: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/performance.md -[api-mvcc]: learning/api#revisions +[chubby]: http://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf +[hardware-setup]: ./op-guide/hardware [maintenance-compact]: op-guide/maintenance#history-compaction-v3-api-key-value-database [maintenance-defragment]: op-guide/maintenance#defragmentation [maintenance-disarm]: https://github.com/etcd-io/etcd/tree/master/etcdctl#alarm-disarm +[new_issue]: https://github.com/etcd-io/etcd/issues/new +[raft]: https://raft.github.io/raft.pdf +[runtime reconfiguration]: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/runtime-configuration.md +[supported-platform]: ./op-guide/supported-platform +[tuning]: ./tuning +[wal_fsync_duration_seconds]: ./metrics#disk diff --git a/content/docs/v3.3/learning/api.md b/content/docs/v3.3/learning/api.md index f0274152..1b90e88a 100644 --- a/content/docs/v3.3/learning/api.md +++ b/content/docs/v3.3/learning/api.md @@ -475,9 +475,9 @@ message LeaseKeepAliveResponse { * TTL - the new time-to-live, in seconds, that the lease has remaining. [elections]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/election.go -[kv-proto]: https://github.com/etcd-io/etcd/blob/master/mvcc/mvccpb/kv.proto [grpc-api]: ../dev-guide/api_reference_v3 [grpc-service]: https://github.com/etcd-io/etcd/blob/master/etcdserver/etcdserverpb/rpc.proto +[kv-proto]: https://github.com/etcd-io/etcd/blob/master/mvcc/mvccpb/kv.proto [locks]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/mutex.go [mvcc]: https://en.wikipedia.org/wiki/Multiversion_concurrency_control [stm]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/stm.go diff --git a/content/docs/v3.3/learning/api_guarantees.md b/content/docs/v3.3/learning/api_guarantees.md index 85db4605..017231ba 100644 --- a/content/docs/v3.3/learning/api_guarantees.md +++ b/content/docs/v3.3/learning/api_guarantees.md @@ -59,8 +59,8 @@ 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. +[Linearizability]: #linearizability [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 +[strict_consistency]: https://en.wikipedia.org/wiki/Consistency_model#Strict_consistency [txn]: api#transaction diff --git a/content/docs/v3.3/learning/data_model.md b/content/docs/v3.3/learning/data_model.md index bc430c90..f19d52a6 100644 --- a/content/docs/v3.3/learning/data_model.md +++ b/content/docs/v3.3/learning/data_model.md @@ -22,6 +22,6 @@ The key of key-value pair is a 3-tuple (major, sub, type). Major is the store re etcd also keeps a secondary in-memory [btree][btree] index to speed up range queries over keys. The keys in the btree index are the keys of the store exposed to user. The value is a pointer to the modification of the persistent b+tree. Compaction removes dead pointers. -[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 +[btree]: https://en.wikipedia.org/wiki/B-tree +[persistent-ds]: https://en.wikipedia.org/wiki/Persistent_data_structure diff --git a/content/docs/v3.3/learning/why.md b/content/docs/v3.3/learning/why.md index 55b5e975..1d215c14 100644 --- a/content/docs/v3.3/learning/why.md +++ b/content/docs/v3.3/learning/why.md @@ -77,42 +77,42 @@ In theory, it’s possible to build these primitives atop any storage systems pr For distributed coordination, choosing etcd can help prevent operational headaches and save engineering effort. -[production-users]: ../production-users -[grpc]: https://www.grpc.io +[cockroach-grant]: https://www.cockroachlabs.com/docs/stable/grant.html +[cockroach]: https://github.com/cockroachdb/cockroach +[consul-acl]: https://www.consul.io/docs/internals/acl.html [consul-bulletproof]: https://www.consul.io/docs/internals/sessions.html +[consul-json]: https://www.consul.io/docs/agent/http.html#formatted-json-output +[consul-linread]: https://www.consul.io/docs/agent/http.html#consistency +[consul-lock]: https://www.consul.io/docs/commands/lock.html +[consul-reconfig]: https://www.consul.io/docs/guides/servers.html +[consul-txn]: https://www.consul.io/docs/agent/http/kv.html#txn +[consul-watch]: https://www.consul.io/docs/agent/watches.html +[container-linux]: https://coreos.com/why [curator]: http://curator.apache.org/ -[cockroach]: https://github.com/cockroachdb/cockroach -[spanner]: https://cloud.google.com/spanner/ -[tidb]: https://github.com/pingcap/tidb -[etcd-v3lock]: https://godoc.org/github.com/etcd-io/etcd/etcdserver/api/v3lock/v3lockpb -[etcd-v3election]: https://godoc.org/github.com/coreos/etcd-io/etcdserver/api/v3election/v3electionpb -[etcd-etcdctl-lock]: https://github.com/etcd-io/etcd/tree/master/etcdctl/README.md#lock-lockname-command-arg1-arg2- +[dbtester-comparison-results]: https://github.com/coreos/dbtester/tree/master/test-results/2018Q1-02-etcd-zookeeper-consul +[etcd-commonname]: ../op-guide/authentication#using-tls-common-name [etcd-etcdctl-elect]: https://github.com/etcd-io/etcd/tree/master/etcdctl/README.md#elect-options-election-name-proposal +[etcd-etcdctl-lock]: https://github.com/etcd-io/etcd/tree/master/etcdctl/README.md#lock-lockname-command-arg1-arg2- +[etcd-json]: ../dev-guide/api_grpc_gateway +[etcd-linread]: api_guarantees#linearizability [etcd-mvcc]: data_model +[etcd-rbac]: ../op-guide/authentication#working-with-roles [etcd-recipe]: https://godoc.org/github.com/etcd-io/etcd/contrib/recipes -[consul-lock]: https://www.consul.io/docs/commands/lock.html -[newsql-leader]: http://dl.acm.org/citation.cfm?id=2960999 [etcd-reconfig]: ../op-guide/runtime-configuration -[zk-reconfig]: https://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html -[consul-reconfig]: https://www.consul.io/docs/guides/servers.html -[etcd-linread]: api_guarantees#linearizability -[consul-linread]: https://www.consul.io/docs/agent/http.html#consistency -[etcd-json]: ../dev-guide/api_grpc_gateway -[consul-json]: https://www.consul.io/docs/agent/http.html#formatted-json-output [etcd-txn]: api#transaction -[zk-txn]: https://zookeeper.apache.org/doc/r3.4.3/api/org/apache/zookeeper/ZooKeeper.html#multi(java.lang.Iterable) -[consul-txn]: https://www.consul.io/docs/agent/http/kv.html#txn +[etcd-v3election]: https://godoc.org/github.com/coreos/etcd-io/etcdserver/api/v3election/v3electionpb +[etcd-v3lock]: https://godoc.org/github.com/etcd-io/etcd/etcdserver/api/v3lock/v3lockpb [etcd-watch]: api#watch-streams -[zk-watch]: https://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html#ch_zkWatches -[consul-watch]: https://www.consul.io/docs/agent/watches.html -[etcd-commonname]: ../op-guide/authentication#using-tls-common-name -[etcd-rbac]: ../op-guide/authentication#working-with-roles -[zk-acl]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl -[consul-acl]: https://www.consul.io/docs/internals/acl.html -[cockroach-grant]: https://www.cockroachlabs.com/docs/stable/grant.html +[grpc]: https://www.grpc.io +[kubernetes]: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ +[locksmith]: https://github.com/coreos/locksmith +[newsql-leader]: http://dl.acm.org/citation.cfm?id=2960999 +[production-users]: ../production-users [spanner-roles]: https://cloud.google.com/spanner/docs/iam#roles +[spanner]: https://cloud.google.com/spanner/ +[tidb]: https://github.com/pingcap/tidb +[zk-acl]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl [zk-bindings]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#ch_bindings -[container-linux]: https://coreos.com/why -[locksmith]: https://github.com/coreos/locksmith -[kubernetes]: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ -[dbtester-comparison-results]: https://github.com/coreos/dbtester/tree/master/test-results/2018Q1-02-etcd-zookeeper-consul +[zk-reconfig]: https://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html +[zk-txn]: https://zookeeper.apache.org/doc/r3.4.3/api/org/apache/zookeeper/ZooKeeper.html#multi(java.lang.Iterable) +[zk-watch]: https://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html#ch_zkWatches diff --git a/content/docs/v3.3/metrics.md b/content/docs/v3.3/metrics.md index 1c2499ad..0a95ba19 100644 --- a/content/docs/v3.3/metrics.md +++ b/content/docs/v3.3/metrics.md @@ -116,8 +116,8 @@ Heavy file descriptor (`process_open_fds`) usage (i.e., near the process's file {{< metrics-list dir="../content/docs/v3.3/metrics" regexp="." >}} [glossary-proposal]: learning/glossary#proposal +[go-grpc-prometheus]: https://github.com/grpc-ecosystem/go-grpc-prometheus [prometheus]: http://prometheus.io/ [prometheus-getting-started]: http://prometheus.io/docs/introduction/getting_started/ [prometheus-naming]: http://prometheus.io/docs/practices/naming/ [v2-http-metrics]: /docs/v2.3/metrics/#http-requests -[go-grpc-prometheus]: https://github.com/grpc-ecosystem/go-grpc-prometheus diff --git a/content/docs/v3.3/op-guide/clustering.md b/content/docs/v3.3/op-guide/clustering.md index 8b960eb4..9c2327f8 100644 --- a/content/docs/v3.3/op-guide/clustering.md +++ b/content/docs/v3.3/op-guide/clustering.md @@ -484,15 +484,15 @@ When the `--proxy` flag is set, etcd runs in [proxy mode][proxy]. This proxy mod To setup an etcd cluster with proxies of v2 API, please read the the [clustering doc in etcd 2.3 release][clustering_etcd2]. +[clustering_etcd2]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/clustering.md [conf-adv-client]: configuration#--advertise-client-urls [conf-listen-client]: configuration#--listen-client-urls [discovery-proto]: ../dev-internal/discovery_protocol +[gateway]: gateway +[proxy]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/proxy.md [rfc-srv]: http://www.ietf.org/rfc/rfc2052.txt [runtime-conf]: runtime-configuration [runtime-reconf-design]: runtime-reconf-design -[proxy]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/proxy.md -[clustering_etcd2]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/clustering.md -[security-guide]: security [security-guide-dns-srv]: security#notes-for-dns-srv +[security-guide]: security [tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup -[gateway]: gateway diff --git a/content/docs/v3.3/op-guide/configuration.md b/content/docs/v3.3/op-guide/configuration.md index 295bd58f..28af552c 100644 --- a/content/docs/v3.3/op-guide/configuration.md +++ b/content/docs/v3.3/op-guide/configuration.md @@ -419,14 +419,14 @@ Follow the instructions when using these flags. + env variable: ETCD_EXPERIMENTAL_CORRUPT_CHECK_TIME [build-cluster]: clustering#static -[reconfig]: runtime-configuration [discovery]: clustering#discovery [iana-ports]: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt [proxy]: /docs/v2.3/proxy +[reconfig]: runtime-configuration +[recovery]: ../recovery [restore]: /docs/v2.3/admin_guide#restoring-a-backup +[sample-config-file]: https://github.com/etcd-io/etcd/blob/release-3.4/etcd.conf.yml.sample [security]: security +[static bootstrap]: clustering#static [systemd-intro]: http://freedesktop.org/wiki/Software/systemd/ [tuning]: ../tuning#time-parameters -[sample-config-file]: https://github.com/etcd-io/etcd/blob/release-3.4/etcd.conf.yml.sample -[recovery]: ../recovery -[static bootstrap]: clustering#static diff --git a/content/docs/v3.3/op-guide/monitoring.md b/content/docs/v3.3/op-guide/monitoring.md index 03b8b1a1..507916dc 100644 --- a/content/docs/v3.3/op-guide/monitoring.md +++ b/content/docs/v3.3/op-guide/monitoring.md @@ -128,6 +128,6 @@ Sample dashboard: ![](../etcd-sample-grafana.png) -[prometheus]: https://prometheus.io/ [grafana]: http://grafana.org/ +[prometheus]: https://prometheus.io/ [template]: ../grafana.json diff --git a/content/docs/v3.3/op-guide/runtime-configuration.md b/content/docs/v3.3/op-guide/runtime-configuration.md index e634540b..62c2117c 100644 --- a/content/docs/v3.3/op-guide/runtime-configuration.md +++ b/content/docs/v3.3/op-guide/runtime-configuration.md @@ -166,10 +166,10 @@ It is enabled by default. [conf-adv-peer]: configuration#--initial-advertise-peer-urls [conf-name]: configuration#--name [disaster recovery]: recovery +[fault tolerance table]: /docs/v2.3/admin_guide#fault-tolerance-table [majority failure]: #restart-cluster-from-majority-failure +[member migration]: /docs/v2.3/admin_guide#member-migration +[member-api]: /docs/v2.3/members_api [member-api-grpc]: ../dev-guide/api_reference_v3#service-cluster-etcdserveretcdserverpbrpcproto [remove member]: #remove-a-member [runtime-reconf]: runtime-reconf-design -[member-api]: /docs/v2.3/members_api -[member migration]: /docs/v2.3/admin_guide#member-migration -[fault tolerance table]: /docs/v2.3/admin_guide#fault-tolerance-table diff --git a/content/docs/v3.3/op-guide/security.md b/content/docs/v3.3/op-guide/security.md index 2da2df2a..a0df488c 100644 --- a/content/docs/v3.3/op-guide/security.md +++ b/content/docs/v3.3/op-guide/security.md @@ -426,8 +426,8 @@ Make sure to sign the certificates with a Subject Name the member's public IP ad The certificate needs to be signed for the member's FQDN in its Subject Name, use Subject Alternative Names (short IP SANs) to add the IP address. The `etcd-ca` tool provides `--domain=` option for its `new-cert` command, and openssl can make [it][alt-name] too. -[cfssl]: https://github.com/cloudflare/cfssl -[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup -[tls-guide]: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md [alt-name]: http://wiki.cacert.org/FAQ/subjectAltName [auth]: authentication +[cfssl]: https://github.com/cloudflare/cfssl +[tls-guide]: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md +[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup diff --git a/content/docs/v3.3/op-guide/supported-platform.md b/content/docs/v3.3/op-guide/supported-platform.md index 31df649f..5ebdb5b4 100644 --- a/content/docs/v3.3/op-guide/supported-platform.md +++ b/content/docs/v3.3/op-guide/supported-platform.md @@ -38,5 +38,5 @@ To avoid inadvertently running a possibly unstable etcd server, `etcd` on unstab Currently amd64 and ppc64le architectures are officially supported by `etcd`. -[go-issue]: https://github.com/golang/go/issues/599 [go-atomic]: https://golang.org/pkg/sync/atomic/#pkg-note-BUG +[go-issue]: https://github.com/golang/go/issues/599 diff --git a/content/docs/v3.3/platforms/container-linux-systemd.md b/content/docs/v3.3/platforms/container-linux-systemd.md index d29cef93..9f1158fa 100644 --- a/content/docs/v3.3/platforms/container-linux-systemd.md +++ b/content/docs/v3.3/platforms/container-linux-systemd.md @@ -197,9 +197,9 @@ To stop and disable: systemctl disable --now etcd2.service ``` -[systemd-docs]: https://github.com/systemd/systemd +[container-linux-ct]: https://github.com/coreos/container-linux-config-transpiler [container-linux-docs]: https://coreos.com/os/docs/latest [container-linux-faq]: https://github.com/coreos/docs/blob/master/etcd/os-faq.md -[container-linux-provision]: https://github.com/coreos/docs/blob/master/os/provisioning.md [container-linux-ignition]: https://github.com/coreos/docs/blob/master/ignition/what-is-ignition.md -[container-linux-ct]: https://github.com/coreos/container-linux-config-transpiler +[container-linux-provision]: https://github.com/coreos/docs/blob/master/os/provisioning.md +[systemd-docs]: https://github.com/systemd/systemd diff --git a/content/docs/v3.3/upgrades/upgrading-etcd.md b/content/docs/v3.3/upgrades/upgrading-etcd.md index 10bbe2c8..b03f489d 100644 --- a/content/docs/v3.3/upgrades/upgrading-etcd.md +++ b/content/docs/v3.3/upgrades/upgrading-etcd.md @@ -9,18 +9,13 @@ This section contains documents specific to upgrading etcd clusters and applicat * [Migrate applications from using API v2 to API v3][migrate-apps] ## Upgrading an etcd v3.x cluster -* [Upgrade etcd from 3.0 to 3.1][upgrade-3-1] -* [Upgrade etcd from 3.1 to 3.2][upgrade-3-2] -* [Upgrade etcd from 3.2 to 3.3][upgrade-3-3] -* [Upgrade etcd from 3.3 to 3.4][upgrade-3-4] +* [Upgrade etcd from 3.0 to 3.1](upgrade_3_1) +* [Upgrade etcd from 3.1 to 3.2](upgrade_3_2) +* [Upgrade etcd from 3.2 to 3.3](upgrade_3_3) +* [Upgrade etcd from 3.3 to 3.4](upgrade_3_4) ## Upgrading from etcd v2.3 -* [Upgrade a v2.3 cluster to v3.0][upgrade-cluster] +* [Upgrade a v2.3 cluster to v3.0](upgrade_3_0) [migrate-apps]: ../op-guide/v2-migration -[upgrade-cluster]: upgrade_3_0 -[upgrade-3-1]: upgrade_3_1 -[upgrade-3-2]: upgrade_3_2 -[upgrade-3-3]: upgrade_3_3 -[upgrade-3-4]: upgrade_3_4 diff --git a/content/docs/v3.4/benchmarks/etcd-2-1-0-alpha-benchmarks.md b/content/docs/v3.4/benchmarks/etcd-2-1-0-alpha-benchmarks.md index ac07f8dc..edbe114e 100644 --- a/content/docs/v3.4/benchmarks/etcd-2-1-0-alpha-benchmarks.md +++ b/content/docs/v3.4/benchmarks/etcd-2-1-0-alpha-benchmarks.md @@ -54,5 +54,5 @@ Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send req | 256 | 64 | all servers | 1033 | 121.5 | | 256 | 256 | all servers | 3061 | 119.3 | -[hey]: https://github.com/rakyll/hey [hack-benchmark]: https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark +[hey]: https://github.com/rakyll/hey diff --git a/content/docs/v3.4/benchmarks/etcd-2-2-0-rc-benchmarks.md b/content/docs/v3.4/benchmarks/etcd-2-2-0-rc-benchmarks.md index c31920c5..22b1adad 100644 --- a/content/docs/v3.4/benchmarks/etcd-2-2-0-rc-benchmarks.md +++ b/content/docs/v3.4/benchmarks/etcd-2-2-0-rc-benchmarks.md @@ -72,7 +72,7 @@ Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send req - write QPS to all servers is increased by 30~80% because follower could receive latest commit index earlier and commit proposals faster. -[hey]: https://github.com/rakyll/hey [c7146bd5]: https://github.com/coreos/etcd/commits/c7146bd5f2c73716091262edc638401bb8229144 [etcd-2.1-benchmark]: etcd-2-1-0-alpha-benchmarks [hack-benchmark]: https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark +[hey]: https://github.com/rakyll/hey diff --git a/content/docs/v3.4/dev-guide/api_grpc_gateway.md b/content/docs/v3.4/dev-guide/api_grpc_gateway.md index 89f758c7..0cdfd538 100644 --- a/content/docs/v3.4/dev-guide/api_grpc_gateway.md +++ b/content/docs/v3.4/dev-guide/api_grpc_gateway.md @@ -130,8 +130,8 @@ curl -L http://localhost:2379/v3/kv/put \ Generated [Swagger][swagger] API definitions can be found at [rpc.swagger.json][swagger-doc]. [api-ref]: ./api_reference_v3 -[go-client]: https://github.com/etcd-io/etcd/tree/master/client/v3 [etcdctl]: https://github.com/coreos/etcd/tree/master/etcdctl +[go-client]: https://github.com/etcd-io/etcd/tree/master/client/v3 [grpc]: https://www.grpc.io/ [grpc-gateway]: https://github.com/grpc-ecosystem/grpc-gateway [json-mapping]: https://developers.google.com/protocol-buffers/docs/proto3#json diff --git a/content/docs/v3.4/dev-guide/local_cluster.md b/content/docs/v3.4/dev-guide/local_cluster.md index 6067adfd..60b7a5aa 100644 --- a/content/docs/v3.4/dev-guide/local_cluster.md +++ b/content/docs/v3.4/dev-guide/local_cluster.md @@ -149,5 +149,5 @@ To exercise etcd's fault tolerance, kill a member and attempt to retrieve the ke Restarting the member re-establish the connection. `etcdctl` will now be able to retrieve the key successfully. To learn more about interacting with etcd, read [interacting with etcd section][interacting]. -[interacting]: ./interacting_v3 [clustering]: ../op-guide/clustering +[interacting]: ./interacting_v3 diff --git a/content/docs/v3.4/dl-build.md b/content/docs/v3.4/dl-build.md index 60f7ab9b..67dcdf38 100644 --- a/content/docs/v3.4/dl-build.md +++ b/content/docs/v3.4/dl-build.md @@ -64,8 +64,8 @@ OK If OK is printed, then etcd is working! -[github-release]: https://github.com/etcd-io/etcd/releases/ -[go]: https://golang.org/doc/install [build-script]: ../build [cmd-directory]: ../cmd [example-hardware-configurations]: op-guide/hardware#example-hardware-configurations +[github-release]: https://github.com/etcd-io/etcd/releases/ +[go]: https://golang.org/doc/install diff --git a/content/docs/v3.4/faq.md b/content/docs/v3.4/faq.md index 56f86633..5654e4d5 100644 --- a/content/docs/v3.4/faq.md +++ b/content/docs/v3.4/faq.md @@ -147,21 +147,21 @@ If none of the above suggestions clear the warnings, please [open an issue][new_ etcd sends a snapshot of its complete key-value store to refresh slow followers and for [backups][backup]. Slow snapshot transfer times increase MTTR; if the cluster is ingesting data with high throughput, slow followers may livelock by needing a new snapshot before finishing receiving a snapshot. To catch slow snapshot performance, etcd warns when sending a snapshot takes more than thirty seconds and exceeds the expected transfer time for a 1Gbps connection. -[hardware-setup]: ./op-guide/hardware -[supported-platform]: ./op-guide/supported-platform -[wal_fsync_duration_seconds]: ./metrics#disk -[tuning]: ./tuning -[new_issue]: https://github.com/etcd-io/etcd/issues/new +[api-mvcc]: learning/api#revisions [backend_commit_metrics]: ./metrics#disk -[raft]: https://raft.github.io/raft.pdf [backup]: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/recovery.md#snapshotting-the-keyspace -[chubby]: http://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf -[runtime reconfiguration]: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/runtime-configuration.md [benchmark]: https://github.com/coreos/etcd/tree/master/tools/benchmark [benchmark-result]: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/performance.md -[api-mvcc]: learning/api#revisions +[chubby]: http://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf +[fio-blog-post]: https://www.ibm.com/blogs/bluemix/2019/04/using-fio-to-tell-whether-your-storage-is-fast-enough-for-etcd/ +[fio]: https://github.com/axboe/fio +[hardware-setup]: ./op-guide/hardware [maintenance-compact]: op-guide/maintenance#history-compaction [maintenance-defragment]: op-guide/maintenance#defragmentation [maintenance-disarm]: https://github.com/etcd-io/etcd/tree/master/etcdctl#alarm-disarm -[fio]: https://github.com/axboe/fio -[fio-blog-post]: https://www.ibm.com/blogs/bluemix/2019/04/using-fio-to-tell-whether-your-storage-is-fast-enough-for-etcd/ +[new_issue]: https://github.com/etcd-io/etcd/issues/new +[raft]: https://raft.github.io/raft.pdf +[runtime reconfiguration]: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/runtime-configuration.md +[supported-platform]: ./op-guide/supported-platform +[tuning]: ./tuning +[wal_fsync_duration_seconds]: ./metrics#disk diff --git a/content/docs/v3.4/learning/api.md b/content/docs/v3.4/learning/api.md index c2eb7d91..255282c8 100644 --- a/content/docs/v3.4/learning/api.md +++ b/content/docs/v3.4/learning/api.md @@ -477,9 +477,9 @@ message LeaseKeepAliveResponse { * TTL - the new time-to-live, in seconds, that the lease has remaining. [elections]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/election.go -[kv-proto]: https://github.com/etcd-io/etcd/blob/master/mvcc/mvccpb/kv.proto [grpc-api]: ../dev-guide/api_reference_v3 [grpc-service]: https://github.com/etcd-io/etcd/blob/master/api/etcdserverpb/rpc.proto +[kv-proto]: https://github.com/etcd-io/etcd/blob/master/mvcc/mvccpb/kv.proto [locks]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/mutex.go [mvcc]: https://en.wikipedia.org/wiki/Multiversion_concurrency_control [stm]: https://github.com/etcd-io/etcd/blob/master/client/v3/concurrency/stm.go diff --git a/content/docs/v3.4/learning/api_guarantees.md b/content/docs/v3.4/learning/api_guarantees.md index 76e49613..53166b91 100644 --- a/content/docs/v3.4/learning/api_guarantees.md +++ b/content/docs/v3.4/learning/api_guarantees.md @@ -51,6 +51,6 @@ 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. -[txn]: api#transaction [linearizability]: https://cs.brown.edu/~mph/HerlihyW90/p463-herlihy.pdf [strict_serializability]: http://jepsen.io/consistency/models/strict-serializable +[txn]: api#transaction diff --git a/content/docs/v3.4/learning/data_model.md b/content/docs/v3.4/learning/data_model.md index d0d35489..b49d569e 100644 --- a/content/docs/v3.4/learning/data_model.md +++ b/content/docs/v3.4/learning/data_model.md @@ -24,6 +24,6 @@ The key of key-value pair is a 3-tuple (major, sub, type). Major is the store re etcd also keeps a secondary in-memory [btree][btree] index to speed up range queries over keys. The keys in the btree index are the keys of the store exposed to user. The value is a pointer to the modification of the persistent b+tree. Compaction removes dead pointers. -[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 +[btree]: https://en.wikipedia.org/wiki/B-tree +[persistent-ds]: https://en.wikipedia.org/wiki/Persistent_data_structure diff --git a/content/docs/v3.4/learning/why.md b/content/docs/v3.4/learning/why.md index 93ab057b..3af5c6ab 100644 --- a/content/docs/v3.4/learning/why.md +++ b/content/docs/v3.4/learning/why.md @@ -79,42 +79,42 @@ In theory, it’s possible to build these primitives atop any storage systems pr For distributed coordination, choosing etcd can help prevent operational headaches and save engineering effort. -[production-users]: https://github.com/etcd-io/etcd/tree/master/ADOPTERS.md -[grpc]: https://www.grpc.io +[cockroach-grant]: https://www.cockroachlabs.com/docs/stable/grant.html +[cockroach]: https://github.com/cockroachdb/cockroach +[consul-acl]: https://www.consul.io/docs/internals/acl.html [consul-bulletproof]: https://www.consul.io/docs/internals/sessions.html +[consul-json]: https://www.consul.io/docs/agent/http.html#formatted-json-output +[consul-linread]: https://www.consul.io/docs/agent/http.html#consistency +[consul-lock]: https://www.consul.io/docs/commands/lock.html +[consul-reconfig]: https://www.consul.io/docs/guides/servers.html +[consul-txn]: https://www.consul.io/docs/agent/http/kv.html#txn +[consul-watch]: https://www.consul.io/docs/agent/watches.html +[container-linux]: https://coreos.com/why [curator]: http://curator.apache.org/ -[cockroach]: https://github.com/cockroachdb/cockroach -[spanner]: https://cloud.google.com/spanner/ -[tidb]: https://github.com/pingcap/tidb -[etcd-v3lock]: https://godoc.org/github.com/etcd-io/etcd/etcdserver/api/v3lock/v3lockpb -[etcd-v3election]: https://godoc.org/github.com/coreos/etcd-io/etcdserver/api/v3election/v3electionpb -[etcd-etcdctl-lock]: https://github.com/etcd-io/etcd/tree/master/etcdctl/README.md#lock-lockname-command-arg1-arg2- +[dbtester-comparison-results]: https://github.com/coreos/dbtester/tree/master/test-results/2018Q1-02-etcd-zookeeper-consul +[etcd-commonname]: ../op-guide/authentication#using-tls-common-name [etcd-etcdctl-elect]: https://github.com/etcd-io/etcd/tree/master/etcdctl/README.md#elect-options-election-name-proposal +[etcd-etcdctl-lock]: https://github.com/etcd-io/etcd/tree/master/etcdctl/README.md#lock-lockname-command-arg1-arg2- +[etcd-json]: ../dev-guide/api_grpc_gateway +[etcd-linread]: api_guarantees#isolation-level-and-consistency-of-replicas [etcd-mvcc]: data_model +[etcd-rbac]: ../op-guide/authentication#working-with-roles [etcd-recipe]: https://godoc.org/github.com/etcd-io/etcd/contrib/recipes -[consul-lock]: https://www.consul.io/docs/commands/lock.html -[newsql-leader]: http://dl.acm.org/citation.cfm?id=2960999 [etcd-reconfig]: ../op-guide/runtime-configuration -[zk-reconfig]: https://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html -[consul-reconfig]: https://www.consul.io/docs/guides/servers.html -[etcd-linread]: api_guarantees#isolation-level-and-consistency-of-replicas -[consul-linread]: https://www.consul.io/docs/agent/http.html#consistency -[etcd-json]: ../dev-guide/api_grpc_gateway -[consul-json]: https://www.consul.io/docs/agent/http.html#formatted-json-output [etcd-txn]: api#transaction -[zk-txn]: https://zookeeper.apache.org/doc/r3.4.3/api/org/apache/zookeeper/ZooKeeper.html#multi(java.lang.Iterable) -[consul-txn]: https://www.consul.io/docs/agent/http/kv.html#txn +[etcd-v3election]: https://godoc.org/github.com/coreos/etcd-io/etcdserver/api/v3election/v3electionpb +[etcd-v3lock]: https://godoc.org/github.com/etcd-io/etcd/etcdserver/api/v3lock/v3lockpb [etcd-watch]: api#watch-streams -[zk-watch]: https://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html#ch_zkWatches -[consul-watch]: https://www.consul.io/docs/agent/watches.html -[etcd-commonname]: ../op-guide/authentication#using-tls-common-name -[etcd-rbac]: ../op-guide/authentication#working-with-roles -[zk-acl]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl -[consul-acl]: https://www.consul.io/docs/internals/acl.html -[cockroach-grant]: https://www.cockroachlabs.com/docs/stable/grant.html +[grpc]: https://www.grpc.io +[kubernetes]: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ +[locksmith]: https://github.com/coreos/locksmith +[newsql-leader]: http://dl.acm.org/citation.cfm?id=2960999 +[production-users]: https://github.com/etcd-io/etcd/tree/master/ADOPTERS.md [spanner-roles]: https://cloud.google.com/spanner/docs/iam#roles +[spanner]: https://cloud.google.com/spanner/ +[tidb]: https://github.com/pingcap/tidb +[zk-acl]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl [zk-bindings]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#ch_bindings -[container-linux]: https://coreos.com/why -[locksmith]: https://github.com/coreos/locksmith -[kubernetes]: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ -[dbtester-comparison-results]: https://github.com/coreos/dbtester/tree/master/test-results/2018Q1-02-etcd-zookeeper-consul +[zk-reconfig]: https://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html +[zk-txn]: https://zookeeper.apache.org/doc/r3.4.3/api/org/apache/zookeeper/ZooKeeper.html#multi(java.lang.Iterable) +[zk-watch]: https://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html#ch_zkWatches diff --git a/content/docs/v3.4/metrics.md b/content/docs/v3.4/metrics.md index d9669bf0..00527d6c 100644 --- a/content/docs/v3.4/metrics.md +++ b/content/docs/v3.4/metrics.md @@ -116,8 +116,8 @@ Heavy file descriptor (`process_open_fds`) usage (i.e., near the process's file {{< metrics-list dir="../content/docs/v3.4/metrics" regexp="." >}} +[go-grpc-prometheus]: https://github.com/grpc-ecosystem/go-grpc-prometheus [prometheus]: https://prometheus.io/ [prometheus-getting-started]: https://prometheus.io/docs/introduction/getting_started/ [prometheus-naming]: https://prometheus.io/docs/practices/naming/ [v2-http-metrics]: /docs/v2.3/metrics/#http-requests -[go-grpc-prometheus]: https://github.com/grpc-ecosystem/go-grpc-prometheus diff --git a/content/docs/v3.4/op-guide/clustering.md b/content/docs/v3.4/op-guide/clustering.md index c9239480..e4c7d31d 100644 --- a/content/docs/v3.4/op-guide/clustering.md +++ b/content/docs/v3.4/op-guide/clustering.md @@ -486,15 +486,15 @@ When the `--proxy` flag is set, etcd runs in [proxy mode][proxy]. This proxy mod To setup an etcd cluster with proxies of v2 API, please read the the [clustering doc in etcd 2.3 release][clustering_etcd2]. +[clustering_etcd2]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/clustering.md [conf-adv-client]: configuration#--advertise-client-urls [conf-listen-client]: configuration#--listen-client-urls [discovery-proto]: ../dev-internal/discovery_protocol +[gateway]: gateway +[proxy]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/proxy.md [rfc-srv]: http://www.ietf.org/rfc/rfc2052.txt [runtime-conf]: runtime-configuration [runtime-reconf-design]: runtime-reconf-design -[proxy]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/proxy.md -[clustering_etcd2]: https://github.com/coreos/etcd/blob/release-2.3/Documentation/clustering.md -[security-guide]: security [security-guide-dns-srv]: security#notes-for-dns-srv +[security-guide]: security [tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup -[gateway]: gateway diff --git a/content/docs/v3.4/op-guide/configuration.md b/content/docs/v3.4/op-guide/configuration.md index 35d85fc6..aa7c9160 100644 --- a/content/docs/v3.4/op-guide/configuration.md +++ b/content/docs/v3.4/op-guide/configuration.md @@ -150,8 +150,6 @@ To start etcd automatically using custom settings at startup in Linux, using a [ + default: "new" + env variable: ETCD_INITIAL_CLUSTER_STATE -[static bootstrap]: clustering#static - ### --initial-cluster-token + Initial cluster token for the etcd cluster during bootstrap. + default: "etcd-cluster" @@ -453,18 +451,6 @@ Follow the instructions when using these flags. + default: 1000 + env variable: ETCD_EXPERIMENTAL_COMPACTION_BATCH_LIMIT -[build-cluster]: clustering#static -[reconfig]: runtime-configuration -[discovery]: clustering#discovery -[iana-ports]: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt -[proxy]: /docs/v2.3/proxy -[restore]: /docs/v2.3/admin_guide#restoring-a-backup -[security]: ../security -[systemd-intro]: http://freedesktop.org/wiki/Software/systemd/ -[tuning]: ../tuning#time-parameters -[sample-config-file]: https://github.com/etcd-io/etcd/blob/release-3.4/etcd.conf.yml.sample -[recovery]: ../recovery - ### --experimental-peer-skip-client-san-verification + Skip verification of SAN field in client certificate for peer connections. This can be helpful e.g. if cluster members run in different networks behind a NAT. @@ -473,3 +459,16 @@ cluster members run in different networks behind a NAT. a private certificate authority using `--peer-cert-file`, `--peer-key-file`, `--peer-trusted-ca-file` + default: false + env variable: ETCD_EXPERIMENTAL_PEER_SKIP_CLIENT_SAN_VERIFICATION + +[build-cluster]: clustering#static +[discovery]: clustering#discovery +[iana-ports]: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt +[proxy]: /docs/v2.3/proxy +[reconfig]: runtime-configuration +[recovery]: ../recovery +[restore]: /docs/v2.3/admin_guide#restoring-a-backup +[sample-config-file]: https://github.com/etcd-io/etcd/blob/release-3.4/etcd.conf.yml.sample +[security]: ../security +[static bootstrap]: clustering#static +[systemd-intro]: http://freedesktop.org/wiki/Software/systemd/ +[tuning]: ../tuning#time-parameters diff --git a/content/docs/v3.4/op-guide/monitoring.md b/content/docs/v3.4/op-guide/monitoring.md index 55732a27..40ccc928 100644 --- a/content/docs/v3.4/op-guide/monitoring.md +++ b/content/docs/v3.4/op-guide/monitoring.md @@ -130,6 +130,6 @@ Sample dashboard: ![](../etcd-sample-grafana.png) -[prometheus]: https://prometheus.io/ [grafana]: http://grafana.org/ +[prometheus]: https://prometheus.io/ [template]: ../grafana.json diff --git a/content/docs/v3.4/op-guide/runtime-configuration.md b/content/docs/v3.4/op-guide/runtime-configuration.md index 74b04c9a..77cd5c61 100644 --- a/content/docs/v3.4/op-guide/runtime-configuration.md +++ b/content/docs/v3.4/op-guide/runtime-configuration.md @@ -236,13 +236,13 @@ It is enabled by default. [cluster-reconf]: #cluster-reconfiguration-operations [conf-adv-peer]: configuration#--initial-advertise-peer-urls [conf-name]: configuration#--name +[design-learner]: ../learning/design-learner [disaster recovery]: recovery +[error cases when promoting a member]: #error-cases-when-promoting-a-learner-member +[fault tolerance table]: /docs/v2.3/admin_guide#fault-tolerance-table [majority failure]: #restart-cluster-from-majority-failure +[member migration]: /docs/v2.3/admin_guide#member-migration +[member-api]: /docs/v2.3/members_api [member-api-grpc]: ../dev-guide/api_reference_v3#service-cluster-etcdserveretcdserverpbrpcproto [remove member]: #remove-a-member [runtime-reconf]: runtime-reconf-design -[error cases when promoting a member]: #error-cases-when-promoting-a-learner-member -[design-learner]: ../learning/design-learner -[member-api]: /docs/v2.3/members_api -[member migration]: /docs/v2.3/admin_guide#member-migration -[fault tolerance table]: /docs/v2.3/admin_guide#fault-tolerance-table diff --git a/content/docs/v3.4/op-guide/security.md b/content/docs/v3.4/op-guide/security.md index 2c90ece9..73dc7591 100644 --- a/content/docs/v3.4/op-guide/security.md +++ b/content/docs/v3.4/op-guide/security.md @@ -428,8 +428,8 @@ Make sure to sign the certificates with a Subject Name the member's public IP ad The certificate needs to be signed for the member's FQDN in its Subject Name, use Subject Alternative Names (short IP SANs) to add the IP address. The `etcd-ca` tool provides `--domain=` option for its `new-cert` command, and openssl can make [it][alt-name] too. -[cfssl]: https://github.com/cloudflare/cfssl -[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup -[tls-guide]: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md [alt-name]: http://wiki.cacert.org/FAQ/subjectAltName [auth]: authentication +[cfssl]: https://github.com/cloudflare/cfssl +[tls-guide]: https://github.com/coreos/docs/blob/master/os/generate-self-signed-certificates.md +[tls-setup]: https://github.com/etcd-io/etcd/tree/master/hack/tls-setup diff --git a/content/docs/v3.4/op-guide/supported-platform.md b/content/docs/v3.4/op-guide/supported-platform.md index 683f7481..4dbd4420 100644 --- a/content/docs/v3.4/op-guide/supported-platform.md +++ b/content/docs/v3.4/op-guide/supported-platform.md @@ -40,5 +40,5 @@ To avoid inadvertently running a possibly unstable etcd server, `etcd` on unstab Currently amd64 and ppc64le architectures are officially supported by `etcd`. -[go-issue]: https://github.com/golang/go/issues/599 [go-atomic]: https://golang.org/pkg/sync/atomic/#pkg-note-BUG +[go-issue]: https://github.com/golang/go/issues/599 diff --git a/content/docs/v3.4/platforms/container-linux-systemd.md b/content/docs/v3.4/platforms/container-linux-systemd.md index 788430ff..c6daa62b 100644 --- a/content/docs/v3.4/platforms/container-linux-systemd.md +++ b/content/docs/v3.4/platforms/container-linux-systemd.md @@ -199,9 +199,9 @@ To stop and disable: systemctl disable --now etcd2.service ``` -[systemd-docs]: https://github.com/systemd/systemd +[container-linux-ct]: https://github.com/coreos/container-linux-config-transpiler [container-linux-docs]: https://coreos.com/os/docs/latest [container-linux-faq]: https://github.com/coreos/docs/blob/master/etcd/os-faq.md -[container-linux-provision]: https://github.com/coreos/docs/blob/master/os/provisioning.md [container-linux-ignition]: https://github.com/coreos/docs/blob/master/ignition/what-is-ignition.md -[container-linux-ct]: https://github.com/coreos/container-linux-config-transpiler +[container-linux-provision]: https://github.com/coreos/docs/blob/master/os/provisioning.md +[systemd-docs]: https://github.com/systemd/systemd diff --git a/content/docs/v3.4/upgrades/upgrading-etcd.md b/content/docs/v3.4/upgrades/upgrading-etcd.md index 20de2fd0..0d712ba9 100644 --- a/content/docs/v3.4/upgrades/upgrading-etcd.md +++ b/content/docs/v3.4/upgrades/upgrading-etcd.md @@ -11,18 +11,13 @@ This section contains documents specific to upgrading etcd clusters and applicat * [Migrate applications from using API v2 to API v3][migrate-apps] ## Upgrading an etcd v3.x cluster -* [Upgrade etcd from 3.0 to 3.1][upgrade-3-1] -* [Upgrade etcd from 3.1 to 3.2][upgrade-3-2] -* [Upgrade etcd from 3.2 to 3.3][upgrade-3-3] -* [Upgrade etcd from 3.3 to 3.4][upgrade-3-4] +* [Upgrade etcd from 3.0 to 3.1](upgrade_3_1) +* [Upgrade etcd from 3.1 to 3.2](upgrade_3_2) +* [Upgrade etcd from 3.2 to 3.3](upgrade_3_3) +* [Upgrade etcd from 3.3 to 3.4](upgrade_3_4) ## Upgrading from etcd v2.3 -* [Upgrade a v2.3 cluster to v3.0][upgrade-cluster] +* [Upgrade a v2.3 cluster to v3.0](upgrade_3_0) [migrate-apps]: ../op-guide/v2-migration -[upgrade-cluster]: upgrade_3_0 -[upgrade-3-1]: upgrade_3_1 -[upgrade-3-2]: upgrade_3_2 -[upgrade-3-3]: upgrade_3_3 -[upgrade-3-4]: upgrade_3_4