You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Will Berkeley (JIRA)" <ji...@apache.org> on 2019/03/04 23:45:00 UTC

[jira] [Created] (KUDU-2728) A TabletService queue overflow on a write causes a GetTableLocations call in the Java client

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)