You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2016/08/22 08:35:12 UTC
hbase git commit: HBASE-16455 Provide API for obtaining all the WAL
files
Repository: hbase
Updated Branches:
refs/heads/master d077219d3 -> f174fec39
HBASE-16455 Provide API for obtaining all the WAL files
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f174fec3
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f174fec3
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f174fec3
Branch: refs/heads/master
Commit: f174fec391f604f56c12cbc3ad6062d7fe640866
Parents: d077219
Author: tedyu <yu...@gmail.com>
Authored: Mon Aug 22 01:34:58 2016 -0700
Committer: tedyu <yu...@gmail.com>
Committed: Mon Aug 22 01:34:58 2016 -0700
----------------------------------------------------------------------
.../apache/hadoop/hbase/regionserver/HRegionServer.java | 5 +++++
.../hadoop/hbase/regionserver/RegionServerServices.java | 6 ++++++
.../hadoop/hbase/regionserver/wal/AbstractFSWAL.java | 4 ++++
.../apache/hadoop/hbase/wal/AbstractFSWALProvider.java | 12 ++++++++++++
.../apache/hadoop/hbase/wal/DisabledWALProvider.java | 8 ++++++++
.../apache/hadoop/hbase/wal/RegionGroupingProvider.java | 10 ++++++++++
.../java/org/apache/hadoop/hbase/wal/WALFactory.java | 4 ++++
.../java/org/apache/hadoop/hbase/wal/WALProvider.java | 4 ++++
.../apache/hadoop/hbase/MockRegionServerServices.java | 6 ++++++
.../apache/hadoop/hbase/master/MockRegionServer.java | 7 ++++++-
.../org/apache/hadoop/hbase/wal/IOTestProvider.java | 8 ++++++++
11 files changed, 73 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/f174fec3/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
----------------------------------------------------------------------
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 89bfbf3..257e724 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
@@ -1906,6 +1906,11 @@ public class HRegionServer extends HasThread implements
private static final byte[] UNSPECIFIED_REGION = new byte[]{};
@Override
+ public List<WAL> getWALs() throws IOException {
+ return walFactory.getWALs();
+ }
+
+ @Override
public WAL getWAL(HRegionInfo regionInfo) throws IOException {
WAL wal;
LogRoller roller = walRoller;
http://git-wip-us.apache.org/repos/asf/hbase/blob/f174fec3/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java
index 356a88b..bfd0431 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java
@@ -19,6 +19,7 @@
package org.apache.hadoop.hbase.regionserver;
import java.io.IOException;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentMap;
@@ -55,6 +56,11 @@ public interface RegionServerServices extends OnlineRegions, FavoredNodesForRegi
* default (common) WAL */
WAL getWAL(HRegionInfo regionInfo) throws IOException;
+ /** @return the List of WALs that are used by this server
+ * Doesn't include the meta WAL
+ */
+ List<WAL> getWALs() throws IOException;
+
/**
* @return Implementation of {@link CompactionRequestor} or null.
*/
http://git-wip-us.apache.org/repos/asf/hbase/blob/f174fec3/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java
index 3aafc23..e33ae33 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java
@@ -239,6 +239,10 @@ public abstract class AbstractFSWAL<W> implements WAL {
*/
private final ConcurrentMap<Thread, SyncFuture> syncFuturesByHandler;
+ public long getFilenum() {
+ return this.filenum.get();
+ }
+
/**
* A log file has a creation timestamp (in ms) in its file name ({@link #filenum}. This helper
* method returns the creation timestamp from a given log file. It extracts the timestamp assuming
http://git-wip-us.apache.org/repos/asf/hbase/blob/f174fec3/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractFSWALProvider.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractFSWALProvider.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractFSWALProvider.java
index e495e99..51d7417 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractFSWALProvider.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/AbstractFSWALProvider.java
@@ -18,6 +18,8 @@
package org.apache.hadoop.hbase.wal;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.regex.Pattern;
@@ -109,6 +111,16 @@ public abstract class AbstractFSWALProvider<T extends AbstractFSWAL<?>> implemen
}
@Override
+ public List<WAL> getWALs() throws IOException {
+ if (wal == null) {
+ return Collections.emptyList();
+ }
+ List<WAL> wals = new ArrayList<WAL>();
+ wals.add(wal);
+ return wals;
+ }
+
+ @Override
public T getWAL(byte[] identifier, byte[] namespace) throws IOException {
T walCopy = wal;
if (walCopy == null) {
http://git-wip-us.apache.org/repos/asf/hbase/blob/f174fec3/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/DisabledWALProvider.java
----------------------------------------------------------------------
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 b5ddd00..0725c4e 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
@@ -18,6 +18,7 @@
package org.apache.hadoop.hbase.wal;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -65,6 +66,13 @@ class DisabledWALProvider implements WALProvider {
}
@Override
+ public List<WAL> getWALs() throws IOException {
+ List<WAL> wals = new ArrayList<WAL>();
+ wals.add(disabled);
+ return wals;
+ }
+
+ @Override
public WAL getWAL(final byte[] identifier, byte[] namespace) throws IOException {
return disabled;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/f174fec3/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/RegionGroupingProvider.java
----------------------------------------------------------------------
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 b447e94..25e70d7 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
@@ -22,6 +22,7 @@ import static org.apache.hadoop.hbase.wal.AbstractFSWALProvider.META_WAL_PROVIDE
import static org.apache.hadoop.hbase.wal.AbstractFSWALProvider.WAL_FILE_NAME_DELIMITER;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -168,6 +169,15 @@ public class RegionGroupingProvider implements WALProvider {
}
}
+ @Override
+ public List<WAL> getWALs() throws IOException {
+ List<WAL> wals = new ArrayList<WAL>();
+ for (WALProvider provider : cached.values()) {
+ wals.addAll(provider.getWALs());
+ }
+ return wals;
+ }
+
private WAL getWAL(final String group) throws IOException {
WALProvider provider = cached.get(group);
if (provider == null) {
http://git-wip-us.apache.org/repos/asf/hbase/blob/f174fec3/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALFactory.java
----------------------------------------------------------------------
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 26c4ea1..8ed9bfb 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
@@ -233,6 +233,10 @@ public class WALFactory {
}
}
+ public List<WAL> getWALs() throws IOException {
+ return provider.getWALs();
+ }
+
/**
* @param identifier may not be null, contents will not be altered
* @param namespace could be null, and will use default namespace if null
http://git-wip-us.apache.org/repos/asf/hbase/blob/f174fec3/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java
----------------------------------------------------------------------
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 96bc023..1a5b140 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
@@ -58,6 +58,10 @@ public interface WALProvider {
*/
WAL getWAL(final byte[] identifier, byte[] namespace) throws IOException;
+ /** @return the List of WALs that are used by this server
+ */
+ List<WAL> getWALs() throws IOException;
+
/**
* persist outstanding WALs to storage and stop accepting new appends.
* This method serves as shorthand for sending a sync to every WAL provided by a given
http://git-wip-us.apache.org/repos/asf/hbase/blob/f174fec3/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java
index 6f225d6..e330093 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java
@@ -19,6 +19,7 @@ package org.apache.hadoop.hbase;
import java.io.IOException;
import java.net.InetSocketAddress;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -246,6 +247,11 @@ public class MockRegionServerServices implements RegionServerServices {
}
@Override
+ public List<WAL> getWALs() throws IOException {
+ return Collections.emptyList();
+ }
+
+ @Override
public WAL getWAL(HRegionInfo regionInfo) throws IOException {
return null;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/f174fec3/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java
index 2927023..1940afa 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.master;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -568,8 +569,12 @@ ClientProtos.ClientService.BlockingInterface, RegionServerServices {
}
@Override
+ public List<WAL> getWALs() throws IOException {
+ return Collections.emptyList();
+ }
+
+ @Override
public WAL getWAL(HRegionInfo regionInfo) throws IOException {
- // TODO Auto-generated method stub
return null;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/f174fec3/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/IOTestProvider.java
----------------------------------------------------------------------
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 0a732a7..ec5f037 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
@@ -23,6 +23,7 @@ import static org.apache.hadoop.hbase.wal.AbstractFSWALProvider.META_WAL_PROVIDE
import static org.apache.hadoop.hbase.wal.AbstractFSWALProvider.WAL_FILE_NAME_DELIMITER;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -106,6 +107,13 @@ public class IOTestProvider implements WALProvider {
}
@Override
+ public List<WAL> getWALs() throws IOException {
+ List<WAL> wals = new ArrayList<WAL>();
+ wals.add(log);
+ return wals;
+ }
+
+ @Override
public WAL getWAL(final byte[] identifier, byte[] namespace) throws IOException {
return log;
}