etcd-io/etcd
Glossary
Words you will repeatedly encounter in etcd's source code, issues, and docs.
| Term | Meaning |
|---|---|
| Member | A single etcd process that participates in the Raft cluster. Identified by a 64-bit MemberID in server/etcdserver/api/membership/member.go. |
| Learner | A non-voting member that catches up the log before being promoted. See server/etcdserver/api/membership/cluster.go and etcdctl member promote. |
| Cluster ID | A 64-bit identifier derived from the initial cluster definition. Stored in WAL and used for safety checks against cross-cluster reads/writes. |
| WAL (Write-Ahead Log) | The append-only on-disk log of every Raft entry. Source: server/storage/wal/. |
| Snapshot | A serialized point-in-time state of MVCC + cluster metadata, used to bootstrap slow followers and bound WAL size. Source: server/etcdserver/api/snap/, server/storage/mvcc/kvstore_compaction.go. |
| Backend | The bbolt-backed key-value store under MVCC. Source: server/storage/backend/. |
| Bucket | A bbolt-level keyspace partition (key, meta, auth, lease, ...). Defined in server/storage/schema/bucket.go. |
| Revision | A monotonic store-wide version. Composed of main (transaction id) and sub (intra-txn order). See server/storage/mvcc/revision.go. |
| MVCC | Multi-Version Concurrency Control. Every key holds a history of revisions, enabling time-travel reads and watchers. Source: server/storage/mvcc/. |
| Compaction | Discards revisions older than a chosen point. Without it, history grows unbounded. Source: server/etcdserver/api/v3compactor/. |
| Lease | A TTL token that, when revoked or expired, deletes all keys attached to it. Source: server/lease/. |
| Lessor / lessee | The leader is the primary lessor; lease grants/revokes go through Raft. The clients holding leases are lessees. |
| Watch | A streaming subscription to key changes from a given revision onward. Implemented in server/storage/mvcc/watcher.go and exposed via the Watch gRPC service in server/etcdserver/api/v3rpc/watch.go. |
| Linearizable read | A read that goes through Raft ReadIndex to confirm leadership before returning. See server/etcdserver/v3_server.go. |
| Serializable read | A read served from the local MVCC store without Raft round-trip. May be stale. |
| Txn | An atomic transaction with If/Then/Else clauses, evaluated against a single revision. Source: server/etcdserver/txn/. |
| Apply | The phase that takes a committed Raft entry and mutates MVCC/lease/auth state. Source: server/etcdserver/apply/. |
| Raft index / term | The position and election epoch of a Raft log entry, persisted in WAL. |
| HardState | Term, vote, and commit index persisted before any log entry can be sent. |
| Apply / Commit gap | Difference between Raft's committedIndex and appliedIndex. The server backpressures proposals if the gap grows too large (maxGapBetweenApplyAndCommitIndex in v3_server.go). |
| Quorum / strict-reconfig-check | Cluster reconfiguration is rejected if it would lose quorum. Toggled by --strict-reconfig-check (default true). |
| Discovery | A mechanism to bootstrap an initial cluster via DNS SRV records or a public discovery service. Source: server/etcdserver/api/v3discovery/. |
| Embed | The mode where another Go program imports go.etcd.io/etcd/server/v3/embed to run etcd in-process. |
| gRPC gateway | Auto-generated REST/JSON shim over the gRPC API, defined by google.api.http annotations in api/etcdserverpb/rpc.proto. |
| gRPC proxy | Stateful caching proxy that consolidates client watches and reads. Source: server/proxy/grpcproxy/. |
| etcd gateway | Stateless TCP load balancer in front of a cluster. Source: server/etcdmain/gateway.go. |
| etcdctl | Official command-line client for the v3 API. |
| etcdutl | Offline utility for snapshot, backup, hash, WAL/db inspection. |
| Robustness tests | Linearizability + fault-injection harness in tests/robustness/. The project's heaviest correctness gate. |
| Failpoints | Compile-time hooks (gofail) used by robustness/integration tests to inject faults. See tests/robustness/failpoint/. |
| Feature gate | A named, default-on/off behavior toggle. Implementation in pkg/featuregate/ and registry in server/features/. |
| Auth (RBAC) | Users, roles, and permissions enforced by server/auth/. Tokens are either simple (etcd-internal) or jwt. |
| Range / RangeEnd | Half-open key range [key, range_end) used by every gRPC operation that scans keys. |
| PrevKV | Optional flag returning the previous value with a Put/DeleteRange/Watch event. |
| Conf change | A Raft ConfChange log entry that adds, removes, updates, or promotes a member. |
| Bbolt | Etcd's fork of BoltDB, the embedded key/value store underlying MVCC. |
| Raft library | The Raft implementation lives in a separate repo: go.etcd.io/raft/v3. This repo only contains the integration layer in server/etcdserver/raft.go and server/etcdserver/api/rafthttp/. |
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.