commit ca165fcc65d6ace7a96180ee46c583053c9ccd4c Author: Yu Li Date: Thu Sep 24 17:16:59 2015 +0800 HBASE-14456 Implement a namespace-based region grouping strategy for RegionGroupingProvider 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 fbc737484050cfbbe78dcbb6570349419410ec4a..eab754a7736637666c96f92cfe73c610a9a85d5d 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 @@ -6099,7 +6099,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi effectiveWAL = (new WALFactory(confForWAL, Collections.singletonList(new MetricsWAL()), "hregion-" + RandomStringUtils.randomNumeric(8))). - getWAL(info.getEncodedNameAsBytes()); + getWAL(info.getEncodedNameAsBytes(), info.getTable().getNamespace()); } HRegion region = HRegion.newHRegion(tableDir, effectiveWAL, fs, conf, info, hTableDescriptor, null); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index bd9d42a7d802991939690f9cdf74b6af576b0af8..3c1c28cf811fb1483a82207a0279486e5a0a2752 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -1835,9 +1835,10 @@ public class HRegionServer extends HasThread implements roller = ensureMetaWALRoller(); wal = walFactory.getMetaWAL(regionInfo.getEncodedNameAsBytes()); } else if (regionInfo == null) { - wal = walFactory.getWAL(UNSPECIFIED_REGION); + wal = walFactory.getWAL(UNSPECIFIED_REGION, null); } else { - wal = walFactory.getWAL(regionInfo.getEncodedNameAsBytes()); + byte[] namespace = regionInfo.getTable().getNamespace(); + wal = walFactory.getWAL(regionInfo.getEncodedNameAsBytes(), namespace); } roller.addWAL(wal); return wal; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HMerge.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HMerge.java index 443d512fc56e7fd82e2eca30a9e99d3451810783..7f2c85db060df69b8fd9208b3091107f244f9b64 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HMerge.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HMerge.java @@ -194,11 +194,13 @@ class HMerge { for (int i = 0; i < info.length - 1; i++) { if (currentRegion == null) { currentRegion = HRegion.openHRegion(conf, fs, this.rootDir, info[i], this.htd, - walFactory.getWAL(info[i].getEncodedNameAsBytes())); + walFactory.getWAL(info[i].getEncodedNameAsBytes(), + info[i].getTable().getNamespace())); currentSize = currentRegion.getLargestHStoreSize(); } nextRegion = HRegion.openHRegion(conf, fs, this.rootDir, info[i + 1], this.htd, - walFactory.getWAL(info[i+1].getEncodedNameAsBytes())); + walFactory.getWAL(info[i + 1].getEncodedNameAsBytes(), + info[i + 1].getTable().getNamespace())); nextSize = nextRegion.getLargestHStoreSize(); if ((currentSize + nextSize) <= (maxFilesize / 2)) { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java index 1ff4967ac14835f933912ebe7f83dd612e94d9ee..309bd4a7349540692eb91e0a4dae29bce99465dc 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/MetaUtils.java @@ -95,7 +95,9 @@ public class MetaUtils { this.walFactory = new WALFactory(walConf, null, logName); } final byte[] region = info.getEncodedNameAsBytes(); - return info.isMetaRegion() ? walFactory.getMetaWAL(region) : walFactory.getWAL(region); + final byte[] namespace = info.getTable().getNamespace(); + return info.isMetaRegion() ? walFactory.getMetaWAL(region) : walFactory.getWAL(region, + namespace); } /** diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/BoundedGroupingStrategy.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/BoundedGroupingStrategy.java index c8f434fefb7c00e82f2405b998342570e21657a2..65c774ea4f44f583ac80af300c626c22f92e5e7d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/BoundedGroupingStrategy.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/BoundedGroupingStrategy.java @@ -42,7 +42,7 @@ public class BoundedGroupingStrategy implements RegionGroupingStrategy{ private String[] groupNames; @Override - public String group(byte[] identifier) { + public String group(byte[] identifier, byte[] namespace) { String idStr = Bytes.toString(identifier); String groupName = groupNameCache.get(idStr); if (null == groupName) { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DefaultWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DefaultWALProvider.java index 23dd79e814a20c77a358dbec4848b8b8b930a6b0..d4299c96ffbc82209faded0a3d33b8dd9c86d681 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DefaultWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DefaultWALProvider.java @@ -120,7 +120,7 @@ public class DefaultWALProvider implements WALProvider { } @Override - public WAL getWAL(final byte[] identifier) throws IOException { + public WAL getWAL(final byte[] identifier, byte[] namespace) throws IOException { if (log == null) { // only lock when need to create wal, and need to lock since // creating hlog on fs is time consuming diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DisabledWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DisabledWALProvider.java index 170144808b231eb914875ec96556ca93d3f909e9..328793bc45907ab47bf84af25fc86b7cb8deddf3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DisabledWALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DisabledWALProvider.java @@ -66,7 +66,7 @@ class DisabledWALProvider implements WALProvider { } @Override - public WAL getWAL(final byte[] identifier) throws IOException { + public WAL getWAL(final byte[] identifier, byte[] namespace) throws IOException { return disabled; } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/NamespaceGroupingStrategy.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/NamespaceGroupingStrategy.java new file mode 100644 index 0000000000000000000000000000000000000000..61935920210080d6fc0b942e9bcbdd862b72a69a --- /dev/null +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/NamespaceGroupingStrategy.java @@ -0,0 +1,52 @@ +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hbase.wal; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.NamespaceDescriptor; +import org.apache.hadoop.hbase.classification.InterfaceAudience; +import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.hbase.wal.RegionGroupingProvider.RegionGroupingStrategy; + +/** + * A WAL grouping strategy based on namespace. + * Notice: the wal-group mapping might change if we support dynamic namespace updating later, + * and special attention needed if we support feature like group-based replication. + */ +@InterfaceAudience.Private +public class NamespaceGroupingStrategy implements RegionGroupingStrategy { + private String providerId; + + @Override + public String group(byte[] identifier, byte[] namespace) { + String namespaceString; + if (namespace == null || namespace.length == 0) { + namespaceString = NamespaceDescriptor.DEFAULT_NAMESPACE_NAME_STR; + } else { + namespaceString = Bytes.toString(namespace); + } + return providerId + GROUP_NAME_DELIMITER + namespaceString; + } + + @Override + public void init(Configuration config, String providerId) { + this.providerId = providerId; + } + +} diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/RegionGroupingProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/RegionGroupingProvider.java index 00a5651bbb8280732a2ab88029cfc530f3066d76..288542893b82fbe81dafc9bfb6f0183dcf8c1a63 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/RegionGroupingProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/RegionGroupingProvider.java @@ -65,12 +65,11 @@ class RegionGroupingProvider implements WALProvider { */ public static interface RegionGroupingStrategy { String GROUP_NAME_DELIMITER = "."; + /** - * Given an identifier, pick a group. - * the byte[] returned for a given group must always use the same instance, since we - * will be using it as a hash key. + * Given an identifier and a namespace, pick a group. */ - String group(final byte[] identifier); + String group(final byte[] identifier, byte[] namespace); void init(Configuration config, String providerId); } @@ -80,7 +79,8 @@ class RegionGroupingProvider implements WALProvider { static enum Strategies { defaultStrategy(BoundedGroupingStrategy.class), identity(IdentityGroupingStrategy.class), - bounded(BoundedGroupingStrategy.class); + bounded(BoundedGroupingStrategy.class), + namespace(NamespaceGroupingStrategy.class); final Class clazz; Strategies(Class clazz) { @@ -200,12 +200,12 @@ class RegionGroupingProvider implements WALProvider { } @Override - public WAL getWAL(final byte[] identifier) throws IOException { + public WAL getWAL(final byte[] identifier, byte[] namespace) throws IOException { final String group; if (META_WAL_PROVIDER_ID.equals(this.providerId)) { group = META_WAL_GROUP_NAME; } else { - group = strategy.group(identifier); + group = strategy.group(identifier, namespace); } return getWAL(group); } @@ -254,7 +254,7 @@ class RegionGroupingProvider implements WALProvider { @Override public void init(Configuration config, String providerId) {} @Override - public String group(final byte[] identifier) { + public String group(final byte[] identifier, final byte[] namespace) { return Bytes.toString(identifier); } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALFactory.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALFactory.java index c869a5f389f933cb048b7d8ed124c5a26f55f511..67f42c3a30e9ff39ab916c22b12743e16b45e982 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALFactory.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALFactory.java @@ -225,9 +225,10 @@ public class WALFactory { /** * @param identifier may not be null, contents will not be altered + * @param namespace could be null, and will use default namespace if null */ - public WAL getWAL(final byte[] identifier) throws IOException { - return provider.getWAL(identifier); + public WAL getWAL(final byte[] identifier, final byte[] namespace) throws IOException { + return provider.getWAL(identifier, namespace); } /** @@ -247,7 +248,7 @@ public class WALFactory { metaProvider = this.metaProvider.get(); } } - return metaProvider.getWAL(identifier); + return metaProvider.getWAL(identifier, null); } public Reader createReader(final FileSystem fs, final Path path) throws IOException { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java index b4c406767774cda913da2c421759f3ca363e88bc..b3d86748c30cc2a8fcfc75b6bac157428ae491f2 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java @@ -54,9 +54,10 @@ public interface WALProvider { /** * @param identifier may not be null. contents will not be altered. + * @param namespace could be null, and will use default namespace if null * @return a WAL for writing entries for the given region. */ - WAL getWAL(final byte[] identifier) throws IOException; + WAL getWAL(final byte[] identifier, byte[] namespace) throws IOException; /** * persist outstanding WALs to storage and stop accepting new appends. diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java index cffa90b338b906b6cb17e18fefc5ab27811b54d6..bc730b8152f9895bbbf3f26eae5fbc03b82ecc4e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java @@ -1807,7 +1807,7 @@ public class HBaseTestingUtility extends HBaseCommonTestingUtility { return (new WALFactory(confForWAL, Collections.singletonList(new MetricsWAL()), "hregion-" + RandomStringUtils.randomNumeric(8))). - getWAL(hri.getEncodedNameAsBytes()); + getWAL(hri.getEncodedNameAsBytes(), hri.getTable().getNamespace()); } /** diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java index aee1b1f5cb2abd07901736359189b0e0b5d0949b..19b45a7ef7e8be271554181ad1945b5c0d7d0276 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestWALObserver.java @@ -162,7 +162,7 @@ public class TestWALObserver { */ @Test public void testWALObserverWriteToWAL() throws Exception { - final WAL log = wals.getWAL(UNSPECIFIED_REGION); + final WAL log = wals.getWAL(UNSPECIFIED_REGION, null); verifyWritesSeen(log, getCoprocessor(log, SampleRegionWALObserver.class), false); } @@ -173,7 +173,7 @@ public class TestWALObserver { */ @Test public void testLegacyWALObserverWriteToWAL() throws Exception { - final WAL log = wals.getWAL(UNSPECIFIED_REGION); + final WAL log = wals.getWAL(UNSPECIFIED_REGION, null); verifyWritesSeen(log, getCoprocessor(log, SampleRegionWALObserver.Legacy.class), true); } @@ -277,7 +277,7 @@ public class TestWALObserver { final Configuration newConf = HBaseConfiguration.create(this.conf); - final WAL wal = wals.getWAL(UNSPECIFIED_REGION); + final WAL wal = wals.getWAL(UNSPECIFIED_REGION, null); final SampleRegionWALObserver newApi = getCoprocessor(wal, SampleRegionWALObserver.class); newApi.setTestValues(TEST_TABLE, TEST_ROW, null, null, null, null, null, null); final SampleRegionWALObserver oldApi = getCoprocessor(wal, @@ -349,7 +349,7 @@ public class TestWALObserver { final HTableDescriptor htd = createBasic3FamilyHTD(Bytes.toString(TEST_TABLE)); final AtomicLong sequenceId = new AtomicLong(0); - WAL log = wals.getWAL(UNSPECIFIED_REGION); + WAL log = wals.getWAL(UNSPECIFIED_REGION, null); try { SampleRegionWALObserver cp = getCoprocessor(log, SampleRegionWALObserver.class); @@ -394,7 +394,7 @@ public class TestWALObserver { final Configuration newConf = HBaseConfiguration.create(this.conf); // WAL wal = new WAL(this.fs, this.dir, this.oldLogDir, this.conf); - WAL wal = wals.getWAL(UNSPECIFIED_REGION); + WAL wal = wals.getWAL(UNSPECIFIED_REGION, null); // Put p = creatPutWith2Families(TEST_ROW); WALEdit edit = new WALEdit(); long now = EnvironmentEdgeManager.currentTime(); @@ -419,7 +419,7 @@ public class TestWALObserver { FileSystem newFS = FileSystem.get(newConf); // Make a new wal for new region open. final WALFactory wals2 = new WALFactory(conf, null, currentTest.getMethodName()+"2"); - WAL wal2 = wals2.getWAL(UNSPECIFIED_REGION);; + WAL wal2 = wals2.getWAL(UNSPECIFIED_REGION, null);; HRegion region = HRegion.openHRegion(newConf, FileSystem.get(newConf), hbaseRootDir, hri, htd, wal2, TEST_UTIL.getHBaseCluster().getRegionServer(0), null); long seqid2 = region.getOpenSeqNum(); @@ -447,7 +447,7 @@ public class TestWALObserver { */ @Test public void testWALObserverLoaded() throws Exception { - WAL log = wals.getWAL(UNSPECIFIED_REGION); + WAL log = wals.getWAL(UNSPECIFIED_REGION, null); assertNotNull(getCoprocessor(log, SampleRegionWALObserver.class)); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestWALRecordReader.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestWALRecordReader.java index 66cee55a8e5b73ba1801aa26c5b055395a7ea1c4..89f0e7a72911a83ce8f0916222ed0125d9ac4b6d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestWALRecordReader.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestWALRecordReader.java @@ -118,7 +118,7 @@ public class TestWALRecordReader { @Test public void testPartialRead() throws Exception { final WALFactory walfactory = new WALFactory(conf, null, getName()); - WAL log = walfactory.getWAL(info.getEncodedNameAsBytes()); + WAL log = walfactory.getWAL(info.getEncodedNameAsBytes(), info.getTable().getNamespace()); // This test depends on timestamp being millisecond based and the filename of the WAL also // being millisecond based. long ts = System.currentTimeMillis(); @@ -181,7 +181,7 @@ public class TestWALRecordReader { @Test public void testWALRecordReader() throws Exception { final WALFactory walfactory = new WALFactory(conf, null, getName()); - WAL log = walfactory.getWAL(info.getEncodedNameAsBytes()); + WAL log = walfactory.getWAL(info.getEncodedNameAsBytes(), info.getTable().getNamespace()); byte [] value = Bytes.toBytes("value"); final AtomicLong sequenceId = new AtomicLong(0); WALEdit edit = new WALEdit(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.java index 9a227abb31daa98a97ec1ab499c0033d1c34a5df..44b182346f30a4ae03d1a9f4f3c3d4995db85230 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.java @@ -174,7 +174,7 @@ public class TestCacheOnWriteInSchema { walFactory = new WALFactory(conf, null, id); region = TEST_UTIL.createLocalHRegion(info, htd, - walFactory.getWAL(info.getEncodedNameAsBytes())); + walFactory.getWAL(info.getEncodedNameAsBytes(), info.getTable().getNamespace())); store = new HStore(region, hcd, conf); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultCompactSelection.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultCompactSelection.java index 9779e474d3656f90efb0863e4c3b7aa68c05fd9d..3575e6991c0bc5d4b34d68df092f93b8ac633453 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultCompactSelection.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultCompactSelection.java @@ -97,8 +97,8 @@ public class TestDefaultCompactSelection extends TestCase { region = HRegion.createHRegion(info, basedir, conf, htd); HRegion.closeHRegion(region); Path tableDir = FSUtils.getTableDir(basedir, htd.getTableName()); - region = new HRegion(tableDir, wals.getWAL(info.getEncodedNameAsBytes()), fs, conf, info, htd, - null); + region = new HRegion(tableDir, wals.getWAL(info.getEncodedNameAsBytes(), info.getTable() + .getNamespace()), fs, conf, info, htd, null); store = new HStore(region, hcd, conf); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.java index 08419ba69e1c018a05dcc3a898c3983e9e0fe1f2..602a04593eadc7f657ab81fa17daa7a1d2f2569f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.java @@ -958,7 +958,7 @@ public class TestDefaultMemStore extends TestCase { desc.addFamily(new HColumnDescriptor("foo".getBytes())); HRegion r = HRegion.createHRegion(hri, testDir, conf, desc, - wFactory.getWAL(hri.getEncodedNameAsBytes())); + wFactory.getWAL(hri.getEncodedNameAsBytes(), hri.getTable().getNamespace())); HRegion.addRegionToMETA(meta, r); edge.setCurrentTimeMillis(1234 + 100); StringBuffer sb = new StringBuffer(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java index 9e3f2f414aac6173e7104d592d5eb84e48f5bd0e..5b9f63ebbeb7d574b4b6ccfccf65620b1983a5d4 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java @@ -923,7 +923,7 @@ public class TestHRegion { final Configuration walConf = new Configuration(TEST_UTIL.getConfiguration()); FSUtils.setRootDir(walConf, logDir); final WALFactory wals = new WALFactory(walConf, null, method); - final WAL wal = wals.getWAL(tableName.getName()); + final WAL wal = wals.getWAL(tableName.getName(), tableName.getNamespace()); this.region = initHRegion(tableName.getName(), HConstants.EMPTY_START_ROW, HConstants.EMPTY_END_ROW, method, CONF, false, Durability.USE_DEFAULT, wal, family); @@ -4753,7 +4753,7 @@ public class TestHRegion { final Configuration walConf = new Configuration(conf); FSUtils.setRootDir(walConf, logDir); final WALFactory wals = new WALFactory(walConf, null, UUID.randomUUID().toString()); - final WAL wal = spy(wals.getWAL(tableName.getName())); + final WAL wal = spy(wals.getWAL(tableName.getName(), tableName.getNamespace())); this.region = initHRegion(tableName.getName(), HConstants.EMPTY_START_ROW, HConstants.EMPTY_END_ROW, method, conf, false, tableDurability, wal, new byte[][] { family }); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java index e2622093c46a63cfbd4c72ac62710a8a415a56b6..b100b9d1494ab3e21143bc618e4e28a29a6df41d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java @@ -158,8 +158,10 @@ public class TestHRegionReplayEvents { false, time, 1); wals = TestHRegion.createWALFactory(CONF, rootDir); - walPrimary = wals.getWAL(primaryHri.getEncodedNameAsBytes()); - walSecondary = wals.getWAL(secondaryHri.getEncodedNameAsBytes()); + walPrimary = wals.getWAL(primaryHri.getEncodedNameAsBytes(), + primaryHri.getTable().getNamespace()); + walSecondary = wals.getWAL(secondaryHri.getEncodedNameAsBytes(), + secondaryHri.getTable().getNamespace()); rss = mock(RegionServerServices.class); when(rss.getServerName()).thenReturn(ServerName.valueOf("foo", 1, 1)); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java index 4b3156c24d281f326706285ed3a750c04797de2e..49f3dcecbce32b95fcb6d95b2dbe93a5f77ede15 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java @@ -414,8 +414,9 @@ public class TestRegionMergeTransaction { HRegion a = HRegion.createHRegion(hri, testdir, TEST_UTIL.getConfiguration(), htd); HRegion.closeHRegion(a); - return HRegion.openHRegion(testdir, hri, htd, wals.getWAL(hri.getEncodedNameAsBytes()), - TEST_UTIL.getConfiguration()); + return HRegion.openHRegion(testdir, hri, htd, + wals.getWAL(hri.getEncodedNameAsBytes(), hri.getTable().getNamespace()), + TEST_UTIL.getConfiguration()); } private int countRows(final HRegion r) throws IOException { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java index 18fc01334f5ddf70d94e6c44094906ca574d205d..d5c95752b327197a1df852927b901b259c5300ec 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java @@ -378,7 +378,8 @@ public class TestSplitTransaction { HRegionInfo hri = new HRegionInfo(htd.getTableName(), STARTROW, ENDROW); HRegion r = HRegion.createHRegion(hri, testdir, TEST_UTIL.getConfiguration(), htd); HRegion.closeHRegion(r); - return HRegion.openHRegion(testdir, hri, htd, wals.getWAL(hri.getEncodedNameAsBytes()), + return HRegion.openHRegion(testdir, hri, htd, + wals.getWAL(hri.getEncodedNameAsBytes(), hri.getTable().getNamespace()), TEST_UTIL.getConfiguration()); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java index 125bfa80934b80e779ac91d748d04b34a6aecd40..60a15ea3131b4fd564cb57b09c5303ef715e130f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java @@ -183,8 +183,8 @@ public class TestStore { final Configuration walConf = new Configuration(conf); FSUtils.setRootDir(walConf, basedir); final WALFactory wals = new WALFactory(walConf, null, methodName); - HRegion region = new HRegion(tableDir, wals.getWAL(info.getEncodedNameAsBytes()), fs, conf, - info, htd, null); + HRegion region = new HRegion(tableDir, wals.getWAL(info.getEncodedNameAsBytes(), + info.getTable().getNamespace()), fs, conf, info, htd, null); store = new HStore(region, hcd, conf); return store; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.java index dfffbd463ce86bb830d75c20b93ae4f533221cc2..ed76b92f1e6189f12dfd07e7a2e2cfd73010b557 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.java @@ -105,7 +105,9 @@ public class TestStoreFileRefresherChore { final Configuration walConf = new Configuration(conf); FSUtils.setRootDir(walConf, tableDir); final WALFactory wals = new WALFactory(walConf, null, "log_" + replicaId); - HRegion region = new HRegion(fs, wals.getWAL(info.getEncodedNameAsBytes()), conf, htd, null); + HRegion region = + new HRegion(fs, wals.getWAL(info.getEncodedNameAsBytes(), info.getTable().getNamespace()), + conf, htd, null); region.initialize(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestDurability.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestDurability.java index 9ac55bc08b66041f6f6a9e6d14490e555e005fc5..4e9c5ff8b97936f4806957558cf439da8de380d2 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestDurability.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestDurability.java @@ -84,7 +84,7 @@ public class TestDurability { public void testDurability() throws Exception { final WALFactory wals = new WALFactory(CONF, null, "TestDurability"); byte[] tableName = Bytes.toBytes("TestDurability"); - final WAL wal = wals.getWAL(tableName); + final WAL wal = wals.getWAL(tableName, null); HRegion region = createHRegion(tableName, "region", wal, Durability.USE_DEFAULT); HRegion deferredRegion = createHRegion(tableName, "deferredRegion", wal, Durability.ASYNC_WAL); @@ -147,7 +147,7 @@ public class TestDurability { // Setting up region final WALFactory wals = new WALFactory(CONF, null, "TestIncrement"); byte[] tableName = Bytes.toBytes("TestIncrement"); - final WAL wal = wals.getWAL(tableName); + final WAL wal = wals.getWAL(tableName, null); HRegion region = createHRegion(tableName, "increment", wal, Durability.USE_DEFAULT); // col1: amount = 1, 1 write back to WAL @@ -205,7 +205,7 @@ public class TestDurability { // Setting up region final WALFactory wals = new WALFactory(CONF, null, "testIncrementWithReturnResultsSetToFalse"); byte[] tableName = Bytes.toBytes("testIncrementWithReturnResultsSetToFalse"); - final WAL wal = wals.getWAL(tableName); + final WAL wal = wals.getWAL(tableName, null); HRegion region = createHRegion(tableName, "increment", wal, Durability.USE_DEFAULT); Increment inc1 = new Increment(row1); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.java index 7f4ee80f8d1a6902639082523d7cd302acd06c32..bb840fe318010b3538355d3951ac4c81a407d4a5 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.java @@ -192,7 +192,8 @@ public class TestLogRollAbort { TableName.valueOf(this.getClass().getName()); HRegionInfo regioninfo = new HRegionInfo(tableName, HConstants.EMPTY_START_ROW, HConstants.EMPTY_END_ROW); - final WAL log = wals.getWAL(regioninfo.getEncodedNameAsBytes()); + final WAL log = wals.getWAL(regioninfo.getEncodedNameAsBytes(), + regioninfo.getTable().getNamespace()); final AtomicLong sequenceId = new AtomicLong(1); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java index d0b4c057efa35ec61a58f7df776cb8f3dd35026f..68200d2944324f0a2a2a2995e42c32bbd30ad608 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java @@ -198,7 +198,7 @@ public class TestLogRolling { final Configuration conf = TEST_UTIL.getConfiguration(); final WALFactory wals = new WALFactory(conf, null, ServerName.valueOf("test.com",8080, 1).toString()); - final WAL newLog = wals.getWAL(new byte[]{}); + final WAL newLog = wals.getWAL(new byte[]{}, null); try { // Now roll the log before we write anything. newLog.rollWriter(true); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java index 4ca7aafcc9ae0d633c20b305eae93342f11c5e01..fec2cc561f8b1ef805a103d8cd3790633d66a528 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java @@ -65,7 +65,7 @@ public class TestLogRollingNoCluster { final Configuration conf = new Configuration(TEST_UTIL.getConfiguration()); FSUtils.setRootDir(conf, dir); final WALFactory wals = new WALFactory(conf, null, TestLogRollingNoCluster.class.getName()); - final WAL wal = wals.getWAL(new byte[]{}); + final WAL wal = wals.getWAL(new byte[]{}, null); Appender [] appenders = null; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.java index f90d1c5932afb0a90a97ca031fa68448e07daf9c..d3aad0356eb1b01dd942dfce793d8717d0f59831 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestWALActionsListener.java @@ -90,7 +90,7 @@ public class TestWALActionsListener { final AtomicLong sequenceId = new AtomicLong(1); HRegionInfo hri = new HRegionInfo(TableName.valueOf(SOME_BYTES), SOME_BYTES, SOME_BYTES, false); - final WAL wal = wals.getWAL(hri.getEncodedNameAsBytes()); + final WAL wal = wals.getWAL(hri.getEncodedNameAsBytes(), hri.getTable().getNamespace()); for (int i = 0; i < 20; i++) { byte[] b = Bytes.toBytes(i+""); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java index d6fb401d8500b501ac88320ba311fff5a0c87c3d..67d7894809406bc6b8edf9fdcc28068a37c2204a 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java @@ -200,7 +200,7 @@ public class TestReplicationSourceManager { listeners.add(replication); final WALFactory wals = new WALFactory(utility.getConfiguration(), listeners, URLEncoder.encode("regionserver:60020", "UTF8")); - final WAL wal = wals.getWAL(hri.getEncodedNameAsBytes()); + final WAL wal = wals.getWAL(hri.getEncodedNameAsBytes(), hri.getTable().getNamespace()); final AtomicLong sequenceId = new AtomicLong(1); manager.init(); HTableDescriptor htd = new HTableDescriptor(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationWALReaderManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationWALReaderManager.java index 7f57b39e182751dfac3b3fc441f5af1b9accd56c..b4eacc5593343f70cc1cd885cfb067d738688e25 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationWALReaderManager.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationWALReaderManager.java @@ -131,7 +131,7 @@ public class TestReplicationWALReaderManager { pathWatcher = new PathWatcher(); listeners.add(pathWatcher); final WALFactory wals = new WALFactory(conf, listeners, tn.getMethodName()); - log = wals.getWAL(info.getEncodedNameAsBytes()); + log = wals.getWAL(info.getEncodedNameAsBytes(), info.getTable().getNamespace()); } @After diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMergeTool.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMergeTool.java index 66167c8f5d218147ec412c05c01614c194013b4a..aabec2be858601d7c496d7b8a614b5fa6b79db85 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMergeTool.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestMergeTool.java @@ -269,7 +269,7 @@ public class TestMergeTool extends HBaseTestCase { // Close the region and delete the log HRegion.closeHRegion(regions[i]); } - WAL log = wals.getWAL(new byte[]{}); + WAL log = wals.getWAL(new byte[]{}, null); // Merge Region 0 and Region 1 HRegion merged = mergeAndVerify("merging regions 0 and 1 ", this.sourceRegions[0].getRegionNameAsString(), diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/IOTestProvider.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/IOTestProvider.java index e06a587733d6983e2d6acbb4a5ba70fba4feef58..6b1ca037650a2368a5592a0cfe517b388becfa1f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/IOTestProvider.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/IOTestProvider.java @@ -108,7 +108,7 @@ public class IOTestProvider implements WALProvider { } @Override - public WAL getWAL(final byte[] identifier) throws IOException { + public WAL getWAL(final byte[] identifier, byte[] namespace) throws IOException { return log; } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.java index eadf31c3da95a594ce5f323c306a4a2fee3ad15c..0991807d4da8afd67e3f62a65288dab3359b2d5d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.java @@ -171,7 +171,7 @@ public class TestBoundedRegionGroupingStrategy { int count = 0; // we know that this should see one of the wals more than once for (int i = 0; i < temp*8; i++) { - final WAL maybeNewWAL = wals.getWAL(Bytes.toBytes(random.nextInt())); + final WAL maybeNewWAL = wals.getWAL(Bytes.toBytes(random.nextInt()), null); LOG.info("Iteration " + i + ", checking wal " + maybeNewWAL); if (seen.add(maybeNewWAL)) { count++; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestDefaultWALProvider.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestDefaultWALProvider.java index d52a30472f64da68758bb1ce6329a8d161a20a6c..edf03d6a54bd0301e654e122d95bf148d46513d8 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestDefaultWALProvider.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestDefaultWALProvider.java @@ -197,7 +197,7 @@ public class TestDefaultWALProvider { HRegionInfo hri2 = new HRegionInfo(htd2.getTableName(), HConstants.EMPTY_START_ROW, HConstants.EMPTY_END_ROW); // we want to mix edits from regions, so pick our own identifier. - final WAL log = wals.getWAL(UNSPECIFIED_REGION); + final WAL log = wals.getWAL(UNSPECIFIED_REGION, null); // Add a single edit and make sure that rolling won't remove the file // Before HBASE-3198 it used to delete it @@ -264,7 +264,7 @@ public class TestDefaultWALProvider { localConf.set(WALFactory.WAL_PROVIDER, DefaultWALProvider.class.getName()); final WALFactory wals = new WALFactory(localConf, null, currentTest.getMethodName()); try { - final WAL wal = wals.getWAL(UNSPECIFIED_REGION); + final WAL wal = wals.getWAL(UNSPECIFIED_REGION, null); assertEquals(0, DefaultWALProvider.getNumRolledLogFiles(wal)); HRegionInfo hri1 = new HRegionInfo(table1.getTableName(), HConstants.EMPTY_START_ROW, @@ -350,10 +350,11 @@ public class TestDefaultWALProvider { final Set seen = new HashSet(1); final Random random = new Random(); assertTrue("first attempt to add WAL from default provider should work.", - seen.add(wals.getWAL(Bytes.toBytes(random.nextInt())))); + seen.add(wals.getWAL(Bytes.toBytes(random.nextInt()), null))); for (int i = 0; i < 1000; i++) { - assertFalse("default wal provider is only supposed to return a single wal, which should " + - "compare as .equals itself.", seen.add(wals.getWAL(Bytes.toBytes(random.nextInt())))); + assertFalse("default wal provider is only supposed to return a single wal, which should " + + "compare as .equals itself.", + seen.add(wals.getWAL(Bytes.toBytes(random.nextInt()), null))); } } finally { wals.close(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestSecureWAL.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestSecureWAL.java index fda07862df1e8f52e0da7a91e808350972afb03a..41384aabe3dc845a9c3f756ed46bfa403b8317d8 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestSecureWAL.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestSecureWAL.java @@ -93,7 +93,8 @@ public class TestSecureWAL { final AtomicLong sequenceId = new AtomicLong(1); // Write the WAL - final WAL wal = wals.getWAL(regioninfo.getEncodedNameAsBytes()); + final WAL wal = + wals.getWAL(regioninfo.getEncodedNameAsBytes(), regioninfo.getTable().getNamespace()); for (int i = 0; i < total; i++) { WALEdit kvs = new WALEdit(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALFactory.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALFactory.java index 467c63d6020275349a1ad11c4706bba7e05bef94..bc2716a65ec281de1a8c7a8389c0802fa806b384 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALFactory.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALFactory.java @@ -185,7 +185,8 @@ public class TestWALFactory { final AtomicLong sequenceId = new AtomicLong(1); for (int ii = 0; ii < howmany; ii++) { for (int i = 0; i < howmany; i++) { - final WAL log = wals.getWAL(infos[i].getEncodedNameAsBytes()); + final WAL log = + wals.getWAL(infos[i].getEncodedNameAsBytes(), infos[i].getTable().getNamespace()); for (int j = 0; j < howmany; j++) { WALEdit edit = new WALEdit(); byte [] family = Bytes.toBytes("column"); @@ -246,7 +247,7 @@ public class TestWALFactory { null,null, false); HTableDescriptor htd = new HTableDescriptor(); htd.addFamily(new HColumnDescriptor(tableName.getName())); - final WAL wal = wals.getWAL(info.getEncodedNameAsBytes()); + final WAL wal = wals.getWAL(info.getEncodedNameAsBytes(), info.getTable().getNamespace()); for (int i = 0; i < total; i++) { WALEdit kvs = new WALEdit(); @@ -361,7 +362,8 @@ public class TestWALFactory { HRegionInfo regioninfo = new HRegionInfo(tableName, HConstants.EMPTY_START_ROW, HConstants.EMPTY_END_ROW, false); - final WAL wal = wals.getWAL(regioninfo.getEncodedNameAsBytes()); + final WAL wal = + wals.getWAL(regioninfo.getEncodedNameAsBytes(), regioninfo.getTable().getNamespace()); final AtomicLong sequenceId = new AtomicLong(1); final int total = 20; @@ -498,7 +500,7 @@ public class TestWALFactory { } HRegionInfo info = new HRegionInfo(htd.getTableName(), row,Bytes.toBytes(Bytes.toString(row) + "1"), false); - final WAL log = wals.getWAL(info.getEncodedNameAsBytes()); + final WAL log = wals.getWAL(info.getEncodedNameAsBytes(), info.getTable().getNamespace()); final long txid = log.append(htd, info, new WALKey(info.getEncodedNameAsBytes(), htd.getTableName(), System.currentTimeMillis()), @@ -555,7 +557,7 @@ public class TestWALFactory { } HRegionInfo hri = new HRegionInfo(htd.getTableName(), HConstants.EMPTY_START_ROW, HConstants.EMPTY_END_ROW); - final WAL log = wals.getWAL(hri.getEncodedNameAsBytes()); + final WAL log = wals.getWAL(hri.getEncodedNameAsBytes(), hri.getTable().getNamespace()); final long txid = log.append(htd, hri, new WALKey(hri.getEncodedNameAsBytes(), htd.getTableName(), System.currentTimeMillis()), cols, sequenceId, true, null); @@ -603,7 +605,7 @@ public class TestWALFactory { HRegionInfo hri = new HRegionInfo(tableName, HConstants.EMPTY_START_ROW, HConstants.EMPTY_END_ROW); - final WAL log = wals.getWAL(hri.getEncodedNameAsBytes()); + final WAL log = wals.getWAL(hri.getEncodedNameAsBytes(), hri.getTable().getNamespace()); log.registerWALActionsListener(visitor); for (int i = 0; i < COL_COUNT; i++) { WALEdit cols = new WALEdit(); @@ -632,7 +634,7 @@ public class TestWALFactory { @Test public void testWALCoprocessorLoaded() throws Exception { // test to see whether the coprocessor is loaded or not. - WALCoprocessorHost host = wals.getWAL(UNSPECIFIED_REGION).getCoprocessorHost(); + WALCoprocessorHost host = wals.getWAL(UNSPECIFIED_REGION, null).getCoprocessorHost(); Coprocessor c = host.findCoprocessor(SampleRegionWALObserver.class.getName()); assertNotNull(c); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALMethods.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALMethods.java index 1f07a4cbb62408fab234c16d0a26d6c457ee5cd6..63fe1a71c348772e3f8a9c81bb1f0bc0bfd1f91e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALMethods.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALMethods.java @@ -86,7 +86,7 @@ public class TestWALMethods { final Configuration walConf = new Configuration(util.getConfiguration()); FSUtils.setRootDir(walConf, regiondir); - (new WALFactory(walConf, null, "dummyLogName")).getWAL(new byte[]{}); + (new WALFactory(walConf, null, "dummyLogName")).getWAL(new byte[] {}, null); NavigableSet files = WALSplitter.getSplitEditFilesSorted(fs, regiondir); assertEquals(7, files.size()); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALReaderOnSecureWAL.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALReaderOnSecureWAL.java index 5ba9b851ed5d84e1c159be5a401b7bb703144063..ca9c5d67ea09666cc4b741f3c6f9f4a8ae6ea8a5 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALReaderOnSecureWAL.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALReaderOnSecureWAL.java @@ -108,7 +108,8 @@ public class TestWALReaderOnSecureWAL { final AtomicLong sequenceId = new AtomicLong(1); // Write the WAL - WAL wal = wals.getWAL(regioninfo.getEncodedNameAsBytes()); + WAL wal = + wals.getWAL(regioninfo.getEncodedNameAsBytes(), regioninfo.getTable().getNamespace()); for (int i = 0; i < total; i++) { WALEdit kvs = new WALEdit(); kvs.add(new KeyValue(row, family, Bytes.toBytes(i), value)); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java index d2db4d16ba0d899d3b7197bb1ee7b2f4d3af0969..8dfbfc9b7a8dda95853aef751bd1eae2a41cb69e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestWALSplit.java @@ -1073,7 +1073,7 @@ public class TestWALSplit { REGIONS.add(regionName); generateWALs(-1); - wals.getWAL(Bytes.toBytes(regionName)); + wals.getWAL(Bytes.toBytes(regionName), null); FileStatus[] logfiles = fs.listStatus(WALDIR); assertTrue("There should be some log file", logfiles != null && logfiles.length > 0); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java index 28c68b3818fc12ab0d3511662f7ee4937bb5a219..64bf319559cc4224ffecdc002b5169bdae74207b 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/WALPerformanceEvaluation.java @@ -485,7 +485,8 @@ public final class WALPerformanceEvaluation extends Configured implements Tool { // Initialize HRegion HRegionInfo regionInfo = new HRegionInfo(htd.getTableName()); // Initialize WAL - final WAL wal = wals.getWAL(regionInfo.getEncodedNameAsBytes()); + final WAL wal = + wals.getWAL(regionInfo.getEncodedNameAsBytes(), regionInfo.getTable().getNamespace()); // If we haven't already, attach a listener to this wal to handle rolls and metrics. if (walsListenedTo.add(wal)) { roller.addWAL(wal);