grpc-java
grpc-java copied to clipboard
Tracking retry APIs being experimental
Hello, what's the status of this? Still "experimental"? Looks like the design doc was written a while ago: https://github.com/grpc/proposal/blob/master/A6-client-retries.md
It will still be experimental for a while, basically all features depending on service config will be experimental until after service config API is stabilized. Also retry while enabling census stats/tracing is not yet implemented.
When do you plan fix it?
@vvkovtun unfortunately we may not be actively enhancing it this year due to other priorities, will review it at the beginning of next year.
hi .. does disableRetry actually disable retry to connect to the server when it's unavailable?
@emaayan disableRetry() disables RPC retry, but it does not disable connection attempt retry, the channel always tries to re-connect to the server after certain exponential back-off.
Is there any movement here? Specifically this behaviour is a bit of a showstopper:
https://github.com/grpc/grpc-java/blob/master/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java#L530
I couldn't find any data around the cause of this, and the pull request that caused that line is a bit gnomic...
https://github.com/grpc/grpc-java/pull/3464
Thanks!
@dapengzhang0 - any news? Did you do your new year review? Thanks!
@vvkovtun, @Jonpez2 The stats issue with retry is finally resolved in #8362 with the gRFC https://github.com/grpc/proposal/blob/master/A45-retry-stats.md
@Nemant enableRetry() and disableRetry() is stabilized from v1.40.1.
- Delete “not fully implemented" comment from javadoc
- Specify what the defaults are
- Mention that these are advanced configuration that rarely need to be set
- Rephrase max=0 to eliminate negation and to indicate that hedging is still available
- Hedging - mention that it is independent of retry. Add link to grfc (that specific section) and add “for general information on hedging see user guide”
- Update enable retry javadoc to say that it is on by default and link to hedging user guide
For both retryBufferSize and perRpcBufferLimit
- doesn't apply for
InProcessTransport - update the description to:
If there is not enough buffer available for an RPC, the RPC is committed. Such an RPC will not be retried and all but one hedge attempt will be cancelled.
Please note that the implementation may estimate the buffer size instead of precisely measuring the physical memory used. This method has no effect if retry is disabled for the client.
In-process issue buffering issue: https://github.com/grpc/grpc-java/issues/8712