gianm commented on PR #14092:
URL: https://github.com/apache/druid/pull/14092#issuecomment-1515953789

   A note, there's also the newer `ServiceClient` and `ServiceLocator` (with 
high-level clients like `OverlordClient` and `CoordinatorServiceClient` that I 
don't think have this problem. They use `DruidNodeDiscovery.Listener` rather 
than periodic `getAllNodes`, so they update continuously as the services come 
and go.
   
   So, we can likely improve further by migrating things to ServiceClient.
   
   #12696 introduced these and discusses them in more detail. The PR calls out 
some issues with DruidLeaderClient:
   
   
   
   > DruidLeaderClient does retries in its "go" method, but only retries
   > exactly 5 times, does not sleep between retries, and does not retry
   > retryable HTTP codes like 502, 503, 504. (It only retries IOExceptions.)
   > ServiceClient handles retries in a more reasonable way.
   >
   > DruidLeaderClient's methods are all synchronous, whereas ServiceClient
   > methods are asynchronous. This is used in one place so far: the
   > SpecificTaskServiceLocator, so we don't need to block a thread trying
   > to locate a task. It can be used in other places in the future.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to