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

Umesh Agashe commented on HBASE-17786:
--------------------------------------

bq. nit: the file header should use "/*" instead of "/**" because it's not 
meant to be a javadoc parsed comment. I think we make this mistake in lots of 
places already, so not a big deal if you leave it.

Makes sense. Fixed. 2428 out of 3528 Java files use /**. In future, git add 
hook would be useful to check this.

bq. We've been inconsistent on wether non-Test classes in the test packages 
need InterfaceAudience annotations. Since this is a tool, best to be on the 
safe side and label it IA.LimitedPrivate(TOOL).

Fixed.

bq. So this is general cleanup while you're in the area?

Yes

bq. Comments like this would be good to have as output while running as DEBUG 
or INFO messages (perhaps on stderr if we can't use a logger for some reason).

Fixed. Added a INFO log message for it.

bq. Why this variable rather than just using 
HConstants.DEFAULT_REGIONSERVER_PORT?

Fixed.

bq. Class description should include an example of how we expect folks to 
invoke this.

Fixed.

{quote}
bq. What's the rationale for using System.out directly instead of a logger?

Thinking about this more, and looking at e.g. the existing 
PerformanceEvaluation tool, I think we should update this to use commons-logger 
as most of the rest of our stuff does.
{quote}

I referred to tests HFilePerformanceEvaluation and 
ProcedureWALPerformanceEvaluation which have System.out.print statements. Most 
PerformanceEvaluation tools (9/12) have System.out.print statements. Looking at 
the output I think the rational is: logs get printed to stderr while explicit 
print statements print to stdout. stderr can be redirected to get user 
presentable output with the tool.

{quote}
We should only need the stochastic load balancer settings if the load balancer 
is the stochastic load balancer, I think?
Also, we should not set these values if the incoming configuration had them set 
by the user running the perf tool.
{quote}

Removed. User can set these in conf, defaults will be used otherwise.

> Create LoadBalancer perf-tests (test balancer algorithm decoupled from 
> workload)
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-17786
>                 URL: https://issues.apache.org/jira/browse/HBASE-17786
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Balancer, proc-v2
>            Reporter: stack
>            Assignee: Umesh Agashe
>              Labels: beginner
>             Fix For: 2.0.0
>
>         Attachments: HBASE-17786.001.patch
>
>
> (Below is a quote from [~mbertozzi] taken from an internal issue that I'm 
> moving out here)
> Add perf tools and keep monitored balancer performance (a BalancerPE-type 
> thing).
> Most of the balancers should be instantiable without requiring a 
> mini-cluster, and it easy to create tons of RegionInfo and ServerNames with a 
> for loop.
> The balancer is just creating a map RegionInfo:ServerName.
> There are two methods to test roundRobinAssignment() and retainAssignment()
> {code}
> Map<ServerName, List<HRegionInfo>> roundRobinAssignment(
>     List<HRegionInfo> regions,
>     List<ServerName> servers
>   ) throws HBaseIOException; 
> Map<ServerName, List<HRegionInfo>> retainAssignment(
>     Map<HRegionInfo, ServerName> regions,
>     List<ServerName> servers
>   ) throws HBaseIOException;
> {code}
> There are a bunch of obvious optimization that everyone can see just by 
> looking at the code. (like replacing array with set when we do 
> contains/remove operations). It will be nice to have a baseline and start 
> improving from there.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to