[ https://issues.apache.org/jira/browse/YARN-4675?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15726372#comment-15726372 ]
Sangjin Lee commented on YARN-4675: ----------------------------------- I agree that we need to have a firm conclusion one way or another on this before the next release. There are two aspects to this: (1) reorganize {{TimelineClientImpl}} into v.1 specific code and v.2 specific code, and (2) create separate interfaces (APIs) for v.1 and v.2. IMO, (1) is not very controversial and that's what's captured in the current patch. I think we should do it as it's more of an internal "implementation detail". For the most part, clients should *not* use {{TimelineClientImpl}} or other impl classes directly but rather stick with {{TimelineClient}}. I do see some references to {{TimelineClientImpl}} in MR and distributed shell and what not, and it might be good to address them to avoid using {{TimelineClientImpl}} as much as possible. On the other hand, (2) is a little bigger issue as it affects how clients will implement using timeline service. The initial desire was to stick with a single interface ({{TimelineClient}}) for both v.1 and v.2 because we wanted to minimize the impact on client code. However, since we have new entity API, we still had to have v.1-specific methods and v.2-specific methods. Therefore, clients still need to do things like: {code} if (v.1) { client.putEntities(...); // call the v.1 method } else { client.putEntities(...); // call the v.2 method } {code} So retaining a single interface doesn't really help them much. There is also the aspect of preparing the entities in a different way, depending on v.1 or v.2. So, in that sense, it doesn't seem that bad to separate the interface itself. This is still a much more significant change because it would impact all the client code (MR, DS, Tez, etc.). What are your thoughts on both aspects? > Reorganize TimeClientImpl into TimeClientV1Impl and TimeClientV2Impl > -------------------------------------------------------------------- > > Key: YARN-4675 > URL: https://issues.apache.org/jira/browse/YARN-4675 > Project: Hadoop YARN > Issue Type: Sub-task > Components: timelineserver > Reporter: Naganarasimha G R > Assignee: Naganarasimha G R > Labels: YARN-5355, oct16-medium > Attachments: YARN-4675-YARN-2928.v1.001.patch > > > We need to reorganize TimeClientImpl into TimeClientV1Impl , > TimeClientV2Impl and if required a base class, so that its clear which part > of the code belongs to which version and thus better maintainable. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org