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]
