Will Berkeley created KUDU-2728:
-----------------------------------
Summary: A TabletService queue overflow on a write causes a
GetTableLocations call in the Java client
Key: KUDU-2728
URL: https://issues.apache.org/jira/browse/KUDU-2728
Project: Kudu
Issue Type: Improvement
Affects Versions: 1.9.0
Reporter: Will Berkeley
If the Java client receives a ServiceUnavailable from the RPC layer (as opposed
to as a tablet server error), it treats that error like a "Tablet not found
error". See
https://github.com/apache/kudu/blob/branch-1.9.x/java/kudu-client/src/main/java/org/apache/kudu/client/RpcProxy.java#L237
and
https://github.com/apache/kudu/blob/branch-1.9.x/java/kudu-client/src/main/java/org/apache/kudu/client/RpcProxy.java#L410.
When a write operation sent to the tablet leader is rejected from the service
queue, this logic causes the Java client to lookup the locations for the table
again. This is wasteful, and can result in hundreds or thousands of GTL calls
to the master. Usually, this isn't a problem for the master, but I've seen a
case where floods of GTL calls for a table with 1000+ tablets caused master
service queue overflows, and triggered KUDU-2710. It's wasteful, in any case.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)