diff --git a/CHANGELOG-3.2.md b/CHANGELOG-3.2.md index b41d2f907c4..0988992eab6 100644 --- a/CHANGELOG-3.2.md +++ b/CHANGELOG-3.2.md @@ -1,5 +1,18 @@ +## [v3.2.16](https://github.com/coreos/etcd/releases/tag/v3.2.16) (2018-02-12) + +See [code changes](https://github.com/coreos/etcd/compare/v3.2.15...v3.2.16) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. + +### Fixed(v3) + +- Fix [`mvcc` "unsynced" watcher restore operation](https://github.com/coreos/etcd/pull/9297). + - "unsynced" watcher is watcher that needs to be in sync with events that have happened. + - That is, "unsynced" watcher is the slow watcher that was requested on old revision. + - "unsynced" watcher restore operation was not correctly populating its underlying watcher group. + - Which possibly causes missing events from "unsynced" watchers. + + ## [v3.2.15](https://github.com/coreos/etcd/releases/tag/v3.2.15) (2018-01-22) See [code changes](https://github.com/coreos/etcd/compare/v3.2.14...v3.2.15) and [v3.2 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_2.md) for any breaking changes. diff --git a/CHANGELOG-3.3.md b/CHANGELOG-3.3.md index 8333d7f7d13..f0b5c0c4317 100644 --- a/CHANGELOG-3.3.md +++ b/CHANGELOG-3.3.md @@ -1,5 +1,27 @@ +## [v3.3.1](https://github.com/coreos/etcd/releases/tag/v3.3.1) (2018-02-12) + +See [code changes](https://github.com/coreos/etcd/compare/v3.3.0...v3.3.1) and [v3.3 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_3.md) for any breaking changes. + +### Improved + +- Add [warnings on requests taking too long](https://github.com/coreos/etcd/pull/9288). + - e.g. `etcdserver: read-only range request "key:\"\\000\" range_end:\"\\000\" " took too long [3.389041388s] to execute` + +### Fixed(v3) + +- Fix [`mvcc` "unsynced" watcher restore operation](https://github.com/coreos/etcd/pull/9281). + - "unsynced" watcher is watcher that needs to be in sync with events that have happened. + - That is, "unsynced" watcher is the slow watcher that was requested on old revision. + - "unsynced" watcher restore operation was not correctly populating its underlying watcher group. + - Which possibly causes missing events from "unsynced" watchers. + +### Security + +- Compile with [*Go 1.9.4*](https://groups.google.com/forum/#!topic/golang-announce/lGkem2e5WyQ) (v3.3.0 was compiled with Go *1.9.3*). + + ## [v3.3.0](https://github.com/coreos/etcd/releases/tag/v3.3.0) (2018-02-01) See [code changes](https://github.com/coreos/etcd/compare/v3.2.0...v3.3.0) and [v3.3 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_3.md) for any breaking changes. diff --git a/CHANGELOG-3.4.md b/CHANGELOG-3.4.md index b2605149991..436a862f3b8 100644 --- a/CHANGELOG-3.4.md +++ b/CHANGELOG-3.4.md @@ -1,8 +1,17 @@ -## v3.4.0 (TBD) +## v3.4.0 (TBD 2018-05-01) -**v3.4.0 is not yet released.** +See [code changes](https://github.com/coreos/etcd/compare/v3.3.0...v3.4.0) and [v3.4 upgrade guide](https://github.com/coreos/etcd/blob/master/Documentation/upgrades/upgrade_3_4.md) for any breaking changes. + +### Improved + +- Add [jitter to watch progress notify](https://github.com/coreos/etcd/pull/9278) to prevent [spikes in `etcd_network_client_grpc_sent_bytes_total`](https://github.com/coreos/etcd/issues/9246). +- Add [warnings on requests taking too long](https://github.com/coreos/etcd/pull/9288). + - e.g. `etcdserver: read-only range request "key:\"\\000\" range_end:\"\\000\" " took too long [3.389041388s] to execute` +- Improve [long-running concurrent read transactions under light write workloads](https://github.com/coreos/etcd/pull/9296). + - Previously, periodic commit on pending writes blocks incoming read transactions, even if there is no pending write. + - Now, periodic commit operation does not block concurrent read transactions, thus improves long-running read transaction performance. ### Changed(Breaking Changes) @@ -24,18 +33,20 @@ - Now `go get/install/build` on `etcd` packages (e.g. `clientv3`, `tools/benchmark`) enforce builds with etcd `vendor` directory. - Reorganize [internal packages](https://github.com/coreos/etcd/issues/9220). - `internal/*` packages [cannot be(are not meant to be) imported by external projects](https://docs.google.com/document/d/1e8kOo3r51b2BWtTs_1uADIA5djfXhPT36s6eHVRIvaU/edit). - - Move `"github.com/coreos/etcd/alarm"` to [`"github.com/coreos/etcd/internal/alarm"`](https://github.com/coreos/etcd/pull/9234). - - Move `"github.com/coreos/etcd/auth"` to [`"github.com/coreos/etcd/internal/auth"`](https://github.com/coreos/etcd/pull/9243). - - Move `"github.com/coreos/etcd/compactor"` to [`"github.com/coreos/etcd/internal/compactor"`](https://github.com/coreos/etcd/pull/9234). - - [`embed.CompactorModePeriodic`](https://github.com/coreos/etcd/pull/9247) to replace `compactor.ModePeriodic`. - - [`embed.CompactorModeRevision`](https://github.com/coreos/etcd/pull/9247) to replace `compactor.ModeRevision`. - - Move `"github.com/coreos/etcd/discovery"` to [`"github.com/coreos/etcd/internal/discovery"`](https://github.com/coreos/etcd/pull/9233). - - Move `"github.com/coreos/etcd/lease"` to [`"github.com/coreos/etcd/internal/lease"`](https://github.com/coreos/etcd/pull/9238). - - Move `"github.com/coreos/etcd/mvcc"` to [`"github.com/coreos/etcd/internal/mvcc"`](https://github.com/coreos/etcd/pull/9238). - - Move `"github.com/coreos/etcd/snap"` to [`"github.com/coreos/etcd/internal/raftsnap"`](https://github.com/coreos/etcd/pull/9211). - - Move `"github.com/coreos/etcd/store"` to [`"github.com/coreos/etcd/internal/store"`](https://github.com/coreos/etcd/pull/9238). - - Move `"github.com/coreos/etcd/version"` to [`"github.com/coreos/etcd/internal/version"`](https://github.com/coreos/etcd/pull/9244). -- Move `"github.com/coreos/etcd/etcdserver/auth"` to [`"github.com/coreos/etcd/etcdserver/v2auth"`](https://github.com/coreos/etcd/pull/9275). + - Move `"github.com/coreos/etcd/alarm"` to [`"github.com/coreos/etcd/internal/alarm"`](https://github.com/coreos/etcd/pull/9234). + - Move `"github.com/coreos/etcd/auth"` to [`"github.com/coreos/etcd/internal/auth"`](https://github.com/coreos/etcd/pull/9243). + - Move `"github.com/coreos/etcd/compactor"` to [`"github.com/coreos/etcd/internal/compactor"`](https://github.com/coreos/etcd/pull/9234). + - [`embed.CompactorModePeriodic`](https://github.com/coreos/etcd/pull/9247) to replace `compactor.ModePeriodic`. + - [`embed.CompactorModeRevision`](https://github.com/coreos/etcd/pull/9247) to replace `compactor.ModeRevision`. + - Move `"github.com/coreos/etcd/discovery"` to [`"github.com/coreos/etcd/internal/discovery"`](https://github.com/coreos/etcd/pull/9233). + - Move `"github.com/coreos/etcd/lease"` to [`"github.com/coreos/etcd/internal/lease"`](https://github.com/coreos/etcd/pull/9238). + - Move `"github.com/coreos/etcd/mvcc"` to [`"github.com/coreos/etcd/internal/mvcc"`](https://github.com/coreos/etcd/pull/9238). + - Move `"github.com/coreos/etcd/snap"` to [`"github.com/coreos/etcd/internal/raftsnap"`](https://github.com/coreos/etcd/pull/9211). + - Move `"github.com/coreos/etcd/store"` to [`"github.com/coreos/etcd/internal/store"`](https://github.com/coreos/etcd/pull/9238). + - Move `"github.com/coreos/etcd/version"` to [`"github.com/coreos/etcd/internal/version"`](https://github.com/coreos/etcd/pull/9244). + - Move `"github.com/coreos/etcd/etcdserver/auth"` to [`"github.com/coreos/etcd/etcdserver/v2auth"`](https://github.com/coreos/etcd/pull/9275). + - Change v3 `etcdctl snapshot` exit codes with [`snapshot` package](https://github.com/coreos/etcd/pull/9118/commits/df689f4280e1cce4b9d61300be13ca604d41670a). + - Exit on error with exit code 1 (no more exit code 5 or 6 on `snapshot save/restore` commands). ### Added(`etcd`) @@ -53,20 +64,31 @@ - Add [`errors` field to `etcdserverpb.StatusResponse`](https://github.com/coreos/etcd/pull/9206) for server-side error. - e.g. `"etcdserver: no leader", "NOSPACE", "CORRUPT"` - Add [`dbSizeInUse` field to `etcdserverpb.StatusResponse`](https://github.com/coreos/etcd/pull/9256) for actual DB size after compaction. - - Also exposed as metric `etcd_debugging_mvcc_db_total_size_in_use_in_bytes` ### Added(v3 `etcdctl`) - Add [`check datascale`](https://github.com/coreos/etcd/pull/9185) command. -- Add ["raft applied index" to `endpoint status`](https://github.com/coreos/etcd/pull/9176). -- Add ["errors" to `endpoint status`](https://github.com/coreos/etcd/pull/9206). +- Add ["raft applied index" field to `endpoint status`](https://github.com/coreos/etcd/pull/9176). +- Add ["errors" field to `endpoint status`](https://github.com/coreos/etcd/pull/9206). + +### Added(metrics) + +- Add [`etcd_debugging_mvcc_db_total_size_in_use_in_bytes`](https://github.com/coreos/etcd/pull/9256) Prometheus metric. ### Package `raft` -- Improve [Raft `becomeLeader` and `stepLeader`](https://github.com/coreos/etcd/pull/9073) by keeping track of latest `pb.EntryConfChange` index. - - Previously record `pendingConf` boolean field scanning the entire tail of the log, which can delay hearbeat send. +- Fix [deadlock during PreVote migration process](https://github.com/coreos/etcd/pull/8525). - Add [`raft.ErrProposalDropped`](https://github.com/coreos/etcd/pull/9067). - Now `(r *raft) Step` returns `raft.ErrProposalDropped` if a proposal has been ignored. - e.g. a node is removed from cluster, [ongoing leadership transfer](https://github.com/coreos/etcd/issues/8975), etc. +- Improve [Raft `becomeLeader` and `stepLeader`](https://github.com/coreos/etcd/pull/9073) by keeping track of latest `pb.EntryConfChange` index. + - Previously record `pendingConf` boolean field scanning the entire tail of the log, which can delay hearbeat send. - Fix [missing learner nodes on `(n *node) ApplyConfChange`](https://github.com/coreos/etcd/pull/9116). +### Fixed(v3) + +- Fix [`mvcc` "unsynced" watcher restore operation](https://github.com/coreos/etcd/pull/9281). + - "unsynced" watcher is watcher that needs to be in sync with events that have happened. + - That is, "unsynced" watcher is the slow watcher that was requested on old revision. + - "unsynced" watcher restore operation was not correctly populating its underlying watcher group. + - Which possibly causes missing events from "unsynced" watchers.