Author: harsh Date: Sun Jul 14 10:46:37 2013 New Revision: 1502954 URL: http://svn.apache.org/r1502954 Log: HADOOP-9241. DU refresh interval is not configurable. (harsh)
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DU.java hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestDU.java Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1502954&r1=1502953&r2=1502954&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt Sun Jul 14 10:46:37 2013 @@ -287,6 +287,8 @@ Release 2.3.0 - UNRELEASED IMPROVEMENTS + HADOOP-9241. DU refresh interval is not configurable (harsh) + OPTIMIZATIONS BUG FIXES Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java?rev=1502954&r1=1502953&r2=1502954&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java Sun Jul 14 10:46:37 2013 @@ -54,6 +54,10 @@ public class CommonConfigurationKeysPubl public static final String FS_DF_INTERVAL_KEY = "fs.df.interval"; /** Default value for FS_DF_INTERVAL_KEY */ public static final long FS_DF_INTERVAL_DEFAULT = 60000; + /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */ + public static final String FS_DU_INTERVAL_KEY = "fs.du.interval"; + /** Default value for FS_DU_INTERVAL_KEY */ + public static final long FS_DU_INTERVAL_DEFAULT = 600000; //Defaults are not specified for following keys Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DU.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DU.java?rev=1502954&r1=1502953&r2=1502954&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DU.java (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DU.java Sun Jul 14 10:46:37 2013 @@ -20,6 +20,7 @@ package org.apache.hadoop.fs; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.CommonConfigurationKeys; import org.apache.hadoop.util.Shell; import java.io.BufferedReader; @@ -64,8 +65,8 @@ public class DU extends Shell { * @throws IOException if we fail to refresh the disk usage */ public DU(File path, Configuration conf) throws IOException { - this(path, 600000L); - //10 minutes default refresh interval + this(path, conf.getLong(CommonConfigurationKeys.FS_DU_INTERVAL_KEY, + CommonConfigurationKeys.FS_DU_INTERVAL_DEFAULT)); } /** Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml?rev=1502954&r1=1502953&r2=1502954&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/resources/core-default.xml Sun Jul 14 10:46:37 2013 @@ -465,6 +465,12 @@ </property> <property> + <name>fs.du.interval</name> + <value>600000</value> + <description>File space usage statistics refresh interval in msec.</description> +</property> + +<property> <name>fs.s3.block.size</name> <value>67108864</value> <description>Block size to use when writing files to S3.</description> Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestDU.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestDU.java?rev=1502954&r1=1502953&r2=1502954&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestDU.java (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestDU.java Sun Jul 14 10:46:37 2013 @@ -24,6 +24,9 @@ import java.io.IOException; import java.io.RandomAccessFile; import java.util.Random; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.CommonConfigurationKeys; + /** This test makes sure that "DU" does not get to run on each call to getUsed */ public class TestDU extends TestCase { final static private File DU_DIR = new File( @@ -106,7 +109,9 @@ public class TestDU extends TestCase { public void testDUGetUsedWillNotReturnNegative() throws IOException { File file = new File(DU_DIR, "data"); assertTrue(file.createNewFile()); - DU du = new DU(file, 10000); + Configuration conf = new Configuration(); + conf.setLong(CommonConfigurationKeys.FS_DU_INTERVAL_KEY, 10000L); + DU du = new DU(file, conf); du.decDfsUsed(Long.MAX_VALUE); long duSize = du.getUsed(); assertTrue(String.valueOf(duSize), duSize >= 0L);