[ 
https://issues.apache.org/jira/browse/YARN-2517?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14221249#comment-14221249
 ] 

Zhijie Shen commented on YARN-2517:
-----------------------------------

I'm not sure Future is going to help the use case. Say I want to use 
TimelineClientAsync to do async put entity operations. With Future, 
putEntitiesAsync returns immediately. However, to know if my put entity 
operation is successful not, I still have to been blocked at Future#get(), or 
create a separate thread to wait for the response. But IMHO, one goal of 
TimelineClientAsync is to relieve users from multithreading details, such that 
Type (1) sounds better to me.

Rethink whether we create a separate TimelineClientAsync or add async method in 
TimelineClient. We have putEntities and putDomain, and in the future we will 
have more get APIs. For now, the most concerned API is putEntities, as we don't 
want it to block the normal execution logic of an app. Maybe compromise now is 
to add putEntitiesAsync to TimelineClient. In the future, let's see if we want 
to have a separate TimelineClientAsync that contains a bunch of async APIs.

Thoughts?

> Implement TimelineClientAsync
> -----------------------------
>
>                 Key: YARN-2517
>                 URL: https://issues.apache.org/jira/browse/YARN-2517
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Zhijie Shen
>            Assignee: Tsuyoshi OZAWA
>         Attachments: YARN-2517.1.patch, YARN-2517.2.patch
>
>
> In some scenarios, we'd like to put timeline entities in another thread no to 
> block the current one.
> It's good to have a TimelineClientAsync like AMRMClientAsync and 
> NMClientAsync. It can buffer entities, put them in a separate thread, and 
> have callback to handle the responses.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to