From 28e90787ad5ff538ebcaaf1b487921bf5aa82256 Mon Sep 17 00:00:00 2001 From: Rishit Shroff Date: Tue, 23 Dec 2014 10:43:22 -0800 Subject: [PATCH] [HBASE-12753] Get rid of the AbtractWAL Summary: With the recent refactoring of the WAL we need to get rid of the AbstractWAL and use the WALProvider. This diff will just remove the use of AbstractWAL Test Plan: hbase-consensus unit tests Reviewers: reddragon, fantasist, eclark, tedyu Differential Revision: https://reviews.facebook.net/D30681 --- .../hadoop/hbase/consensus/quorum/QuorumAgent.java | 35 +++++------ .../hadoop/hbase/regionserver/wal/AbstractWAL.java | 69 ---------------------- 2 files changed, 15 insertions(+), 89 deletions(-) delete mode 100644 hbase-consensus/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractWAL.java diff --git a/hbase-consensus/src/main/java/org/apache/hadoop/hbase/consensus/quorum/QuorumAgent.java b/hbase-consensus/src/main/java/org/apache/hadoop/hbase/consensus/quorum/QuorumAgent.java index 8120dd2..c0fe2cb 100644 --- a/hbase-consensus/src/main/java/org/apache/hadoop/hbase/consensus/quorum/QuorumAgent.java +++ b/hbase-consensus/src/main/java/org/apache/hadoop/hbase/consensus/quorum/QuorumAgent.java @@ -1,19 +1,7 @@ package org.apache.hadoop.hbase.consensus.quorum; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; -import java.util.Random; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import java.util.concurrent.locks.Condition; -import java.util.concurrent.locks.ReentrantLock; - +import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.SettableFuture; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.client.NoLeaderForRegionException; @@ -25,14 +13,24 @@ import org.apache.hadoop.hbase.consensus.protocol.ConsensusHost; import org.apache.hadoop.hbase.consensus.raft.events.ReplicateEntriesEvent; import org.apache.hadoop.hbase.io.hfile.Compression; import org.apache.hadoop.hbase.metrics.TimeStat; -import org.apache.hadoop.hbase.regionserver.wal.AbstractWAL; import org.apache.hadoop.hbase.regionserver.wal.WALEdit; import org.apache.hadoop.hbase.util.DaemonThreadFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.util.concurrent.ListenableFuture; -import com.google.common.util.concurrent.SettableFuture; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.Random; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.ReentrantLock; /** * This is an agent that runs on the RaftQuorumContext side, and it is @@ -248,7 +246,6 @@ public class QuorumAgent implements ConfigurationObserver { checkBeforeCommit(); // increase the write size - AbstractWAL.getWriteSizeHistogram().addValue(edits.getTotalKeyValueLength()); long start = System.nanoTime(); ListenableFuture future = internalCommit(edits); @@ -260,7 +257,6 @@ public class QuorumAgent implements ConfigurationObserver { double syncMicros = (System.nanoTime() - start) / 1000.0; getRaftQuorumContext().getConsensusMetrics().getFsSyncLatency() .add((long)syncMicros, TimeUnit.MICROSECONDS); - AbstractWAL.getSyncTimeHistogram().addValue(syncMicros); return seq; } catch (Exception e) { throw new IOException(e); @@ -438,7 +434,6 @@ public class QuorumAgent implements ConfigurationObserver { double gsyncMicros = (System.nanoTime() - start) / 1000.0; getRaftQuorumContext().getConsensusMetrics().getFsGSyncLatency() .add((long) gsyncMicros, TimeUnit.MICROSECONDS); - AbstractWAL.getGSyncTimeHistogram().addValue(gsyncMicros); } catch (Throwable e) { LOG.error("Unexpected exception: ", e); } diff --git a/hbase-consensus/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractWAL.java b/hbase-consensus/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractWAL.java deleted file mode 100644 index ea5b5c9..0000000 --- a/hbase-consensus/src/main/java/org/apache/hadoop/hbase/regionserver/wal/AbstractWAL.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.apache.hadoop.hbase.regionserver.wal; - -import org.apache.hadoop.hbase.regionserver.metrics.PercentileMetric; -import org.apache.hadoop.hbase.util.Bytes; -import org.apache.hadoop.hbase.util.Histogram; - -import java.io.IOException; -import java.util.concurrent.ExecutionException; - -public abstract class AbstractWAL { - public static final byte [] METAFAMILY = Bytes.toBytes("METAFAMILY"); - public static final byte [] METAROW = Bytes.toBytes("METAROW"); - - // For measuring size of each transaction - protected static Histogram writeSize = new Histogram( - PercentileMetric.HISTOGRAM_NUM_BUCKETS_DEFAULT, - PercentileMetric.HISTOGRAM_MINVALUE_DEFAULT, - PercentileMetric.HISTOGRAM_MAXVALUE_DEFAULT); - - // For measure the sync time for each HLog.append operation; - protected static Histogram syncTime = new Histogram( - PercentileMetric.HISTOGRAM_NUM_BUCKETS_DEFAULT, - PercentileMetric.HISTOGRAM_MINVALUE_DEFAULT, - PercentileMetric.HISTOGRAM_MAXVALUE_DEFAULT); - - // For measuring the internal group commit time - protected static Histogram gsyncTime = new Histogram( - PercentileMetric.HISTOGRAM_NUM_BUCKETS_DEFAULT, - PercentileMetric.HISTOGRAM_MINVALUE_DEFAULT, - PercentileMetric.HISTOGRAM_MAXVALUE_DEFAULT); - - /* - public abstract long append(HRegionInfo info, byte [] tableName, WALEdit edits, - final long now) - throws IOException, ExecutionException, InterruptedException; - */ - public abstract long startMemStoreFlush(final byte[] regionName); - public abstract void completeMemStoreFlush(final byte[] regionName, final byte[] tableName, - final long logSeqId, final boolean isMetaRegion); - public abstract void abortMemStoreFlush(byte[] regionName); - public abstract long startMemStoreFlush(final byte[] regionName, - long firstSeqIdInStoresToFlush, - long firstSeqIdInStoresNotToFlush); - - public abstract long obtainNextSequenceNumber() - throws IOException, ExecutionException, InterruptedException; - public abstract long getSequenceNumber(); - public abstract void initSequenceNumber(long seqid) - throws IOException, ExecutionException, InterruptedException; - - public abstract void close() throws IOException; - public abstract void closeAndDelete() throws IOException; - public abstract String getPath(); - - public static Histogram getWriteSizeHistogram() { - return writeSize; - } - - public static Histogram getSyncTimeHistogram() { - return syncTime; - } - - public static Histogram getGSyncTimeHistogram() { - return gsyncTime; - } - - public abstract long getLastCommittedIndex(); - -} -- 2.1.0