----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/22098/ -----------------------------------------------------------
(Updated May 31, 2014, 12:35 a.m.) Review request for drill. Changes ------- This revised patch improves both functionality and performance. * Now all of the slots are guaranteed to have maximum possible region affinity. * With the earlier patches, some of the test cases took up to 7 milliseconds to apply the assignment while this one completes all of them under 200 microseconds. Repository: drill-git Description ------- The bug is in the parallelization logic of HBaseGroupScan. The current code favored region affinity over load distribution. Since Drill's parallelizer code already takes care of creating endpoints slots based on affinity, HBaseGroupScan should only distribute the work evenly among provided slots. The modified algorithm ensures that, for 'm' regions to scan and 'n' endpoint slots: 1. Each slot gets at least floor(m/n) and at most ceil(m/n) regions. 2. Each slot on a single host with regions affinity gets even distribution of regions hosted on it. Diffs (updated) ----- contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseGroupScan.java 809aa86 contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseRecordReader.java caee8ed contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSubScan.java d9f2b7c contrib/storage-hbase/src/test/java/org/apache/drill/hbase/BaseHBaseTest.java 96f0c4a contrib/storage-hbase/src/test/java/org/apache/drill/hbase/HBaseTestsSuite.java e30f79e contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestHBaseRegionScanAssignments.java PRE-CREATION Diff: https://reviews.apache.org/r/22098/diff/ Testing ------- Added test TestHBaseRegionScanAssignments. Thanks, Aditya Kishore