From 74133a39968472a719851d634ac344a2a74cf73b Mon Sep 17 00:00:00 2001
From: wei liu <wei.liu@zilliz.com>
Date: Wed, 16 Aug 2023 19:36:18 +0800
Subject: [PATCH] refine retry on grpc (#26360)

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
---
 configs/milvus.yaml                | 2 +-
 internal/util/grpcclient/client.go | 4 ++--
 pkg/util/paramtable/grpc_param.go  | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/configs/milvus.yaml b/configs/milvus.yaml
index 11daf95af1..1e668fc226 100644
--- a/configs/milvus.yaml
+++ b/configs/milvus.yaml
@@ -419,7 +419,7 @@ grpc:
     keepAliveTimeout: 20000
     maxMaxAttempts: 5
     initialBackoff: 1
-    maxBackoff: 60
+    maxBackoff: 10
     backoffMultiplier: 2
   clientMaxSendSize: 268435456
   clientMaxRecvSize: 268435456
diff --git a/internal/util/grpcclient/client.go b/internal/util/grpcclient/client.go
index a09561942e..8487c179b8 100644
--- a/internal/util/grpcclient/client.go
+++ b/internal/util/grpcclient/client.go
@@ -222,8 +222,8 @@ func (c *ClientBase[T]) connect(ctx context.Context) error {
 				MinConnectTimeout: c.DialTimeout,
 			}),
 			grpc.WithPerRPCCredentials(&Token{Value: crypto.Base64Encode(util.MemberCredID)}),
-			grpc.WithDisableRetry(),
 			grpc.FailOnNonTempDialError(true),
+			grpc.WithReturnConnectionError(),
 		)
 	} else {
 		conn, err = grpc.DialContext(
@@ -260,8 +260,8 @@ func (c *ClientBase[T]) connect(ctx context.Context) error {
 				MinConnectTimeout: c.DialTimeout,
 			}),
 			grpc.WithPerRPCCredentials(&Token{Value: crypto.Base64Encode(util.MemberCredID)}),
-			grpc.WithDisableRetry(),
 			grpc.FailOnNonTempDialError(true),
+			grpc.WithReturnConnectionError(),
 		)
 	}
 
diff --git a/pkg/util/paramtable/grpc_param.go b/pkg/util/paramtable/grpc_param.go
index 0519deacda..9760b20ef4 100644
--- a/pkg/util/paramtable/grpc_param.go
+++ b/pkg/util/paramtable/grpc_param.go
@@ -45,7 +45,7 @@ const (
 	// Grpc retry policy
 	DefaultMaxAttempts               = 5
 	DefaultInitialBackoff    float64 = 1.0
-	DefaultMaxBackoff        float64 = 60.0
+	DefaultMaxBackoff        float64 = 10.0
 	DefaultBackoffMultiplier float64 = 2.0
 
 	DefaultCompressionEnabled bool = false