Repository: hbase Updated Branches: refs/heads/hbase-11339 533aa52d8 -> 9f1f8c3bc
HBASE-12758 treat mob region as any other region when generating rs manifest Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/9f1f8c3b Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/9f1f8c3b Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/9f1f8c3b Branch: refs/heads/hbase-11339 Commit: 9f1f8c3bc6b09ede3dd9285e3a989337a135505e Parents: 533aa52 Author: Jonathan M Hsieh <[email protected]> Authored: Wed Dec 24 08:18:48 2014 -0800 Committer: Jonathan M Hsieh <[email protected]> Committed: Wed Dec 24 08:18:48 2014 -0800 ---------------------------------------------------------------------- .../hadoop/hbase/regionserver/HRegion.java | 31 ++++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/9f1f8c3b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java index 60dc05d..df5c900 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -2994,28 +2994,27 @@ public class HRegion implements HeapSize { // , Writable{ Path rootDir = FSUtils.getRootDir(conf); Path snapshotDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(desc, rootDir); - if (Bytes.equals(getStartKey(), HConstants.EMPTY_START_ROW)) { - Map<byte[], Store> stores = getStores(); - boolean hasMobStore = false; - for (Entry<byte[], Store> store : stores.entrySet()) { - hasMobStore = store.getValue().getFamily().isMobEnabled(); - if (hasMobStore) { - break; - } - } - if (hasMobStore) { - // if this is the first region, snapshot the mob files. - SnapshotManifest snapshotManifest = SnapshotManifest.create(conf, getFilesystem(), + SnapshotManifest manifest = SnapshotManifest.create(conf, getFilesystem(), snapshotDir, desc, exnSnare); + manifest.addRegion(this); + + // The regionserver holding the first region of the table is responsible for taking the + // manifest of the mob dir. + if (!Bytes.equals(getStartKey(), HConstants.EMPTY_START_ROW)) + return; + + // if any cf's have is mob enabled, add the "mob region" to the manifest. + Map<byte[], Store> stores = getStores(); + for (Entry<byte[], Store> store : stores.entrySet()) { + boolean hasMobStore = store.getValue().getFamily().isMobEnabled(); + if (hasMobStore) { // use the .mob as the start key and 0 as the regionid HRegionInfo mobRegionInfo = MobUtils.getMobRegionInfo(this.getTableDesc().getTableName()); mobRegionInfo.setOffline(true); - snapshotManifest.addMobRegion(mobRegionInfo, this.getTableDesc().getColumnFamilies()); + manifest.addMobRegion(mobRegionInfo, this.getTableDesc().getColumnFamilies()); + return; } } - SnapshotManifest manifest = SnapshotManifest.create(conf, getFilesystem(), - snapshotDir, desc, exnSnare); - manifest.addRegion(this); } /**
