v3.4.0 is not yet released.
- Drop ACIs from official release.
- AppC was officially suspended, as of late 2016.
acbuild
is not maintained anymore.*.aci
files are not available fromv3.4
release.
- Exit on empty hosts in advertise URLs.
- Address advertise client URLs accepts empty hosts.
- e.g. exit with error on
--advertise-client-urls=http://:2379
. - e.g. exit with error on
--initial-advertise-peer-urls=http://:2380
.
- Exit on shadowed environment variables.
- Address error on shadowed environment variables.
- e.g. exit with error on
ETCD_INITIAL_CLUSTER_TOKEN=abc etcd --initial-cluster-token=def
.
- Migrate dependency management tool from
glide
togolang/dep
.- <= 3.3 puts
vendor
directory undercmd/vendor
directory to prevent conflicting transitive dependencies. - 3.4 moves
cmd/vendor
directory tovendor
at repository root. - Remove recursive symlinks in
cmd
directory. - Now
go get/install/build
onetcd
packages (e.g.clientv3
,tools/benchmark
) enforce builds with etcdvendor
directory.
- <= 3.3 puts
- Reorganize internal packages.
internal/*
packages cannot be(are not meant to be) imported by external projects.- Move
"github.com/coreos/etcd/alarm"
to"github.com/coreos/etcd/internal/alarm"
. - Move
"github.com/coreos/etcd/auth"
to"github.com/coreos/etcd/internal/auth"
. - Move
"github.com/coreos/etcd/compactor"
to"github.com/coreos/etcd/internal/compactor"
.embed.CompactorModePeriodic
to replacecompactor.ModePeriodic
.embed.CompactorModeRevision
to replacecompactor.ModeRevision
.
- Move
"github.com/coreos/etcd/discovery"
to"github.com/coreos/etcd/internal/discovery"
. - Move
"github.com/coreos/etcd/lease"
to"github.com/coreos/etcd/internal/lease"
. - Move
"github.com/coreos/etcd/mvcc"
to"github.com/coreos/etcd/internal/mvcc"
. - Move
"github.com/coreos/etcd/snap"
to"github.com/coreos/etcd/internal/raftsnap"
. - Move
"github.com/coreos/etcd/store"
to"github.com/coreos/etcd/internal/store"
. - Move
"github.com/coreos/etcd/version"
to"github.com/coreos/etcd/internal/version"
.
- Move
"github.com/coreos/etcd/etcdserver/auth"
to"github.com/coreos/etcd/etcdserver/v2auth"
.
- Add
--discovery-srv-name
flag to support custom DNS SRV name with discovery.- If not given, etcd queries
_etcd-server-ssl._tcp.[YOUR_HOST]
and_etcd-server._tcp.[YOUR_HOST]
. - If
--discovery-srv-name="foo"
, then query_etcd-server-ssl-foo._tcp.[YOUR_HOST]
and_etcd-server-foo._tcp.[YOUR_HOST]
. - Useful for operating multiple etcd clusters under the same domain.
- If not given, etcd queries
- Add
snapshot
package for snapshot restore/save operations. - Add
watch_id
field toetcdserverpb.WatchCreateRequest
, allow user-provided watch ID tomvcc
.- Corresponding
watch_id
is returned viaetcdserverpb.WatchResponse
, if any.
- Corresponding
- Add
raftAppliedIndex
field toetcdserverpb.StatusResponse
for current Raft applied index. - Add
errors
field toetcdserverpb.StatusResponse
for server-side error.- e.g.
"etcdserver: no leader", "NOSPACE", "CORRUPT"
- e.g.
- Add
dbSizeInUse
field toetcdserverpb.StatusResponse
for actual DB size after compaction.- Also exposed as metric
etcd_debugging_mvcc_db_total_size_in_use_in_bytes
- Also exposed as metric
- Add
check datascale
command. - Add "raft applied index" to
endpoint status
. - Add "errors" to
endpoint status
.
- Improve Raft
becomeLeader
andstepLeader
by keeping track of latestpb.EntryConfChange
index.- Previously record
pendingConf
boolean field scanning the entire tail of the log, which can delay hearbeat send.
- Previously record
- Add
raft.ErrProposalDropped
.- Now
(r *raft) Step
returnsraft.ErrProposalDropped
if a proposal has been ignored. - e.g. a node is removed from cluster, ongoing leadership transfer, etc.
- Now
- Fix missing learner nodes on
(n *node) ApplyConfChange
.