diff --git a/hyracks/hyracks-control/hyracks-control-common/src/main/java/edu/uci/ics/hyracks/control/common/controllers/NCConfig.java b/hyracks/hyracks-control/hyracks-control-common/src/main/java/edu/uci/ics/hyracks/control/common/controllers/NCConfig.java
index 633d4fb..3d0e565 100644
--- a/hyracks/hyracks-control/hyracks-control-common/src/main/java/edu/uci/ics/hyracks/control/common/controllers/NCConfig.java
+++ b/hyracks/hyracks-control/hyracks-control-common/src/main/java/edu/uci/ics/hyracks/control/common/controllers/NCConfig.java
@@ -23,100 +23,103 @@
 import org.kohsuke.args4j.spi.StopOptionHandler;
 
 public class NCConfig implements Serializable {
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
 
-	@Option(name = "-cc-host", usage = "Cluster Controller host name", required = true)
-	public String ccHost;
+    @Option(name = "-cc-host", usage = "Cluster Controller host name", required = true)
+    public String ccHost;
 
-	@Option(name = "-cc-port", usage = "Cluster Controller port (default: 1099)")
-	public int ccPort = 1099;
+    @Option(name = "-cc-port", usage = "Cluster Controller port (default: 1099)")
+    public int ccPort = 1099;
 
-	@Option(name = "-cluster-net-ip-address", usage = "IP Address to bind cluster listener", required = true)
-	public String clusterNetIPAddress;
+    @Option(name = "-cluster-net-ip-address", usage = "IP Address to bind cluster listener", required = true)
+    public String clusterNetIPAddress;
 
-	@Option(name = "-node-id", usage = "Logical name of node controller unique within the cluster", required = true)
-	public String nodeId;
+    @Option(name = "-node-id", usage = "Logical name of node controller unique within the cluster", required = true)
+    public String nodeId;
 
-	@Option(name = "-data-ip-address", usage = "IP Address to bind data listener", required = true)
-	public String dataIPAddress;
+    @Option(name = "-data-ip-address", usage = "IP Address to bind data listener", required = true)
+    public String dataIPAddress;
 
-	@Option(name = "-result-ip-address", usage = "IP Address to bind dataset result distribution listener", required = true)
-	public String datasetIPAddress;
+    @Option(name = "-result-ip-address", usage = "IP Address to bind dataset result distribution listener", required = true)
+    public String datasetIPAddress;
 
-	@Option(name = "-iodevices", usage = "Comma separated list of IO Device mount points (default: One device in default temp folder)", required = false)
-	public String ioDevices = System.getProperty("java.io.tmpdir");
+    @Option(name = "-iodevices", usage = "Comma separated list of IO Device mount points (default: One device in default temp folder)", required = false)
+    public String ioDevices = System.getProperty("java.io.tmpdir");
 
-	@Option(name = "-net-thread-count", usage = "Number of threads to use for Network I/O (default: 1)")
-	public int nNetThreads = 1;
+    @Option(name = "-net-thread-count", usage = "Number of threads to use for Network I/O (default: 1)")
+    public int nNetThreads = 1;
 
-	@Option(name = "-max-memory", usage = "Maximum memory usable at this Node Controller in bytes (default: -1 auto)")
-	public int maxMemory = -1;
+    @Option(name = "-max-memory", usage = "Maximum memory usable at this Node Controller in bytes (default: -1 auto)")
+    public int maxMemory = -1;
 
-	@Option(name = "-result-history-size", usage = "Limits the number of jobs whose results should be remembered by the system to the specified value. (default: 10)")
-	public int resultHistorySize = 100;
+    @Option(name = "-result-time-to-live", usage = "Limits the amount of time results for asynchronous jobs should be retained by the system in milliseconds. (default: 24 hours)")
+    public long resultTTL = 86400000;
 
-	@Option(name = "-result-manager-memory", usage = "Memory usable for result caching at this Node Controller in bytes (default: -1 auto)")
-	public int resultManagerMemory = -1;
+    @Option(name = "-result-sweep-threshold", usage = "The duration within which an instance of the result cleanup should be invoked in milliseconds. (default: 1 minute)")
+    public long resultSweepThreshold = 60000;
 
-	@Option(name = "-app-nc-main-class", usage = "Application NC Main Class")
-	public String appNCMainClass;
+    @Option(name = "-result-manager-memory", usage = "Memory usable for result caching at this Node Controller in bytes (default: -1 auto)")
+    public int resultManagerMemory = -1;
 
-	@Argument
-	@Option(name = "--", handler = StopOptionHandler.class)
-	public List<String> appArgs;
+    @Option(name = "-app-nc-main-class", usage = "Application NC Main Class")
+    public String appNCMainClass;
 
-	public void toCommandLine(List<String> cList) {
-		cList.add("-cc-host");
-		cList.add(ccHost);
-		cList.add("-cc-port");
-		cList.add(String.valueOf(ccPort));
-		cList.add("-cluster-net-ip-address");
-		cList.add(clusterNetIPAddress);
-		cList.add("-node-id");
-		cList.add(nodeId);
-		cList.add("-data-ip-address");
-		cList.add(dataIPAddress);
-		cList.add(datasetIPAddress);
-		cList.add("-iodevices");
-		cList.add(ioDevices);
-		cList.add("-net-thread-count");
-		cList.add(String.valueOf(nNetThreads));
-		cList.add("-max-memory");
-		cList.add(String.valueOf(maxMemory));
-		cList.add("-result-history-size");
-		cList.add(String.valueOf(resultHistorySize));
-		cList.add("-result-manager-memory");
-		cList.add(String.valueOf(resultManagerMemory));
+    @Argument
+    @Option(name = "--", handler = StopOptionHandler.class)
+    public List<String> appArgs;
 
-		if (appNCMainClass != null) {
-			cList.add("-app-nc-main-class");
-			cList.add(appNCMainClass);
-		}
-		if (appArgs != null && !appArgs.isEmpty()) {
-			cList.add("--");
-			for (String appArg : appArgs) {
-				cList.add(appArg);
-			}
-		}
-	}
+    public void toCommandLine(List<String> cList) {
+        cList.add("-cc-host");
+        cList.add(ccHost);
+        cList.add("-cc-port");
+        cList.add(String.valueOf(ccPort));
+        cList.add("-cluster-net-ip-address");
+        cList.add(clusterNetIPAddress);
+        cList.add("-node-id");
+        cList.add(nodeId);
+        cList.add("-data-ip-address");
+        cList.add(dataIPAddress);
+        cList.add(datasetIPAddress);
+        cList.add("-iodevices");
+        cList.add(ioDevices);
+        cList.add("-net-thread-count");
+        cList.add(String.valueOf(nNetThreads));
+        cList.add("-max-memory");
+        cList.add(String.valueOf(maxMemory));
+        cList.add("-result-time-to-live");
+        cList.add(String.valueOf(resultTTL));
+        cList.add("-result-sweep-threshold");
+        cList.add(String.valueOf(resultSweepThreshold));
+        cList.add("-result-manager-memory");
+        cList.add(String.valueOf(resultManagerMemory));
 
-	public void toMap(Map<String, String> configuration) {
-		configuration.put("cc-host", ccHost);
-		configuration.put("cc-port", (String.valueOf(ccPort)));
-		configuration.put("cluster-net-ip-address", clusterNetIPAddress);
-		configuration.put("node-id", nodeId);
-		configuration.put("data-ip-address", dataIPAddress);
-		configuration.put("iodevices", ioDevices);
-		configuration.put("net-thread-count", String.valueOf(nNetThreads));
-		configuration.put("max-memory", String.valueOf(maxMemory));
-		configuration.put("result-history-size",
-				String.valueOf(resultHistorySize));
-		configuration.put("result-manager-memory",
-				String.valueOf(resultManagerMemory));
+        if (appNCMainClass != null) {
+            cList.add("-app-nc-main-class");
+            cList.add(appNCMainClass);
+        }
+        if (appArgs != null && !appArgs.isEmpty()) {
+            cList.add("--");
+            for (String appArg : appArgs) {
+                cList.add(appArg);
+            }
+        }
+    }
 
-		if (appNCMainClass != null) {
-			configuration.put("app-nc-main-class", appNCMainClass);
-		}
+    public void toMap(Map<String, String> configuration) {
+        configuration.put("cc-host", ccHost);
+        configuration.put("cc-port", (String.valueOf(ccPort)));
+        configuration.put("cluster-net-ip-address", clusterNetIPAddress);
+        configuration.put("node-id", nodeId);
+        configuration.put("data-ip-address", dataIPAddress);
+        configuration.put("iodevices", ioDevices);
+        configuration.put("net-thread-count", String.valueOf(nNetThreads));
+        configuration.put("max-memory", String.valueOf(maxMemory));
+        configuration.put("result-history-size", String.valueOf(resultTTL));
+        configuration.put("result-manager-memory", String.valueOf(resultManagerMemory));
 
-	}
+        if (appNCMainClass != null) {
+            configuration.put("app-nc-main-class", appNCMainClass);
+        }
+
+    }
 }
\ No newline at end of file
