You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by nn...@apache.org on 2014/12/04 20:14:15 UTC

mesos git commit: Made GC_DISK_HEADROOM configurable.

Repository: mesos
Updated Branches:
  refs/heads/master 9b19432b8 -> 49d4553a0


Made GC_DISK_HEADROOM configurable.

Added --gc_disk_headroom to mesos-slave which let's users configure
the disk headroom value used to calculate maximum executor age.

Review: https://reviews.apache.org/r/28681


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/49d4553a
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/49d4553a
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/49d4553a

Branch: refs/heads/master
Commit: 49d4553a0645624179f17ed6da8d2443e88998bf
Parents: 9b19432
Author: Niklas Nielsen <ni...@qni.dk>
Authored: Thu Dec 4 11:12:17 2014 -0800
Committer: Niklas Q. Nielsen <ni...@mesosphere.io>
Committed: Thu Dec 4 11:12:17 2014 -0800

----------------------------------------------------------------------
 src/slave/flags.hpp | 10 ++++++++++
 src/slave/slave.cpp |  7 ++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/49d4553a/src/slave/flags.hpp
----------------------------------------------------------------------
diff --git a/src/slave/flags.hpp b/src/slave/flags.hpp
index 4f5b8b4..670997d 100644
--- a/src/slave/flags.hpp
+++ b/src/slave/flags.hpp
@@ -144,6 +144,15 @@ public:
         "the available disk usage.",
         GC_DELAY);
 
+    add(&Flags::gc_disk_headroom,
+        "gc_disk_headroom",
+        "Adjust disk headroom used to calculate maximum executor\n"
+        "directory age. Age is calculated by:\n"
+        "gc_delay * max(0.0, (1.0 - gc_disk_headroom - disk usage))\n"
+        "every --disk_watch_interval duration. gc_disk_headroom must\n"
+        "be a value between 0.0 and 1.0",
+        GC_DISK_HEADROOM);
+
     add(&Flags::disk_watch_interval,
         "disk_watch_interval",
         "Periodic time interval (e.g., 10secs, 2mins, etc)\n"
@@ -440,6 +449,7 @@ public:
   Duration executor_registration_timeout;
   Duration executor_shutdown_grace_period;
   Duration gc_delay;
+  double gc_disk_headroom;
   Duration disk_watch_interval;
   Duration resource_monitoring_interval;
   bool checkpoint;

http://git-wip-us.apache.org/repos/asf/mesos/blob/49d4553a/src/slave/slave.cpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index 9ac6458..50b5781 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -281,6 +281,11 @@ void Slave::initialize()
     }
   }
 
+  if ((flags.gc_disk_headroom < 0) || (flags.gc_disk_headroom > 1)) {
+    EXIT(1) << "Invalid value '" << flags.gc_disk_headroom
+            << "' for --gc_disk_headroom. Must be between 0.0 and 1.0.";
+  }
+
   // Ensure slave work directory exists.
   CHECK_SOME(os::mkdir(flags.work_dir))
     << "Failed to create slave work directory '" << flags.work_dir << "'";
@@ -3310,7 +3315,7 @@ void Slave::registerExecutorTimeout(
 // TODO(vinod): Figure out a way to express this function via cmd line.
 Duration Slave::age(double usage)
 {
-  return flags.gc_delay * std::max(0.0, (1.0 - GC_DISK_HEADROOM - usage));
+  return flags.gc_delay * std::max(0.0, (1.0 - flags.gc_disk_headroom - usage));
 }