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 cm...@apache.org on 2014/10/21 03:25:43 UTC

git commit: HDFS-7266. HDFS Peercache enabled check should not lock on object (awang via cmccabe) (cherry picked from commit 4799570dfdb7987c2ac39716143341e9a3d9b7d2)

Repository: hadoop
Updated Branches:
  refs/heads/branch-2 f75570734 -> 4eef6dcb5


HDFS-7266. HDFS Peercache enabled check should not lock on object (awang via cmccabe)
(cherry picked from commit 4799570dfdb7987c2ac39716143341e9a3d9b7d2)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/4eef6dcb
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/4eef6dcb
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/4eef6dcb

Branch: refs/heads/branch-2
Commit: 4eef6dcb58318359777858cac89cbaaa1764f30c
Parents: f755707
Author: Colin Patrick Mccabe <cm...@cloudera.com>
Authored: Mon Oct 20 18:24:53 2014 -0700
Committer: Colin Patrick Mccabe <cm...@cloudera.com>
Committed: Mon Oct 20 18:25:36 2014 -0700

----------------------------------------------------------------------
 hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt             |  3 +++
 .../src/main/java/org/apache/hadoop/hdfs/PeerCache.java | 12 +++++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/4eef6dcb/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 4b7358b..d43c108 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -23,6 +23,9 @@ Release 2.7.0 - UNRELEASED
 
     HDFS-6252. Phase out the old web UI in HDFS. (wheat9)
 
+    HDFS-7266. HDFS Peercache enabled check should not lock on object (awang
+    via cmccabe)
+
   OPTIMIZATIONS
 
   BUG FIXES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/4eef6dcb/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/PeerCache.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/PeerCache.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/PeerCache.java
index fbe4e15..07c562e 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/PeerCache.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/PeerCache.java
@@ -140,12 +140,15 @@ class PeerCache {
    * @return             An open Peer connected to the DN, or null if none
    *                     was found. 
    */
-  public synchronized Peer get(DatanodeID dnId, boolean isDomain) {
+  public Peer get(DatanodeID dnId, boolean isDomain) {
 
     if (capacity <= 0) { // disabled
       return null;
     }
+    return getInternal(dnId, isDomain);
+  }
 
+  private synchronized Peer getInternal(DatanodeID dnId, boolean isDomain) {
     List<Value> sockStreamList = multimap.get(new Key(dnId, isDomain));
     if (sockStreamList == null) {
       return null;
@@ -174,7 +177,7 @@ class PeerCache {
   /**
    * Give an unused socket to the cache.
    */
-  public synchronized void put(DatanodeID dnId, Peer peer) {
+  public void put(DatanodeID dnId, Peer peer) {
     Preconditions.checkNotNull(dnId);
     Preconditions.checkNotNull(peer);
     if (peer.isClosed()) return;
@@ -183,7 +186,10 @@ class PeerCache {
       IOUtils.cleanup(LOG, peer);
       return;
     }
- 
+    putInternal(dnId, peer);
+  }
+
+  private synchronized void putInternal(DatanodeID dnId, Peer peer) {
     startExpiryDaemon();
 
     if (capacity == multimap.size()) {