[ https://issues.apache.org/jira/browse/HBASE-17786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15997316#comment-15997316 ]
Sean Busbey commented on HBASE-17786: ------------------------------------- {code} index 0000000000000000000000000000000000000000..afb67198c3d131bfc32d3a0581a78070f4f82e7c --- /dev/null +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/LoadBalancerPerformanceEvaluation.java @@ -0,0 +1,169 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one {code} 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. > 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)