Author: dlester
Date: Thu Sep 24 05:36:06 2015
New Revision: 1704991

URL: http://svn.apache.org/viewvc?rev=1704991&view=rev
Log:
Update Aurora documentation on website.

Added:
    aurora/site/publish/documentation/latest/resources/
    aurora/site/publish/documentation/latest/resources/index.html
    aurora/site/source/documentation/latest/resources.md
Removed:
    aurora/site/publish/documentation/latest/resource-isolation/
    aurora/site/source/documentation/latest/resource-isolation.md
Modified:
    aurora/site/publish/documentation/latest/client-commands/index.html
    aurora/site/publish/documentation/latest/configuration-reference/index.html
    aurora/site/publish/documentation/latest/configuration-tutorial/index.html
    
aurora/site/publish/documentation/latest/deploying-aurora-scheduler/index.html
    aurora/site/publish/documentation/latest/index.html
    aurora/site/publish/documentation/latest/tutorial/index.html
    aurora/site/publish/sitemap.xml
    aurora/site/source/documentation/latest.html.md
    aurora/site/source/documentation/latest/client-commands.md
    aurora/site/source/documentation/latest/configuration-reference.md
    aurora/site/source/documentation/latest/configuration-tutorial.md
    aurora/site/source/documentation/latest/deploying-aurora-scheduler.md
    aurora/site/source/documentation/latest/tutorial.md

Modified: aurora/site/publish/documentation/latest/client-commands/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/latest/client-commands/index.html?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/publish/documentation/latest/client-commands/index.html 
(original)
+++ aurora/site/publish/documentation/latest/client-commands/index.html Thu Sep 
24 05:36:06 2015
@@ -360,7 +360,8 @@ configuration file, and displays the par
 <pre class="highlight text">aurora quota get CLUSTER/ROLE
 </pre>
 <p>Prints the production quota allocated to the role&rsquo;s value at the given
-cluster.</p>
+cluster. Only non-<a 
href="deploying-aurora-scheduler.md#dedicated-attribute">dedicated</a>
+<a href="configuration-reference.md#job-objects">production</a> jobs consume 
quota.</p>
 
 <h3 id="finding-a-job-on-web-ui">Finding a Job on Web UI</h3>
 

Modified: 
aurora/site/publish/documentation/latest/configuration-reference/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/latest/configuration-reference/index.html?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/publish/documentation/latest/configuration-reference/index.html 
(original)
+++ aurora/site/publish/documentation/latest/configuration-reference/index.html 
Thu Sep 24 05:36:06 2015
@@ -81,6 +81,7 @@
 <ul>
 <li><a href="#job-objects">Job Objects</a></li>
 <li><a href="#services">Services</a></li>
+<li><a href="#revocable-jobs">Revocable Jobs</a></li>
 <li><a href="#updateconfig-objects">UpdateConfig Objects</a></li>
 <li><a href="#healthcheckconfig-objects">HealthCheckConfig Objects</a></li>
 <li><a href="#announcer-objects">Announcer Objects</a></li>
@@ -429,7 +430,7 @@ ordering constraints.</p>
 <h3 id="resource-object">Resource Object</h3>
 
 <p>Specifies the amount of CPU, Ram, and disk resources the task needs. See the
-<a href="/documentation/latest/resource-isolation/">Resource Isolation 
document</a> for suggested values and to understand how
+<a href="/documentation/latest/resources/">Resource Isolation document</a> for 
suggested values and to understand how
 resources are allocated.</p>
 
 <table><thead>
@@ -540,7 +541,7 @@ resources are allocated.</p>
 <tr>
 <td><code>production</code></td>
 <td style="text-align: center">Boolean</td>
-<td>Whether or not this is a production task backed by quota (Default: False). 
Production jobs may preempt any non-production job, and may only be preempted 
by production jobs in the same role and of higher priority. To run jobs at this 
level, the job role must have the appropriate quota. To grant quota to a 
particular role in production, operators use the <code>aurora_admin 
set_quota</code> command.</td>
+<td>Whether or not this is a production task that may <a 
href="resources.md#task-preemption">preempt</a> other tasks (Default: False). 
Production job role must have the appropriate <a 
href="resources.md#resource-quota">quota</a>.</td>
 </tr>
 <tr>
 <td><code>health_check_config</code></td>
@@ -557,6 +558,11 @@ resources are allocated.</p>
 <td style="text-align: center"><code>LifecycleConfig</code> object</td>
 <td>An optional task lifecycle configuration that dictates commands to be 
executed on startup/teardown.  HTTP lifecycle is enabled by default if the 
&ldquo;health&rdquo; port is requested.  See <a 
href="#lifecycleconfig-objects">LifecycleConfig Objects</a> for more 
information.</td>
 </tr>
+<tr>
+<td><code>tier</code></td>
+<td style="text-align: center">String</td>
+<td>Task tier type. When set to <code>revocable</code> requires the task to 
run with Mesos revocable resources. This is work <a 
href="https://issues.apache.org/jira/browse/AURORA-1343";>in progress</a> and is 
currently only supported for the revocable tasks. The ultimate goal is to 
simplify task configuration by hiding various configuration knobs behind a task 
tier definition. See AURORA-1343 and AURORA-1443 for more details.</td>
+</tr>
 </tbody></table>
 
 <h3 id="services">Services</h3>
@@ -569,6 +575,21 @@ Jobs without the service bit set only re
 <code>max_task_failures</code> times and only if they terminated unsuccessfully
 either due to human error or machine failure.</p>
 
+<h3 id="revocable-jobs">Revocable Jobs</h3>
+
+<p><strong>WARNING</strong>: This feature is currently in alpha status. Do not 
use it in production clusters!</p>
+
+<p>Mesos <a 
href="http://mesos.apache.org/documentation/latest/oversubscription/";>supports 
a concept of revocable tasks</a>
+by oversubscribing machine resources by the amount deemed safe to not affect 
the existing
+non-revocable tasks. Aurora now supports revocable jobs via a 
<code>tier</code> setting set to <code>revocable</code>
+value.</p>
+
+<p>More implementation details in this <a 
href="https://issues.apache.org/jira/browse/AURORA-1343";>ticket</a>.</p>
+
+<p>Scheduler must be <a 
href="deploying-aurora-scheduler.md#configuring-resource-oversubscription">configured</a>
+to receive revocable offers from Mesos and accept revocable jobs. If not 
configured properly
+revocable tasks will never get assigned to hosts and will stay in PENDING.</p>
+
 <h3 id="updateconfig-objects">UpdateConfig Objects</h3>
 
 <p>Parameters for controlling the rate and policy of rolling updates.</p>

Modified: 
aurora/site/publish/documentation/latest/configuration-tutorial/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/latest/configuration-tutorial/index.html?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/publish/documentation/latest/configuration-tutorial/index.html 
(original)
+++ aurora/site/publish/documentation/latest/configuration-tutorial/index.html 
Thu Sep 24 05:36:06 2015
@@ -647,12 +647,7 @@ instances/replicas/shards of the Job&rsq
 for which higher values may preempt Tasks from Jobs with lower
 values.</p></li>
 <li><p><code>production</code>: a Boolean, defaulting to <code>False</code>, 
specifying that this
-is a production job backed by quota. Tasks from production Jobs may
-preempt tasks from any non-production job, and may only be preempted
-by tasks from production jobs in the same role with higher
-priority. <strong>WARNING</strong>: To run Jobs at this level, the Job role 
must
-have the appropriate quota. To grant quota to a particular role in
-production, operators use the <code>aurora_admin set_quota</code> 
command.</p></li>
+is a <a href="configuration-reference.md#job-objects">production</a> 
job.</p></li>
 </ul>
 
 <p>The final three Job attributes each take an object as their value.</p>

Modified: 
aurora/site/publish/documentation/latest/deploying-aurora-scheduler/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/latest/deploying-aurora-scheduler/index.html?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- 
aurora/site/publish/documentation/latest/deploying-aurora-scheduler/index.html 
(original)
+++ 
aurora/site/publish/documentation/latest/deploying-aurora-scheduler/index.html 
Thu Sep 24 05:36:06 2015
@@ -61,6 +61,7 @@ machines.  This guide helps you get the
 <li><a href="#network-considerations">Network considerations</a></li>
 <li><a href="#considerations-for-running-jobs-in-docker">Considerations for 
running jobs in docker</a></li>
 <li><a href="#security-considerations">Security Considerations</a></li>
+<li><a href="#configuring-resource-oversubscription">Configuring Resource 
Oversubscription</a></li>
 </ul></li>
 <li><a href="#running-aurora">Running Aurora</a>
 
@@ -75,6 +76,11 @@ machines.  This guide helps you get the
 <li><a href="#example">Example</a></li>
 </ul></li>
 </ul></li>
+<li><a href="#best-practices">Best practices</a>
+
+<ul>
+<li><a href="#diversity">Diversity</a></li>
+</ul></li>
 <li><a href="#common-problems">Common problems</a>
 
 <ul>
@@ -84,9 +90,12 @@ machines.  This guide helps you get the
 <li><a href="#scheduler-not-registered">Scheduler not registered</a></li>
 <li><a href="#symptoms-1">Symptoms</a></li>
 <li><a href="#solution-1">Solution</a></li>
-<li><a href="#tasks-are-stuck-in-pending-forever">Tasks are stuck in PENDING 
forever</a></li>
-<li><a href="#symptoms-2">Symptoms</a></li>
-<li><a href="#solution-2">Solution</a></li>
+</ul></li>
+<li><a href="#changing-scheduler-quorum-size">Changing Scheduler Quorum 
Size</a>
+
+<ul>
+<li><a href="#preparation">Preparation</a></li>
+<li><a href="#adding-new-schedulers">Adding New Schedulers</a></li>
 </ul></li>
 </ul>
 
@@ -264,6 +273,19 @@ restarted.</p>
 
 <p>See <a href="/documentation/latest/security/">security.md</a>.</p>
 
+<h2 id="configuring-resource-oversubscription">Configuring Resource 
Oversubscription</h2>
+
+<p><strong>WARNING</strong>: This feature is currently in alpha status. Do not 
use it in production clusters!
+See <a href="configuration-reference.md#revocable-jobs">this document</a> for 
more feature details.</p>
+
+<p>Set these scheduler flag to allow receiving revocable Mesos offers:</p>
+<pre class="highlight text">-receive_revocable_resources=true
+</pre>
+<p>Specify a tier configuration file path:</p>
+<pre class="highlight text">-tier_config=path/to/tiers/config.json
+</pre>
+<p>Example <a 
href="../src/test/resources/org/apache/aurora/scheduler/tiers-example.json">tier
 configuration file</a>.</p>
+
 <h3 id="maintaining-an-aurora-installation">Maintaining an Aurora 
Installation</h3>
 
 <h3 id="monitoring">Monitoring</h3>
@@ -286,6 +308,9 @@ constraints are arbitrary and available
 <code>dedicated</code> attribute.  Aurora treats this specially, and only 
allows matching jobs to run on these
 machines, and will only schedule matching jobs on these machines.</p>
 
+<p>See the <a href="resources.md#resource-quota">section</a> about resource 
quotas to learn how quotas apply to
+dedicated jobs.</p>
+
 <h5 id="syntax">Syntax</h5>
 
 <p>The dedicated attribute has semantic meaning. The format is 
<code>$role(/.*)?</code>. When a job is created,
@@ -297,7 +322,7 @@ enforce this.</p>
 <h5 id="example">Example</h5>
 
 <p>Consider the following slave command line:</p>
-<pre class="highlight text">mesos-slave 
--attributes=&quot;host:$HOST;rack:$RACK;dedicated:db_team/redis&quot; ...
+<pre class="highlight text">mesos-slave 
--attributes=&quot;dedicated:db_team/redis&quot; ...
 </pre>
 <p>And this job configuration:</p>
 <pre class="highlight text">Service(
@@ -313,6 +338,22 @@ enforce this.</p>
 <code>dedicated:db_team/redis</code>.  Additionally, Aurora will prevent any 
tasks that do <em>not</em> have that
 constraint from running on those slaves.</p>
 
+<h2 id="best-practices">Best practices</h2>
+
+<h3 id="diversity">Diversity</h3>
+
+<p>Data centers are often organized with hierarchical failure domains.  Common 
failure domains
+include hosts, racks, rows, and PDUs.  If you have this information available, 
it is wise to tag
+the mesos-slave with them as
+<a 
href="https://mesos.apache.org/documentation/attributes-resources/";>attributes</a>.</p>
+
+<p>When it comes time to schedule jobs, Aurora will automatically spread them 
across the failure
+domains as specified in the
+<a href="configuration-reference.md#specifying-scheduling-constraints">job 
configuration</a>.</p>
+
+<p>Note: in virtualized environments like EC2, the only attribute that usually 
makes sense for this
+purpose is <code>host</code>.</p>
+
 <h2 id="common-problems">Common problems</h2>
 
 <p>So you&rsquo;ve started your first cluster and are running into some 
issues? We&rsquo;ve collected some common
@@ -354,20 +395,24 @@ the master in ZooKeeper, make sure comma
 <p>is the same as the one on the scheduler:</p>
 <pre class="highlight 
text">-mesos_master_address=zk://$ZK_HOST:2181/mesos/master
 </pre>
-<h3 id="tasks-are-stuck-in-pending-forever">Tasks are stuck in 
<code>PENDING</code> forever</h3>
+<h2 id="changing-scheduler-quorum-size">Changing Scheduler Quorum Size</h2>
 
-<h4 id="symptoms">Symptoms</h4>
+<p>Special care needs to be taken when changing the size of the Aurora 
scheduler quorum.
+Since Aurora uses a Mesos replicated log, similar steps need to be followed as 
when
+<a 
href="http://mesos.apache.org/documentation/latest/operational-guide";>changing 
the mesos quorum size</a>.</p>
 
-<p>The scheduler is registered, and <a 
href="monitoring.md#scheduler_resource_offers">receiving offers</a>,
-but tasks are perpetually shown as <code>PENDING - Constraint not satisfied: 
host</code>.</p>
+<h3 id="preparation">Preparation</h3>
 
-<h4 id="solution">Solution</h4>
+<p>Increase <a 
href="storage-config.md#-native_log_quorum_size">-native<em>log</em>quorum_size</a>
 on each
+existing scheduler and restart them. When updating from 3 to 5 schedulers, the 
quorum size
+would grow from 2 to 3.</p>
 
-<p>Check that your slaves are configured with <code>host</code> and 
<code>rack</code> attributes.  Aurora requires that
-slaves are tagged with these two common failure domains to ensure that it can 
safely place tasks
-such that jobs are resilient to failure.</p>
+<h3 id="adding-new-schedulers">Adding New Schedulers</h3>
 
-<p>See our <a href="examples/vagrant/upstart/mesos-slave.conf">vagrant 
example</a> for details.</p>
+<p>Start the new schedulers with <code>-native_log_quorum_size</code> set to 
the new value. Failing to
+first increase the quorum size on running schedulers can in some cases result 
in corruption
+or truncating of the replicated log used by Aurora. In that case, see the 
documentation on
+<a href="storage-config.md#recovering-from-a-scheduler-backup">recovering from 
backup</a>.</p>
 </div>
 
                </div>

Modified: aurora/site/publish/documentation/latest/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/latest/index.html?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/publish/documentation/latest/index.html (original)
+++ aurora/site/publish/documentation/latest/index.html Thu Sep 24 05:36:06 2015
@@ -72,7 +72,7 @@
 <li><a href="/documentation/latest/storage/">Scheduler Storage</a></li>
 <li><a href="/documentation/latest/storage-config/">Scheduler Storage and 
Maintenance</a></li>
 <li><a href="/documentation/latest/sla/">SLA Measurement</a></li>
-<li><a href="/documentation/latest/resource-isolation/">Resource Isolation and 
Sizing</a></li>
+<li><a href="/documentation/latest/resources/">Resource Isolation and 
Sizing</a></li>
 <li><a href="/documentation/latest/test-resource-generation/">Generating test 
resources</a></li>
 </ul>
 

Added: aurora/site/publish/documentation/latest/resources/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/latest/resources/index.html?rev=1704991&view=auto
==============================================================================
--- aurora/site/publish/documentation/latest/resources/index.html (added)
+++ aurora/site/publish/documentation/latest/resources/index.html Thu Sep 24 
05:36:06 2015
@@ -0,0 +1,239 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+       <title>Apache Aurora</title>
+    <link rel="stylesheet" 
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css";>
+    <link href="/assets/css/main.css" rel="stylesheet">
+       <!-- Analytics -->
+       <script type="text/javascript">
+                 var _gaq = _gaq || [];
+                 _gaq.push(['_setAccount', 'UA-45879646-1']);
+                 _gaq.push(['_setDomainName', 'apache.org']);
+                 _gaq.push(['_trackPageview']);
+
+                 (function() {
+                   var ga = document.createElement('script'); ga.type = 
'text/javascript'; ga.async = true;
+                   ga.src = ('https:' == document.location.protocol ? 
'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                   var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+                 })();
+       </script>
+  </head>
+  <body>
+         
+        <div class="container-fluid section-header">
+  <div class="container">
+    <div class="nav nav-bar">
+    <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300" 
alt="Transparent Apache Aurora logo with dark background"/></a>
+       <ul class="nav navbar-nav navbar-right">
+      <li><a href="/documentation/latest/">Documentation</a></li>
+      <li><a href="/community/">Community</a></li>
+      <li><a href="/downloads/">Downloads</a></li>
+      <li><a href="/blog/">Blog</a></li>
+    </ul>
+    </div>
+  </div>
+</div> 
+         <div class="container-fluid">
+               <div class="container content">
+          <div class="col-md-12 documentation">
+<h5 class="page-header text-uppercase">Documentation</h5>
+<h1 id="resources-and-sizing">Resources and Sizing</h1>
+
+<ul>
+<li><a href="#introduction">Introduction</a></li>
+<li><a href="#cpu-isolation">CPU Isolation</a></li>
+<li><a href="#cpu-sizing">CPU Sizing</a></li>
+<li><a href="#memory-isolation">Memory Isolation</a></li>
+<li><a href="#memory-sizing">Memory Sizing</a></li>
+<li><a href="#disk-space">Disk Space</a></li>
+<li><a href="#disk-space-sizing">Disk Space Sizing</a></li>
+<li><a href="#other-resources">Other Resources</a></li>
+<li><a href="#resource-quota">Resource Quota</a></li>
+<li><a href="#task-preemption">Task Preemption</a></li>
+</ul>
+
+<h2 id="introduction">Introduction</h2>
+
+<p>Aurora is a multi-tenant system; a single software instance runs on a
+server, serving multiple clients/tenants. To share resources among
+tenants, it implements isolation of:</p>
+
+<ul>
+<li>CPU</li>
+<li>memory</li>
+<li>disk space</li>
+</ul>
+
+<p>CPU is a soft limit, and handled differently from memory and disk space.
+Too low a CPU value results in throttling your application and
+slowing it down. Memory and disk space are both hard limits; when your
+application goes over these values, it&rsquo;s killed.</p>
+
+<p>Let&rsquo;s look at each resource type in more detail:</p>
+
+<h2 id="cpu-isolation">CPU Isolation</h2>
+
+<p>Mesos uses a quota based CPU scheduler (the <em>Completely Fair 
Scheduler</em>)
+to provide consistent and predictable performance.  This is effectively
+a guarantee of resources &ndash; you receive at least what you requested, but
+also no more than you&rsquo;ve requested.</p>
+
+<p>The scheduler gives applications a CPU quota for every 100 ms interval.
+When an application uses its quota for an interval, it is throttled for
+the rest of the 100 ms. Usage resets for each interval and unused
+quota does not carry over.</p>
+
+<p>For example, an application specifying 4.0 CPU has access to 400 ms of
+CPU time every 100 ms. This CPU quota can be used in different ways,
+depending on the application and available resources. Consider the
+scenarios shown in this diagram.</p>
+
+<p><img alt="CPU Availability" src="../images/CPUavailability.png" /></p>
+
+<ul>
+<li><p><em>Scenario A</em>: the application can use up to 4 cores continuously 
for
+every 100 ms interval. It is never throttled and starts processing
+new requests immediately.</p></li>
+<li><p><em>Scenario B</em> : the application uses up to 8 cores (depending on
+availability) but is throttled after 50 ms. The CPU quota resets at the
+start of each new 100 ms interval.</p></li>
+<li><p><em>Scenario C</em> : is like Scenario A, but there is a garbage 
collection
+event in the second interval that consumes all CPU quota. The
+application throttles for the remaining 75 ms of that interval and
+cannot service requests until the next interval. In this example, the
+garbage collection finished in one interval but, depending on how much
+garbage needs collecting, it may take more than one interval and further
+delay service of requests.</p></li>
+</ul>
+
+<p><em>Technical Note</em>: Mesos considers logical cores, also known as
+hyperthreading or SMT cores, as the unit of CPU.</p>
+
+<h2 id="cpu-sizing">CPU Sizing</h2>
+
+<p>To correctly size Aurora-run Mesos tasks, specify a per-shard CPU value
+that lets the task run at its desired performance when at peak load
+distributed across all shards. Include reserve capacity of at least 50%,
+possibly more, depending on how critical your service is (or how
+confident you are about your original estimate : -)), ideally by
+increasing the number of shards to also improve resiliency. When running
+your application, observe its CPU stats over time. If consistently at or
+near your quota during peak load, you should consider increasing either
+per-shard CPU or the number of shards.</p>
+
+<h2 id="memory-isolation">Memory Isolation</h2>
+
+<p>Mesos uses dedicated memory allocation. Your application always has
+access to the amount of memory specified in your configuration. The
+application&rsquo;s memory use is defined as the sum of the resident set size
+(RSS) of all processes in a shard. Each shard is considered
+independently.</p>
+
+<p>In other words, say you specified a memory size of 10GB. Each shard
+would receive 10GB of memory. If an individual shard&rsquo;s memory demands
+exceed 10GB, that shard is killed, but the other shards continue
+working.</p>
+
+<p><em>Technical note</em>: Total memory size is not enforced at allocation 
time,
+so your application can request more than its allocation without getting
+an ENOMEM. However, it will be killed shortly after.</p>
+
+<h2 id="memory-sizing">Memory Sizing</h2>
+
+<p>Size for your application&rsquo;s peak requirement. Observe the per-instance
+memory statistics over time, as memory requirements can vary over
+different periods. Remember that if your application exceeds its memory
+value, it will be killed, so you should also add a safety margin of
+around 10-20%. If you have the ability to do so, you may also want to
+put alerts on the per-instance memory.</p>
+
+<h2 id="disk-space">Disk Space</h2>
+
+<p>Disk space used by your application is defined as the sum of the 
files&rsquo;
+disk space in your application&rsquo;s directory, including the 
<code>stdout</code> and
+<code>stderr</code> logged from your application. Each shard is considered
+independently. You should use off-node storage for your application&rsquo;s
+data whenever possible.</p>
+
+<p>In other words, say you specified disk space size of 100MB. Each shard
+would receive 100MB of disk space. If an individual shard&rsquo;s disk space
+demands exceed 100MB, that shard is killed, but the other shards
+continue working.</p>
+
+<p>After your application finishes running, its allocated disk space is
+reclaimed. Thus, your job&rsquo;s final action should move any disk content
+that you want to keep, such as logs, to your home file system or other
+less transitory storage. Disk reclamation takes place an undefined
+period after the application finish time; until then, the disk contents
+are still available but you shouldn&rsquo;t count on them being so.</p>
+
+<p><em>Technical note</em> : Disk space is not enforced at write so your
+application can write above its quota without getting an ENOSPC, but it
+will be killed shortly after. This is subject to change.</p>
+
+<h2 id="disk-space-sizing">Disk Space Sizing</h2>
+
+<p>Size for your application&rsquo;s peak requirement. Rotate and discard log
+files as needed to stay within your quota. When running a Java process,
+add the maximum size of the Java heap to your disk space requirement, in
+order to account for an out of memory error dumping the heap
+into the application&rsquo;s sandbox space.</p>
+
+<h2 id="other-resources">Other Resources</h2>
+
+<p>Other resources, such as network bandwidth, do not have any performance
+guarantees. For some resources, such as memory bandwidth, there are no
+practical sharing methods so some application combinations collocated on
+the same host may cause contention.</p>
+
+<h2 id="resource-quota">Resource Quota</h2>
+
+<p>Aurora requires resource quotas for
+<a href="configuration-reference.md#job-objects">production non-dedicated 
jobs</a>. Quota is enforced at
+the job role level and when set, defines a non-preemptible pool of compute 
resources within
+that role.</p>
+
+<p>To grant quota to a particular role in production use <code>aurora_admin 
set_quota</code> command.</p>
+
+<p>NOTE: all job types (service, adhoc or cron) require role resource quota 
unless a job has
+<a href="deploying-aurora-scheduler.md#dedicated-attribute">dedicated 
constraint set</a>.</p>
+
+<h2 id="task-preemption">Task preemption</h2>
+
+<p>Under a particular resource shortage pressure, tasks from
+<a href="configuration-reference.md#job-objects">production</a> jobs may 
preempt tasks from any non-production
+job. A production task may only be preempted by tasks from production jobs in 
the same role with
+higher <a href="configuration-reference.md#job-objects">priority</a>.</p>
+</div>
+
+               </div>
+         </div>
+         
+       <div class="container-fluid section-footer buffer">
+      <div class="container">
+        <div class="row">
+                 <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3>
+                 <ul>
+                   <li><a href="/downloads/">Downloads</a></li>
+            <li><a href="/community/">Mailing Lists</a></li>
+                       <li><a 
href="http://issues.apache.org/jira/browse/AURORA";>Issue Tracking</a></li>
+                       <li><a href="/documentation/latest/contributing/">How 
To Contribute</a></li>     
+                 </ul>
+             </div>
+                 <div class="col-md-2"><h3>The ASF</h3>
+          <ul>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>  
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+            <li><a href="http://www.apache.org/security/";>Security</a></li>
+          </ul>
+                 </div>
+                 <div class="col-md-6">
+                       <p class="disclaimer">Copyright 2014 <a 
href="http://www.apache.org/";>Apache Software Foundation</a>. Licensed under 
the <a href="http://www.apache.org/licenses/";>Apache License v2.0</a>. The <a 
href="https://www.flickr.com/photos/trondk/12706051375/";>Aurora Borealis IX 
photo</a> displayed on the homepage is available under a <a 
href="https://creativecommons.org/licenses/by-nc-nd/2.0/";>Creative Commons 
BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo 
are trademarks of The Apache Software Foundation.</p>
+        </div>
+      </div>
+    </div>
+       </body>
+</html>
\ No newline at end of file

Modified: aurora/site/publish/documentation/latest/tutorial/index.html
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/documentation/latest/tutorial/index.html?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/publish/documentation/latest/tutorial/index.html (original)
+++ aurora/site/publish/documentation/latest/tutorial/index.html Thu Sep 24 
05:36:06 2015
@@ -68,8 +68,8 @@ hierarchy is:</p>
 <p>This is the recommended first Aurora users document to read to start
 getting up to speed on the system.</p>
 
-<p>To get help, email questions to the Aurora User List,
-<a href="mailto:u...@aurora.apache.org";>u...@aurora.apache.org</a></p>
+<p>To get help, email questions to the Aurora Developer List,
+<a href="mailto:d...@aurora.apache.org";>d...@aurora.apache.org</a></p>
 
 <h2 id="setup-install-aurora">Setup: Install Aurora</h2>
 

Modified: aurora/site/publish/sitemap.xml
URL: 
http://svn.apache.org/viewvc/aurora/site/publish/sitemap.xml?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/publish/sitemap.xml (original)
+++ aurora/site/publish/sitemap.xml Thu Sep 24 05:36:06 2015
@@ -2,158 +2,158 @@
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";>
   <url>
     <loc>http://aurora.apache.org/blog/aurora-0-6-0-incubating-released/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/blog/aurora-0-7-0-incubating-released/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     
<loc>http://aurora.apache.org/blog/2015-upcoming-apache-aurora-meetups/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/blog/aurora-0-8-0-released/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/blog/aurora-0-9-0-released/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/blog/aurora-at-mesoscon-seattle/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/blog/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/community/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/developers/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/docs/gettingstarted/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/docs/howtocontribute/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/build-system/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     
<loc>http://aurora.apache.org/documentation/latest/client-cluster-configuration/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/client-commands/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/committers/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     
<loc>http://aurora.apache.org/documentation/latest/configuration-reference/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     
<loc>http://aurora.apache.org/documentation/latest/configuration-tutorial/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/contributing/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/cron-jobs/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     
<loc>http://aurora.apache.org/documentation/latest/deploying-aurora-scheduler/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     
<loc>http://aurora.apache.org/documentation/latest/developing-aurora-client/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     
<loc>http://aurora.apache.org/documentation/latest/developing-aurora-scheduler/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/hooks/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/monitoring/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/presentations/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
-    
<loc>http://aurora.apache.org/documentation/latest/resource-isolation/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <loc>http://aurora.apache.org/documentation/latest/resources/</loc>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/scheduler-storage/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/security/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/sla/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/storage-config/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/storage/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     
<loc>http://aurora.apache.org/documentation/latest/test-resource-generation/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     
<loc>http://aurora.apache.org/documentation/latest/thrift-deprecation/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/tutorial/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/user-guide/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/vagrant/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/documentation/latest/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/downloads/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
   <url>
     <loc>http://aurora.apache.org/</loc>
-    <lastmod>2015-09-14T00:00:00-07:00</lastmod>
+    <lastmod>2015-09-23T00:00:00-07:00</lastmod>
   </url>
 </urlset>
\ No newline at end of file

Modified: aurora/site/source/documentation/latest.html.md
URL: 
http://svn.apache.org/viewvc/aurora/site/source/documentation/latest.html.md?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/source/documentation/latest.html.md (original)
+++ aurora/site/source/documentation/latest.html.md Thu Sep 24 05:36:06 2015
@@ -23,7 +23,7 @@ We encourage you to ask questions on the
  * [Scheduler Storage](/documentation/latest/storage/)
  * [Scheduler Storage and Maintenance](/documentation/latest/storage-config/)
  * [SLA Measurement](/documentation/latest/sla/)
- * [Resource Isolation and Sizing](/documentation/latest/resource-isolation/)
+ * [Resource Isolation and Sizing](/documentation/latest/resources/)
  * [Generating test resources](/documentation/latest/test-resource-generation/)
 
 ## Developers

Modified: aurora/site/source/documentation/latest/client-commands.md
URL: 
http://svn.apache.org/viewvc/aurora/site/source/documentation/latest/client-commands.md?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/source/documentation/latest/client-commands.md (original)
+++ aurora/site/source/documentation/latest/client-commands.md Thu Sep 24 
05:36:06 2015
@@ -332,7 +332,8 @@ configuration file, and displays the par
     aurora quota get CLUSTER/ROLE
 
   Prints the production quota allocated to the role's value at the given
-cluster.
+cluster. Only 
non-[dedicated](deploying-aurora-scheduler.md#dedicated-attribute)
+[production](configuration-reference.md#job-objects) jobs consume quota.
 
 ### Finding a Job on Web UI
 

Modified: aurora/site/source/documentation/latest/configuration-reference.md
URL: 
http://svn.apache.org/viewvc/aurora/site/source/documentation/latest/configuration-reference.md?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/source/documentation/latest/configuration-reference.md 
(original)
+++ aurora/site/source/documentation/latest/configuration-reference.md Thu Sep 
24 05:36:06 2015
@@ -26,6 +26,7 @@ Aurora + Thermos Configuration Reference
 - [Job Schema](#job-schema)
     - [Job Objects](#job-objects)
     - [Services](#services)
+    - [Revocable Jobs](#revocable-jobs)
     - [UpdateConfig Objects](#updateconfig-objects)
     - [HealthCheckConfig Objects](#healthcheckconfig-objects)
     - [Announcer Objects](#announcer-objects)
@@ -293,7 +294,7 @@ ordering constraints.
 ### Resource Object
 
 Specifies the amount of CPU, Ram, and disk resources the task needs. See the
-[Resource Isolation document](/documentation/latest/resource-isolation/) for 
suggested values and to understand how
+[Resource Isolation document](/documentation/latest/resources/) for suggested 
values and to understand how
 resources are allocated.
 
   param      | type    | description
@@ -324,10 +325,11 @@ Job Schema
   ```service``` | Boolean | If True, restart tasks regardless of success or 
failure. (Default: False)
   ```max_task_failures``` | Integer | Maximum number of failures after which 
the task is considered to have failed (Default: 1) Set to -1 to allow for 
infinite failures
   ```priority``` | Integer | Preemption priority to give the task (Default 0). 
Tasks with higher priorities may preempt tasks at lower priorities.
-  ```production``` | Boolean |  Whether or not this is a production task 
backed by quota (Default: False). Production jobs may preempt any 
non-production job, and may only be preempted by production jobs in the same 
role and of higher priority. To run jobs at this level, the job role must have 
the appropriate quota. To grant quota to a particular role in production, 
operators use the ``aurora_admin set_quota`` command.
+  ```production``` | Boolean |  Whether or not this is a production task that 
may [preempt](resources.md#task-preemption) other tasks (Default: False). 
Production job role must have the appropriate 
[quota](resources.md#resource-quota).
   ```health_check_config``` | ```heath_check_config``` object | Parameters for 
controlling a task's health checks via HTTP. Only used if a  health port was 
assigned with a command line wildcard.
   ```container``` | ```Container``` object | An optional container to run all 
processes inside of.
   ```lifecycle``` | ```LifecycleConfig``` object | An optional task lifecycle 
configuration that dictates commands to be executed on startup/teardown.  HTTP 
lifecycle is enabled by default if the "health" port is requested.  See 
[LifecycleConfig Objects](#lifecycleconfig-objects) for more information.
+  ```tier``` | String | Task tier type. When set to `revocable` requires the 
task to run with Mesos revocable resources. This is work [in 
progress](https://issues.apache.org/jira/browse/AURORA-1343) and is currently 
only supported for the revocable tasks. The ultimate goal is to simplify task 
configuration by hiding various configuration knobs behind a task tier 
definition. See AURORA-1343 and AURORA-1443 for more details.
 
 ### Services
 
@@ -339,6 +341,21 @@ Jobs without the service bit set only re
 `max_task_failures` times and only if they terminated unsuccessfully
 either due to human error or machine failure.
 
+### Revocable Jobs
+
+**WARNING**: This feature is currently in alpha status. Do not use it in 
production clusters!
+
+Mesos [supports a concept of revocable 
tasks](http://mesos.apache.org/documentation/latest/oversubscription/)
+by oversubscribing machine resources by the amount deemed safe to not affect 
the existing
+non-revocable tasks. Aurora now supports revocable jobs via a `tier` setting 
set to `revocable`
+value.
+
+More implementation details in this 
[ticket](https://issues.apache.org/jira/browse/AURORA-1343).
+
+Scheduler must be 
[configured](deploying-aurora-scheduler.md#configuring-resource-oversubscription)
+to receive revocable offers from Mesos and accept revocable jobs. If not 
configured properly
+revocable tasks will never get assigned to hosts and will stay in PENDING.
+
 ### UpdateConfig Objects
 
 Parameters for controlling the rate and policy of rolling updates.

Modified: aurora/site/source/documentation/latest/configuration-tutorial.md
URL: 
http://svn.apache.org/viewvc/aurora/site/source/documentation/latest/configuration-tutorial.md?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/source/documentation/latest/configuration-tutorial.md (original)
+++ aurora/site/source/documentation/latest/configuration-tutorial.md Thu Sep 
24 05:36:06 2015
@@ -581,12 +581,7 @@ Three attributes deal with configuring t
     values.
 
 -   `production`: a Boolean, defaulting to `False`, specifying that this
-    is a production job backed by quota. Tasks from production Jobs may
-    preempt tasks from any non-production job, and may only be preempted
-    by tasks from production jobs in the same role with higher
-    priority. **WARNING**: To run Jobs at this level, the Job role must
-    have the appropriate quota. To grant quota to a particular role in
-    production, operators use the ``aurora_admin set_quota`` command.
+    is a [production](configuration-reference.md#job-objects) job.
 
 The final three Job attributes each take an object as their value.
 

Modified: aurora/site/source/documentation/latest/deploying-aurora-scheduler.md
URL: 
http://svn.apache.org/viewvc/aurora/site/source/documentation/latest/deploying-aurora-scheduler.md?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/source/documentation/latest/deploying-aurora-scheduler.md 
(original)
+++ aurora/site/source/documentation/latest/deploying-aurora-scheduler.md Thu 
Sep 24 05:36:06 2015
@@ -14,6 +14,7 @@ machines.  This guide helps you get the
   - [Network considerations](#network-considerations)
   - [Considerations for running jobs in 
docker](#considerations-for-running-jobs-in-docker)
   - [Security Considerations](#security-considerations)
+  - [Configuring Resource 
Oversubscription](#configuring-resource-oversubscription)
 - [Running Aurora](#running-aurora)
   - [Maintaining an Aurora Installation](#maintaining-an-aurora-installation)
   - [Monitoring](#monitoring)
@@ -21,6 +22,8 @@ machines.  This guide helps you get the
     - [Dedicated attribute](#dedicated-attribute)
       - [Syntax](#syntax)
       - [Example](#example)
+- [Best practices](#best-practices)
+  - [Diversity](#diversity)
 - [Common problems](#common-problems)
   - [Replicated log not initialized](#replicated-log-not-initialized)
     - [Symptoms](#symptoms)
@@ -28,9 +31,9 @@ machines.  This guide helps you get the
   - [Scheduler not registered](#scheduler-not-registered)
     - [Symptoms](#symptoms-1)
     - [Solution](#solution-1)
-  - [Tasks are stuck in PENDING forever](#tasks-are-stuck-in-pending-forever)
-    - [Symptoms](#symptoms-2)
-    - [Solution](#solution-2)
+- [Changing Scheduler Quorum Size](#changing-scheduler-quorum-size)
+    - [Preparation](#preparation)
+    - [Adding New Schedulers](#adding-new-schedulers)
 
 ## Installing Aurora
 The Aurora scheduler is a standalone Java server. As part of the build process 
it creates a bundle
@@ -188,6 +191,21 @@ assuming you set `-http_port=8081`.
 
 See [security.md](/documentation/latest/security/).
 
+## Configuring Resource Oversubscription
+
+**WARNING**: This feature is currently in alpha status. Do not use it in 
production clusters!
+See [this document](configuration-reference.md#revocable-jobs) for more 
feature details.
+
+Set these scheduler flag to allow receiving revocable Mesos offers:
+
+    -receive_revocable_resources=true
+
+Specify a tier configuration file path:
+
+    -tier_config=path/to/tiers/config.json
+
+Example [tier configuration 
file](../src/test/resources/org/apache/aurora/scheduler/tiers-example.json).
+
 ### Maintaining an Aurora Installation
 
 ### Monitoring
@@ -207,6 +225,9 @@ constraints are arbitrary and available
 `dedicated` attribute.  Aurora treats this specially, and only allows matching 
jobs to run on these
 machines, and will only schedule matching jobs on these machines.
 
+See the [section](resources.md#resource-quota) about resource quotas to learn 
how quotas apply to
+dedicated jobs.
+
 ##### Syntax
 The dedicated attribute has semantic meaning. The format is `$role(/.*)?`. 
When a job is created,
 the scheduler requires that the `$role` component matches the `role` field in 
the job
@@ -217,7 +238,7 @@ enforce this.
 ##### Example
 Consider the following slave command line:
 
-    mesos-slave --attributes="host:$HOST;rack:$RACK;dedicated:db_team/redis" 
...
+    mesos-slave --attributes="dedicated:db_team/redis" ...
 
 And this job configuration:
 
@@ -234,6 +255,19 @@ The job configuration is indicating that
 `dedicated:db_team/redis`.  Additionally, Aurora will prevent any tasks that 
do _not_ have that
 constraint from running on those slaves.
 
+## Best practices
+### Diversity
+Data centers are often organized with hierarchical failure domains.  Common 
failure domains
+include hosts, racks, rows, and PDUs.  If you have this information available, 
it is wise to tag
+the mesos-slave with them as
+[attributes](https://mesos.apache.org/documentation/attributes-resources/).
+
+When it comes time to schedule jobs, Aurora will automatically spread them 
across the failure
+domains as specified in the
+[job 
configuration](configuration-reference.md#specifying-scheduling-constraints).
+
+Note: in virtualized environments like EC2, the only attribute that usually 
makes sense for this
+purpose is `host`.
 
 ## Common problems
 So you've started your first cluster and are running into some issues? We've 
collected some common
@@ -275,15 +309,18 @@ is the same as the one on the scheduler:
 
     -mesos_master_address=zk://$ZK_HOST:2181/mesos/master
 
-### Tasks are stuck in `PENDING` forever
-
-#### Symptoms
-The scheduler is registered, and [receiving 
offers](monitoring.md#scheduler_resource_offers),
-but tasks are perpetually shown as `PENDING - Constraint not satisfied: host`.
-
-#### Solution
-Check that your slaves are configured with `host` and `rack` attributes.  
Aurora requires that
-slaves are tagged with these two common failure domains to ensure that it can 
safely place tasks
-such that jobs are resilient to failure.
-
-See our [vagrant example](examples/vagrant/upstart/mesos-slave.conf) for 
details.
+## Changing Scheduler Quorum Size
+Special care needs to be taken when changing the size of the Aurora scheduler 
quorum.
+Since Aurora uses a Mesos replicated log, similar steps need to be followed as 
when
+[changing the mesos quorum 
size](http://mesos.apache.org/documentation/latest/operational-guide).
+
+### Preparation
+Increase [-native_log_quorum_size](storage-config.md#-native_log_quorum_size) 
on each
+existing scheduler and restart them. When updating from 3 to 5 schedulers, the 
quorum size
+would grow from 2 to 3.
+
+### Adding New Schedulers
+Start the new schedulers with `-native_log_quorum_size` set to the new value. 
Failing to
+first increase the quorum size on running schedulers can in some cases result 
in corruption
+or truncating of the replicated log used by Aurora. In that case, see the 
documentation on
+[recovering from backup](storage-config.md#recovering-from-a-scheduler-backup).

Added: aurora/site/source/documentation/latest/resources.md
URL: 
http://svn.apache.org/viewvc/aurora/site/source/documentation/latest/resources.md?rev=1704991&view=auto
==============================================================================
--- aurora/site/source/documentation/latest/resources.md (added)
+++ aurora/site/source/documentation/latest/resources.md Thu Sep 24 05:36:06 
2015
@@ -0,0 +1,164 @@
+Resources and Sizing
+=============================
+
+- [Introduction](#introduction)
+- [CPU Isolation](#cpu-isolation)
+- [CPU Sizing](#cpu-sizing)
+- [Memory Isolation](#memory-isolation)
+- [Memory Sizing](#memory-sizing)
+- [Disk Space](#disk-space)
+- [Disk Space Sizing](#disk-space-sizing)
+- [Other Resources](#other-resources)
+- [Resource Quota](#resource-quota)
+- [Task Preemption](#task-preemption)
+
+## Introduction
+
+Aurora is a multi-tenant system; a single software instance runs on a
+server, serving multiple clients/tenants. To share resources among
+tenants, it implements isolation of:
+
+* CPU
+* memory
+* disk space
+
+CPU is a soft limit, and handled differently from memory and disk space.
+Too low a CPU value results in throttling your application and
+slowing it down. Memory and disk space are both hard limits; when your
+application goes over these values, it's killed.
+
+Let's look at each resource type in more detail:
+
+## CPU Isolation
+
+Mesos uses a quota based CPU scheduler (the *Completely Fair Scheduler*)
+to provide consistent and predictable performance.  This is effectively
+a guarantee of resources -- you receive at least what you requested, but
+also no more than you've requested.
+
+The scheduler gives applications a CPU quota for every 100 ms interval.
+When an application uses its quota for an interval, it is throttled for
+the rest of the 100 ms. Usage resets for each interval and unused
+quota does not carry over.
+
+For example, an application specifying 4.0 CPU has access to 400 ms of
+CPU time every 100 ms. This CPU quota can be used in different ways,
+depending on the application and available resources. Consider the
+scenarios shown in this diagram.
+
+![CPU Availability](images/CPUavailability.png)
+
+* *Scenario A*: the application can use up to 4 cores continuously for
+every 100 ms interval. It is never throttled and starts processing
+new requests immediately.
+
+* *Scenario B* : the application uses up to 8 cores (depending on
+availability) but is throttled after 50 ms. The CPU quota resets at the
+start of each new 100 ms interval.
+
+* *Scenario C* : is like Scenario A, but there is a garbage collection
+event in the second interval that consumes all CPU quota. The
+application throttles for the remaining 75 ms of that interval and
+cannot service requests until the next interval. In this example, the
+garbage collection finished in one interval but, depending on how much
+garbage needs collecting, it may take more than one interval and further
+delay service of requests.
+
+*Technical Note*: Mesos considers logical cores, also known as
+hyperthreading or SMT cores, as the unit of CPU.
+
+## CPU Sizing
+
+To correctly size Aurora-run Mesos tasks, specify a per-shard CPU value
+that lets the task run at its desired performance when at peak load
+distributed across all shards. Include reserve capacity of at least 50%,
+possibly more, depending on how critical your service is (or how
+confident you are about your original estimate : -)), ideally by
+increasing the number of shards to also improve resiliency. When running
+your application, observe its CPU stats over time. If consistently at or
+near your quota during peak load, you should consider increasing either
+per-shard CPU or the number of shards.
+
+## Memory Isolation
+
+Mesos uses dedicated memory allocation. Your application always has
+access to the amount of memory specified in your configuration. The
+application's memory use is defined as the sum of the resident set size
+(RSS) of all processes in a shard. Each shard is considered
+independently.
+
+In other words, say you specified a memory size of 10GB. Each shard
+would receive 10GB of memory. If an individual shard's memory demands
+exceed 10GB, that shard is killed, but the other shards continue
+working.
+
+*Technical note*: Total memory size is not enforced at allocation time,
+so your application can request more than its allocation without getting
+an ENOMEM. However, it will be killed shortly after.
+
+## Memory Sizing
+
+Size for your application's peak requirement. Observe the per-instance
+memory statistics over time, as memory requirements can vary over
+different periods. Remember that if your application exceeds its memory
+value, it will be killed, so you should also add a safety margin of
+around 10-20%. If you have the ability to do so, you may also want to
+put alerts on the per-instance memory.
+
+## Disk Space
+
+Disk space used by your application is defined as the sum of the files'
+disk space in your application's directory, including the `stdout` and
+`stderr` logged from your application. Each shard is considered
+independently. You should use off-node storage for your application's
+data whenever possible.
+
+In other words, say you specified disk space size of 100MB. Each shard
+would receive 100MB of disk space. If an individual shard's disk space
+demands exceed 100MB, that shard is killed, but the other shards
+continue working.
+
+After your application finishes running, its allocated disk space is
+reclaimed. Thus, your job's final action should move any disk content
+that you want to keep, such as logs, to your home file system or other
+less transitory storage. Disk reclamation takes place an undefined
+period after the application finish time; until then, the disk contents
+are still available but you shouldn't count on them being so.
+
+*Technical note* : Disk space is not enforced at write so your
+application can write above its quota without getting an ENOSPC, but it
+will be killed shortly after. This is subject to change.
+
+## Disk Space Sizing
+
+Size for your application's peak requirement. Rotate and discard log
+files as needed to stay within your quota. When running a Java process,
+add the maximum size of the Java heap to your disk space requirement, in
+order to account for an out of memory error dumping the heap
+into the application's sandbox space.
+
+## Other Resources
+
+Other resources, such as network bandwidth, do not have any performance
+guarantees. For some resources, such as memory bandwidth, there are no
+practical sharing methods so some application combinations collocated on
+the same host may cause contention.
+
+## Resource Quota
+
+Aurora requires resource quotas for
+[production non-dedicated jobs](configuration-reference.md#job-objects). Quota 
is enforced at
+the job role level and when set, defines a non-preemptible pool of compute 
resources within
+that role.
+
+To grant quota to a particular role in production use `aurora_admin set_quota` 
command.
+
+NOTE: all job types (service, adhoc or cron) require role resource quota 
unless a job has
+[dedicated constraint set](deploying-aurora-scheduler.md#dedicated-attribute).
+
+## Task preemption
+
+Under a particular resource shortage pressure, tasks from
+[production](configuration-reference.md#job-objects) jobs may preempt tasks 
from any non-production
+job. A production task may only be preempted by tasks from production jobs in 
the same role with
+higher [priority](configuration-reference.md#job-objects).
\ No newline at end of file

Modified: aurora/site/source/documentation/latest/tutorial.md
URL: 
http://svn.apache.org/viewvc/aurora/site/source/documentation/latest/tutorial.md?rev=1704991&r1=1704990&r2=1704991&view=diff
==============================================================================
--- aurora/site/source/documentation/latest/tutorial.md (original)
+++ aurora/site/source/documentation/latest/tutorial.md Thu Sep 24 05:36:06 2015
@@ -24,8 +24,8 @@ hierarchy is:
 This is the recommended first Aurora users document to read to start
 getting up to speed on the system.
 
-To get help, email questions to the Aurora User List,
-[u...@aurora.apache.org](mailto:u...@aurora.apache.org)
+To get help, email questions to the Aurora Developer List,
+[d...@aurora.apache.org](mailto:d...@aurora.apache.org)
 
 ## Setup: Install Aurora
 


Reply via email to