GRPC Version: 1.3.9
Platform: Windows

I'm working on a prototype application that periodically calculates data 
and then in a multi-step process pushes the data to a server. The design is 
that the server doesn't need to be up or can go down mid process. The 
client will not block (or block as little as possible) between updates if 
there is problem pushing data.

A simple model for the client would be:
Loop Until Done
{
 Calculate Data
 If Server Available and No Error Begin Update
 If Server Available and No Error UpdateX (Optional)
 If Server Available and No Error UpdateY (Optional)
 If Server Available and No Error UpdateZ (Optional)
 If Server Available and No Error End Update
}

The client doesn't care if the server is available but if it is should push 
data, if any errors skip everything else until next update.

The problem is that if I make an call on the client (and the server isn't 
available) the first fails very quickly (~1sec) and the rest take a "long" 
time, ~20sec. It looks like this is due to the reconnect backoff time. I 
tried setting the GRPC_ARG_MAX_RECONNECT_BACKOFF_MS on the channel args to 
a lower value (2000) but that didn't have any positive affect.

I tried using GetState(true) on the channel to determine if we need to skip 
an update. This call fails very quickly but never seems to get out of the 
transient failure state after the server was started (waited for over 60 
seconds). On the documentation it looked like the param for GetState only 
affects if the channel was in the idle state to attempt a reconnect.

What is the best way to achieve the functionality we'd like?

I noticed there was a new GRPC_ARG_MIN_RECONNECT_BACKOFF_MS option added in 
a later version of grpc, would that cause the grpc call to "fail fast" if I 
upgraded and set that to a low value ~1sec?

Is there a better way to handle this situation in general?

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To post to this group, send email to grpc-io@googlegroups.com.
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/9fb7bf54-88fa-4781-8864-c9b2b06d5f0e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to