Li Lu commented on YARN-3431:

bq. After receiving the entity from the endpoint of the web server, not matter 
it was the generic TimelineEntity or the subclass object, it will be 
deserialized as TimelineEntity object. If it was the subclass object, the 
content is preserved, but the Java class hierarchy is lost after 
deserialization. However, we can use TimelineEntity and its type to construct 
the right subclass object in a proxy way.

OK, I agree the current design would save us one deep copy every time we 
receive a timeline entity. I'm still thinking about an appropriate name for the 
"prototype" field to better represent its nature...

bq. For HierarchicalTimelineEntity, seems like we're not adding any special 
tags when we addIsRelatedToEntity() in setParent()
bq. Yeah, relates to/ is related to is used to construct a directed graph among 
entities. Parent-child relationship is a tree, which can be described by 
relates to/ is related.
bq. Are we prohibiting the users from using isRelatedToEntities in 
HierarchicalTimelineEntity completely to avoid problems?
bq. Sounds good. I used to think about it, but not include it in this patch.

That sounds good. It would be very helpful to explicitly prohibit direct usages 
of isRelatedToEntities and relatesToEntities IMHO. 

> Sub resources of timeline entity needs to be passed to a separate endpoint.
> ---------------------------------------------------------------------------
>                 Key: YARN-3431
>                 URL: https://issues.apache.org/jira/browse/YARN-3431
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: timelineserver
>            Reporter: Zhijie Shen
>            Assignee: Zhijie Shen
>         Attachments: YARN-3431.1.patch, YARN-3431.2.patch, YARN-3431.3.patch
> We have TimelineEntity and some other entities as subclass that inherit from 
> it. However, we only have a single endpoint, which consume TimelineEntity 
> rather than sub-classes and this endpoint will check the incoming request 
> body contains exactly TimelineEntity object. However, the json data which is 
> serialized from sub-class object seems not to be treated as an TimelineEntity 
> object, and won't be deserialized into the corresponding sub-class object 
> which cause deserialization failure as some discussions in YARN-3334 : 
> https://issues.apache.org/jira/browse/YARN-3334?focusedCommentId=14391059&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14391059.

This message was sent by Atlassian JIRA

Reply via email to