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)

Reply via email to