diff --git a/Documentation/upgrades/upgrade_3_4.md b/Documentation/upgrades/upgrade_3_4.md index b1b3be005..dec291ab6 100644 --- a/Documentation/upgrades/upgrade_3_4.md +++ b/Documentation/upgrades/upgrade_3_4.md @@ -35,7 +35,7 @@ OK +etcdctl put foo bar ``` -#### Make `ETCDCTL_API=3 etcdctl` default +#### Make `etcd --enable-v2=false` default [`etcd --enable-v2=false`](https://github.com/etcd-io/etcd/pull/10935) is now the default. @@ -87,6 +87,29 @@ _, err := kvc.Get(ctx, "a") + if s.Code() == codes.Canceled ``` +#### Require `grpc.WithBlock` for client dial + +[The new client balancer][client-design] uses an asynchronous resolver to pass endpoints to the gRPC dial function. + +In order to create a client object synchronously with gRPC connection, pass `grpc.WithBlock` to dial options: + +```diff +import ( + "time" + "go.etcd.io/etcd/clientv3" ++ "google.golang.org/grpc" +) + ++// "grpc.WithBlock()" to block until the underlying connection is up +ccfg := clientv3.Config{ + Endpoints: []string{"localhost:2379"}, + DialTimeout: time.Second, ++ DialOptions: []grpc.DialOption{grpc.WithBlock()}, + DialKeepAliveTime: time.Second, + DialKeepAliveTimeout: 500 * time.Millisecond, +} +``` + #### Deprecating `etcd_debugging_mvcc_db_total_size_in_bytes` Prometheus metrics v3.4 promotes `etcd_debugging_mvcc_db_total_size_in_bytes` Prometheus metrics to `etcd_mvcc_db_total_size_in_bytes`, in order to encourage etcd storage monitoring. @@ -580,3 +603,4 @@ COMMENT ``` [etcd-contact]: https://groups.google.com/forum/#!forum/etcd-dev +[client-design]: https://github.com/etcd-io/etcd/blob/master/Documentation/learning/design-client.md