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

Sangjin Lee commented on YARN-3706:
-----------------------------------

OK, I finally got around to making one pass. These are high level comments (the 
stack overflow issue notwithstanding). I generally agree with the approach 
taken here. This will make future implementation work on this a lot safer and 
easier with less duplication.

(BaseTable.java)
- l.102: how about requiring subclasses to provide the default table name along 
with the conf name and then provide the default implementation for 
getTableName()? For example,

{code}
private final String defaultTableName;

protected BaseTable(String tableNameConfName, String defaultTableName) {
  this.tableNameConfName = tableNameConfName;
  this.defaultTableName = defaultTableName;
}

...

public TableName getTableName(Configuration hbaseConf) {
  return TableName.valueOf(hbaseConf.get(tableNameConfName, defaultTableName));
}
{code}
- l.55: I'm not sure if I understand the rationale of the setTableName() 
method; it sounds more like a static helper method, but then it's really a 
trivial helper method; should it even be here?

(BufferedMutatorDelegator.java)
- nit: I would remove all the trivial method comments

(EntityTable.java)
- l.92: should be static
- l.111: just curious, is there a strong reason it has to be a singleton? I 
generally shun singletons (which also causes bit of a challenge with unit 
testst).

(ColumnImpl.java)
- It doesn't implement Column? Shouldn't it?
- l.57: it should have TypedBufferedMutator<T> as opposed to 
TypedBufferedMutator<?>, right?

(TimelineEntitySchemaConstants.java)
- l.67: nit: username_splits -> USERNAME_SPLITS
- findbugs will flag any public constants or methods that return the raw 
byte[]... See if you can live without them (or make them non-public)

(TimelineWriterUtils.java)
- l.72: do you think it'd be possible to do the separator encoding once and 
keep reusing it? It's probably not terribly expensive, but if it is in a 
critical path, its cost may add up


> Generalize native HBase writer for additional tables
> ----------------------------------------------------
>
>                 Key: YARN-3706
>                 URL: https://issues.apache.org/jira/browse/YARN-3706
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: timelineserver
>            Reporter: Joep Rottinghuis
>            Assignee: Joep Rottinghuis
>            Priority: Minor
>         Attachments: YARN-3706-YARN-2928.001.patch, 
> YARN-3726-YARN-2928.002.patch, YARN-3726-YARN-2928.003.patch, 
> YARN-3726-YARN-2928.004.patch, YARN-3726-YARN-2928.005.patch
>
>
> When reviewing YARN-3411 we noticed that we could change the class hierarchy 
> a little in order to accommodate additional tables easily.
> In order to get ready for benchmark testing we left the original layout in 
> place, as performance would not be impacted by the code hierarchy.
> Here is a separate jira to address the hierarchy.



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

Reply via email to