-
yacovm authored
Per the gRPC documentation: If an RPC is issued but the channel is in TRANSIENT_FAILURE or SHUTDOWN states, the RPC is unable to be transmited promptly. By default, gRPC implementations SHOULD fail such RPCs immediately. This is known as "fail fast," but usage of the term is historical. However... RPCs SHOULD NOT fail as a result of the channel being in other states (CONNECTING, READY, or IDLE). Therefore, if it takes too much time for gRPC to move from a state of CONNECTING to TRANSIENT_FAILURE (i.e - packet drop, or DNS lookup failure) - it will slow down the entire Raft FSM. This change set makes Step RPCs inspect the underlying gRPC connection state prior to being invoked. If the connection is in state connecting, then it fails fast. Change-Id: I50df1f758a00fc99bed54ff1a2056f83f53efdf7 Signed-off-by:
yacovm <yacovm@il.ibm.com>