You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by mp...@apache.org on 2016/02/23 05:13:51 UTC

svn commit: r1731785 [2/3] - in /mesos/site/publish: ./ blog/ documentation/ documentation/authentication/ documentation/authorization/ documentation/configuration/ documentation/fetcher/ documentation/getting-started/ documentation/high-availability-f...

Modified: mesos/site/publish/documentation/latest/endpoints/slave/state.json/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/endpoints/slave/state.json/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/endpoints/slave/state.json/index.html (original)
+++ mesos/site/publish/documentation/latest/endpoints/slave/state.json/index.html Tue Feb 23 04:13:50 2016
@@ -98,6 +98,91 @@
 <p>This endpoint shows information about the frameworks, executors
 and the slave&rsquo;s master as a JSON object.</p>
 
+<p>Example (<strong>Note</strong>: this is not exhaustive):</p>
+
+<pre><code>{
+    "version" : "0.28.0",
+    "git_sha" : "9d5889b5a265849886a533965f4aefefd1fbd103",
+    "git_branch" : "refs/heads/master",
+    "git_tag" : "0.28.0",
+    "build_date" : "2016-02-15 10:00:28"
+    "build_time" : 1455559228,
+    "build_user" : "mesos-user",
+    "start_time" : 1455647422.88396,
+    "id" : "e2c38084-f6ea-496f-bce3-b6e07cea5e01-S0",
+    "pid" : "slave(1)@127.0.1.1:5051",
+    "hostname" : "localhost",
+    "resources" : {
+         "ports" : "[31000-32000]",
+         "mem" : 127816,
+         "disk" : 804211,
+         "cpus" : 32
+    },
+    "attributes" : {},
+    "master_hostname" : "localhost",
+    "log_dir" : "/var/log",
+    "external_log_file" : "mesos.log",
+    "frameworks" : [],
+    "completed_frameworks" : [],
+    "flags" : {
+         "gc_disk_headroom" : "0.1",
+         "isolation" : "posix/cpu,posix/mem",
+         "containerizers" : "mesos",
+         "docker_socket" : "/var/run/docker.sock",
+         "gc_delay" : "1weeks",
+         "docker_remove_delay" : "6hrs",
+         "port" : "5051",
+         "systemd_runtime_directory" : "/run/systemd/system",
+         "initialize_driver_logging" : "true",
+         "cgroups_root" : "mesos",
+         "fetcher_cache_size" : "2GB",
+         "cgroups_hierarchy" : "/sys/fs/cgroup",
+         "qos_correction_interval_min" : "0ns",
+         "cgroups_cpu_enable_pids_and_tids_count" : "false",
+         "sandbox_directory" : "/mnt/mesos/sandbox",
+         "docker" : "docker",
+         "help" : "false",
+         "docker_stop_timeout" : "0ns",
+         "master" : "127.0.0.1:5050",
+         "logbufsecs" : "0",
+         "docker_registry" : "https://registry-1.docker.io",
+         "frameworks_home" : "",
+         "cgroups_enable_cfs" : "false",
+         "perf_interval" : "1mins",
+         "docker_kill_orphans" : "true",
+         "switch_user" : "true",
+         "logging_level" : "INFO",
+         "hadoop_home" : "",
+         "strict" : "true",
+         "executor_registration_timeout" : "1mins",
+         "recovery_timeout" : "15mins",
+         "revocable_cpu_low_priority" : "true",
+         "docker_store_dir" : "/tmp/mesos/store/docker",
+         "image_provisioner_backend" : "copy",
+         "authenticatee" : "crammd5",
+         "quiet" : "false",
+         "executor_shutdown_grace_period" : "5secs",
+         "fetcher_cache_dir" : "/tmp/mesos/fetch",
+         "default_role" : "*",
+         "work_dir" : "/tmp/mesos",
+         "launcher_dir" : "/path/to/mesos/build/src",
+         "registration_backoff_factor" : "1secs",
+         "docker_auth_server" : "https://auth.docker.io",
+         "oversubscribed_resources_interval" : "15secs",
+         "enforce_container_disk_quota" : "false",
+         "container_disk_watch_interval" : "15secs",
+         "disk_watch_interval" : "1mins",
+         "docker_puller_timeout" : "60",
+         "cgroups_limit_swap" : "false",
+         "hostname_lookup" : "true",
+         "perf_duration" : "10secs",
+         "appc_store_dir" : "/tmp/mesos/store/appc",
+         "recover" : "reconnect",
+         "version" : "false"
+    },
+}
+</code></pre>
+
 	</div>
 </div>
 

Modified: mesos/site/publish/documentation/latest/endpoints/slave/state/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/endpoints/slave/state/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/endpoints/slave/state/index.html (original)
+++ mesos/site/publish/documentation/latest/endpoints/slave/state/index.html Tue Feb 23 04:13:50 2016
@@ -98,6 +98,91 @@
 <p>This endpoint shows information about the frameworks, executors
 and the slave&rsquo;s master as a JSON object.</p>
 
+<p>Example (<strong>Note</strong>: this is not exhaustive):</p>
+
+<pre><code>{
+    "version" : "0.28.0",
+    "git_sha" : "9d5889b5a265849886a533965f4aefefd1fbd103",
+    "git_branch" : "refs/heads/master",
+    "git_tag" : "0.28.0",
+    "build_date" : "2016-02-15 10:00:28"
+    "build_time" : 1455559228,
+    "build_user" : "mesos-user",
+    "start_time" : 1455647422.88396,
+    "id" : "e2c38084-f6ea-496f-bce3-b6e07cea5e01-S0",
+    "pid" : "slave(1)@127.0.1.1:5051",
+    "hostname" : "localhost",
+    "resources" : {
+         "ports" : "[31000-32000]",
+         "mem" : 127816,
+         "disk" : 804211,
+         "cpus" : 32
+    },
+    "attributes" : {},
+    "master_hostname" : "localhost",
+    "log_dir" : "/var/log",
+    "external_log_file" : "mesos.log",
+    "frameworks" : [],
+    "completed_frameworks" : [],
+    "flags" : {
+         "gc_disk_headroom" : "0.1",
+         "isolation" : "posix/cpu,posix/mem",
+         "containerizers" : "mesos",
+         "docker_socket" : "/var/run/docker.sock",
+         "gc_delay" : "1weeks",
+         "docker_remove_delay" : "6hrs",
+         "port" : "5051",
+         "systemd_runtime_directory" : "/run/systemd/system",
+         "initialize_driver_logging" : "true",
+         "cgroups_root" : "mesos",
+         "fetcher_cache_size" : "2GB",
+         "cgroups_hierarchy" : "/sys/fs/cgroup",
+         "qos_correction_interval_min" : "0ns",
+         "cgroups_cpu_enable_pids_and_tids_count" : "false",
+         "sandbox_directory" : "/mnt/mesos/sandbox",
+         "docker" : "docker",
+         "help" : "false",
+         "docker_stop_timeout" : "0ns",
+         "master" : "127.0.0.1:5050",
+         "logbufsecs" : "0",
+         "docker_registry" : "https://registry-1.docker.io",
+         "frameworks_home" : "",
+         "cgroups_enable_cfs" : "false",
+         "perf_interval" : "1mins",
+         "docker_kill_orphans" : "true",
+         "switch_user" : "true",
+         "logging_level" : "INFO",
+         "hadoop_home" : "",
+         "strict" : "true",
+         "executor_registration_timeout" : "1mins",
+         "recovery_timeout" : "15mins",
+         "revocable_cpu_low_priority" : "true",
+         "docker_store_dir" : "/tmp/mesos/store/docker",
+         "image_provisioner_backend" : "copy",
+         "authenticatee" : "crammd5",
+         "quiet" : "false",
+         "executor_shutdown_grace_period" : "5secs",
+         "fetcher_cache_dir" : "/tmp/mesos/fetch",
+         "default_role" : "*",
+         "work_dir" : "/tmp/mesos",
+         "launcher_dir" : "/path/to/mesos/build/src",
+         "registration_backoff_factor" : "1secs",
+         "docker_auth_server" : "https://auth.docker.io",
+         "oversubscribed_resources_interval" : "15secs",
+         "enforce_container_disk_quota" : "false",
+         "container_disk_watch_interval" : "15secs",
+         "disk_watch_interval" : "1mins",
+         "docker_puller_timeout" : "60",
+         "cgroups_limit_swap" : "false",
+         "hostname_lookup" : "true",
+         "perf_duration" : "10secs",
+         "appc_store_dir" : "/tmp/mesos/store/appc",
+         "recover" : "reconnect",
+         "version" : "false"
+    },
+}
+</code></pre>
+
 	</div>
 </div>
 

Modified: mesos/site/publish/documentation/latest/fetcher/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/fetcher/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/fetcher/index.html (original)
+++ mesos/site/publish/documentation/latest/fetcher/index.html Tue Feb 23 04:13:50 2016
@@ -290,7 +290,7 @@ unspecified. Do not use any cache featur
 doubts!</p>
 
 <p>To mitigate this problem, cache files that have been found to be larger than
-expected are deleted immediately after downloading and and delivering the
+expected are deleted immediately after downloading and delivering the
 requested content to the sandbox. Thus exceeding total capacity at least
 does not accumulate over subsequent fetcher runs.</p>
 

Modified: mesos/site/publish/documentation/latest/getting-started/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/getting-started/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/getting-started/index.html (original)
+++ mesos/site/publish/documentation/latest/getting-started/index.html Tue Feb 23 04:13:50 2016
@@ -89,8 +89,8 @@
 
 <p>1. Download the latest stable release from <a href="http://mesos.apache.org/downloads/">Apache</a> (<strong><em>Recommended</em></strong>)</p>
 
-<pre><code>$ wget http://www.apache.org/dist/mesos/0.27.0/mesos-0.27.0.tar.gz
-$ tar -zxf mesos-0.27.0.tar.gz
+<pre><code>$ wget http://www.apache.org/dist/mesos/0.27.1/mesos-0.27.1.tar.gz
+$ tar -zxf mesos-0.27.1.tar.gz
 </code></pre>
 
 <p>2. Clone the Mesos git <a href="https://git-wip-us.apache.org/repos/asf/mesos.git">repository</a> (<strong><em>Advanced Users Only</em></strong>)</p>

Modified: mesos/site/publish/documentation/latest/high-availability-framework-guide/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/high-availability-framework-guide/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/high-availability-framework-guide/index.html (original)
+++ mesos/site/publish/documentation/latest/high-availability-framework-guide/index.html Tue Feb 23 04:13:50 2016
@@ -138,9 +138,9 @@ might see a status update for the first
 action. Scheduler authors should be aware of this possibility and program
 accordingly.</p></li>
 <li><p>Mesos actually provides ordered (but unreliable) message delivery between
-any two pair of processes: for example, if a framework sends messages M1 and
-M2 to the master, the master might receive no messages, just M1, just M2, or
-M1 followed by M2 &ndash; it will <em>not</em> receive M2 followed by M1.</p></li>
+any pair of processes: for example, if a framework sends messages M1 and M2
+to the master, the master might receive no messages, just M1, just M2, or M1
+followed by M2 &ndash; it will <em>not</em> receive M2 followed by M1.</p></li>
 <li><p>As a convenience for framework authors, Mesos provides reliable delivery of
 task status updates. The agent persists task status updates to disk and then
 forwards them to the master. The master sends status updates to the
@@ -191,8 +191,22 @@ coordination service like <a href="https
 or <a href="https://github.com/coreos/etcd">etcd</a>. Consult the documentation of the
 coordination system you are using for more information on how to correctly
 implement leader election.</p></li>
-<li><p>After electing a new leading scheduler, the new leader needs to ensure that
-its local state is consistent with the current state of the cluster. For
+<li><p>After electing a new leading scheduler, the new leader should reconnect to
+the Mesos master. When registering with the master, the framework should set
+the <code>id</code> field in its <code>FrameworkInfo</code> to the ID that was assigned to the
+failed scheduler instance. This ensures that the master will recognize that
+the connection does not start a new session, but rather continues (and
+replaces) the session used by the failed scheduler instance.</p>
+
+<blockquote><p>NOTE: When the old scheduler leader disconnects from the master, by default
+ the master will immediately kill all the tasks and executors associated with
+ the failed framework. For a typical production framework, this default
+ behavior is very undesirable! To avoid this, highly available frameworks
+ should set the <code>failover_timeout</code> field in their <code>FrameworkInfo</code> to a
+ generous value. To avoid accidental destruction of tasks in production
+ environments, many frameworks use a <code>failover_timeout</code> of 1 week or more.</p></blockquote></li>
+<li><p>After connecting to the Mesos master, the new leading scheduler should ensure
+that its local state is consistent with the current state of the cluster. For
 example, suppose that the previous leading scheduler attempted to launch a
 new task and then immediately failed. The task might have launched
 successfully, at which point the newly elected leader will begin to receive
@@ -201,7 +215,7 @@ strongly consistent distributed data sto
 and pending tasks. In fact, the same coordination service that is used for
 leader election (such as ZooKeeper or etcd) can often be used for this
 purpose. Some Mesos frameworks (such as Apache Aurora) use the Mesos
-replicated log for this purpose.</p>
+<a href="/documentation/latest/./replicated-log-internals/">replicated log</a> for this purpose.</p>
 
 <ul>
 <li><p>The data store should be used to record the actions that the scheduler
@@ -293,63 +307,76 @@ in the task specification.</li>
 
 <h2>Dealing with Partitioned or Failed Agents</h2>
 
-<p>The Mesos master keeps track of the availability and health of the registered agents
-by 2 different mechanisms.</p>
+<p>The Mesos master tracks the availability and health of the registered agents
+using two different mechanisms:</p>
 
-<p> 1) State of a persistent TCP connection to the agent.</p>
+<ol>
+<li><p>The state of a persistent TCP connection between the master and the agent.</p></li>
+<li><p>Health checks via periodic ping messages to the agent which are expected to
+be responded with pongs (this behavior is controlled by the
+<code>--slave_ping_timeout</code> and <code>--max_slave_ping_timeouts</code> master flags).</p></li>
+</ol>
 
-<p> 2) Health checks via periodic ping messages to the agent which are expected to be responded with pongs
-    (this behavior is controlled by the <code>--slave_ping_timeout</code> and <code>--max_slave_ping_timeouts</code> master flags).</p>
 
-<p>If the persistent TCP connection to the agent breaks or the agent fails health checks, the master decides
-that the agent has failed and takes steps to remove it from the cluster. Specifically:</p>
+<p>If the persistent TCP connection to the agent breaks or the agent fails health
+checks, the master decides that the agent has failed and takes steps to remove
+it from the cluster. Specifically:</p>
 
 <ul>
-<li><p>If the TCP connection breaks, the agent is considered disconnected. The semantics when a registered
-agent gets disconnected are as follows for each framework running on that agent:</p>
+<li><p>If the TCP connection breaks, the agent is considered disconnected. The
+semantics when a registered agent gets disconnected are as follows for each
+framework running on that agent:</p>
 
 <ul>
-<li><p>If the framework is <a href="/documentation/latest/./slave-recovery/">checkpointing</a>: No immediate action is taken. The agent is
-given a chance to reconnect until health checks time out.</p></li>
-<li><p>If the framework is not-checkpointing: All the framework&rsquo;s tasks and executors are considered lost. Master
-immediately sends <code>TASK_LOST</code> status updates for the tasks. These updates are not delivered reliably to the
-scheduler (see NOTE below). The agent is given a chance to reconnect until health checks timeout.</p></li>
+<li><p>If the framework is <a href="/documentation/latest/./slave-recovery/">checkpointing</a>: no immediate action
+is taken. The agent is given a chance to reconnect until health checks time
+out.</p></li>
+<li><p>If the framework is not checkpointing: all the framework&rsquo;s tasks and
+executors are considered lost. The master immediately sends <code>TASK_LOST</code>
+status updates for the tasks. These updates are not delivered reliably to
+the scheduler (see NOTE below). The agent is given a chance to reconnect
+until health checks timeout.</p></li>
 </ul>
 </li>
-<li><p>If the agent fails health checks it is scheduled for removal. The removals can be rate limited by the master
-(see <code>---slave_removal_rate_limit</code> master flag) to avoid removing a slew of slaves at once (e.g., during a
-network partition event).</p></li>
-<li><p>Once it is time to remove an agent, the master marks it as &ldquo;removed&rdquo; in the master&rsquo;s durable state (this
-will survive master failover). If an agent marked as &ldquo;removed&rdquo; attempts to reconnect to the
-master (e.g., after network partition is restored), the connection attempt will be refused
-and the agent asked to shutdown. A shutting down agent shuts down all running tasks and executors,
-but any persistent volumes and dynamic reservations are still preserved.</p>
+<li><p>If the agent fails health checks it is scheduled for removal. The removals can
+be rate limited by the master (see <code>---slave_removal_rate_limit</code> master flag)
+to avoid removing a slew of slaves at once (e.g., during a network partition).</p></li>
+<li><p>Once it is time to remove an agent, the master marks it as &ldquo;removed&rdquo; in the
+master&rsquo;s durable state (this will survive master failover). If an agent marked
+as &ldquo;removed&rdquo; attempts to reconnect to the master (e.g., after a network
+partition is healed), the connection attempt will be refused and the agent
+will be asked to shutdown. The agent will then shutdown all running tasks and
+executors, but any persistent volumes and dynamic reservations will be
+preserved.</p>
 
 <ul>
 <li>To allow the removed agent node to rejoin the cluster, a new <code>mesos-slave</code>
-process can be started. This will ensure the agent receives a new agent ID and register with master
-possibly with previously created persistent volumes and dynamic reservations. In effect, the agent will
-be treated as a newly joined agent.</li>
+process can be started. This will ensure the agent will receive a new agent
+ID. The agent can then register with the master, and can also retain any
+previously created persistent volumes and dynamic reservations. In effect,
+the agent will be treated as a newly joined agent.</li>
 </ul>
 </li>
-<li><p>For each agent that is marked &ldquo;removed&rdquo; the scheduler receives a <code>slaveLost</code> callback and <code>TASK_LOST</code> status
-updates for each task that was running on the agent</p>
-
-<blockquote><p>NOTE: Neither the callback nor the updates are reliably delivered by the master. For example if
-  the master or scheduler fails over or there is a network connection issue during the delivery
-  of these messages, they will not be resent.</p></blockquote></li>
+<li><p>For each agent that is marked &ldquo;removed&rdquo;, the scheduler receives a <code>slaveLost</code>
+callback. The scheduler will also receive <code>TASK_LOST</code> status updates for each
+task that was running on a removed agent.</p>
+
+<blockquote><p>NOTE: Neither the callback nor the updates are reliably delivered by the
+  master. For example, if the master or scheduler fails over or there is a
+  network connectivity issue during the delivery of these messages, they will
+  not be resent.</p></blockquote></li>
 </ul>
 
 
-<p>Typically, frameworks respond to this situation by scheduling new copies of the
-tasks that were running on the lost agent. This should be done with caution,
-however: it is possible that the lost agent is still alive, but is partitioned
-from the master and is unable to communicate with it. Depending on the nature of
-the network partition, tasks on the agent might still be able to communicate
-with external clients or other hosts in the cluster. Frameworks can take steps
-to prevent this (e.g., by having tasks connect to ZooKeeper and cease operation
-if their ZooKeeper session expires), but Mesos leaves such details to framework
-authors.</p>
+<p>Typically, frameworks respond to failed or partitioned agents by scheduling new
+copies of the tasks that were running on the lost agent. This should be done
+with caution, however: it is possible that the lost agent is still alive, but is
+partitioned from the master and is unable to communicate with it. Depending on
+the nature of the network partition, tasks on the agent might still be able to
+communicate with external clients or other hosts in the cluster. Frameworks can
+take steps to prevent this (e.g., by having tasks connect to ZooKeeper and cease
+operation if their ZooKeeper session expires), but Mesos leaves such details to
+framework authors.</p>
 
 <h2>Dealing with Partitioned or Failed Masters</h2>
 
@@ -369,14 +396,6 @@ previous leading master has failed and c
 framework has successfully reregistered with the new leading master, the
 <code>reregistered</code> scheduler callback will be invoked.</p>
 
-<p>When a highly available framework scheduler initially connects to the master, it
-should set the <code>failover_timeout</code> field in its <code>FrameworkInfo</code>. This specifies
-how long the master will wait for a framework to reconnect after a failover
-before the framework&rsquo;s state is garbage-collected and any running tasks
-associated with the framework are killed. It is recommended that frameworks set
-a generous <code>failover_timeout</code> (e.g., 1 week) to avoid their tasks being killed
-unintentionally.</p>
-
 <h3>Agent Reregistration</h3>
 
 <p>During the period after a new master has been elected but before a given agent

Modified: mesos/site/publish/documentation/latest/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/index.html (original)
+++ mesos/site/publish/documentation/latest/index.html Tue Feb 23 04:13:50 2016
@@ -132,8 +132,10 @@
 <li><a href="/documentation/latest/./networking-for-mesos-managed-containers/">Networking for Mesos-managed Containers</a></li>
 <li><a href="/documentation/latest/./oversubscription/">Oversubscription</a> for how to configure Mesos to take advantage of unused resources to launch &ldquo;best-effort&rdquo; tasks.</li>
 <li><a href="/documentation/latest/./persistent-volume/">Persistent Volume</a> for how to allow tasks to access persistent storage resources.</li>
+<li><a href="/documentation/latest/./multiple-disk/">Multiple Disks</a> for how to to allow tasks to use multiple isolated disk resources.</li>
 <li><a href="/documentation/latest/./quota/">Quota</a> for how to configure Mesos to provide guaranteed resource allocations for use by a role.</li>
 <li><a href="/documentation/latest/./reservation/">Reservation</a> for how operators and frameworks can reserve resources on individual agents for use by a role.</li>
+<li><a href="/documentation/latest/./replicated-log-internals/">Replicated Log</a> for information on the Mesos replicated log.</li>
 </ul>
 
 

Modified: mesos/site/publish/documentation/latest/maintenance/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/maintenance/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/maintenance/index.html (original)
+++ mesos/site/publish/documentation/latest/maintenance/index.html Tue Feb 23 04:13:50 2016
@@ -239,8 +239,8 @@ schedule, make the necessary changes, an
 <p>As soon as a schedule is posted to the Mesos master, the following things occur:</p>
 
 <ul>
-<li>The schedule is stored in the replicated log.  This means
-the schedule is persisted in case of master failover.</li>
+<li>The schedule is stored in the <a href="/documentation/latest/./replicated-log-internals/">replicated log</a>.
+This means the schedule is persisted in case of master failover.</li>
 <li>All machines in the schedule are immediately transitioned into Draining
 mode.  The mode of each machine is also persisted in the replicated log.</li>
 <li>All frameworks using resources on affected agents are immediately

Modified: mesos/site/publish/documentation/latest/network-monitoring/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/network-monitoring/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/network-monitoring/index.html (original)
+++ mesos/site/publish/documentation/latest/network-monitoring/index.html Tue Feb 23 04:13:50 2016
@@ -115,7 +115,7 @@ versions 3.6 and above. Additionally, th
 <p>The following packages are required on the slave:</p>
 
 <ul>
-<li><a href="http://www.infradead.org/~tgr/libnl/">libnl3</a> >= 3.2.26</li>
+<li><a href="https://github.com/thom311/libnl/releases">libnl3</a> >= 3.2.26</li>
 <li><a href="http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2">iproute</a> >= 2.6.39 is advised for debugging purpose but not required.</li>
 </ul>
 
@@ -124,7 +124,7 @@ versions 3.6 and above. Additionally, th
 libnl3 development package to compile Mesos:</p>
 
 <ul>
-<li><a href="http://www.infradead.org/~tgr/libnl/">libnl3-devel / libnl3-dev</a> >= 3.2.26</li>
+<li><a href="https://github.com/thom311/libnl/releases">libnl3-devel / libnl3-dev</a> >= 3.2.26</li>
 </ul>
 
 

Modified: mesos/site/publish/documentation/latest/operational-guide/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/operational-guide/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/operational-guide/index.html (original)
+++ mesos/site/publish/documentation/latest/operational-guide/index.html Tue Feb 23 04:13:50 2016
@@ -91,7 +91,7 @@
 
 <h2>Changing the master quorum</h2>
 
-<p>The master leverages a Paxos-based replicated log as its storage backend (<code>--registry=replicated_log</code> is the only storage backend currently supported). Each master participates in the ensemble as a log replica. The <code>--quorum</code> flag determines a majority of the masters.</p>
+<p>The master leverages a <a href="/documentation/latest/./replicated-log-internals/">Paxos-based replicated log</a> as its storage backend (<code>--registry=replicated_log</code> is the only storage backend currently supported). Each master participates in the ensemble as a log replica. The <code>--quorum</code> flag determines a majority of the masters.</p>
 
 <p>The following table shows the tolerance to master failures for each quorum size:</p>
 

Modified: mesos/site/publish/documentation/latest/persistent-volume/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/persistent-volume/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/persistent-volume/index.html (original)
+++ mesos/site/publish/documentation/latest/persistent-volume/index.html Tue Feb 23 04:13:50 2016
@@ -104,6 +104,9 @@ cluster.</p>
 <p>Please refer to the <a href="/documentation/latest/./reservation/">Reservation</a> documentation for details
 regarding reservation mechanisms available in Mesos.</p>
 
+<p>Persistent volumes can also be created on isolated and auxiliary disks by
+reserving <a href="/documentation/latest/./multiple-disk/">multiple disk resources</a>.</p>
+
 <p>Persistent volumes can be created by <strong>operators</strong> and authorized
 <strong>frameworks</strong>. We require a <code>principal</code> from the operator or framework in order
 to authenticate/authorize the operations. Permissions are specified via the
@@ -364,7 +367,7 @@ disk resource, we can send a request lik
 <p>The user receives one of the following HTTP responses:</p>
 
 <ul>
-<li><code>200 OK</code>: Success (the persistent volumes have been created).</li>
+<li><code>200 OK</code>: Request accepted (see below).</li>
 <li><code>400 BadRequest</code>: Invalid arguments (e.g., missing parameters).</li>
 <li><code>401 Unauthorized</code>: Unauthenticated request.</li>
 <li><code>403 Forbidden</code>: Unauthorized request.</li>
@@ -372,8 +375,18 @@ disk resource, we can send a request lik
 </ul>
 
 
-<p>Note that a single <code>/create-volumes</code> request can create multiple persistent
-volumes, but all of the volumes must be on the same slave.</p>
+<p>A single <code>/create-volumes</code> request can create multiple persistent volumes, but
+all of the volumes must be on the same slave.</p>
+
+<p>Note that when <code>200 OK</code> is returned by this endpoint, it does <strong>not</strong> mean that
+the persistent volumes have been created successfully. Instead, this return code
+indicates that the create operation has been validated successfully by the
+master. The request is then forwarded asynchronously to the Mesos slave where
+the reserved resources are located. That asynchronous message may not be
+delivered or creating the volumes at the slave might fail, in which case no
+volumes will be created. To determine if a create operation has succeeded, the
+user can examine the state of the appropriate Mesos slave (e.g., via the slave&rsquo;s
+<code>/state</code> HTTP endpoint).</p>
 
 <h4><code>/destroy-volumes</code></h4>
 
@@ -408,7 +421,7 @@ volumes, but all of the volumes must be
 <p>The user receives one of the following HTTP responses:</p>
 
 <ul>
-<li><code>200 OK</code>: Success (the volumes have been destroyed).</li>
+<li><code>200 OK</code>: Request accepted (see below).</li>
 <li><code>400 BadRequest</code>: Invalid arguments (e.g., missing parameters).</li>
 <li><code>401 Unauthorized</code>: Unauthenticated request.</li>
 <li><code>403 Forbidden</code>: Unauthorized request.</li>
@@ -416,8 +429,18 @@ volumes, but all of the volumes must be
 </ul>
 
 
-<p>Note that a single <code>/destroy-volumes</code> request can destroy multiple persistent
-volumes, but all of the volumes must be on the same slave.</p>
+<p>A single <code>/destroy-volumes</code> request can destroy multiple persistent volumes, but
+all of the volumes must be on the same slave.</p>
+
+<p>Note that when <code>200 OK</code> is returned by this endpoint, it does <strong>not</strong> mean that
+the persistent volumes have been destroyed successfully. Instead, this return
+code indicates that the destroy operation has been validated successfully by the
+master. The request is then forwarded asynchronously to the Mesos slave where
+the persistent volumes are located. That asynchronous message may not be
+delivered or destroying the volumes at the slave might fail, in which case no
+volumes will be destroyed. To determine if a destroy operation has succeeded,
+the user can examine the state of the appropriate Mesos slave (e.g., via the
+slave&rsquo;s <code>/state</code> HTTP endpoint).</p>
 
 <h3>Programming with Persistent Volumes</h3>
 
@@ -436,7 +459,8 @@ by retrying the operation).</p></li>
 <li><p>When using HTTP endpoints to reserve resources or create persistent volumes,
 <em>some</em> failures can be detected by examining the HTTP response code returned
 to the client. However, it is still possible for a <code>200</code> response code to be
-returned to the client but for the associated operation to fail.</p></li>
+returned to the client but for the associated operation to fail&mdash;see
+discussion above.</p></li>
 <li><p>When using the scheduler API, detecting that a dynamic reservation has failed
 is a little tricky: reservations do not have unique identifiers, and the Mesos
 master does not provide explicit feedback on whether a reservation request has

Modified: mesos/site/publish/documentation/latest/presentations/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/presentations/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/presentations/index.html (original)
+++ mesos/site/publish/documentation/latest/presentations/index.html Tue Feb 23 04:13:50 2016
@@ -85,6 +85,16 @@
 
 <p><em>(Listed in date descending order)</em></p>
 
+<h2>MesosCon Europe 2015</h2>
+
+<p> <a href="https://www.youtube.com/watch?v=K-x7yOy8Ymk&amp;list=PLGeM09tlguZS6MhlSZDbf-gANWdKgje0I">Video playlist</a>
+ <a href="http://events.linuxfoundation.org/events/archive/2015/mesoscon-europe/program/slides">Slides</a></p>
+
+<h2>MesosCon Seattle 2015</h2>
+
+<p> <a href="https://www.youtube.com/watch?v=aV6pdWveN7s&amp;list=PLVjgeV_avap2arug3vIz8c6l72rvh9poV">Video playlist</a>
+ <a href="http://events.linuxfoundation.org/events/archive/2015/mesoscon/program/slides">Slides</a></p>
+
 <h2>Building and Deploying Applications to Apache Mesos</h2>
 
 <p>(<a href="https://www.slideshare.net/charmalloc/buildingdeployingapplicationsmesos">Slides</a>)

Modified: mesos/site/publish/documentation/latest/release-guide/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/release-guide/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/release-guide/index.html (original)
+++ mesos/site/publish/documentation/latest/release-guide/index.html Tue Feb 23 04:13:50 2016
@@ -254,12 +254,14 @@ the result of the vote and the release.<
 
 <ol>
 <li><p>After a successful release, please update the website pointing to the new release.
-See our <a href="http://svn.apache.org/repos/asf/mesos/site/">website README</a> and
+See our <a href="https://github.com/apache/mesos/blob/master/site/README.md/">website README</a> and
 the general <a href="https://www.apache.org/dev/project-site.html">Apache project website guide</a>
 for details on how to build and publish the website.</p>
 
 <pre><code> $ svn co https://svn.apache.org/repos/asf/mesos/site mesos-site
 </code></pre></li>
+<li><p>Update doxygen and javadoc pages for the website. For more information, see
+<a href="https://github.com/apache/mesos/blob/master/site/README.md/">website README</a>.</p></li>
 <li><p>Write a blog post announcing the new release and its features and major bug fixes.</p></li>
 <li><p>Update the Getting Started guide to use the latest release link.</p></li>
 </ol>

Modified: mesos/site/publish/documentation/latest/reservation/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/reservation/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/reservation/index.html (original)
+++ mesos/site/publish/documentation/latest/reservation/index.html Tue Feb 23 04:13:50 2016
@@ -91,7 +91,7 @@ and authorized <strong>frameworks</stron
 
 <p>In both types of reservations, resources are reserved for a <a href="/documentation/latest/./roles/"><strong>role</strong></a>.</p>
 
-<h2>Static Reservation (since 0.14.0)</h2>
+<h2>Static Reservation</h2>
 
 <p>An operator can configure a slave with resources reserved for a role.
 The reserved resources are specified via the <code>--resources</code> flag.
@@ -115,13 +115,13 @@ We start the slave like so:</p>
           on the slave as unreserved via the <code>--resources</code> flag and manage
           reservations dynamically via the master HTTP endpoints.</p>
 
-<h2>Dynamic Reservation (since 0.23.0)</h2>
+<h2>Dynamic Reservation</h2>
 
 <p>As mentioned in <a href="#static-reservation-since-0140">Static Reservation</a>, specifying
 the reserved resources via the <code>--resources</code> flag makes the reservation static.
-This is, statically reserved resources cannot be reserved for another role nor
-be unreserved. Dynamic Reservation enables operators and authorized frameworks
-to reserve and unreserve resources post slave-startup.</p>
+That is, statically reserved resources cannot be reserved for another role nor
+be unreserved. Dynamic reservation enables operators and authorized frameworks
+to reserve and unreserve resources after slave-startup.</p>
 
 <p>We require a <code>principal</code> from the operator or framework in order to
 authenticate/authorize the operations. Permissions are specified via the
@@ -132,24 +132,36 @@ see the <a href="/documentation/latest/.
 <ul>
 <li><code>Offer::Operation::Reserve</code> and <code>Offer::Operation::Unreserve</code> messages are
 available for <strong>frameworks</strong> to send back via the <code>acceptOffers</code> API as a
-response to a resource offer.</li>
+response to a resource offer. Each framework may only reserve resources for
+its own role.</li>
 <li><code>/reserve</code> and <code>/unreserve</code> HTTP endpoints allow <strong>operators</strong> to manage
-dynamic reservations through the master. NOTE: As of 0.27.0, these endpoints
-cannot be used when HTTP authentication is disabled due to the current
-implementation. This will change in version 0.28.0.</li>
+dynamic reservations through the master. Operators may currently reserve
+resources for any role, although this
+<a href="https://issues.apache.org/jira/browse/MESOS-4591">will change</a>.</li>
 </ul>
 
 
 <p>In the following sections, we will walk through examples of each of the
 interfaces described above.</p>
 
-<p>Note that if two dynamic reservations are made for resources at a single slave,
-the reservations will be combined by adding together the resources reserved by
-each request. Similarly, &ldquo;partial&rdquo; unreserve operations are allowed: an
-unreserve operation can release only some of the resources at a slave that have
-been reserved for a given role. In this case, the unreserved resources will be
-subtracted from the previous reservation, and any remaining resources will still
-be reserved.</p>
+<p>If two dynamic reservations are made for the same role at a single slave (using
+the same labels, if any; see below), the reservations will be combined by adding
+together the resources reserved by each request. This will result in a single
+reserved resource at the slave. Similarly, &ldquo;partial&rdquo; unreserve operations are
+allowed: an unreserve operation can release some but not all of the resources at
+a slave that have been reserved for a role. In this case, the unreserved
+resources will be subtracted from the previous reservation and any remaining
+resources will still be reserved.</p>
+
+<h3>Labeled Reservations</h3>
+
+<p>Dynamic reservations can optionally include a list of <em>labels</em>, which are
+arbitrary key-value pairs. Labels can be used to associate arbitrary metadata
+with a resource reservation. For example, frameworks can use labels to identify
+the intended purpose for a portion of the resources that have been reserved at a
+given slave. Note that two reservations with different labels will not be
+combined together into a single reservation, even if the reservations are at the
+same slave and use the same role.</p>
 
 <h3>Framework Scheduler API</h3>
 
@@ -326,8 +338,10 @@ operators and administrative tools.</p>
 <p>Suppose we want to reserve 8 CPUs and 4096 MB of RAM for the <code>ads</code> role on a
 slave with id=<code>&lt;slave_id&gt;</code> (note that it is up to the user to find the ID of the
 slave that hosts the desired resources; the request will fail if sufficient
-unreserved resources cannot be found on the slave). We send an HTTP POST request
-to the <code>/reserve</code> HTTP endpoint like so:</p>
+unreserved resources cannot be found on the slave). In this case, the principal
+included in the request will be the principal of an authorized operator rather
+than the principal of a framework registered under the <code>ads</code> role. We send an
+HTTP POST request to the <code>/reserve</code> HTTP endpoint like so:</p>
 
 <pre><code>    $ curl -i \
       -u &lt;operator_principal&gt;:&lt;password&gt; \
@@ -358,7 +372,7 @@ to the <code>/reserve</code> HTTP endpoi
 <p>The user receives one of the following HTTP responses:</p>
 
 <ul>
-<li><code>200 OK</code>: Success (the requested resources have been reserved).</li>
+<li><code>200 OK</code>: Request accepted (see below).</li>
 <li><code>400 BadRequest</code>: Invalid arguments (e.g., missing parameters).</li>
 <li><code>401 Unauthorized</code>: Unauthenticated request.</li>
 <li><code>403 Forbidden</code>: Unauthorized request.</li>
@@ -366,6 +380,15 @@ to the <code>/reserve</code> HTTP endpoi
 </ul>
 
 
+<p>Note that when <code>200 OK</code> is returned by this endpoint, it does <strong>not</strong> mean that
+the requested resources have been reserved. Instead, this return code indicates
+that the reservation request has been validated successfully by the master. The
+reservation request is then forwarded asynchronously to the Mesos slave where
+the resources are located. That asynchronous message may not be delivered, in
+which case no resources will be reserved. To determine if a reserve operation
+has succeeded, the user can examine the state of the appropriate Mesos slave
+(e.g., via the slave&rsquo;s <code>/state</code> HTTP endpoint).</p>
+
 <h4><code>/unreserve</code> (since 0.25.0)</h4>
 
 <p>Suppose we want to unreserve the resources that we dynamically reserved above.
@@ -381,7 +404,7 @@ We can send an HTTP POST request to the
           "scalar": { "value": 8 },
           "role": "ads",
           "reservation": {
-            "principal": &lt;operator_principal&gt;
+            "principal": &lt;reserver_principal&gt;
           }
         },
         {
@@ -390,17 +413,23 @@ We can send an HTTP POST request to the
           "scalar": { "value": 4096 },
           "role": "ads",
           "reservation": {
-            "principal": &lt;operator_principal&gt;
+            "principal": &lt;reserver_principal&gt;
           }
         }
       ]' \
       -X POST http://&lt;ip&gt;:&lt;port&gt;/master/unreserve
 </code></pre>
 
+<p>Note that <code>reserver_principal</code> is the principal that was used to make the
+reservation, while <code>operator_principal</code> is the principal that is attempting to
+perform the unreserve operation&mdash;in some cases, these principals might be the
+same. The <code>operator_principal</code> must be <a href="/documentation/latest/./authorization/">authorized</a> to
+unreserve reservations made by <code>reserver_principal</code>.</p>
+
 <p>The user receives one of the following HTTP responses:</p>
 
 <ul>
-<li><code>200 OK</code>: Success (the requested resources have been unreserved).</li>
+<li><code>200 OK</code>: Request accepted (see below).</li>
 <li><code>400 BadRequest</code>: Invalid arguments (e.g., missing parameters).</li>
 <li><code>401 Unauthorized</code>: Unauthenticated request.</li>
 <li><code>403 Forbidden</code>: Unauthorized request.</li>
@@ -408,6 +437,15 @@ We can send an HTTP POST request to the
 </ul>
 
 
+<p>Note that when <code>200 OK</code> is returned by this endpoint, it does <strong>not</strong> mean that
+the requested resources have been unreserved. Instead, this return code
+indicates that the unreserve request has been validated successfully by the
+master. The request is then forwarded asynchronously to the Mesos slave where
+the resources are located. That asynchronous message may not be delivered, in
+which case no resources will be unreserved. To determine if an unreserve
+operation has succeeded, the user can examine the state of the appropriate Mesos
+slave (e.g., via the slave&rsquo;s <code>/state</code> HTTP endpoint).</p>
+
 	</div>
 </div>
 

Modified: mesos/site/publish/documentation/latest/roles/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/roles/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/roles/index.html (original)
+++ mesos/site/publish/documentation/latest/roles/index.html Tue Feb 23 04:13:50 2016
@@ -91,13 +91,16 @@ resources are offered to frameworks. Som
 <ul>
 <li>arranging for all the resources on a particular agent to only be offered to a
 particular framework.</li>
-<li>dividing a cluster between two organizations: resources assigned for use by
+<li>dividing a cluster between two organizations: resources reserved for use by
 organization <em>A</em> will only be offered to frameworks that have registered
-using organization <em>A</em>&rsquo;s role.</li>
+using organization <em>A</em>&rsquo;s role (see the
+<a href="/documentation/latest/./reservation/">reservation documentation</a>).</li>
 <li>ensuring that <a href="/documentation/latest/./persistent-volume/">persistent volumes</a> created by one
 framework are not offered to frameworks registered with a different role.</li>
 <li>expressing that one group of frameworks should be considered &ldquo;higher priority&rdquo;
 (and offered more resources) than another group of frameworks.</li>
+<li>setting a guaranteed resource allocation for one or more frameworks belonging
+to a role (see the <a href="/documentation/latest/./quota/">quota documentation</a>).</li>
 </ul>
 
 
@@ -205,6 +208,20 @@ roles: a role with a weight of 2 will be
 role with a weight of 1. Weights are optional, and can be specified via the
 <code>--weights</code> command-line flag when starting the Mesos master.</p>
 
+<h2>Role vs. Principal</h2>
+
+<p>A principal identifies an entity that interacts with Mesos; principals are
+similar to user names. For example, frameworks supply a principal when they
+register with the Mesos master, and operators provide a principal when using the
+operator HTTP endpoints. An entity may be required to
+<a href="/documentation/latest/./authentication/">authenticate</a> with its principal in order to prove its
+identity, and the principal may be used to <a href="/documentation/latest/./authorization/">authorize</a> actions
+performed by an entity, such as <a href="/documentation/latest/./reservation/">resource reservation</a> and
+<a href="/documentation/latest/./persistent-volume/">persistent volume</a> creation/destruction.</p>
+
+<p>Roles, on the other hand, are used exclusively to associate resources with
+frameworks in various ways, as covered above.</p>
+
 	</div>
 </div>
 

Modified: mesos/site/publish/documentation/maintenance/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/maintenance/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/maintenance/index.html (original)
+++ mesos/site/publish/documentation/maintenance/index.html Tue Feb 23 04:13:50 2016
@@ -239,8 +239,8 @@ schedule, make the necessary changes, an
 <p>As soon as a schedule is posted to the Mesos master, the following things occur:</p>
 
 <ul>
-<li>The schedule is stored in the replicated log.  This means
-the schedule is persisted in case of master failover.</li>
+<li>The schedule is stored in the <a href="/documentation/latest/./replicated-log-internals/">replicated log</a>.
+This means the schedule is persisted in case of master failover.</li>
 <li>All machines in the schedule are immediately transitioned into Draining
 mode.  The mode of each machine is also persisted in the replicated log.</li>
 <li>All frameworks using resources on affected agents are immediately

Modified: mesos/site/publish/documentation/network-monitoring/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/network-monitoring/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/network-monitoring/index.html (original)
+++ mesos/site/publish/documentation/network-monitoring/index.html Tue Feb 23 04:13:50 2016
@@ -115,7 +115,7 @@ versions 3.6 and above. Additionally, th
 <p>The following packages are required on the slave:</p>
 
 <ul>
-<li><a href="http://www.infradead.org/~tgr/libnl/">libnl3</a> >= 3.2.26</li>
+<li><a href="https://github.com/thom311/libnl/releases">libnl3</a> >= 3.2.26</li>
 <li><a href="http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2">iproute</a> >= 2.6.39 is advised for debugging purpose but not required.</li>
 </ul>
 
@@ -124,7 +124,7 @@ versions 3.6 and above. Additionally, th
 libnl3 development package to compile Mesos:</p>
 
 <ul>
-<li><a href="http://www.infradead.org/~tgr/libnl/">libnl3-devel / libnl3-dev</a> >= 3.2.26</li>
+<li><a href="https://github.com/thom311/libnl/releases">libnl3-devel / libnl3-dev</a> >= 3.2.26</li>
 </ul>
 
 

Modified: mesos/site/publish/documentation/operational-guide/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/operational-guide/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/operational-guide/index.html (original)
+++ mesos/site/publish/documentation/operational-guide/index.html Tue Feb 23 04:13:50 2016
@@ -91,7 +91,7 @@
 
 <h2>Changing the master quorum</h2>
 
-<p>The master leverages a Paxos-based replicated log as its storage backend (<code>--registry=replicated_log</code> is the only storage backend currently supported). Each master participates in the ensemble as a log replica. The <code>--quorum</code> flag determines a majority of the masters.</p>
+<p>The master leverages a <a href="/documentation/latest/./replicated-log-internals/">Paxos-based replicated log</a> as its storage backend (<code>--registry=replicated_log</code> is the only storage backend currently supported). Each master participates in the ensemble as a log replica. The <code>--quorum</code> flag determines a majority of the masters.</p>
 
 <p>The following table shows the tolerance to master failures for each quorum size:</p>
 

Modified: mesos/site/publish/documentation/persistent-volume/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/persistent-volume/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/persistent-volume/index.html (original)
+++ mesos/site/publish/documentation/persistent-volume/index.html Tue Feb 23 04:13:50 2016
@@ -104,6 +104,9 @@ cluster.</p>
 <p>Please refer to the <a href="/documentation/latest/./reservation/">Reservation</a> documentation for details
 regarding reservation mechanisms available in Mesos.</p>
 
+<p>Persistent volumes can also be created on isolated and auxiliary disks by
+reserving <a href="/documentation/latest/./multiple-disk/">multiple disk resources</a>.</p>
+
 <p>Persistent volumes can be created by <strong>operators</strong> and authorized
 <strong>frameworks</strong>. We require a <code>principal</code> from the operator or framework in order
 to authenticate/authorize the operations. Permissions are specified via the
@@ -364,7 +367,7 @@ disk resource, we can send a request lik
 <p>The user receives one of the following HTTP responses:</p>
 
 <ul>
-<li><code>200 OK</code>: Success (the persistent volumes have been created).</li>
+<li><code>200 OK</code>: Request accepted (see below).</li>
 <li><code>400 BadRequest</code>: Invalid arguments (e.g., missing parameters).</li>
 <li><code>401 Unauthorized</code>: Unauthenticated request.</li>
 <li><code>403 Forbidden</code>: Unauthorized request.</li>
@@ -372,8 +375,18 @@ disk resource, we can send a request lik
 </ul>
 
 
-<p>Note that a single <code>/create-volumes</code> request can create multiple persistent
-volumes, but all of the volumes must be on the same slave.</p>
+<p>A single <code>/create-volumes</code> request can create multiple persistent volumes, but
+all of the volumes must be on the same slave.</p>
+
+<p>Note that when <code>200 OK</code> is returned by this endpoint, it does <strong>not</strong> mean that
+the persistent volumes have been created successfully. Instead, this return code
+indicates that the create operation has been validated successfully by the
+master. The request is then forwarded asynchronously to the Mesos slave where
+the reserved resources are located. That asynchronous message may not be
+delivered or creating the volumes at the slave might fail, in which case no
+volumes will be created. To determine if a create operation has succeeded, the
+user can examine the state of the appropriate Mesos slave (e.g., via the slave&rsquo;s
+<code>/state</code> HTTP endpoint).</p>
 
 <h4><code>/destroy-volumes</code></h4>
 
@@ -408,7 +421,7 @@ volumes, but all of the volumes must be
 <p>The user receives one of the following HTTP responses:</p>
 
 <ul>
-<li><code>200 OK</code>: Success (the volumes have been destroyed).</li>
+<li><code>200 OK</code>: Request accepted (see below).</li>
 <li><code>400 BadRequest</code>: Invalid arguments (e.g., missing parameters).</li>
 <li><code>401 Unauthorized</code>: Unauthenticated request.</li>
 <li><code>403 Forbidden</code>: Unauthorized request.</li>
@@ -416,8 +429,18 @@ volumes, but all of the volumes must be
 </ul>
 
 
-<p>Note that a single <code>/destroy-volumes</code> request can destroy multiple persistent
-volumes, but all of the volumes must be on the same slave.</p>
+<p>A single <code>/destroy-volumes</code> request can destroy multiple persistent volumes, but
+all of the volumes must be on the same slave.</p>
+
+<p>Note that when <code>200 OK</code> is returned by this endpoint, it does <strong>not</strong> mean that
+the persistent volumes have been destroyed successfully. Instead, this return
+code indicates that the destroy operation has been validated successfully by the
+master. The request is then forwarded asynchronously to the Mesos slave where
+the persistent volumes are located. That asynchronous message may not be
+delivered or destroying the volumes at the slave might fail, in which case no
+volumes will be destroyed. To determine if a destroy operation has succeeded,
+the user can examine the state of the appropriate Mesos slave (e.g., via the
+slave&rsquo;s <code>/state</code> HTTP endpoint).</p>
 
 <h3>Programming with Persistent Volumes</h3>
 
@@ -436,7 +459,8 @@ by retrying the operation).</p></li>
 <li><p>When using HTTP endpoints to reserve resources or create persistent volumes,
 <em>some</em> failures can be detected by examining the HTTP response code returned
 to the client. However, it is still possible for a <code>200</code> response code to be
-returned to the client but for the associated operation to fail.</p></li>
+returned to the client but for the associated operation to fail&mdash;see
+discussion above.</p></li>
 <li><p>When using the scheduler API, detecting that a dynamic reservation has failed
 is a little tricky: reservations do not have unique identifiers, and the Mesos
 master does not provide explicit feedback on whether a reservation request has

Modified: mesos/site/publish/documentation/presentations/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/presentations/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/presentations/index.html (original)
+++ mesos/site/publish/documentation/presentations/index.html Tue Feb 23 04:13:50 2016
@@ -85,6 +85,16 @@
 
 <p><em>(Listed in date descending order)</em></p>
 
+<h2>MesosCon Europe 2015</h2>
+
+<p> <a href="https://www.youtube.com/watch?v=K-x7yOy8Ymk&amp;list=PLGeM09tlguZS6MhlSZDbf-gANWdKgje0I">Video playlist</a>
+ <a href="http://events.linuxfoundation.org/events/archive/2015/mesoscon-europe/program/slides">Slides</a></p>
+
+<h2>MesosCon Seattle 2015</h2>
+
+<p> <a href="https://www.youtube.com/watch?v=aV6pdWveN7s&amp;list=PLVjgeV_avap2arug3vIz8c6l72rvh9poV">Video playlist</a>
+ <a href="http://events.linuxfoundation.org/events/archive/2015/mesoscon/program/slides">Slides</a></p>
+
 <h2>Building and Deploying Applications to Apache Mesos</h2>
 
 <p>(<a href="https://www.slideshare.net/charmalloc/buildingdeployingapplicationsmesos">Slides</a>)

Modified: mesos/site/publish/documentation/release-guide/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/release-guide/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/release-guide/index.html (original)
+++ mesos/site/publish/documentation/release-guide/index.html Tue Feb 23 04:13:50 2016
@@ -254,12 +254,14 @@ the result of the vote and the release.<
 
 <ol>
 <li><p>After a successful release, please update the website pointing to the new release.
-See our <a href="http://svn.apache.org/repos/asf/mesos/site/">website README</a> and
+See our <a href="https://github.com/apache/mesos/blob/master/site/README.md/">website README</a> and
 the general <a href="https://www.apache.org/dev/project-site.html">Apache project website guide</a>
 for details on how to build and publish the website.</p>
 
 <pre><code> $ svn co https://svn.apache.org/repos/asf/mesos/site mesos-site
 </code></pre></li>
+<li><p>Update doxygen and javadoc pages for the website. For more information, see
+<a href="https://github.com/apache/mesos/blob/master/site/README.md/">website README</a>.</p></li>
 <li><p>Write a blog post announcing the new release and its features and major bug fixes.</p></li>
 <li><p>Update the Getting Started guide to use the latest release link.</p></li>
 </ol>

Modified: mesos/site/publish/documentation/reservation/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/reservation/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/reservation/index.html (original)
+++ mesos/site/publish/documentation/reservation/index.html Tue Feb 23 04:13:50 2016
@@ -91,7 +91,7 @@ and authorized <strong>frameworks</stron
 
 <p>In both types of reservations, resources are reserved for a <a href="/documentation/latest/./roles/"><strong>role</strong></a>.</p>
 
-<h2>Static Reservation (since 0.14.0)</h2>
+<h2>Static Reservation</h2>
 
 <p>An operator can configure a slave with resources reserved for a role.
 The reserved resources are specified via the <code>--resources</code> flag.
@@ -115,13 +115,13 @@ We start the slave like so:</p>
           on the slave as unreserved via the <code>--resources</code> flag and manage
           reservations dynamically via the master HTTP endpoints.</p>
 
-<h2>Dynamic Reservation (since 0.23.0)</h2>
+<h2>Dynamic Reservation</h2>
 
 <p>As mentioned in <a href="#static-reservation-since-0140">Static Reservation</a>, specifying
 the reserved resources via the <code>--resources</code> flag makes the reservation static.
-This is, statically reserved resources cannot be reserved for another role nor
-be unreserved. Dynamic Reservation enables operators and authorized frameworks
-to reserve and unreserve resources post slave-startup.</p>
+That is, statically reserved resources cannot be reserved for another role nor
+be unreserved. Dynamic reservation enables operators and authorized frameworks
+to reserve and unreserve resources after slave-startup.</p>
 
 <p>We require a <code>principal</code> from the operator or framework in order to
 authenticate/authorize the operations. Permissions are specified via the
@@ -132,24 +132,36 @@ see the <a href="/documentation/latest/.
 <ul>
 <li><code>Offer::Operation::Reserve</code> and <code>Offer::Operation::Unreserve</code> messages are
 available for <strong>frameworks</strong> to send back via the <code>acceptOffers</code> API as a
-response to a resource offer.</li>
+response to a resource offer. Each framework may only reserve resources for
+its own role.</li>
 <li><code>/reserve</code> and <code>/unreserve</code> HTTP endpoints allow <strong>operators</strong> to manage
-dynamic reservations through the master. NOTE: As of 0.27.0, these endpoints
-cannot be used when HTTP authentication is disabled due to the current
-implementation. This will change in version 0.28.0.</li>
+dynamic reservations through the master. Operators may currently reserve
+resources for any role, although this
+<a href="https://issues.apache.org/jira/browse/MESOS-4591">will change</a>.</li>
 </ul>
 
 
 <p>In the following sections, we will walk through examples of each of the
 interfaces described above.</p>
 
-<p>Note that if two dynamic reservations are made for resources at a single slave,
-the reservations will be combined by adding together the resources reserved by
-each request. Similarly, &ldquo;partial&rdquo; unreserve operations are allowed: an
-unreserve operation can release only some of the resources at a slave that have
-been reserved for a given role. In this case, the unreserved resources will be
-subtracted from the previous reservation, and any remaining resources will still
-be reserved.</p>
+<p>If two dynamic reservations are made for the same role at a single slave (using
+the same labels, if any; see below), the reservations will be combined by adding
+together the resources reserved by each request. This will result in a single
+reserved resource at the slave. Similarly, &ldquo;partial&rdquo; unreserve operations are
+allowed: an unreserve operation can release some but not all of the resources at
+a slave that have been reserved for a role. In this case, the unreserved
+resources will be subtracted from the previous reservation and any remaining
+resources will still be reserved.</p>
+
+<h3>Labeled Reservations</h3>
+
+<p>Dynamic reservations can optionally include a list of <em>labels</em>, which are
+arbitrary key-value pairs. Labels can be used to associate arbitrary metadata
+with a resource reservation. For example, frameworks can use labels to identify
+the intended purpose for a portion of the resources that have been reserved at a
+given slave. Note that two reservations with different labels will not be
+combined together into a single reservation, even if the reservations are at the
+same slave and use the same role.</p>
 
 <h3>Framework Scheduler API</h3>
 
@@ -326,8 +338,10 @@ operators and administrative tools.</p>
 <p>Suppose we want to reserve 8 CPUs and 4096 MB of RAM for the <code>ads</code> role on a
 slave with id=<code>&lt;slave_id&gt;</code> (note that it is up to the user to find the ID of the
 slave that hosts the desired resources; the request will fail if sufficient
-unreserved resources cannot be found on the slave). We send an HTTP POST request
-to the <code>/reserve</code> HTTP endpoint like so:</p>
+unreserved resources cannot be found on the slave). In this case, the principal
+included in the request will be the principal of an authorized operator rather
+than the principal of a framework registered under the <code>ads</code> role. We send an
+HTTP POST request to the <code>/reserve</code> HTTP endpoint like so:</p>
 
 <pre><code>    $ curl -i \
       -u &lt;operator_principal&gt;:&lt;password&gt; \
@@ -358,7 +372,7 @@ to the <code>/reserve</code> HTTP endpoi
 <p>The user receives one of the following HTTP responses:</p>
 
 <ul>
-<li><code>200 OK</code>: Success (the requested resources have been reserved).</li>
+<li><code>200 OK</code>: Request accepted (see below).</li>
 <li><code>400 BadRequest</code>: Invalid arguments (e.g., missing parameters).</li>
 <li><code>401 Unauthorized</code>: Unauthenticated request.</li>
 <li><code>403 Forbidden</code>: Unauthorized request.</li>
@@ -366,6 +380,15 @@ to the <code>/reserve</code> HTTP endpoi
 </ul>
 
 
+<p>Note that when <code>200 OK</code> is returned by this endpoint, it does <strong>not</strong> mean that
+the requested resources have been reserved. Instead, this return code indicates
+that the reservation request has been validated successfully by the master. The
+reservation request is then forwarded asynchronously to the Mesos slave where
+the resources are located. That asynchronous message may not be delivered, in
+which case no resources will be reserved. To determine if a reserve operation
+has succeeded, the user can examine the state of the appropriate Mesos slave
+(e.g., via the slave&rsquo;s <code>/state</code> HTTP endpoint).</p>
+
 <h4><code>/unreserve</code> (since 0.25.0)</h4>
 
 <p>Suppose we want to unreserve the resources that we dynamically reserved above.
@@ -381,7 +404,7 @@ We can send an HTTP POST request to the
           "scalar": { "value": 8 },
           "role": "ads",
           "reservation": {
-            "principal": &lt;operator_principal&gt;
+            "principal": &lt;reserver_principal&gt;
           }
         },
         {
@@ -390,17 +413,23 @@ We can send an HTTP POST request to the
           "scalar": { "value": 4096 },
           "role": "ads",
           "reservation": {
-            "principal": &lt;operator_principal&gt;
+            "principal": &lt;reserver_principal&gt;
           }
         }
       ]' \
       -X POST http://&lt;ip&gt;:&lt;port&gt;/master/unreserve
 </code></pre>
 
+<p>Note that <code>reserver_principal</code> is the principal that was used to make the
+reservation, while <code>operator_principal</code> is the principal that is attempting to
+perform the unreserve operation&mdash;in some cases, these principals might be the
+same. The <code>operator_principal</code> must be <a href="/documentation/latest/./authorization/">authorized</a> to
+unreserve reservations made by <code>reserver_principal</code>.</p>
+
 <p>The user receives one of the following HTTP responses:</p>
 
 <ul>
-<li><code>200 OK</code>: Success (the requested resources have been unreserved).</li>
+<li><code>200 OK</code>: Request accepted (see below).</li>
 <li><code>400 BadRequest</code>: Invalid arguments (e.g., missing parameters).</li>
 <li><code>401 Unauthorized</code>: Unauthenticated request.</li>
 <li><code>403 Forbidden</code>: Unauthorized request.</li>
@@ -408,6 +437,15 @@ We can send an HTTP POST request to the
 </ul>
 
 
+<p>Note that when <code>200 OK</code> is returned by this endpoint, it does <strong>not</strong> mean that
+the requested resources have been unreserved. Instead, this return code
+indicates that the unreserve request has been validated successfully by the
+master. The request is then forwarded asynchronously to the Mesos slave where
+the resources are located. That asynchronous message may not be delivered, in
+which case no resources will be unreserved. To determine if an unreserve
+operation has succeeded, the user can examine the state of the appropriate Mesos
+slave (e.g., via the slave&rsquo;s <code>/state</code> HTTP endpoint).</p>
+
 	</div>
 </div>
 

Modified: mesos/site/publish/documentation/roles/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/roles/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/documentation/roles/index.html (original)
+++ mesos/site/publish/documentation/roles/index.html Tue Feb 23 04:13:50 2016
@@ -91,13 +91,16 @@ resources are offered to frameworks. Som
 <ul>
 <li>arranging for all the resources on a particular agent to only be offered to a
 particular framework.</li>
-<li>dividing a cluster between two organizations: resources assigned for use by
+<li>dividing a cluster between two organizations: resources reserved for use by
 organization <em>A</em> will only be offered to frameworks that have registered
-using organization <em>A</em>&rsquo;s role.</li>
+using organization <em>A</em>&rsquo;s role (see the
+<a href="/documentation/latest/./reservation/">reservation documentation</a>).</li>
 <li>ensuring that <a href="/documentation/latest/./persistent-volume/">persistent volumes</a> created by one
 framework are not offered to frameworks registered with a different role.</li>
 <li>expressing that one group of frameworks should be considered &ldquo;higher priority&rdquo;
 (and offered more resources) than another group of frameworks.</li>
+<li>setting a guaranteed resource allocation for one or more frameworks belonging
+to a role (see the <a href="/documentation/latest/./quota/">quota documentation</a>).</li>
 </ul>
 
 
@@ -205,6 +208,20 @@ roles: a role with a weight of 2 will be
 role with a weight of 1. Weights are optional, and can be specified via the
 <code>--weights</code> command-line flag when starting the Mesos master.</p>
 
+<h2>Role vs. Principal</h2>
+
+<p>A principal identifies an entity that interacts with Mesos; principals are
+similar to user names. For example, frameworks supply a principal when they
+register with the Mesos master, and operators provide a principal when using the
+operator HTTP endpoints. An entity may be required to
+<a href="/documentation/latest/./authentication/">authenticate</a> with its principal in order to prove its
+identity, and the principal may be used to <a href="/documentation/latest/./authorization/">authorize</a> actions
+performed by an entity, such as <a href="/documentation/latest/./reservation/">resource reservation</a> and
+<a href="/documentation/latest/./persistent-volume/">persistent volume</a> creation/destruction.</p>
+
+<p>Roles, on the other hand, are used exclusively to associate resources with
+frameworks in various ways, as covered above.</p>
+
 	</div>
 </div>
 

Modified: mesos/site/publish/downloads/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/downloads/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/downloads/index.html (original)
+++ mesos/site/publish/downloads/index.html Tue Feb 23 04:13:50 2016
@@ -73,6 +73,8 @@
     <h4>Previous Releases</h4>
 
     <ul>
+      <li><a href="http://archive.apache.org/dist/mesos/0.27.0/">0.27.0</a>
+           (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12334043">Release Notes</a>)</li>
       <li><a href="http://archive.apache.org/dist/mesos/0.26.0/">0.26.0</a>
            (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12333528">Release Notes</a>)</li>
       <li><a href="http://archive.apache.org/dist/mesos/0.25.0/">0.25.0</a>
@@ -139,8 +141,8 @@
   <div class="col-md-8">
     <h1>Download Mesos</h1>
       <p>Download the most recent stable release:
-          <a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/mesos/0.27.0/">0.27.0</a>
-        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12334043">Release Notes</a>)
+          <a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/mesos/0.27.1/">0.27.1</a>
+        (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12334748">Release Notes</a>)
       </p>
 
       <h4>Getting the code via source control</h4>

Modified: mesos/site/publish/gettingstarted/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/gettingstarted/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/gettingstarted/index.html (original)
+++ mesos/site/publish/gettingstarted/index.html Tue Feb 23 04:13:50 2016
@@ -89,8 +89,8 @@
 
 <p>1. Download the latest stable release from <a href="http://mesos.apache.org/downloads/">Apache</a> (<strong><em>Recommended</em></strong>)</p>
 
-<pre><code>$ wget http://www.apache.org/dist/mesos/0.27.0/mesos-0.27.0.tar.gz
-$ tar -zxf mesos-0.27.0.tar.gz
+<pre><code>$ wget http://www.apache.org/dist/mesos/0.27.1/mesos-0.27.1.tar.gz
+$ tar -zxf mesos-0.27.1.tar.gz
 </code></pre>
 
 <p>2. Clone the Mesos git <a href="https://git-wip-us.apache.org/repos/asf/mesos.git">repository</a> (<strong><em>Advanced Users Only</em></strong>)</p>

Modified: mesos/site/publish/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/index.html?rev=1731785&r1=1731784&r2=1731785&view=diff
==============================================================================
--- mesos/site/publish/index.html (original)
+++ mesos/site/publish/index.html Tue Feb 23 04:13:50 2016
@@ -71,7 +71,7 @@
     <h1>Program against your datacenter like it’s a single pool of resources</h1>
     <p class="lead">Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.</p>
 
-        <p> <a href="downloads/"><span class="glyphicon glyphicon-download"></span> Download Mesos 0.27.0</a> or learn how to <a href="gettingstarted/">get started</a></p>
+        <p> <a href="downloads/"><span class="glyphicon glyphicon-download"></span> Download Mesos 0.27.1</a> or learn how to <a href="gettingstarted/">get started</a></p>
     </div>
 </div>
 
@@ -101,6 +101,8 @@
   <div class="col-md-5">
     <h3>News</h3>
       <ul>
+      <li><em>February 22, 2016</em> - Mesos 0.27.1 is released! See the <a href="https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb=0.27.1">CHANGELOG</a> and <a href="/blog/mesos-0-27-1-released/">blog post</a> for details.</li>
+      <li><em>February 12, 2016</em> - MesosCon 2016 CFP is now open!  See the <a href="/blog/mesoscon-2016-cfp-is-now-open/">blog post</a> for details.</li>
       <li><em>January 31, 2016</em> - Mesos 0.27.0 is released! See the <a href="https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb=0.27.0">CHANGELOG</a> and <a href="/blog/mesos-0-27-0-released/">blog post</a> for details.</li>
       <li><em>December 16, 2015</em> - Mesos 0.26.0 is released! See the <a href="https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb=0.26.0">CHANGELOG</a> and <a href="/blog/mesos-0-26-0-released/">blog post</a> for details.</li>
       <li><em>October 10, 2015</em> - Mesos 0.25.0 is released! See the <a href="https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb=0.25.0">CHANGELOG</a> and <a href="/blog/mesos-0-25-0-released/">blog post</a> for details.</li>