gianm opened a new pull request, #13354:
URL: https://github.com/apache/druid/pull/13354

   Motivations:
   
   - Contact all tasks at once, shortening the time it takes to execute 
RunNotices when there are a lot of tasks.
   - Eliminate the need for `chatThreads`.
   - Reduce demands on `workerThreads`.
   
   Main changes:
   
   1) Convert SeekableStreamIndexTaskClient to an interface, move old code
      to SeekableStreamIndexTaskClientSyncImpl, and add new implementation
      SeekableStreamIndexTaskClientAsyncImpl that uses ServiceClient.
   
   2) Add "chatAsync" parameter to seekable stream supervisors that causes
      the supervisor to use an async task client.
   
   3) In SeekableStreamSupervisor.discoverTasks, adjust logic to avoid making
      blocking RPC calls in workerExec threads.
   
   4) In SeekableStreamSupervisor generally, switch from 
Futures.successfulAsList
      to FutureUtils.coalesce, so we can better capture the errors that occurred
      with contacting individual tasks.
   
   Other, related changes:
   
   1) Add ServiceRetryPolicy.retryNotAvailable, which controls whether
      ServiceClient retries unavailable services. Useful since we do not
      want to retry calls unavailable tasks within the service client. (The
      supervisor does its own higher-level retries.)
   
   2) Add FutureUtils.transformAsync, a more lambda friendly version of
      Futures.transform(f, AsyncFunction).
   
   3) Add FutureUtils.coalesce. Similar to Futures.successfulAsList, but
      returns Either instead of using null on error.
   
   4) Add JacksonUtils.readValue overloads for JavaType and TypeReference.


-- 
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