You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ki...@apache.org on 2015/01/15 23:40:39 UTC
hadoop git commit: HDFS-7615. Remove longReadLock. Contributed by
Kihwal Lee. (cherry picked from commit
44eed6cbc97649c15177f9b36f6b119cc1900f7a)
Repository: hadoop
Updated Branches:
refs/heads/branch-2 450561a93 -> 0090157ff
HDFS-7615. Remove longReadLock. Contributed by Kihwal Lee.
(cherry picked from commit 44eed6cbc97649c15177f9b36f6b119cc1900f7a)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/0090157f
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/0090157f
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/0090157f
Branch: refs/heads/branch-2
Commit: 0090157fffdbbdbd82410d886bb9add74ca1a674
Parents: 450561a
Author: Kihwal Lee <ki...@apache.org>
Authored: Thu Jan 15 16:40:18 2015 -0600
Committer: Kihwal Lee <ki...@apache.org>
Committed: Thu Jan 15 16:40:18 2015 -0600
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 2 ++
.../hdfs/server/namenode/FSNamesystem.java | 34 +-------------------
.../hdfs/server/namenode/FSNamesystemLock.java | 22 -------------
.../org/apache/hadoop/hdfs/util/RwLock.java | 9 ------
4 files changed, 3 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/0090157f/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index d6375cf..51c2c1f 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -250,6 +250,8 @@ Release 2.7.0 - UNRELEASED
HDFS-7454. Reduce memory footprint for AclEntries in NameNode.
(Vinayakumar B via wheat9)
+ HDFS-7615. Remove longReadLock (kihwal)
+
BUG FIXES
HDFS-6741. Improve permission denied message when
http://git-wip-us.apache.org/repos/asf/hadoop/blob/0090157f/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
index 67dbeb1..8403f37 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
@@ -1456,47 +1456,20 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
this.fsLock.readLock().lock();
}
@Override
- public void longReadLockInterruptibly() throws InterruptedException {
- this.fsLock.longReadLock().lockInterruptibly();
- try {
- this.fsLock.readLock().lockInterruptibly();
- } catch (InterruptedException ie) {
- // In the event we're interrupted while getting the normal FSNS read lock,
- // release the long read lock.
- this.fsLock.longReadLock().unlock();
- throw ie;
- }
- }
- @Override
- public void longReadUnlock() {
- this.fsLock.readLock().unlock();
- this.fsLock.longReadLock().unlock();
- }
- @Override
public void readUnlock() {
this.fsLock.readLock().unlock();
}
@Override
public void writeLock() {
- this.fsLock.longReadLock().lock();
this.fsLock.writeLock().lock();
}
@Override
public void writeLockInterruptibly() throws InterruptedException {
- this.fsLock.longReadLock().lockInterruptibly();
- try {
- this.fsLock.writeLock().lockInterruptibly();
- } catch (InterruptedException ie) {
- // In the event we're interrupted while getting the normal FSNS write
- // lock, release the long read lock.
- this.fsLock.longReadLock().unlock();
- throw ie;
- }
+ this.fsLock.writeLock().lockInterruptibly();
}
@Override
public void writeUnlock() {
this.fsLock.writeLock().unlock();
- this.fsLock.longReadLock().unlock();
}
@Override
public boolean hasWriteLock() {
@@ -6916,11 +6889,6 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
}
@VisibleForTesting
- public ReentrantLock getLongReadLockForTests() {
- return fsLock.longReadLock;
- }
-
- @VisibleForTesting
public ReentrantLock getCpLockForTests() {
return cpLock;
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/0090157f/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystemLock.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystemLock.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystemLock.java
index f031284..7e820d8 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystemLock.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystemLock.java
@@ -34,24 +34,6 @@ class FSNamesystemLock implements ReadWriteLock {
@VisibleForTesting
protected ReentrantReadWriteLock coarseLock;
- /**
- * When locking the FSNS for a read that may take a long time, we take this
- * lock before taking the regular FSNS read lock. All writers also take this
- * lock before taking the FSNS write lock. Regular (short) readers do not
- * take this lock at all, instead relying solely on the synchronization of the
- * regular FSNS lock.
- *
- * This scheme ensures that:
- * 1) In the case of normal (fast) ops, readers proceed concurrently and
- * writers are not starved.
- * 2) In the case of long read ops, short reads are allowed to proceed
- * concurrently during the duration of the long read.
- *
- * See HDFS-5064 for more context.
- */
- @VisibleForTesting
- protected final ReentrantLock longReadLock = new ReentrantLock(true);
-
FSNamesystemLock(boolean fair) {
this.coarseLock = new ReentrantReadWriteLock(fair);
}
@@ -66,10 +48,6 @@ class FSNamesystemLock implements ReadWriteLock {
return coarseLock.writeLock();
}
- public Lock longReadLock() {
- return longReadLock;
- }
-
public int getReadHoldCount() {
return coarseLock.getReadHoldCount();
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/0090157f/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/RwLock.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/RwLock.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/RwLock.java
index 2792460..e36f0f7 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/RwLock.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/RwLock.java
@@ -22,15 +22,6 @@ public interface RwLock {
/** Acquire read lock. */
public void readLock();
- /**
- * Acquire the long read lock, unless interrupted while waiting. The long
- * read lock should also serve to block all concurrent writers.
- **/
- void longReadLockInterruptibly() throws InterruptedException;
-
- /** Release the long read lock. */
- public void longReadUnlock();
-
/** Release read lock. */
public void readUnlock();