You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2021/03/31 21:39:02 UTC
[hbase] branch HBASE-25713 updated: Moved more back to hbase-wal;
no tests checked yet
This is an automated email from the ASF dual-hosted git repository.
stack pushed a commit to branch HBASE-25713
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/HBASE-25713 by this push:
new 8e83e44 Moved more back to hbase-wal; no tests checked yet
8e83e44 is described below
commit 8e83e440a52bb49e68bc2a235aefdf45a93bf535
Author: stack <st...@apache.org>
AuthorDate: Wed Mar 31 14:38:04 2021 -0700
Moved more back to hbase-wal; no tests checked yet
---
.../hadoop/hbase/regionserver/wal/AsyncFSWAL.java | 1 -
hbase-wal/pom.xml | 13 +++++++++++
.../hadoop/hbase/regionserver/wal/MetricsWAL.java | 0
.../hbase/regionserver/wal/MetricsWALSource.java | 2 +-
.../regionserver/wal/MetricsWALSourceImpl.java | 0
.../org/apache/hadoop/hbase/wal/WALProvider.java | 15 ++++--------
.../hbase/regionserver/wal/TestMetricsWAL.java | 27 ++++++++++------------
.../regionserver/wal/TestMetricsWALSource.java | 0
.../regionserver/wal/TestMetricsWALSourceImpl.java | 3 +--
9 files changed, 32 insertions(+), 29 deletions(-)
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
index 5576a77..960da1f 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java
@@ -48,7 +48,6 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.Abortable;
import org.apache.hadoop.hbase.HBaseInterfaceAudience;
-import org.apache.hadoop.hbase.client.RegionInfo;
import org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutput;
import org.apache.hadoop.hbase.trace.TraceUtil;
import org.apache.hadoop.hbase.wal.AsyncFSWALProvider;
diff --git a/hbase-wal/pom.xml b/hbase-wal/pom.xml
index 9e1e3bb..742672e 100644
--- a/hbase-wal/pom.xml
+++ b/hbase-wal/pom.xml
@@ -79,6 +79,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<scope>test</scope>
@@ -110,5 +115,13 @@
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-metrics-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-hadoop-compat</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-hadoop2-compat</artifactId>
+ </dependency>
</dependencies>
</project>
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWAL.java b/hbase-wal/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWAL.java
similarity index 100%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWAL.java
rename to hbase-wal/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWAL.java
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.java b/hbase-wal/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.java
similarity index 99%
rename from hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.java
rename to hbase-wal/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.java
index b179b91..d4b573d 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.java
+++ b/hbase-wal/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.java b/hbase-wal/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.java
similarity index 100%
rename from hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.java
rename to hbase-wal/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.java
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java b/hbase-wal/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java
similarity index 91%
rename from hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java
rename to hbase-wal/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java
index 0a3123a..b4fab32 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java
+++ b/hbase-wal/src/main/java/org/apache/hadoop/hbase/wal/WALProvider.java
@@ -1,5 +1,4 @@
-/**
- *
+/*
* 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
@@ -23,11 +22,8 @@ import java.io.IOException;
import java.util.List;
import java.util.OptionalLong;
import java.util.concurrent.CompletableFuture;
-
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Abortable;
-import org.apache.hadoop.hbase.client.RegionInfo;
-import org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL;
import org.apache.hadoop.hbase.regionserver.wal.WALActionsListener;
import org.apache.hadoop.hbase.replication.regionserver.WALFileLengthProvider;
import org.apache.yetus.audience.InterfaceAudience;
@@ -36,7 +32,7 @@ import org.apache.yetus.audience.InterfaceAudience;
* The Write Ahead Log (WAL) stores all durable edits to the HRegion. This interface provides the
* entry point for all WAL implementors.
* <p>
- * See {@link FSHLogProvider} for an example implementation. A single WALProvider will be used for
+ * See FSHLogProvider for an example implementation. A single WALProvider will be used for
* retrieving multiple WALs in a particular region server and must be threadsafe.
*/
@InterfaceAudience.Private
@@ -52,10 +48,9 @@ public interface WALProvider {
throws IOException;
/**
- * @param region the region which we want to get a WAL for it. Could be null.
* @return a WAL for writing entries for the given region.
*/
- WAL getWAL(RegionInfo region) throws IOException;
+ WAL getWAL(byte [] encodedRegionName) throws IOException;
/**
* @return the List of WALs that are used by this server
@@ -80,7 +75,7 @@ public interface WALProvider {
long getLength();
/**
* NOTE: We add this method for {@link WALFileLengthProvider} used for replication,
- * considering the case if we use {@link AsyncFSWAL},we write to 3 DNs concurrently,
+ * considering the case if we use AsyncFSWAL, we write to 3 DNs concurrently,
* according to the visibility guarantee of HDFS, the data will be available immediately
* when arriving at DN since all the DNs will be considered as the last one in pipeline.
* This means replication may read uncommitted data and replicate it to the remote cluster
@@ -123,7 +118,7 @@ public interface WALProvider {
/**
* Add a {@link WALActionsListener}.
* <p>
- * Notice that you must call this method before calling {@link #getWAL(RegionInfo)} as this method
+ * Notice that you must call this method before calling {@link #getWAL(byte[])} as this method
* will not effect the {@link WAL} which has already been created. And as long as we can only it
* when initialization, it is not thread safe.
*/
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.java b/hbase-wal/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.java
similarity index 84%
rename from hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.java
rename to hbase-wal/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.java
index 14d0a88..cbe4b7a 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.java
+++ b/hbase-wal/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.java
@@ -18,10 +18,6 @@
package org.apache.hadoop.hbase.regionserver.wal;
import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import org.apache.hadoop.hbase.HBaseClassTestRule;
@@ -34,6 +30,7 @@ import org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
+import org.mockito.Mockito;
@Category({MiscTests.class, SmallTests.class})
public class TestMetricsWAL {
@@ -44,7 +41,7 @@ public class TestMetricsWAL {
@Test
public void testLogRollRequested() throws Exception {
- MetricsWALSource source = mock(MetricsWALSourceImpl.class);
+ MetricsWALSource source = Mockito.mock(MetricsWALSourceImpl.class);
MetricsWAL metricsWAL = new MetricsWAL(source);
metricsWAL.logRollRequested(WALActionsListener.RollRequestReason.ERROR);
metricsWAL.logRollRequested(WALActionsListener.RollRequestReason.LOW_REPLICATION);
@@ -52,24 +49,24 @@ public class TestMetricsWAL {
metricsWAL.logRollRequested(WALActionsListener.RollRequestReason.SIZE);
// Log roll was requested four times
- verify(source, times(4)).incrementLogRollRequested();
+ Mockito.verify(source, Mockito.times(4)).incrementLogRollRequested();
// One was because of an IO error.
- verify(source, times(1)).incrementErrorLogRoll();
+ Mockito.verify(source, Mockito.times(1)).incrementErrorLogRoll();
// One was because of low replication on the hlog.
- verify(source, times(1)).incrementLowReplicationLogRoll();
+ Mockito.verify(source, Mockito.times(1)).incrementLowReplicationLogRoll();
// One was because of slow sync on the hlog.
- verify(source, times(1)).incrementSlowSyncLogRoll();
+ Mockito.verify(source, Mockito.times(1)).incrementSlowSyncLogRoll();
// One was because of hlog file length limit.
- verify(source, times(1)).incrementSizeLogRoll();
+ Mockito.verify(source, Mockito.times(1)).incrementSizeLogRoll();
}
@Test
public void testPostSync() throws Exception {
long nanos = TimeUnit.MILLISECONDS.toNanos(145);
- MetricsWALSource source = mock(MetricsWALSourceImpl.class);
+ MetricsWALSource source = Mockito.mock(MetricsWALSourceImpl.class);
MetricsWAL metricsWAL = new MetricsWAL(source);
metricsWAL.postSync(nanos, 1);
- verify(source, times(1)).incrementSyncTime(145);
+ Mockito.verify(source, Mockito.times(1)).incrementSyncTime(145);
}
@Test
@@ -88,14 +85,14 @@ public class TestMetricsWAL {
@Test
public void testWalWrittenInBytes() throws Exception {
- MetricsWALSource source = mock(MetricsWALSourceImpl.class);
+ MetricsWALSource source = Mockito.mock(MetricsWALSourceImpl.class);
MetricsWAL metricsWAL = new MetricsWAL(source);
TableName tableName = TableName.valueOf("foo");
WALKey walKey = new WALKeyImpl(null, tableName, -1);
metricsWAL.postAppend(100, 900, walKey, null);
metricsWAL.postAppend(200, 2000, walKey, null);
- verify(source, times(1)).incrementWrittenBytes(100);
- verify(source, times(1)).incrementWrittenBytes(200);
+ Mockito.verify(source, Mockito.times(1)).incrementWrittenBytes(100);
+ Mockito.verify(source, Mockito.times(1)).incrementWrittenBytes(200);
}
@Test
diff --git a/hbase-hadoop-compat/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSource.java b/hbase-wal/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSource.java
similarity index 100%
rename from hbase-hadoop-compat/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSource.java
rename to hbase-wal/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSource.java
diff --git a/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSourceImpl.java b/hbase-wal/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSourceImpl.java
similarity index 99%
rename from hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSourceImpl.java
rename to hbase-wal/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSourceImpl.java
index d8ec0af..f88758c 100644
--- a/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSourceImpl.java
+++ b/hbase-wal/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSourceImpl.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -19,7 +19,6 @@ package org.apache.hadoop.hbase.regionserver.wal;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
-
import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
import org.apache.hadoop.hbase.HBaseClassTestRule;
import org.apache.hadoop.hbase.testclassification.MetricsTests;