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