[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit f3d0b535b80ccf5cbb610b3a8b15aa743219ca42 Author: Duo Zhang AuthorDate: Thu Jun 25 23:17:03 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) --- .../apache/hadoop/hbase/CatalogFamilyFormat.java | 17 +++ .../org/apache/hadoop/hbase/master/HMaster.java| 70 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 80 .../hbase/master/assignment/RegionStateStore.java | 71 +- .../hbase/master/region/MasterRegionFactory.java | 9 +- .../store/region/RegionProcedureStore.java | 5 +- .../client/TestFailedMetaReplicaAssigment.java | 11 +- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 12 +- .../master/assignment/MockMasterServices.java | 32 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 22 files changed, 371 insertions(+), 190 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java index cec43ae..a2c59de 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java @@ -27,6 +27,7 @@ import java.util.NavigableMap; import java.util.SortedMap; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionReplicaUtil; @@ -34,6 +35,7 @@ import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.TableState; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.yetus.audience.InterfaceAudience; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -346,4 +348,19 @@ public class CatalogFamilyFormat { throw new IOException(e); } } + + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getServerColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index cc3a44f..2e2136e 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -59,6 +59,10 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.CatalogFamilyFormat; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -82,9 +86,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit c966320986c22bdba4d6ae50443a3290d66af7ca Author: Duo Zhang AuthorDate: Thu Jun 25 23:17:03 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) --- .../apache/hadoop/hbase/CatalogFamilyFormat.java | 17 +++ .../org/apache/hadoop/hbase/master/HMaster.java| 70 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 80 .../hbase/master/assignment/RegionStateStore.java | 71 +- .../hbase/master/region/MasterRegionFactory.java | 9 +- .../store/region/RegionProcedureStore.java | 5 +- .../hadoop/hbase/client/TestMetaWithReplicas.java | 50 --- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 12 +- .../master/assignment/MockMasterServices.java | 32 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 22 files changed, 393 insertions(+), 207 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java index cec43ae..a2c59de 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java @@ -27,6 +27,7 @@ import java.util.NavigableMap; import java.util.SortedMap; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionReplicaUtil; @@ -34,6 +35,7 @@ import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.TableState; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.yetus.audience.InterfaceAudience; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -346,4 +348,19 @@ public class CatalogFamilyFormat { throw new IOException(e); } } + + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getServerColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index cc3a44f..2e2136e 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -59,6 +59,10 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.CatalogFamilyFormat; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -82,9 +86,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit 7074997b01438dd001351aa4cd9ff84d8556474f Author: Duo Zhang AuthorDate: Thu Jun 25 23:17:03 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) --- .../apache/hadoop/hbase/CatalogFamilyFormat.java | 17 +++ .../org/apache/hadoop/hbase/master/HMaster.java| 70 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 80 .../hbase/master/assignment/RegionStateStore.java | 71 +- .../hbase/master/region/MasterRegionFactory.java | 9 +- .../store/region/RegionProcedureStore.java | 5 +- .../hadoop/hbase/client/TestMetaWithReplicas.java | 50 --- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 12 +- .../master/assignment/MockMasterServices.java | 32 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 22 files changed, 393 insertions(+), 207 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java index cec43ae..a2c59de 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java @@ -27,6 +27,7 @@ import java.util.NavigableMap; import java.util.SortedMap; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionReplicaUtil; @@ -34,6 +35,7 @@ import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.TableState; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.yetus.audience.InterfaceAudience; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -346,4 +348,19 @@ public class CatalogFamilyFormat { throw new IOException(e); } } + + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getServerColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 5a9404a..f04c25e 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -59,6 +59,10 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.CatalogFamilyFormat; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -82,9 +86,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit 6f759aa4eb4fa58f9e588375c6a40940f61d1a63 Author: Duo Zhang AuthorDate: Wed May 27 11:30:37 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) Signed-off-by: Guanghao Zhang Signed-off-by: stack --- .../apache/hadoop/hbase/CatalogFamilyFormat.java | 17 +++ .../org/apache/hadoop/hbase/master/HMaster.java| 70 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 145 + .../hbase/master/assignment/AssignmentManager.java | 80 .../hbase/master/assignment/RegionStateStore.java | 71 +- .../hbase/master/region/MasterRegionFactory.java | 9 +- .../store/region/RegionProcedureStore.java | 5 +- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 12 +- .../master/assignment/MockMasterServices.java | 32 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 21 files changed, 365 insertions(+), 186 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java index cec43ae..a2c59de 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/CatalogFamilyFormat.java @@ -27,6 +27,7 @@ import java.util.NavigableMap; import java.util.SortedMap; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionReplicaUtil; @@ -34,6 +35,7 @@ import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.TableState; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.yetus.audience.InterfaceAudience; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -346,4 +348,19 @@ public class CatalogFamilyFormat { throw new IOException(e); } } + + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getServerColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(HConstants.CATALOG_FAMILY, getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 9fdb0e5..62b0fe9 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -59,6 +59,10 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.CatalogFamilyFormat; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -82,9 +86,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit 9d926cb47d3fd4e4527b605e94ff19b912dc6323 Author: Duo Zhang AuthorDate: Wed May 27 11:30:37 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) Signed-off-by: Guanghao Zhang Signed-off-by: stack --- .../org/apache/hadoop/hbase/MetaTableAccessor.java | 19 ++- .../org/apache/hadoop/hbase/master/HMaster.java| 69 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 80 .../hbase/master/assignment/RegionStateStore.java | 72 ++- .../hbase/master/region/MasterRegionFactory.java | 9 +- .../store/region/RegionProcedureStore.java | 5 +- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 12 +- .../master/assignment/MockMasterServices.java | 32 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 21 files changed, 363 insertions(+), 189 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index f0124d3..ed8de18 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -384,8 +384,8 @@ public class MetaTableAccessor { } /** - * @return Deserialized values of pairs taken from column values that match - * the regex 'info:merge.*' in array of cells. + * @return Deserialized values of qualifier,regioninfo pairs taken from column values that + * match the regex 'info:merge.*' in array of cells. */ @Nullable public static Map getMergeRegionsWithName(Cell [] cells) { @@ -1403,6 +1403,21 @@ public class MetaTableAccessor { } } + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } + /** * Deletes some replica columns corresponding to replicas for the passed rows * @param metaRows rows in hbase:meta diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 9fdb0e5..4e30741 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -59,6 +59,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -82,9 +85,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.MasterSwitchType; +import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionStatesCount; +import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit 634098f5145da926251307ca7322c821bfa1e6e0 Author: Duo Zhang AuthorDate: Wed May 27 11:30:37 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) Signed-off-by: Guanghao Zhang Signed-off-by: stack --- .../org/apache/hadoop/hbase/MetaTableAccessor.java | 19 ++- .../org/apache/hadoop/hbase/master/HMaster.java| 69 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 84 .../hbase/master/assignment/RegionStateStore.java | 72 ++- .../hbase/master/region/MasterRegionFactory.java | 9 +- .../store/region/RegionProcedureStore.java | 5 +- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 12 +- .../master/assignment/MockMasterServices.java | 32 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 21 files changed, 367 insertions(+), 189 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index f0124d3..ed8de18 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -384,8 +384,8 @@ public class MetaTableAccessor { } /** - * @return Deserialized values of pairs taken from column values that match - * the regex 'info:merge.*' in array of cells. + * @return Deserialized values of qualifier,regioninfo pairs taken from column values that + * match the regex 'info:merge.*' in array of cells. */ @Nullable public static Map getMergeRegionsWithName(Cell [] cells) { @@ -1403,6 +1403,21 @@ public class MetaTableAccessor { } } + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } + /** * Deletes some replica columns corresponding to replicas for the passed rows * @param metaRows rows in hbase:meta diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 9fdb0e5..4e30741 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -59,6 +59,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -82,9 +85,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.MasterSwitchType; +import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionStatesCount; +import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit 7c9906266f1bdcff71783f814ac7982c80da3cb6 Author: Duo Zhang AuthorDate: Wed May 27 11:30:37 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) Signed-off-by: Guanghao Zhang Signed-off-by: stack --- .../org/apache/hadoop/hbase/MetaTableAccessor.java | 19 ++- .../org/apache/hadoop/hbase/master/HMaster.java| 69 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 78 +++ .../hbase/master/assignment/RegionStateStore.java | 72 ++- .../hbase/master/region/MasterRegionFactory.java | 9 +- .../store/region/RegionProcedureStore.java | 5 +- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 12 +- .../master/assignment/MockMasterServices.java | 32 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 21 files changed, 363 insertions(+), 187 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index f0124d3..ed8de18 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -384,8 +384,8 @@ public class MetaTableAccessor { } /** - * @return Deserialized values of pairs taken from column values that match - * the regex 'info:merge.*' in array of cells. + * @return Deserialized values of qualifier,regioninfo pairs taken from column values that + * match the regex 'info:merge.*' in array of cells. */ @Nullable public static Map getMergeRegionsWithName(Cell [] cells) { @@ -1403,6 +1403,21 @@ public class MetaTableAccessor { } } + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } + /** * Deletes some replica columns corresponding to replicas for the passed rows * @param metaRows rows in hbase:meta diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 8d27ec9..fb92c8f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -59,6 +59,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -82,9 +85,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.MasterSwitchType; +import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionStatesCount; +import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit 01e52f868df4a3378b18e0b820c8cf67c00d5d52 Author: Duo Zhang AuthorDate: Wed May 27 11:30:37 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) Signed-off-by: Guanghao Zhang Signed-off-by: stack --- .../org/apache/hadoop/hbase/MetaTableAccessor.java | 19 ++- .../org/apache/hadoop/hbase/master/HMaster.java| 69 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 78 +++ .../hbase/master/assignment/RegionStateStore.java | 72 ++- .../hbase/master/region/MasterRegionFactory.java | 9 +- .../store/region/RegionProcedureStore.java | 5 +- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 12 +- .../master/assignment/MockMasterServices.java | 32 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 21 files changed, 363 insertions(+), 187 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index f0124d3..ed8de18 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -384,8 +384,8 @@ public class MetaTableAccessor { } /** - * @return Deserialized values of pairs taken from column values that match - * the regex 'info:merge.*' in array of cells. + * @return Deserialized values of qualifier,regioninfo pairs taken from column values that + * match the regex 'info:merge.*' in array of cells. */ @Nullable public static Map getMergeRegionsWithName(Cell [] cells) { @@ -1403,6 +1403,21 @@ public class MetaTableAccessor { } } + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } + /** * Deletes some replica columns corresponding to replicas for the passed rows * @param metaRows rows in hbase:meta diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 8d27ec9..fb92c8f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -59,6 +59,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -82,9 +85,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.MasterSwitchType; +import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionStatesCount; +import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit 1c0d770b594495cd74722f9a89dbd318ff7c714c Author: Duo Zhang AuthorDate: Wed May 27 11:30:37 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) Signed-off-by: Guanghao Zhang Signed-off-by: stack --- .../org/apache/hadoop/hbase/MetaTableAccessor.java | 19 ++- .../org/apache/hadoop/hbase/master/HMaster.java| 69 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 78 +++ .../hbase/master/assignment/RegionStateStore.java | 72 ++- .../hbase/master/region/MasterRegionFactory.java | 9 +- .../store/region/RegionProcedureStore.java | 5 +- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 12 +- .../master/assignment/MockMasterServices.java | 32 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 21 files changed, 363 insertions(+), 187 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index f0124d3..ed8de18 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -384,8 +384,8 @@ public class MetaTableAccessor { } /** - * @return Deserialized values of pairs taken from column values that match - * the regex 'info:merge.*' in array of cells. + * @return Deserialized values of qualifier,regioninfo pairs taken from column values that + * match the regex 'info:merge.*' in array of cells. */ @Nullable public static Map getMergeRegionsWithName(Cell [] cells) { @@ -1403,6 +1403,21 @@ public class MetaTableAccessor { } } + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } + /** * Deletes some replica columns corresponding to replicas for the passed rows * @param metaRows rows in hbase:meta diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 8d27ec9..fb92c8f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -59,6 +59,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -82,9 +85,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.MasterSwitchType; +import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionStatesCount; +import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit 064dcbda63039167aa2a703636cbbae38fdbd9f5 Author: Duo Zhang AuthorDate: Wed May 27 11:30:37 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) Signed-off-by: Guanghao Zhang Signed-off-by: stack --- .../org/apache/hadoop/hbase/MetaTableAccessor.java | 19 ++- .../org/apache/hadoop/hbase/master/HMaster.java| 69 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 78 +++ .../hbase/master/assignment/RegionStateStore.java | 72 ++- .../hbase/master/region/MasterRegionFactory.java | 9 +- .../store/region/RegionProcedureStore.java | 5 +- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 12 +- .../master/assignment/MockMasterServices.java | 32 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 21 files changed, 363 insertions(+), 187 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index f0124d3..ed8de18 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -384,8 +384,8 @@ public class MetaTableAccessor { } /** - * @return Deserialized values of pairs taken from column values that match - * the regex 'info:merge.*' in array of cells. + * @return Deserialized values of qualifier,regioninfo pairs taken from column values that + * match the regex 'info:merge.*' in array of cells. */ @Nullable public static Map getMergeRegionsWithName(Cell [] cells) { @@ -1403,6 +1403,21 @@ public class MetaTableAccessor { } } + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } + /** * Deletes some replica columns corresponding to replicas for the passed rows * @param metaRows rows in hbase:meta diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 0d4e1a0..a46fdae 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -58,6 +58,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -81,9 +84,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.MasterSwitchType; +import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionStatesCount; +import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit 39c899e35bdaf09d7a420ae53ea0304cef8a8066 Author: Duo Zhang AuthorDate: Wed May 27 11:30:37 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) Signed-off-by: Guanghao Zhang Signed-off-by: stack --- .../org/apache/hadoop/hbase/MetaTableAccessor.java | 19 ++- .../org/apache/hadoop/hbase/master/HMaster.java| 69 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 78 +++ .../hbase/master/assignment/RegionStateStore.java | 72 ++- .../hadoop/hbase/master/store/LocalStore.java | 7 + .../store/region/RegionProcedureStore.java | 5 +- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 10 +- .../master/assignment/MockMasterServices.java | 31 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 21 files changed, 361 insertions(+), 184 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index f0124d3..ed8de18 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -384,8 +384,8 @@ public class MetaTableAccessor { } /** - * @return Deserialized values of pairs taken from column values that match - * the regex 'info:merge.*' in array of cells. + * @return Deserialized values of qualifier,regioninfo pairs taken from column values that + * match the regex 'info:merge.*' in array of cells. */ @Nullable public static Map getMergeRegionsWithName(Cell [] cells) { @@ -1403,6 +1403,21 @@ public class MetaTableAccessor { } } + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } + /** * Deletes some replica columns corresponding to replicas for the passed rows * @param metaRows rows in hbase:meta diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 4b9cf73..4be605a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -58,6 +58,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -81,9 +84,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.MasterSwitchType; +import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionStatesCount; +import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit 21504fd8c99b09fd68c5cb540ddb2fde21f8c77c Author: Duo Zhang AuthorDate: Wed May 27 11:30:37 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) Signed-off-by: Guanghao Zhang Signed-off-by: stack --- .../org/apache/hadoop/hbase/MetaTableAccessor.java | 19 ++- .../org/apache/hadoop/hbase/master/HMaster.java| 69 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 78 +++ .../hbase/master/assignment/RegionStateStore.java | 72 ++- .../hadoop/hbase/master/store/LocalStore.java | 7 + .../store/region/RegionProcedureStore.java | 5 +- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 10 +- .../master/assignment/MockMasterServices.java | 31 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 21 files changed, 361 insertions(+), 184 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index f0124d3..ed8de18 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -384,8 +384,8 @@ public class MetaTableAccessor { } /** - * @return Deserialized values of pairs taken from column values that match - * the regex 'info:merge.*' in array of cells. + * @return Deserialized values of qualifier,regioninfo pairs taken from column values that + * match the regex 'info:merge.*' in array of cells. */ @Nullable public static Map getMergeRegionsWithName(Cell [] cells) { @@ -1403,6 +1403,21 @@ public class MetaTableAccessor { } } + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } + /** * Deletes some replica columns corresponding to replicas for the passed rows * @param metaRows rows in hbase:meta diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 4b9cf73..4be605a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -58,6 +58,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -81,9 +84,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.MasterSwitchType; +import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionStatesCount; +import
[hbase] 01/01: HBASE-24388 Store the locations of meta regions in master local store (#1746)
This is an automated email from the ASF dual-hosted git repository. zhangduo pushed a commit to branch HBASE-11288.splittable-meta in repository https://gitbox.apache.org/repos/asf/hbase.git commit dad86562648011877ccf45497a2cd543d94e0cea Author: Duo Zhang AuthorDate: Wed May 27 11:30:37 2020 +0800 HBASE-24388 Store the locations of meta regions in master local store (#1746) Signed-off-by: Guanghao Zhang Signed-off-by: stack --- .../org/apache/hadoop/hbase/MetaTableAccessor.java | 19 ++- .../org/apache/hadoop/hbase/master/HMaster.java| 69 -- .../hadoop/hbase/master/MasterMetaBootstrap.java | 144 + .../hbase/master/assignment/AssignmentManager.java | 78 +++ .../hbase/master/assignment/RegionStateStore.java | 72 ++- .../hadoop/hbase/master/store/LocalStore.java | 7 + .../store/region/RegionProcedureStore.java | 5 +- .../hbase/master/TestCloseAnOpeningRegion.java | 8 +- .../hbase/master/TestClusterRestartFailover.java | 10 +- .../master/assignment/MockMasterServices.java | 31 +++-- .../assignment/TestOpenRegionProcedureBackoff.java | 10 +- .../assignment/TestOpenRegionProcedureHang.java| 10 +- .../assignment/TestRaceBetweenSCPAndDTP.java | 10 +- .../assignment/TestRaceBetweenSCPAndTRSP.java | 10 +- .../TestRegionAssignedToMultipleRegionServers.java | 10 +- .../assignment/TestReportOnlineRegionsRace.java| 10 +- ...tReportRegionStateTransitionFromDeadServer.java | 10 +- .../TestReportRegionStateTransitionRetry.java | 10 +- .../master/assignment/TestSCPGetRegionsRace.java | 10 +- .../assignment/TestWakeUpUnexpectedProcedure.java | 10 +- .../region/TestRegionProcedureStoreMigration.java | 2 +- 21 files changed, 361 insertions(+), 184 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java index f0124d3..ed8de18 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java @@ -384,8 +384,8 @@ public class MetaTableAccessor { } /** - * @return Deserialized values of pairs taken from column values that match - * the regex 'info:merge.*' in array of cells. + * @return Deserialized values of qualifier,regioninfo pairs taken from column values that + * match the regex 'info:merge.*' in array of cells. */ @Nullable public static Map getMergeRegionsWithName(Cell [] cells) { @@ -1403,6 +1403,21 @@ public class MetaTableAccessor { } } + public static Delete removeRegionReplica(byte[] metaRow, int replicaIndexToDeleteFrom, +int numReplicasToRemove) { +int absoluteIndex = replicaIndexToDeleteFrom + numReplicasToRemove; +long now = EnvironmentEdgeManager.currentTime(); +Delete deleteReplicaLocations = new Delete(metaRow); +for (int i = replicaIndexToDeleteFrom; i < absoluteIndex; i++) { + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getSeqNumColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getStartCodeColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getServerNameColumn(i), now); + deleteReplicaLocations.addColumns(getCatalogFamily(), getRegionStateColumn(i), now); +} +return deleteReplicaLocations; + } + /** * Deletes some replica columns corresponding to replicas for the passed rows * @param metaRows rows in hbase:meta diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 4b9cf73..4be605a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -58,6 +58,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.Cell; +import org.apache.hadoop.hbase.CellBuilderFactory; +import org.apache.hadoop.hbase.CellBuilderType; import org.apache.hadoop.hbase.ChoreService; import org.apache.hadoop.hbase.ClusterId; import org.apache.hadoop.hbase.ClusterMetrics; @@ -81,9 +84,11 @@ import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.MasterSwitchType; +import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.RegionInfo; import org.apache.hadoop.hbase.client.RegionInfoBuilder; import org.apache.hadoop.hbase.client.RegionStatesCount; +import