From a47820d72a4c4aba857fd7325fa9ae9a95fe8faa Mon Sep 17 00:00:00 2001 From: Kihwal Lee Date: Fri, 14 Jul 2017 15:45:26 -0500 Subject: [PATCH] HDFS-12137. DN dataset lock should be fair. Contributed by Daryn Sharp. --- .../hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java index dee48a0afc9..09071ea36bb 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java @@ -124,6 +124,7 @@ import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.ReentrantLock; /************************************************** * FSDataset manages a set of data blocks. Each block @@ -304,6 +305,7 @@ public LengthInputStream getMetaDataInputStream(ExtendedBlock b) this.smallBufferSize = DFSUtilClient.getSmallBufferSize(conf); this.datasetLock = new AutoCloseableLock( new InstrumentedLock(getClass().getName(), LOG, + new ReentrantLock(true), conf.getTimeDuration( DFSConfigKeys.DFS_LOCK_SUPPRESS_WARNING_INTERVAL_KEY, DFSConfigKeys.DFS_LOCK_SUPPRESS_WARNING_INTERVAL_DEFAULT,