You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by vj...@apache.org on 2021/10/20 17:38:55 UTC
[hbase] branch branch-1 updated: HBASE-26371 Prioritize meta region
move over other region moves in region_mover (#3768) (#3767)
This is an automated email from the ASF dual-hosted git repository.
vjasani pushed a commit to branch branch-1
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-1 by this push:
new ce938a1 HBASE-26371 Prioritize meta region move over other region moves in region_mover (#3768) (#3767)
ce938a1 is described below
commit ce938a1ae4b990a18d12a3f121d7e9553abe2f30
Author: Viraj Jasani <vj...@apache.org>
AuthorDate: Wed Oct 20 23:08:28 2021 +0530
HBASE-26371 Prioritize meta region move over other region moves in region_mover (#3768) (#3767)
Signed-off-by: Andrew Purtell <ap...@apache.org>
---
bin/region_mover.rb | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/bin/region_mover.rb b/bin/region_mover.rb
index 3e4f020..777d491 100644
--- a/bin/region_mover.rb
+++ b/bin/region_mover.rb
@@ -328,6 +328,26 @@ def unloadRegions(options, hostname, port)
movedRegions = java.util.Collections.synchronizedList(java.util.ArrayList.new())
while true
rs = getRegions(config, servername)
+ # Move meta region first
+ meta_region = nil
+ if not rs.nil? and rs.length > 0
+ rs.each { |region|
+ if region.isMetaRegion()
+ meta_region = region
+ break
+ end
+ }
+ end
+ unless meta_region.nil?
+ $LOG.info("Moving region " + meta_region.getEncodedName() + " to server=" +
+ servers[0] + " for " + servername)
+ # Assert we can scan meta region in its current location
+ isSuccessfulScan(admin, meta_region)
+ # Move meta region and wait for Scan to be successful from new location
+ move(admin, meta_region, servers[0], servername)
+ movedRegions.add(meta_region)
+ end
+
# Remove those already tried to move
rs.removeAll(movedRegions)
break if rs.length == 0
@@ -387,6 +407,32 @@ def loadRegions(options, hostname, port)
# sleep 20s to make sure the rs finished initialization.
sleep 20
counter = 0
+
+ # Move meta region first
+ meta_region = nil
+ if not regions.nil? and regions.length > 0
+ regions.each { |region|
+ if region.isMetaRegion()
+ meta_region = region
+ break
+ end
+ }
+ end
+ unless meta_region.nil?
+ current_server = getServerNameForRegion(admin, meta_region)
+ if current_server and servername and current_server == servername.to_s
+ $LOG.info("Region " + meta_region.getRegionNameAsString() +
+ " already on target server=" + servername)
+
+ elsif current_server and servername and current_server != servername.to_s
+ $LOG.info("Moving region " + meta_region.getRegionNameAsString() +
+ " from " + current_server.to_s + " to server=" + servername)
+ # Move meta region and wait for Scan to be successful from new location
+ move(admin, meta_region, servername, current_server)
+ regions.remove(meta_region)
+ end
+ end
+
pool = ThreadPool.new(options[:maxthreads])
while counter < regions.length do
r = regions[counter]