|
1 | 1 |
|
2 | 2 |
|
3 |
| -## v3.4.0 (TBD) |
| 3 | +## v3.4.0 (TBD 2018-05-01) |
4 | 4 |
|
5 |
| -**v3.4.0 is not yet released.** |
| 5 | +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. |
| 6 | + |
| 7 | +### Improved |
| 8 | + |
| 9 | +- 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). |
6 | 10 |
|
7 | 11 | ### Changed(Breaking Changes)
|
8 | 12 |
|
|
24 | 28 | - Now `go get/install/build` on `etcd` packages (e.g. `clientv3`, `tools/benchmark`) enforce builds with etcd `vendor` directory.
|
25 | 29 | - Reorganize [internal packages](https://github.com/coreos/etcd/issues/9220).
|
26 | 30 | - `internal/*` packages [cannot be(are not meant to be) imported by external projects](https://docs.google.com/document/d/1e8kOo3r51b2BWtTs_1uADIA5djfXhPT36s6eHVRIvaU/edit).
|
27 |
| - - Move `"github.com/coreos/etcd/alarm"` to [`"github.com/coreos/etcd/internal/alarm"`](https://github.com/coreos/etcd/pull/9234). |
28 |
| - - Move `"github.com/coreos/etcd/auth"` to [`"github.com/coreos/etcd/internal/auth"`](https://github.com/coreos/etcd/pull/9243). |
29 |
| - - Move `"github.com/coreos/etcd/compactor"` to [`"github.com/coreos/etcd/internal/compactor"`](https://github.com/coreos/etcd/pull/9234). |
30 |
| - - [`embed.CompactorModePeriodic`](https://github.com/coreos/etcd/pull/9247) to replace `compactor.ModePeriodic`. |
31 |
| - - [`embed.CompactorModeRevision`](https://github.com/coreos/etcd/pull/9247) to replace `compactor.ModeRevision`. |
32 |
| - - Move `"github.com/coreos/etcd/discovery"` to [`"github.com/coreos/etcd/internal/discovery"`](https://github.com/coreos/etcd/pull/9233). |
33 |
| - - Move `"github.com/coreos/etcd/lease"` to [`"github.com/coreos/etcd/internal/lease"`](https://github.com/coreos/etcd/pull/9238). |
34 |
| - - Move `"github.com/coreos/etcd/mvcc"` to [`"github.com/coreos/etcd/internal/mvcc"`](https://github.com/coreos/etcd/pull/9238). |
35 |
| - - Move `"github.com/coreos/etcd/snap"` to [`"github.com/coreos/etcd/internal/raftsnap"`](https://github.com/coreos/etcd/pull/9211). |
36 |
| - - Move `"github.com/coreos/etcd/store"` to [`"github.com/coreos/etcd/internal/store"`](https://github.com/coreos/etcd/pull/9238). |
37 |
| - - Move `"github.com/coreos/etcd/version"` to [`"github.com/coreos/etcd/internal/version"`](https://github.com/coreos/etcd/pull/9244). |
38 |
| -- Move `"github.com/coreos/etcd/etcdserver/auth"` to [`"github.com/coreos/etcd/etcdserver/v2auth"`](https://github.com/coreos/etcd/pull/9275). |
| 31 | + - Move `"github.com/coreos/etcd/alarm"` to [`"github.com/coreos/etcd/internal/alarm"`](https://github.com/coreos/etcd/pull/9234). |
| 32 | + - Move `"github.com/coreos/etcd/auth"` to [`"github.com/coreos/etcd/internal/auth"`](https://github.com/coreos/etcd/pull/9243). |
| 33 | + - Move `"github.com/coreos/etcd/compactor"` to [`"github.com/coreos/etcd/internal/compactor"`](https://github.com/coreos/etcd/pull/9234). |
| 34 | + - [`embed.CompactorModePeriodic`](https://github.com/coreos/etcd/pull/9247) to replace `compactor.ModePeriodic`. |
| 35 | + - [`embed.CompactorModeRevision`](https://github.com/coreos/etcd/pull/9247) to replace `compactor.ModeRevision`. |
| 36 | + - Move `"github.com/coreos/etcd/discovery"` to [`"github.com/coreos/etcd/internal/discovery"`](https://github.com/coreos/etcd/pull/9233). |
| 37 | + - Move `"github.com/coreos/etcd/lease"` to [`"github.com/coreos/etcd/internal/lease"`](https://github.com/coreos/etcd/pull/9238). |
| 38 | + - Move `"github.com/coreos/etcd/mvcc"` to [`"github.com/coreos/etcd/internal/mvcc"`](https://github.com/coreos/etcd/pull/9238). |
| 39 | + - Move `"github.com/coreos/etcd/snap"` to [`"github.com/coreos/etcd/internal/raftsnap"`](https://github.com/coreos/etcd/pull/9211). |
| 40 | + - Move `"github.com/coreos/etcd/store"` to [`"github.com/coreos/etcd/internal/store"`](https://github.com/coreos/etcd/pull/9238). |
| 41 | + - Move `"github.com/coreos/etcd/version"` to [`"github.com/coreos/etcd/internal/version"`](https://github.com/coreos/etcd/pull/9244). |
| 42 | + - Move `"github.com/coreos/etcd/etcdserver/auth"` to [`"github.com/coreos/etcd/etcdserver/v2auth"`](https://github.com/coreos/etcd/pull/9275). |
| 43 | + - Change v3 `etcdctl snapshot` exit codes with [`snapshot` package](https://github.com/coreos/etcd/pull/9118/commits/df689f4280e1cce4b9d61300be13ca604d41670a). |
| 44 | + - Exit on error with exit code 1 (no more exit code 5 or 6 on `snapshot save/restore` commands). |
39 | 45 |
|
40 | 46 | ### Added(`etcd`)
|
41 | 47 |
|
|
53 | 59 | - Add [`errors` field to `etcdserverpb.StatusResponse`](https://github.com/coreos/etcd/pull/9206) for server-side error.
|
54 | 60 | - e.g. `"etcdserver: no leader", "NOSPACE", "CORRUPT"`
|
55 | 61 | - Add [`dbSizeInUse` field to `etcdserverpb.StatusResponse`](https://github.com/coreos/etcd/pull/9256) for actual DB size after compaction.
|
56 |
| - - Also exposed as metric `etcd_debugging_mvcc_db_total_size_in_use_in_bytes` |
57 | 62 |
|
58 | 63 | ### Added(v3 `etcdctl`)
|
59 | 64 |
|
60 | 65 | - Add [`check datascale`](https://github.com/coreos/etcd/pull/9185) command.
|
61 |
| -- Add ["raft applied index" to `endpoint status`](https://github.com/coreos/etcd/pull/9176). |
62 |
| -- Add ["errors" to `endpoint status`](https://github.com/coreos/etcd/pull/9206). |
| 66 | +- Add ["raft applied index" field to `endpoint status`](https://github.com/coreos/etcd/pull/9176). |
| 67 | +- Add ["errors" field to `endpoint status`](https://github.com/coreos/etcd/pull/9206). |
| 68 | + |
| 69 | +### Added(metrics) |
| 70 | + |
| 71 | +- Add [`etcd_debugging_mvcc_db_total_size_in_use_in_bytes`](https://github.com/coreos/etcd/pull/9256) Prometheus metric. |
63 | 72 |
|
64 | 73 | ### Package `raft`
|
65 | 74 |
|
66 |
| -- Improve [Raft `becomeLeader` and `stepLeader`](https://github.com/coreos/etcd/pull/9073) by keeping track of latest `pb.EntryConfChange` index. |
67 |
| - - Previously record `pendingConf` boolean field scanning the entire tail of the log, which can delay hearbeat send. |
| 75 | +- Fix [deadlock during PreVote migration process](https://github.com/coreos/etcd/pull/8525). |
68 | 76 | - Add [`raft.ErrProposalDropped`](https://github.com/coreos/etcd/pull/9067).
|
69 | 77 | - Now `(r *raft) Step` returns `raft.ErrProposalDropped` if a proposal has been ignored.
|
70 | 78 | - e.g. a node is removed from cluster, [ongoing leadership transfer](https://github.com/coreos/etcd/issues/8975), etc.
|
| 79 | +- Improve [Raft `becomeLeader` and `stepLeader`](https://github.com/coreos/etcd/pull/9073) by keeping track of latest `pb.EntryConfChange` index. |
| 80 | + - Previously record `pendingConf` boolean field scanning the entire tail of the log, which can delay hearbeat send. |
71 | 81 | - Fix [missing learner nodes on `(n *node) ApplyConfChange`](https://github.com/coreos/etcd/pull/9116).
|
72 | 82 |
|
| 83 | +### Fixed(v3) |
| 84 | + |
| 85 | +- Fix [`mvcc` "unsynced" watcher restore operation](https://github.com/coreos/etcd/pull/9281). |
| 86 | + - "unsynced" watcher is watcher that needs to sync with events that have happened. |
| 87 | + - That is, "unsynced" watcher is the slow watcher that was spawned on old revision. |
| 88 | + - "unsynced" watcher restore operation was not correctly populating its underlying watcher group. |
| 89 | + - Which possibly causes missing events from "unsynced" watchers. |
0 commit comments