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:39:46 UTC
hadoop git commit: HDFS-7615. Remove longReadLock. Contributed by
Kihwal Lee.
Repository: hadoop
Updated Branches:
refs/heads/trunk b6ff9c03a -> 44eed6cbc
HDFS-7615. Remove longReadLock. Contributed by Kihwal Lee.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/44eed6cb
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/44eed6cb
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/44eed6cb
Branch: refs/heads/trunk
Commit: 44eed6cbc97649c15177f9b36f6b119cc1900f7a
Parents: b6ff9c0
Author: Kihwal Lee <ki...@apache.org>
Authored: Thu Jan 15 14:58:52 2015 -0600
Committer: Kihwal Lee <ki...@apache.org>
Committed: Thu Jan 15 16:39: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/44eed6cb/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 c3d32b8..823b3d1 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -520,6 +520,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/44eed6cb/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 e7bf8e9..9d2fe6b 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
@@ -1465,47 +1465,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() {
@@ -7138,11 +7111,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/44eed6cb/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/44eed6cb/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();