[01/30] hbase git commit: HBASE-20361 Non-successive TableInputSplits may wrongly be merged by auto balancing feature [Forced Update!]

2018-04-11 Thread zhangduo
Repository: hbase
Updated Branches:
  refs/heads/HBASE-19064 e7b37cf93 -> 1e7c341cb (forced update)


HBASE-20361 Non-successive TableInputSplits may wrongly be merged by auto 
balancing feature

Signed-off-by: tedyu 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/c7593d14
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/c7593d14
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/c7593d14

Branch: refs/heads/HBASE-19064
Commit: c7593d14a937509ee5d6a4dcb8322651edd9c6fd
Parents: f663430
Author: Yuki Tawara 
Authored: Sun Apr 8 01:46:52 2018 +0900
Committer: tedyu 
Committed: Sun Apr 8 10:58:23 2018 -0700

--
 .../hbase/mapreduce/TableInputFormatBase.java   |  12 +-
 .../mapreduce/TestTableInputFormatBase.java | 232 +++
 2 files changed, 242 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/c7593d14/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
--
diff --git 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
index d8031d9..24973c9 100644
--- 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
+++ 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
@@ -53,6 +53,7 @@ import org.apache.hadoop.mapreduce.RecordReader;
 import org.apache.hadoop.mapreduce.TaskAttemptContext;
 import org.apache.hadoop.net.DNS;
 import org.apache.hadoop.util.StringUtils;
+import 
org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;
 
 /**
  * A base for {@link TableInputFormat}s. Receives a {@link Connection}, a 
{@link TableName},
@@ -291,7 +292,7 @@ public abstract class TableInputFormatBase
*/
   private List oneInputSplitPerRegion() throws IOException {
 RegionSizeCalculator sizeCalculator =
-new RegionSizeCalculator(getRegionLocator(), getAdmin());
+createRegionSizeCalculator(getRegionLocator(), getAdmin());
 
 TableName tableName = getTable().getName();
 
@@ -478,7 +479,8 @@ public abstract class TableInputFormatBase
 while (j < splits.size()) {
   TableSplit nextRegion = (TableSplit) splits.get(j);
   long nextRegionSize = nextRegion.getLength();
-  if (totalSize + nextRegionSize <= averageRegionSize) {
+  if (totalSize + nextRegionSize <= averageRegionSize
+  && Bytes.equals(splitEndKey, nextRegion.getStartRow())) {
 totalSize = totalSize + nextRegionSize;
 splitEndKey = nextRegion.getEndRow();
 j++;
@@ -586,6 +588,12 @@ public abstract class TableInputFormatBase
 this.connection = connection;
   }
 
+  @VisibleForTesting
+  protected RegionSizeCalculator createRegionSizeCalculator(RegionLocator 
locator, Admin admin)
+  throws IOException {
+return new RegionSizeCalculator(locator, admin);
+  }
+
   /**
* Gets the scan defining the actual details like columns etc.
*

http://git-wip-us.apache.org/repos/asf/hbase/blob/c7593d14/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
--
diff --git 
a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
 
b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
index 5fa4b54..29a92ee 100644
--- 
a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
+++ 
b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
@@ -18,15 +18,45 @@
 package org.apache.hadoop.hbase.mapreduce;
 
 import static org.junit.Assert.*;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyBoolean;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
+import java.io.IOException;
 import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.ExecutorService;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.HRegionLocation;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.BufferedMutator;
+import org.apache.hadoop.hbase.client.Buffered

[01/22] hbase git commit: HBASE-20361 Non-successive TableInputSplits may wrongly be merged by auto balancing feature [Forced Update!]

2018-04-09 Thread zhangduo
Repository: hbase
Updated Branches:
  refs/heads/HBASE-20046-branch-2 e821b9ac5 -> 74ab10c35 (forced update)


HBASE-20361 Non-successive TableInputSplits may wrongly be merged by auto 
balancing feature

Signed-off-by: tedyu 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/1ec708bf
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/1ec708bf
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/1ec708bf

Branch: refs/heads/HBASE-20046-branch-2
Commit: 1ec708bf6cbe6cead0270a59f0b7d1e18dd3ac38
Parents: 10ed3f4
Author: Yuki Tawara 
Authored: Sun Apr 8 01:46:52 2018 +0900
Committer: tedyu 
Committed: Sun Apr 8 10:58:56 2018 -0700

--
 .../hbase/mapreduce/TableInputFormatBase.java   |  12 +-
 .../mapreduce/TestTableInputFormatBase.java | 232 +++
 2 files changed, 242 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/1ec708bf/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
--
diff --git 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
index d8031d9..24973c9 100644
--- 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
+++ 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
@@ -53,6 +53,7 @@ import org.apache.hadoop.mapreduce.RecordReader;
 import org.apache.hadoop.mapreduce.TaskAttemptContext;
 import org.apache.hadoop.net.DNS;
 import org.apache.hadoop.util.StringUtils;
+import 
org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;
 
 /**
  * A base for {@link TableInputFormat}s. Receives a {@link Connection}, a 
{@link TableName},
@@ -291,7 +292,7 @@ public abstract class TableInputFormatBase
*/
   private List oneInputSplitPerRegion() throws IOException {
 RegionSizeCalculator sizeCalculator =
-new RegionSizeCalculator(getRegionLocator(), getAdmin());
+createRegionSizeCalculator(getRegionLocator(), getAdmin());
 
 TableName tableName = getTable().getName();
 
@@ -478,7 +479,8 @@ public abstract class TableInputFormatBase
 while (j < splits.size()) {
   TableSplit nextRegion = (TableSplit) splits.get(j);
   long nextRegionSize = nextRegion.getLength();
-  if (totalSize + nextRegionSize <= averageRegionSize) {
+  if (totalSize + nextRegionSize <= averageRegionSize
+  && Bytes.equals(splitEndKey, nextRegion.getStartRow())) {
 totalSize = totalSize + nextRegionSize;
 splitEndKey = nextRegion.getEndRow();
 j++;
@@ -586,6 +588,12 @@ public abstract class TableInputFormatBase
 this.connection = connection;
   }
 
+  @VisibleForTesting
+  protected RegionSizeCalculator createRegionSizeCalculator(RegionLocator 
locator, Admin admin)
+  throws IOException {
+return new RegionSizeCalculator(locator, admin);
+  }
+
   /**
* Gets the scan defining the actual details like columns etc.
*

http://git-wip-us.apache.org/repos/asf/hbase/blob/1ec708bf/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
--
diff --git 
a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
 
b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
index 5fa4b54..29a92ee 100644
--- 
a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
+++ 
b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
@@ -18,15 +18,45 @@
 package org.apache.hadoop.hbase.mapreduce;
 
 import static org.junit.Assert.*;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyBoolean;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
+import java.io.IOException;
 import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.ExecutorService;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.HRegionLocation;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.BufferedMutator;
+import org.apache.hadoop.hba

hbase git commit: HBASE-20361 Non-successive TableInputSplits may wrongly be merged by auto balancing feature

2018-04-08 Thread tedyu
Repository: hbase
Updated Branches:
  refs/heads/branch-2 10ed3f41f -> 1ec708bf6


HBASE-20361 Non-successive TableInputSplits may wrongly be merged by auto 
balancing feature

Signed-off-by: tedyu 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/1ec708bf
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/1ec708bf
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/1ec708bf

Branch: refs/heads/branch-2
Commit: 1ec708bf6cbe6cead0270a59f0b7d1e18dd3ac38
Parents: 10ed3f4
Author: Yuki Tawara 
Authored: Sun Apr 8 01:46:52 2018 +0900
Committer: tedyu 
Committed: Sun Apr 8 10:58:56 2018 -0700

--
 .../hbase/mapreduce/TableInputFormatBase.java   |  12 +-
 .../mapreduce/TestTableInputFormatBase.java | 232 +++
 2 files changed, 242 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/1ec708bf/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
--
diff --git 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
index d8031d9..24973c9 100644
--- 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
+++ 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
@@ -53,6 +53,7 @@ import org.apache.hadoop.mapreduce.RecordReader;
 import org.apache.hadoop.mapreduce.TaskAttemptContext;
 import org.apache.hadoop.net.DNS;
 import org.apache.hadoop.util.StringUtils;
+import 
org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;
 
 /**
  * A base for {@link TableInputFormat}s. Receives a {@link Connection}, a 
{@link TableName},
@@ -291,7 +292,7 @@ public abstract class TableInputFormatBase
*/
   private List oneInputSplitPerRegion() throws IOException {
 RegionSizeCalculator sizeCalculator =
-new RegionSizeCalculator(getRegionLocator(), getAdmin());
+createRegionSizeCalculator(getRegionLocator(), getAdmin());
 
 TableName tableName = getTable().getName();
 
@@ -478,7 +479,8 @@ public abstract class TableInputFormatBase
 while (j < splits.size()) {
   TableSplit nextRegion = (TableSplit) splits.get(j);
   long nextRegionSize = nextRegion.getLength();
-  if (totalSize + nextRegionSize <= averageRegionSize) {
+  if (totalSize + nextRegionSize <= averageRegionSize
+  && Bytes.equals(splitEndKey, nextRegion.getStartRow())) {
 totalSize = totalSize + nextRegionSize;
 splitEndKey = nextRegion.getEndRow();
 j++;
@@ -586,6 +588,12 @@ public abstract class TableInputFormatBase
 this.connection = connection;
   }
 
+  @VisibleForTesting
+  protected RegionSizeCalculator createRegionSizeCalculator(RegionLocator 
locator, Admin admin)
+  throws IOException {
+return new RegionSizeCalculator(locator, admin);
+  }
+
   /**
* Gets the scan defining the actual details like columns etc.
*

http://git-wip-us.apache.org/repos/asf/hbase/blob/1ec708bf/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
--
diff --git 
a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
 
b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
index 5fa4b54..29a92ee 100644
--- 
a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
+++ 
b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
@@ -18,15 +18,45 @@
 package org.apache.hadoop.hbase.mapreduce;
 
 import static org.junit.Assert.*;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyBoolean;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
+import java.io.IOException;
 import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.ExecutorService;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.HRegionLocation;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.BufferedMutator;
+import org.apache.hadoop.hbase.client.BufferedMutatorParams;
+import

hbase git commit: HBASE-20361 Non-successive TableInputSplits may wrongly be merged by auto balancing feature

2018-04-08 Thread tedyu
Repository: hbase
Updated Branches:
  refs/heads/master f66343050 -> c7593d14a


HBASE-20361 Non-successive TableInputSplits may wrongly be merged by auto 
balancing feature

Signed-off-by: tedyu 


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/c7593d14
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/c7593d14
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/c7593d14

Branch: refs/heads/master
Commit: c7593d14a937509ee5d6a4dcb8322651edd9c6fd
Parents: f663430
Author: Yuki Tawara 
Authored: Sun Apr 8 01:46:52 2018 +0900
Committer: tedyu 
Committed: Sun Apr 8 10:58:23 2018 -0700

--
 .../hbase/mapreduce/TableInputFormatBase.java   |  12 +-
 .../mapreduce/TestTableInputFormatBase.java | 232 +++
 2 files changed, 242 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/c7593d14/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
--
diff --git 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
index d8031d9..24973c9 100644
--- 
a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
+++ 
b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/TableInputFormatBase.java
@@ -53,6 +53,7 @@ import org.apache.hadoop.mapreduce.RecordReader;
 import org.apache.hadoop.mapreduce.TaskAttemptContext;
 import org.apache.hadoop.net.DNS;
 import org.apache.hadoop.util.StringUtils;
+import 
org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;
 
 /**
  * A base for {@link TableInputFormat}s. Receives a {@link Connection}, a 
{@link TableName},
@@ -291,7 +292,7 @@ public abstract class TableInputFormatBase
*/
   private List oneInputSplitPerRegion() throws IOException {
 RegionSizeCalculator sizeCalculator =
-new RegionSizeCalculator(getRegionLocator(), getAdmin());
+createRegionSizeCalculator(getRegionLocator(), getAdmin());
 
 TableName tableName = getTable().getName();
 
@@ -478,7 +479,8 @@ public abstract class TableInputFormatBase
 while (j < splits.size()) {
   TableSplit nextRegion = (TableSplit) splits.get(j);
   long nextRegionSize = nextRegion.getLength();
-  if (totalSize + nextRegionSize <= averageRegionSize) {
+  if (totalSize + nextRegionSize <= averageRegionSize
+  && Bytes.equals(splitEndKey, nextRegion.getStartRow())) {
 totalSize = totalSize + nextRegionSize;
 splitEndKey = nextRegion.getEndRow();
 j++;
@@ -586,6 +588,12 @@ public abstract class TableInputFormatBase
 this.connection = connection;
   }
 
+  @VisibleForTesting
+  protected RegionSizeCalculator createRegionSizeCalculator(RegionLocator 
locator, Admin admin)
+  throws IOException {
+return new RegionSizeCalculator(locator, admin);
+  }
+
   /**
* Gets the scan defining the actual details like columns etc.
*

http://git-wip-us.apache.org/repos/asf/hbase/blob/c7593d14/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
--
diff --git 
a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
 
b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
index 5fa4b54..29a92ee 100644
--- 
a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
+++ 
b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.java
@@ -18,15 +18,45 @@
 package org.apache.hadoop.hbase.mapreduce;
 
 import static org.junit.Assert.*;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyBoolean;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
+import java.io.IOException;
 import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.ExecutorService;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.HRegionLocation;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.BufferedMutator;
+import org.apache.hadoop.hbase.client.BufferedMutatorParams;
+import org