HDFS-11992. Replace commons-logging APIs with slf4j in FsDatasetImpl. Contributed by hu xiaodong.

This commit is contained in:
Akira Ajisaka 2017-06-27 03:28:09 +09:00
parent 239b382153
commit b59b96deee
No known key found for this signature in database
GPG Key ID: C1EDBB9CA400FD50
9 changed files with 28 additions and 25 deletions

View File

@ -25,9 +25,9 @@ import java.util.concurrent.locks.ReentrantLock;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.commons.logging.Log;
import com.google.common.annotations.VisibleForTesting;
import org.slf4j.Logger;
/**
* This is a debugging class that can be used by callers to track
@ -44,7 +44,7 @@ import com.google.common.annotations.VisibleForTesting;
public class InstrumentedLock implements Lock {
private final Lock lock;
private final Log logger;
private final Logger logger;
private final String name;
private final Timer clock;
@ -70,20 +70,20 @@ public class InstrumentedLock implements Lock {
* @param lockWarningThresholdMs the time threshold to view lock held
* time as being "too long"
*/
public InstrumentedLock(String name, Log logger, long minLoggingGapMs,
public InstrumentedLock(String name, Logger logger, long minLoggingGapMs,
long lockWarningThresholdMs) {
this(name, logger, new ReentrantLock(),
minLoggingGapMs, lockWarningThresholdMs);
}
public InstrumentedLock(String name, Log logger, Lock lock,
public InstrumentedLock(String name, Logger logger, Lock lock,
long minLoggingGapMs, long lockWarningThresholdMs) {
this(name, logger, lock,
minLoggingGapMs, lockWarningThresholdMs, new Timer());
}
@VisibleForTesting
InstrumentedLock(String name, Log logger, Lock lock,
InstrumentedLock(String name, Logger logger, Lock lock,
long minLoggingGapMs, long lockWarningThresholdMs, Timer clock) {
this.name = name;
this.lock = lock;

View File

@ -19,11 +19,11 @@ package org.apache.hadoop.util;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.apache.commons.logging.Log;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import com.google.common.annotations.VisibleForTesting;
import org.slf4j.Logger;
/**
* This is a wrap class of a <tt>ReadLock</tt>.
@ -51,7 +51,7 @@ public class InstrumentedReadLock extends InstrumentedLock {
};
};
public InstrumentedReadLock(String name, Log logger,
public InstrumentedReadLock(String name, Logger logger,
ReentrantReadWriteLock readWriteLock,
long minLoggingGapMs, long lockWarningThresholdMs) {
this(name, logger, readWriteLock, minLoggingGapMs, lockWarningThresholdMs,
@ -59,7 +59,7 @@ public class InstrumentedReadLock extends InstrumentedLock {
}
@VisibleForTesting
InstrumentedReadLock(String name, Log logger,
InstrumentedReadLock(String name, Logger logger,
ReentrantReadWriteLock readWriteLock,
long minLoggingGapMs, long lockWarningThresholdMs, Timer clock) {
super(name, logger, readWriteLock.readLock(), minLoggingGapMs,

View File

@ -21,9 +21,9 @@ import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.apache.commons.logging.Log;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.slf4j.Logger;
/**
* This is a wrap class of a {@link ReentrantReadWriteLock}.
@ -37,7 +37,7 @@ public class InstrumentedReadWriteLock implements ReadWriteLock {
private final Lock readLock;
private final Lock writeLock;
InstrumentedReadWriteLock(boolean fair, String name, Log logger,
InstrumentedReadWriteLock(boolean fair, String name, Logger logger,
long minLoggingGapMs, long lockWarningThresholdMs) {
ReentrantReadWriteLock readWriteLock = new ReentrantReadWriteLock(fair);
readLock = new InstrumentedReadLock(name, logger, readWriteLock,

View File

@ -19,11 +19,11 @@ package org.apache.hadoop.util;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.apache.commons.logging.Log;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import com.google.common.annotations.VisibleForTesting;
import org.slf4j.Logger;
/**
* This is a wrap class of a <tt>WriteLock</tt>.
@ -37,7 +37,7 @@ import com.google.common.annotations.VisibleForTesting;
@InterfaceStability.Unstable
public class InstrumentedWriteLock extends InstrumentedLock {
public InstrumentedWriteLock(String name, Log logger,
public InstrumentedWriteLock(String name, Logger logger,
ReentrantReadWriteLock readWriteLock,
long minLoggingGapMs, long lockWarningThresholdMs) {
this(name, logger, readWriteLock, minLoggingGapMs, lockWarningThresholdMs,
@ -45,7 +45,7 @@ public class InstrumentedWriteLock extends InstrumentedLock {
}
@VisibleForTesting
InstrumentedWriteLock(String name, Log logger,
InstrumentedWriteLock(String name, Logger logger,
ReentrantReadWriteLock readWriteLock,
long minLoggingGapMs, long lockWarningThresholdMs, Timer clock) {
super(name, logger, readWriteLock.writeLock(), minLoggingGapMs,

View File

@ -21,11 +21,11 @@ import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.Lock;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.mockito.Mockito.*;
import static org.junit.Assert.*;
@ -34,7 +34,8 @@ import static org.junit.Assert.*;
*/
public class TestInstrumentedLock {
static final Log LOG = LogFactory.getLog(TestInstrumentedLock.class);
static final Logger LOG = LoggerFactory.getLogger(
TestInstrumentedLock.class);
@Rule public TestName name = new TestName();

View File

@ -24,18 +24,19 @@ import static org.junit.Assert.assertTrue;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A test class for InstrumentedReadLock and InstrumentedWriteLock.
*/
public class TestInstrumentedReadWriteLock {
static final Log LOG = LogFactory.getLog(TestInstrumentedReadWriteLock.class);
static final Logger LOG = LoggerFactory.getLogger(
TestInstrumentedReadWriteLock.class);
@Rule
public TestName name = new TestName();

View File

@ -723,7 +723,8 @@ class BlockPoolSlice {
}
}
} catch (IOException e) {
FsDatasetImpl.LOG.warn(e);
FsDatasetImpl.LOG.warn("Getting exception while validating integrity " +
"and setting length for blockFile", e);
return 0;
}
}

View File

@ -21,8 +21,6 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.CommonConfigurationKeys;
@ -95,6 +93,8 @@ import org.apache.hadoop.util.InstrumentedLock;
import org.apache.hadoop.util.ReflectionUtils;
import org.apache.hadoop.util.Time;
import org.apache.hadoop.util.Timer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.management.NotCompliantMBeanException;
import javax.management.ObjectName;
@ -132,7 +132,7 @@ import java.util.concurrent.locks.Condition;
***************************************************/
@InterfaceAudience.Private
class FsDatasetImpl implements FsDatasetSpi<FsVolumeImpl> {
static final Log LOG = LogFactory.getLog(FsDatasetImpl.class);
static final Logger LOG = LoggerFactory.getLogger(FsDatasetImpl.class);
private final static boolean isNativeIOAvailable;
private Timer timer;
static {
@ -1116,7 +1116,7 @@ class FsDatasetImpl implements FsDatasetSpi<FsVolumeImpl> {
checksum.calculateChunkedSums(data, 0, offset, crcs, 0);
metaOut.write(crcs, 0, 4);
} finally {
IOUtils.cleanup(LOG, metaOut);
IOUtils.cleanupWithLogger(LOG, metaOut);
}
}

View File

@ -292,7 +292,7 @@ class FsVolumeList {
} else {
// If the volume is not put into a volume scanner, it does not need to
// hold the reference.
IOUtils.cleanup(FsDatasetImpl.LOG, ref);
IOUtils.cleanupWithLogger(FsDatasetImpl.LOG, ref);
}
// If the volume is used to replace a failed volume, it needs to reset the
// volume failure info for this volume.