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

Varun Saxena edited comment on YARN-5170 at 5/27/16 7:10 PM:
-------------------------------------------------------------

Removal of static methods is a good idea. Especially the methods reading 
events, metrics, etc. which just did not belong to TimelineStorageUtils.

Regarding using instance variables for singleton converters, wanted to 
understand the intention. 
Is it because, in general, singletons make it hard to make changes in future 
and they are not extensible ? Or are there some specific concerns ?


was (Author: varun_saxena):
Removal of static methods is a good idea. Especially the methods reading 
events, metrics, etc. which just did not belong to TimelineStorageUtils.

Regarding using instance variables for singleton converters, wanted to 
understand the intention. 
Is it because in general singletons make it hard to make changes in future and 
they are not extensible ? Or are there some specific concerns ?

> Eliminate singleton converters and static method access
> -------------------------------------------------------
>
>                 Key: YARN-5170
>                 URL: https://issues.apache.org/jira/browse/YARN-5170
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: timelineserver
>            Reporter: Joep Rottinghuis
>            Assignee: Joep Rottinghuis
>         Attachments: YARN-5170-YARN-2928.01.patch
>
>
> As part of YARN-5109 we introduced several KeyConverter classes.
> To stay consistent with the existing LongConverter in the sample patch I 
> created I made these other converter classes singleton as well.
> In conversation with [~sjlee0] who has a general dislike of singletons, we 
> discussed it is best to get rid of these singletons and make them simply 
> instance variables.
> There are other classes where the keys have static methods referring to a 
> singleton converter.
> Moreover, it turns out that due to code evolution we end up creating the same 
> keys several times.
> So general approach is to not re-instantiate rowkeys, converters when not 
> needed.
> I would like to create the byte[] rowKey in the RowKey classes their 
> constructor, but that would leak an incomplete object to the converter.
> There are a few method in TimelineStorageUtils that are used only once, or 
> only by one class, as part of this refactor I'll move these to keep the 
> "Utils" class as small as possible and keep them for truly generally used 
> utils that don't really belong anywhere else.



--
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

Reply via email to