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

Varun Saxena commented on YARN-4604:
------------------------------------

Copying over my comment from YARN-4596.

bq. It should at least let the client side know which entities have been posted 
to the timeline server, and which ones haven't.
*None of the entities will get posted to backend store.*

*BadRequestException* is thrown during entity preprocessing phase. Not during 
store put. We first collect all the applicable entities which can be posted and 
then only call {{TimelineStore#put}}. We are not calling put from within the 
loop. Refer to {{TimelineDataManager#doPostEntities}}.

It can although be argued that we can post entities which can be and send a put 
error(new error type) for the entity which has no entity id or entity type. But 
if we do not have entity id or type, how will client recognize which specific 
entity has failed from put error ? Maybe they can cache entities which they 
have sent and then re-look at entities they attempted to post and find out 
which ones had entity id and entity type missing. But will client be doing so ? 
Current clients would be looking at entity id and type to find out which 
entities failed and why.

Entity ID and type are key pieces of information in ATSv1. If client is not 
sending them, it indicates some problem in the client side code. I think 
current code can be kept as it is because this will be consistent with 
{{TimelineClient}} side code too where none of the entities will be posted if 
entity id or type is missing in even one of them.
Thoughts ?

> TimelineDataManager should return gracefully when one entity's id or type is 
> empty
> ----------------------------------------------------------------------------------
>
>                 Key: YARN-4604
>                 URL: https://issues.apache.org/jira/browse/YARN-4604
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Li Lu
>            Assignee: Li Lu
>
> As discussed in YARN-4596, when the timeline data manager hit one entity 
> whose id and/or type fields are empty, it should not directly throw 
> exception. It should at least let the client side know which entities have 
> been posted to the timeline server, and which ones haven't. 



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

Reply via email to