Author: suresh
Date: Wed Apr 17 13:17:17 2013
New Revision: 1468901
URL: http://svn.apache.org/r1468901
Log:
HDFS-3940. Merge 1468891 from branch-1
Modified:
hadoop/common/branches/branch-1.2/CHANGES.txt
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/BlocksMap.java
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/NameCache.java
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/GSet.java
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/GSetByHashMap.java
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/LightWeightGSet.java
hadoop/common/branches/branch-1.2/src/test/org/apache/hadoop/hdfs/util/TestGSet.java
Modified: hadoop/common/branches/branch-1.2/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.2/CHANGES.txt?rev=1468901&r1=1468900&r2=1468901&view=diff
==============================================================================
--- hadoop/common/branches/branch-1.2/CHANGES.txt (original)
+++ hadoop/common/branches/branch-1.2/CHANGES.txt Wed Apr 17 13:17:17 2013
@@ -205,6 +205,9 @@ Release 1.2.0 - 2013.04.16
HDFS-4635. Move BlockManager#computeCapacity to LightWeightGSet.
(suresh)
+ HDFS-3940. Add Gset#clear method and clear the block map when
+ namenode is shutdown. (suresh)
+
BUG FIXES
HADOOP-9467. Metrics2 record filter should check name as well as tags.
Modified:
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/BlocksMap.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/BlocksMap.java?rev=1468901&r1=1468900&r2=1468901&view=diff
==============================================================================
---
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/BlocksMap.java
(original)
+++
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/BlocksMap.java
Wed Apr 17 13:17:17 2013
@@ -321,7 +321,7 @@ class BlocksMap {
}
void close() {
- blocks = null;
+ blocks.clear();
}
/**
Modified:
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java?rev=1468901&r1=1468900&r2=1468901&view=diff
==============================================================================
---
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java
(original)
+++
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java
Wed Apr 17 13:17:17 2013
@@ -1500,4 +1500,8 @@ class FSDirectory implements FSConstants
inode.setLocalName(name.getBytes());
}
}
+
+ void shutdown() {
+ nameCache.reset();
+ }
}
Modified:
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=1468901&r1=1468900&r2=1468901&view=diff
==============================================================================
---
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
(original)
+++
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
Wed Apr 17 13:17:17 2013
@@ -5827,10 +5827,15 @@ public class FSNamesystem implements FSC
* shutdown FSNamesystem
*/
public void shutdown() {
- if (mbeanName != null)
+ if (mbeanName != null) {
MBeans.unregister(mbeanName);
- if (mxBean != null)
+ }
+ if (mxBean != null) {
MBeans.unregister(mxBean);
+ }
+ if (dir != null) {
+ dir.shutdown();
+ }
}
Modified:
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/NameCache.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/NameCache.java?rev=1468901&r1=1468900&r2=1468901&view=diff
==============================================================================
---
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/NameCache.java
(original)
+++
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/server/namenode/NameCache.java
Wed Apr 17 13:17:17 2013
@@ -152,4 +152,14 @@ class NameCache<K> {
cache.put(name, name);
lookups += useThreshold;
}
+
+ public void reset() {
+ initialized = false;
+ cache.clear();
+ if (transientMap == null) {
+ transientMap = new HashMap<K, UseCount>();
+ } else {
+ transientMap.clear();
+ }
+ }
}
Modified:
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/GSet.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/GSet.java?rev=1468901&r1=1468900&r2=1468901&view=diff
==============================================================================
---
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/GSet.java
(original)
+++
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/GSet.java
Wed Apr 17 13:17:17 2013
@@ -78,4 +78,6 @@ public interface GSet<K, E extends K> ex
* @throws NullPointerException if key == null.
*/
E remove(K key);
-}
\ No newline at end of file
+
+ void clear();
+}
Modified:
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/GSetByHashMap.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/GSetByHashMap.java?rev=1468901&r1=1468900&r2=1468901&view=diff
==============================================================================
---
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/GSetByHashMap.java
(original)
+++
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/GSetByHashMap.java
Wed Apr 17 13:17:17 2013
@@ -62,4 +62,9 @@ public class GSetByHashMap<K, E extends
public Iterator<E> iterator() {
return m.values().iterator();
}
+
+ @Override
+ public void clear() {
+ m.clear();
+ }
}
Modified:
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/LightWeightGSet.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/LightWeightGSet.java?rev=1468901&r1=1468900&r2=1468901&view=diff
==============================================================================
---
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/LightWeightGSet.java
(original)
+++
hadoop/common/branches/branch-1.2/src/hdfs/org/apache/hadoop/hdfs/util/LightWeightGSet.java
Wed Apr 17 13:17:17 2013
@@ -321,12 +321,17 @@ public class LightWeightGSet<K, E extend
final int exponent = e2 < 0? 0: e2 > 30? 30: e2;
final int c = 1 << exponent;
- if (LightWeightGSet.LOG.isDebugEnabled()) {
- LOG.debug("Computing capacity for map " + mapName);
- LOG.debug("VM type = " + vmBit + "-bit");
- LOG.debug(percentage + "% max memory = " + maxMemory);
- LOG.debug("capacity = 2^" + exponent + " = " + c + " entries");
- }
+ LOG.info("Computing capacity for map " + mapName);
+ LOG.info("VM type = " + vmBit + "-bit");
+ LOG.info(percentage + "% max memory = " + maxMemory);
+ LOG.info("capacity = 2^" + exponent + " = " + c + " entries");
return c;
}
+
+ public void clear() {
+ for (int i = 0; i < entries.length; i++) {
+ entries[i] = null;
+ }
+ size = 0;
+ }
}
Modified:
hadoop/common/branches/branch-1.2/src/test/org/apache/hadoop/hdfs/util/TestGSet.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-1.2/src/test/org/apache/hadoop/hdfs/util/TestGSet.java?rev=1468901&r1=1468900&r2=1468901&view=diff
==============================================================================
---
hadoop/common/branches/branch-1.2/src/test/org/apache/hadoop/hdfs/util/TestGSet.java
(original)
+++
hadoop/common/branches/branch-1.2/src/test/org/apache/hadoop/hdfs/util/TestGSet.java
Wed Apr 17 13:17:17 2013
@@ -386,6 +386,11 @@ public class TestGSet {
return String.format(" iterate=%5d, contain=%5d, time elapsed=%5d.%03ds",
iterate_count, contain_count, t/1000, t%1000);
}
+
+ @Override
+ public void clear() {
+ gset.clear();
+ }
}
/** Test data set */