[ 
https://issues.apache.org/jira/browse/YARN-4129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Naganarasimha G R updated YARN-4129:
------------------------------------
    Attachment: YARN-4129.YARN-2928.001.patch

Hi [~djp] & [~sjlee0],
Similar to the approach followed in NM side (YARN-3045), i have modified for RM 
side too.
Have modified the approach as follows
 * Extract all the public methods of SystemMetricPublisher to a interface and 
kept the interface name same SystemMetricsPublisher (or can modify to any other 
if suggested)
* create 2 implementations of ithe interface, one for V1 and one for V2, thus 
if some events need not be handled then particular version implementation can 
just ignore and return back
* In the specific implementation, if required to publish an timeline 
event/entity, they can create it and set to a common async event and give it to 
Asyncdispatcher to dispatch. 
* specific handlers are created for V1 & V2  to publish the events

I am attaching a patch for this issue. Please review.

> Refactor the SystemMetricPublisher in RM to better support newer events
> -----------------------------------------------------------------------
>
>                 Key: YARN-4129
>                 URL: https://issues.apache.org/jira/browse/YARN-4129
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: resourcemanager
>            Reporter: Naganarasimha G R
>            Assignee: Naganarasimha G R
>         Attachments: YARN-4129.YARN-2928.001.patch
>
>
> Currently to add new timeline event/ entity in RM side, one has to add a 
> method in publisher and a method in handler and create a new event class 
> which looks cumbersome and redundant. also further all the events might not 
> be required to be published in V1 & V2. So adopting the approach similar to 
> what was adopted in YARN-3045(NM side)



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

Reply via email to