You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by dl...@apache.org on 2014/01/21 00:10:04 UTC

svn commit: r1559850 [7/19] - in /mesos/site: ./ publish/ publish/assets/ publish/assets/css/ publish/assets/font/ publish/assets/img/ publish/assets/img/documentation/ publish/assets/js/ publish/assets/papers/ publish/blog/ publish/blog/framework-auth...

Added: mesos/site/publish/blog/mesos-0-14-2-released/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/blog/mesos-0-14-2-released/index.html?rev=1559850&view=auto
==============================================================================
--- mesos/site/publish/blog/mesos-0-14-2-released/index.html (added)
+++ mesos/site/publish/blog/mesos-0-14-2-released/index.html Mon Jan 20 23:10:00 2014
@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<!--
+
+		 ______                           __                
+		/\  _  \                         /\ \               
+		\ \ \L\ \  _____      __      ___\ \ \___      __   
+		 \ \  __ \/\ '__`\  /'__`\   /'___\ \  _ `\  /'__`\ 
+		  \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\  __/ 
+		   \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\
+		    \/_/\/_/\ \ \/  \/__/\/_/\/____/ \/_/\/_/\/____/
+		             \ \_\                                  
+		              \/_/                                  
+                                                    
+		       /'\_/`\                                      
+		      /\      \     __    ____    ___     ____      
+		      \ \ \__\ \  /'__`\ /',__\  / __`\  /',__\     
+		       \ \ \_/\ \/\  __//\__, `\/\ \L\ \/\__, `\    
+		        \ \_\\ \_\ \____\/\____/\ \____/\/\____/    
+		         \/_/ \/_/\/____/\/___/  \/___/  \/___/     
+		
+-->
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title>Apache Mesos 0.14.2 Released</title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <!-- Le styles -->
+		    <link href="../../assets/css/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/bootstrap-responsive.min.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+		  
+		    <!-- JS -->
+		    <script src="../../assets/js/jquery-1.10.1.min.js" type="text/javascript"></script>
+		    <script src="../../assets/js/bootstrap-dropdown.js" type="text/javascript"></script>
+		
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-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>			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+	          <ul class="nav">
+	            <li><a href="/gettingstarted/">Getting Started</a></li>
+	            <li><a href="/documentation/latest/">Documentation</a></li>
+	            <li><a href="/downloads/">Downloads</a></li>
+	            <li><a href="/community/">Community</a></li>
+	          </ul>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+
+      <div class="container">
+
+			<!-- magical breadcrumbs -->
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+					  <ul class="dropdown-menu" role="menu">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<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>
+				</li>
+				<li><span class="divider">></span></li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+			</ul><!-- /breadcrumb -->
+
+			<div class="row-fluid">
+
+<div class="span3">
+	<div class="meta">
+		<span class="author">
+			
+			  <img src="http://www.gravatar.com/avatar/fb43656d4d45f940160c3226c53309f5?s=80" class="author_gravatar">
+			
+			<span class="author_contact">
+			  <p><strong>Ben Mahler</strong></p>
+			  <p><a href="http://twitter.com/bmahler">@bmahler</a></p>
+			</span>
+		</span>
+		<p><em>Posted November 12, 2013</em></p>
+	</div>
+	
+	<div class="share">
+		<span class="social-share-button"><a href="https://twitter.com/share" class="twitter-share-button" data-via="apachemesos">Tweet</a></span>
+		
+		<span><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script></span>
+
+		<span><div class="g-plusone" data-size="medium"></div></span>
+
+		<!-- Place this tag after the last +1 button tag. -->
+		<script type="text/javascript">
+		  (function() {
+		    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+		    po.src = 'https://apis.google.com/js/plusone.js';
+		    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+		  })();
+		</script>
+		
+		<script src="//platform.linkedin.com/in.js" type="text/javascript">
+		 lang: en_US
+		</script>
+		<script type="IN/Share" data-counter="right"></script>
+	</div>
+</div>
+
+<div class="post span9">
+	<h1>Apache Mesos 0.14.2 Released</h1>
+	
+	<p>We recently released Mesos 0.14.2, a bugfix release with only a minor change related to cgroups isolation in 0.14.1. If you&rsquo;re using 0.14.1 with cgroups isolation, it is recommended to upgrade to avoid unnecessary out-of-memory (OOM) killing of jobs. The latest version of Mesos is available on our <a href="http://mesos.apache.org/downloads/">downloads</a> page.</p>
+
+<h3>Upgrading</h3>
+
+<p>If upgrading from 0.14.x, this upgrade can be applied seamlessly to running clusters. However, if you&rsquo;re upgrading from 0.13.x on a running cluster, please refer to the <a href="http://mesos.apache.org/documentation/latest/upgrades/">Upgrades</a> document, which details how a seamless upgrade from 0.13.x to 0.14.x can be performed.</p>
+
+<h3>Changes since 0.14.1</h3>
+
+<p>With the release of 0.14.1, when using cgroups isolation, the OOM semantics were altered to enable the kernel OOM killer and to use the memory soft limit combined with memory threshold notifications to induce OOMs in user-space. This was done to attempt to capture memory statistics at the time of OOM for diagnostic purposes. However, this proved to trigger unintended OOMs as the memory purging that occurs when the hard limit is reached was no longer occurring.</p>
+
+<p>0.14.2 no longer uses threshold notifications; the memory hard limit is now used instead to preserve the previous OOM semantics.</p>
+
+<p>For additional details, please see:
+<a href="https://issues.apache.org/jira/browse/MESOS-755">MESOS-755</a>,
+<a href="https://issues.apache.org/jira/browse/MESOS-762">MESOS-762</a>.</p>
+
+</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2013 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+    </body>
+</html>

Added: mesos/site/publish/blog/niklas-nielsen-becomes-mesos-committer/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/blog/niklas-nielsen-becomes-mesos-committer/index.html?rev=1559850&view=auto
==============================================================================
--- mesos/site/publish/blog/niklas-nielsen-becomes-mesos-committer/index.html (added)
+++ mesos/site/publish/blog/niklas-nielsen-becomes-mesos-committer/index.html Mon Jan 20 23:10:00 2014
@@ -0,0 +1,150 @@
+<!DOCTYPE html>
+<!--
+
+		 ______                           __                
+		/\  _  \                         /\ \               
+		\ \ \L\ \  _____      __      ___\ \ \___      __   
+		 \ \  __ \/\ '__`\  /'__`\   /'___\ \  _ `\  /'__`\ 
+		  \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\  __/ 
+		   \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\
+		    \/_/\/_/\ \ \/  \/__/\/_/\/____/ \/_/\/_/\/____/
+		             \ \_\                                  
+		              \/_/                                  
+                                                    
+		       /'\_/`\                                      
+		      /\      \     __    ____    ___     ____      
+		      \ \ \__\ \  /'__`\ /',__\  / __`\  /',__\     
+		       \ \ \_/\ \/\  __//\__, `\/\ \L\ \/\__, `\    
+		        \ \_\\ \_\ \____\/\____/\ \____/\/\____/    
+		         \/_/ \/_/\/____/\/___/  \/___/  \/___/     
+		
+-->
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title>Niklas Nielsen Becomes Newest Mesos Committer and PMC Member</title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <!-- Le styles -->
+		    <link href="../../assets/css/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/bootstrap-responsive.min.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+		  
+		    <!-- JS -->
+		    <script src="../../assets/js/jquery-1.10.1.min.js" type="text/javascript"></script>
+		    <script src="../../assets/js/bootstrap-dropdown.js" type="text/javascript"></script>
+		
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-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>			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+	          <ul class="nav">
+	            <li><a href="/gettingstarted/">Getting Started</a></li>
+	            <li><a href="/documentation/latest/">Documentation</a></li>
+	            <li><a href="/downloads/">Downloads</a></li>
+	            <li><a href="/community/">Community</a></li>
+	          </ul>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+
+      <div class="container">
+
+			<!-- magical breadcrumbs -->
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+					  <ul class="dropdown-menu" role="menu">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<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>
+				</li>
+				<li><span class="divider">></span></li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+			</ul><!-- /breadcrumb -->
+
+			<div class="row-fluid">
+
+<div class="span3">
+	<div class="meta">
+		<span class="author">
+			
+			<span class="author_contact">
+			  <p><strong>Apache Mesos</strong></p>
+			  <p><a href="http://twitter.com/apachemesos">@apachemesos</a></p>
+			</span>
+		</span>
+		<p><em>Posted December 16, 2013</em></p>
+	</div>
+	
+	<div class="share">
+		<span class="social-share-button"><a href="https://twitter.com/share" class="twitter-share-button" data-via="apachemesos">Tweet</a></span>
+		
+		<span><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script></span>
+
+		<span><div class="g-plusone" data-size="medium"></div></span>
+
+		<!-- Place this tag after the last +1 button tag. -->
+		<script type="text/javascript">
+		  (function() {
+		    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+		    po.src = 'https://apis.google.com/js/plusone.js';
+		    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+		  })();
+		</script>
+		
+		<script src="//platform.linkedin.com/in.js" type="text/javascript">
+		 lang: en_US
+		</script>
+		<script type="IN/Share" data-counter="right"></script>
+	</div>
+</div>
+
+<div class="post span9">
+	<h1>Niklas Nielsen Becomes Newest Mesos Committer and PMC Member</h1>
+	
+	<p>The Apache Mesos PMC has voted to make <a href="http://mesosphere.io/2013/10/24/niklas-nielsen-joins-mesosphere/">Niklas Nielsen</a> the project&rsquo;s newest committer and PMC member. Niklas is an engineer at Engineer at <a href="http://mesosphere.io">Mesosphere</a>, and has a background in virtual machines, compilers and supercomputer tooling (distributed debuggers, profilers and so on).</p>
+
+<p>Nielsen has particular interests in performance, scalability and tooling to give insights in otherwise fairly complex setups. Welcome, Niklas!</p>
+
+</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2013 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+    </body>
+</html>

Added: mesos/site/publish/blog/slave-recovery-in-apache-mesos/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/blog/slave-recovery-in-apache-mesos/index.html?rev=1559850&view=auto
==============================================================================
--- mesos/site/publish/blog/slave-recovery-in-apache-mesos/index.html (added)
+++ mesos/site/publish/blog/slave-recovery-in-apache-mesos/index.html Mon Jan 20 23:10:00 2014
@@ -0,0 +1,209 @@
+<!DOCTYPE html>
+<!--
+
+		 ______                           __                
+		/\  _  \                         /\ \               
+		\ \ \L\ \  _____      __      ___\ \ \___      __   
+		 \ \  __ \/\ '__`\  /'__`\   /'___\ \  _ `\  /'__`\ 
+		  \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\  __/ 
+		   \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\
+		    \/_/\/_/\ \ \/  \/__/\/_/\/____/ \/_/\/_/\/____/
+		             \ \_\                                  
+		              \/_/                                  
+                                                    
+		       /'\_/`\                                      
+		      /\      \     __    ____    ___     ____      
+		      \ \ \__\ \  /'__`\ /',__\  / __`\  /',__\     
+		       \ \ \_/\ \/\  __//\__, `\/\ \L\ \/\__, `\    
+		        \ \_\\ \_\ \____\/\____/\ \____/\/\____/    
+		         \/_/ \/_/\/____/\/___/  \/___/  \/___/     
+		
+-->
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title>Slave Recovery in Apache Mesos</title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <!-- Le styles -->
+		    <link href="../../assets/css/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/bootstrap-responsive.min.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+		  
+		    <!-- JS -->
+		    <script src="../../assets/js/jquery-1.10.1.min.js" type="text/javascript"></script>
+		    <script src="../../assets/js/bootstrap-dropdown.js" type="text/javascript"></script>
+		
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-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>			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+	          <ul class="nav">
+	            <li><a href="/gettingstarted/">Getting Started</a></li>
+	            <li><a href="/documentation/latest/">Documentation</a></li>
+	            <li><a href="/downloads/">Downloads</a></li>
+	            <li><a href="/community/">Community</a></li>
+	          </ul>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+
+      <div class="container">
+
+			<!-- magical breadcrumbs -->
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+					  <ul class="dropdown-menu" role="menu">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<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>
+				</li>
+				<li><span class="divider">></span></li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+			</ul><!-- /breadcrumb -->
+
+			<div class="row-fluid">
+
+<div class="span3">
+	<div class="meta">
+		<span class="author">
+			
+			  <img src="http://www.gravatar.com/avatar/24bc66008e50fb936e696735e99d7815?s=80" class="author_gravatar">
+			
+			<span class="author_contact">
+			  <p><strong>Vinod Kone</strong></p>
+			  <p><a href="http://twitter.com/vinodkone">@vinodkone</a></p>
+			</span>
+		</span>
+		<p><em>Posted October 23, 2013</em></p>
+	</div>
+	
+	<div class="share">
+		<span class="social-share-button"><a href="https://twitter.com/share" class="twitter-share-button" data-via="apachemesos">Tweet</a></span>
+		
+		<span><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script></span>
+
+		<span><div class="g-plusone" data-size="medium"></div></span>
+
+		<!-- Place this tag after the last +1 button tag. -->
+		<script type="text/javascript">
+		  (function() {
+		    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+		    po.src = 'https://apis.google.com/js/plusone.js';
+		    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+		  })();
+		</script>
+		
+		<script src="//platform.linkedin.com/in.js" type="text/javascript">
+		 lang: en_US
+		</script>
+		<script type="IN/Share" data-counter="right"></script>
+	</div>
+</div>
+
+<div class="post span9">
+	<h1>Slave Recovery in Apache Mesos</h1>
+	
+	<p>High availability is one of the key features of Mesos. For example, a typical Mesos cluster in production involves 3-5 masters with one acting as <em>leader</em> and the rest on standby. When a leading master fails due to a crash or goes offline for an upgrade, a standby master automatically becomes the leader without causing any disruption to running services. Leader election is currently performed by using <a href="http://zookeeper.apache.org/">ZooKeeper</a>.</p>
+
+<p>With the latest Mesos release, <a href="http://mesos.apache.org/downloads/">0.14.1</a>, we are bringing high availability to the slaves by introducing a new feature called <em>Slave Recovery</em>. In a nutshell, slave recovery enables:</p>
+
+<ol>
+<li><p>Executors/tasks to keep running when the slave process is down.</p></li>
+<li><p>A restarted slave process to reconnect with running executors/tasks on the slave.</p></li>
+</ol>
+
+
+<h2>Why it matters</h2>
+
+<p>A recoverable slave is critical for running services in production on Mesos for several reasons:</p>
+
+<ul>
+<li><p><strong>Stateful services</strong></p>
+
+<p>  In a typical production environment there are stateful services (e.g., caches) running in the cluster. It is not uncommon for these services to have a high startup time (e.g., cache warm up time of a few hours). Even in the analytics world, there are cases where a single task is responsible for doing work that takes hours to complete. In such cases a restart of the slave (e.g, crash or upgrade) will have a huge impact on the service. While sharding the service wider mitigates this impact it is not always possible to do so (e.g, legacy services, data locality, application semantics). Such stateful applications would benefit immensely from running under a more resilient slave.</p></li>
+<li><p><strong>Faster cluster upgrades</strong></p>
+
+<p>  It is important for clusters to frequently upgrade their infrastructure to stay up-to-date with the latest features and bug fixes. A typical Mesos slave upgrade involves stopping the slave, upgrading the slave libraries and starting the slave. In production environments there is always tension between upgrading the infrastructure frequently and the need to not impact long running services as much as possible. With respect to Mesos upgrades, if upgrading the slave binary has no impact on the underlying services, then it is a win for both the cluster operators and the service owners.</p></li>
+<li><p><strong>Resilience against slave failures</strong></p>
+
+<p>  While upgrading the slaves is most often the reason for restarting slaves, there might be other causes for a slave to fail. A slave crash could happen due to a bug in the slave code or due to external factors like a bug in the kernel or ZooKeeper client library. Typically such crashes are temporary and a restart of the slave is enough to correct the situation. If such slave restarts do not affect applications running on the slave it is a huge win for the applications.</p></li>
+</ul>
+
+
+<h2>How it works</h2>
+
+<ul>
+<li><p><strong>Checkpointing</strong></p>
+
+<p>  Slave recovery works by having the slave checkpoint enough information (e.g., task information, executor information, status updates) about the running tasks and executors to local disk. Once the slave and the framework(s) enable checkpointing, any subsequent slave restarts would recover the checkpointed information and reconnect with the executors. When a checkpointing slave process goes down, both the leading master and the executors running on the slave host wait for the slave to come back up and reconnect. A nice thing about slave recovery is that frameworks and their executors/tasks are oblivious to a slave restart.</p></li>
+<li><p><strong>Executor Driver Caching</strong></p>
+
+<p>  As part of this feature, the executor driver has also been improved to make it more resilient in the face of a slave failure. As an example, status updates sent by the executor while the slave is down are cached by the driver and sent to the slave when it reconnects with the restarted slave. Since this is all handled by the executor driver, framework/executor writers do not have to worry about it! The executors can keep sending status updates for their tasks while remaining oblivious to the slave being up or down.</p></li>
+<li><p><strong>Reliable status updates</strong></p>
+
+<p>  Another benefit of slave checkpointing the status updates is that now updates are more reliably delivered to frameworks in the face of failures. Before slave recovery if the slave fails at the same time that a master is failing over, no TASK_LOST updates for tasks running on the slave were sent to the framework. This is partly because the Mesos master is stateless. A failed over master reconstructs the cluster state from the information given to it by re-registering slaves and frameworks. With slave recovery, status updates and tasks are no longer lost when slaves fail. Rather, the slave recovers tasks, status updates and reconnects with the running executors. Even if an executor does terminate when the slave is down, a recovered slave knows about it from its checkpointed state and reliably sends TASK_LOST updates to the framework.</p></li>
+</ul>
+
+
+<p>For more information about how to enable slave recovery in your cluster, please refer to the <a href="https://github.com/apache/mesos/blob/master/docs/Slave-Recovery.md">documentation</a>.</p>
+
+<h2>Looking ahead</h2>
+
+<ul>
+<li><p><strong>Easy Executor/Task Upgrades</strong></p>
+
+<p>  In a similar vein to how slave recovery makes upgrading a Mesos cluster easy, we would like to enable frameworks to upgrade their executors/tasks as well. Currently the only way to upgrade an executor/task is to kill the old executor/task and launch the new upgraded executor/task. For the same reasons as we have discussed earlier this is not ideal for stateful services. We are currently investigating  proper primitives to provide to frameworks to do such upgrades, so that not every framework have to (re-)implement that logic.</p></li>
+<li><p><strong>State Reconciliation</strong></p>
+
+<p>  While slave recovery greatly improves the reliability of delivering status updates there are still some rare cases where updates could be lost. For example if a slave crashes when a master is failing over and never comes back then the new leading master doesn&rsquo;t know about the lost slave and executors/tasks running on it. In addition to status updates, any driver methods (e.g., launchTasks, killTask) invoked when the master is failing over are silently dropped. Currently, frameworks are responsible for reconciling their own task state using the <a href="https://github.com/apache/mesos/blob/master/include/mesos/scheduler.hpp#L290">reconciliation API</a>. We are currently investigating ways to provide even better guarantees  around reconciliation.</p></li>
+<li><p><strong>Self Updates of Mesos</strong></p>
+
+<p>  Currently, updating Mesos involves a cluster operator to manually upgrade the master and slave binaries and roll them in a specific manner (e.g., masters before slaves). But what if Mesos can update itself! It is not hard to imagine a future where Mesos masters can orchestrate the upgrade of slaves and maybe also upgrade one another! This would also help making rollbacks easy incase an upgrade doesn’t work because it would be much easier Mesos to check if various components are working as expected.</p></li>
+</ul>
+
+
+<p>So what are you waiting for? Go ahead and give <a href="http://mesos.apache.org">Mesos</a> a whirl and <a href="mailto:user@mesos.apache.org">let us know</a> what you think.</p>
+
+</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2013 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+    </body>
+</html>

Added: mesos/site/publish/community/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/community/index.html?rev=1559850&view=auto
==============================================================================
--- mesos/site/publish/community/index.html (added)
+++ mesos/site/publish/community/index.html Mon Jan 20 23:10:00 2014
@@ -0,0 +1,152 @@
+<!DOCTYPE html>
+<!--
+
+		 ______                           __                
+		/\  _  \                         /\ \               
+		\ \ \L\ \  _____      __      ___\ \ \___      __   
+		 \ \  __ \/\ '__`\  /'__`\   /'___\ \  _ `\  /'__`\ 
+		  \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\  __/ 
+		   \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\
+		    \/_/\/_/\ \ \/  \/__/\/_/\/____/ \/_/\/_/\/____/
+		             \ \_\                                  
+		              \/_/                                  
+                                                    
+		       /'\_/`\                                      
+		      /\      \     __    ____    ___     ____      
+		      \ \ \__\ \  /'__`\ /',__\  / __`\  /',__\     
+		       \ \ \_/\ \/\  __//\__, `\/\ \L\ \/\__, `\    
+		        \ \_\\ \_\ \____\/\____/\ \____/\/\____/    
+		         \/_/ \/_/\/____/\/___/  \/___/  \/___/     
+		
+-->
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title>Apache Mesos | Community</title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <!-- Le styles -->
+		    <link href="../assets/css/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../assets/css/bootstrap-responsive.min.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+		  
+		    <!-- JS -->
+		    <script src="../assets/js/jquery-1.10.1.min.js" type="text/javascript"></script>
+		    <script src="../assets/js/bootstrap-dropdown.js" type="text/javascript"></script>
+		
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-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>			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+	          <ul class="nav">
+	            <li><a href="/gettingstarted/">Getting Started</a></li>
+	            <li><a href="/documentation/latest/">Documentation</a></li>
+	            <li><a href="/downloads/">Downloads</a></li>
+	            <li><a href="/community/">Community</a></li>
+	          </ul>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+
+      <div class="container">
+
+			<!-- magical breadcrumbs -->
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+					  <ul class="dropdown-menu" role="menu">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<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>
+				</li>
+				<li><span class="divider">></span></li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+				<li><span class="divider">></span></li>
+				<li><a href="/community/">Community</a></li>
+				
+			</ul><!-- /breadcrumb -->
+
+			<div class="row-fluid">
+    <h2>Community</h2>
+    
+    <p>Apache Mesos is an open source community that's organized by its members, including you! Whether you're running or writing a framework, or hacking the core, there are opportunities for you to get in touch and ask questions, get involved locally, and contribute back. If you're interested in who is using Mesos, check out our growing <a href="http://mesos.apache.org/documentation/latest/powered-by-mesos/">Powered By Mesos</a> list.</p>
+    
+    <div class="row-fluid">
+    <div class="span6">
+        <h3>Get In Touch</h3>
+        <h4 name="mailinglists">User Mailing List</h4>
+        <p>This list is open to Mesos users of all skill levels and backgrounds. It's also a place where many community announcements are made.</p>
+        <p><b>Users</b>: <a href="mailto:user-subscribe@mesos.apache.org?subject=Subscribe&body=Subscribe">Subscribe</a> | <a href="mailto:user-unsubscribe@mesos.apache.org?subject=Unsubscribe&body=Unubscribe">Unsubscribe</a> | <a href="http://www.mail-archive.com/user@mesos.apache.org/">Archives</a></p>
+        
+        <h4 name="mailinglists">Developers Mailing List</h4>
+        <p>This list is primarily to discuss and manage the development of the Mesos core. If you're interested in contributing, this is a good place to post/listen.</p>
+        <p><b>Developers</b>: <a href="mailto:dev-subscribe@mesos.apache.org?subject=Subscribe&body=Subscribe">Subscribe</a> | <a href="mailto:dev-unsubscribe@mesos.apache.org?subject=Unsubscribe&body=Unsubscribe">Unsubscribe</a> | <a href="http://www.mail-archive.com/dev@mesos.apache.org/">Archives</a></p>
+        
+        <h4 name="ircchannel">IRC Channel</h4>
+        <p>Many of the Mesos developers and users chat in the #mesos channel on irc.freenode.net.</p>
+        
+        <p>If you are new to IRC, you can use a <a href="http://webchat.freenode.net/?channels=#mesos">web-based client</a>.</p>
+                
+        <h4 name="twitter">Follow us on Twitter</h4>
+        <p>Tweet at us, we're <a href="http://twitter.com/ApacheMesos">@ApacheMesos</a> on Twitter and use the hashtag <a href="https://twitter.com/search?q=%23mesos">#mesos</a>.</p>
+    </div>
+    <div class="span6">
+        <h3>Get Involved</h3>
+        <h4 name="meetup">Users Groups</h4>
+        <p>Mesos user groups have been springing up to organize local events. If you're interested in organizing one in your city, share your interest on the user mailing list and we'll add you to our list.</p>
+
+        <h5>USA</h5>
+        <ul>
+            <li><a href="http://www.meetup.com/Distributed-data-processing-with-Mesos/">San Francisco, CA</a></li>
+            <li><a href="https://twitter.com/AtlantaMesos">Atlanta, GA</a></li>
+        </ul>
+        
+        <h3>Contribute</h3>
+        <h4 name="reportbugs">Report or track a bug</h4>
+        <p>New bugs can be reported on our <a href="http://issues.apache.org/jira/browse/MESOS">issue tracker</a>. In order to create a new issue, you'll need to signup for an account.</p>
+
+        <h4 name="contribute">Contribute a core patch</h4>
+        <p>Follow our <a href="http://mesos.apache.org/documentation/latest/mesos-developers-guide/">contribution guidelines</a> when submitting a patch. We love patches. :)</p>
+    </div>
+    </div>
+</div>
+
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2013 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+    </body>
+</html>

Added: mesos/site/publish/documentation/allocation-module/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/allocation-module/index.html?rev=1559850&view=auto
==============================================================================
--- mesos/site/publish/documentation/allocation-module/index.html (added)
+++ mesos/site/publish/documentation/allocation-module/index.html Mon Jan 20 23:10:00 2014
@@ -0,0 +1,242 @@
+<!DOCTYPE html>
+<!--
+
+		 ______                           __                
+		/\  _  \                         /\ \               
+		\ \ \L\ \  _____      __      ___\ \ \___      __   
+		 \ \  __ \/\ '__`\  /'__`\   /'___\ \  _ `\  /'__`\ 
+		  \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\  __/ 
+		   \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\
+		    \/_/\/_/\ \ \/  \/__/\/_/\/____/ \/_/\/_/\/____/
+		             \ \_\                                  
+		              \/_/                                  
+                                                    
+		       /'\_/`\                                      
+		      /\      \     __    ____    ___     ____      
+		      \ \ \__\ \  /'__`\ /',__\  / __`\  /',__\     
+		       \ \ \_/\ \/\  __//\__, `\/\ \L\ \/\__, `\    
+		        \ \_\\ \_\ \____\/\____/\ \____/\/\____/    
+		         \/_/ \/_/\/____/\/___/  \/___/  \/___/     
+		
+-->
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <!-- Le styles -->
+		    <link href="../../assets/css/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/bootstrap-responsive.min.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+		  
+		    <!-- JS -->
+		    <script src="../../assets/js/jquery-1.10.1.min.js" type="text/javascript"></script>
+		    <script src="../../assets/js/bootstrap-dropdown.js" type="text/javascript"></script>
+		
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-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>			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+	          <ul class="nav">
+	            <li><a href="/gettingstarted/">Getting Started</a></li>
+	            <li><a href="/documentation/latest/">Documentation</a></li>
+	            <li><a href="/downloads/">Downloads</a></li>
+	            <li><a href="/community/">Community</a></li>
+	          </ul>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+
+      <div class="container">
+
+			<!-- magical breadcrumbs -->
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+					  <ul class="dropdown-menu" role="menu">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<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>
+				</li>
+				<li><span class="divider">></span></li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+			</ul><!-- /breadcrumb -->
+
+			<div class="row-fluid">
+	<div class="span4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="span8">
+		<h1>Mesos Allocation Module</h1>
+
+<p>The logic that the Mesos master uses to determine which frameworks to make offer resource offers to is encapsulated in the Master&rsquo;s <em>allocation module</em>.  The allocation module is a pluggable component that organizations can use to implement their own sharing policy, e.g. fair-sharing, Dominant Resource Fairness (see <a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-55.pdf">the DRF paper</a>), priority, etc.</p>
+
+<h2>Allocation Module API</h2>
+
+<p>Mesos is implemented in C++, so allocation modules are implemented in C++, and inherit the @AllocatorProcess@ class defined in @MESOS_HOME/src/master/allocator.hpp@. As of the time of this writing (5/29/13), the API for allocation modules is as follows:</p>
+
+<pre><code>  virtual ~AllocatorProcess() {}
+
+  virtual void initialize(
+      const Flags&amp; flags,
+      const process::PID&lt;Master&gt;&amp; master,
+      const hashmap&lt;std::string, RoleInfo&gt;&amp; roles) = 0;
+
+  virtual void frameworkAdded(
+      const FrameworkID&amp; frameworkId,
+      const FrameworkInfo&amp; frameworkInfo,
+      const Resources&amp; used) = 0;
+
+  virtual void frameworkRemoved(
+      const FrameworkID&amp; frameworkId) = 0;
+
+  virtual void frameworkActivated(
+      const FrameworkID&amp; frameworkId,
+      const FrameworkInfo&amp; frameworkInfo) = 0;
+
+  virtual void frameworkDeactivated(
+      const FrameworkID&amp; frameworkId) = 0;
+
+  virtual void slaveAdded(
+      const SlaveID&amp; slaveId,
+      const SlaveInfo&amp; slaveInfo,
+      const hashmap&lt;FrameworkID, Resources&gt;&amp; used) = 0;
+
+  virtual void slaveRemoved(
+      const SlaveID&amp; slaveId) = 0;
+
+  virtual void updateWhitelist(
+      const Option&lt;hashset&lt;std::string&gt; &gt;&amp; whitelist) = 0;
+
+  virtual void resourcesRequested(
+      const FrameworkID&amp; frameworkId,
+      const std::vector&lt;Request&gt;&amp; requests) = 0;
+
+  // Whenever resources offered to a framework go unused (e.g.,
+  // refused) the master invokes this callback.
+  virtual void resourcesUnused(
+      const FrameworkID&amp; frameworkId,
+      const SlaveID&amp; slaveId,
+      const Resources&amp; resources,
+      const Option&lt;Filters&gt;&amp; filters) = 0;
+
+  // Whenever resources are "recovered" in the cluster (e.g., a task
+  // finishes, an offer is removed because a framework has failed or
+  // is failing over) the master invokes this callback.
+  virtual void resourcesRecovered(
+      const FrameworkID&amp; frameworkId,
+      const SlaveID&amp; slaveId,
+      const Resources&amp; resources) = 0;
+
+  // Whenever a framework that has filtered resources wants to revive
+  // offers for those resources the master invokes this callback.
+  virtual void offersRevived(
+      const FrameworkID&amp; frameworkId) = 0;
+</code></pre>
+
+<p>The default allocation module is the HierarchicalAllocatorProcess, which can be found in @MESOS_HOME/src/master/hierarchical_allocator_process.hpp@. You can reference this as a starting place if you choose to write your own allocation module.</p>
+
+<h2>Sorter API</h2>
+
+<p>Additionally, the hierarchical allocator module can be extended without the need to reimplement the entirety of the allocation logic through the use of the @Sorter@ abstraction.</p>
+
+<p>Sorters define the order that roles or frameworks should be offered resources in by taking &ldquo;client&rdquo; objects and some information about those clients and returning an ordered list of clients.</p>
+
+<p>Sorters are implemented in C++ and inherit the @Sorter@ class defined in @MESOS_HOME/src/master/sorter.hpp@. As of the time of this writing, the API for Sorters is as follows:</p>
+
+<pre><code>  virtual ~Sorter() {}
+
+  // Adds a client to allocate resources to. A client
+  // may be a user or a framework.
+  virtual void add(const std::string&amp; client, double weight = 1) = 0;
+
+  // Removes a client.
+  virtual void remove(const std::string&amp; client) = 0;
+
+  // Readds a client to the sort after deactivate.
+  virtual void activate(const std::string&amp; client) = 0;
+
+  // Removes a client from the sort, so it won't get allocated to.
+  virtual void deactivate(const std::string&amp; client) = 0;
+
+  // Specify that resources have been allocated to the given client.
+  virtual void allocated(const std::string&amp; client,
+                         const Resources&amp; resources) = 0;
+
+  // Specify that resources have been unallocated from the given client.
+  virtual void unallocated(const std::string&amp; client,
+                           const Resources&amp; resources) = 0;
+
+  // Returns the resources that have been allocated to this client.
+  virtual Resources allocation(const std::string&amp; client) = 0;
+
+  // Add resources to the total pool of resources this
+  // Sorter should consider.
+  virtual void add(const Resources&amp; resources) = 0;
+
+  // Remove resources from the total pool.
+  virtual void remove(const Resources&amp; resources) = 0;
+
+  // Returns a list of all clients, in the order that they
+  // should be allocated to, according to this Sorter's policy.
+  virtual std::list&lt;std::string&gt; sort() = 0;
+
+  // Returns true if this Sorter contains the specified client,
+  // either active or deactivated.
+  virtual bool contains(const std::string&amp; client) = 0;
+
+  // Returns the number of clients this Sorter contains,
+  // either active or deactivated.
+  virtual int count() = 0;
+</code></pre>
+
+<p>The default @Sorter@ is the DRFSorter, which implements fair sharing and can be found at @MESOS_HOME/src/master/drf_sorter.hpp@.</p>
+
+<p>For DRF, if weights are specified in Sorter::add, a client&rsquo;s share will be divided by the weight, creating a form of priority. For example, a role that has a weight of 2 will be offered twice as many resources as a role with weight 1.</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2013 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+    </body>
+</html>

Added: mesos/site/publish/documentation/app-framework-development-guide/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/app-framework-development-guide/index.html?rev=1559850&view=auto
==============================================================================
--- mesos/site/publish/documentation/app-framework-development-guide/index.html (added)
+++ mesos/site/publish/documentation/app-framework-development-guide/index.html Mon Jan 20 23:10:00 2014
@@ -0,0 +1,318 @@
+<!DOCTYPE html>
+<!--
+
+		 ______                           __                
+		/\  _  \                         /\ \               
+		\ \ \L\ \  _____      __      ___\ \ \___      __   
+		 \ \  __ \/\ '__`\  /'__`\   /'___\ \  _ `\  /'__`\ 
+		  \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\  __/ 
+		   \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\
+		    \/_/\/_/\ \ \/  \/__/\/_/\/____/ \/_/\/_/\/____/
+		             \ \_\                                  
+		              \/_/                                  
+                                                    
+		       /'\_/`\                                      
+		      /\      \     __    ____    ___     ____      
+		      \ \ \__\ \  /'__`\ /',__\  / __`\  /',__\     
+		       \ \ \_/\ \/\  __//\__, `\/\ \L\ \/\__, `\    
+		        \ \_\\ \_\ \____\/\____/\ \____/\/\____/    
+		         \/_/ \/_/\/____/\/___/  \/___/  \/___/     
+		
+-->
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <!-- Le styles -->
+		    <link href="../../assets/css/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/bootstrap-responsive.min.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+		  
+		    <!-- JS -->
+		    <script src="../../assets/js/jquery-1.10.1.min.js" type="text/javascript"></script>
+		    <script src="../../assets/js/bootstrap-dropdown.js" type="text/javascript"></script>
+		
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-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>			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+	          <ul class="nav">
+	            <li><a href="/gettingstarted/">Getting Started</a></li>
+	            <li><a href="/documentation/latest/">Documentation</a></li>
+	            <li><a href="/downloads/">Downloads</a></li>
+	            <li><a href="/community/">Community</a></li>
+	          </ul>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+
+      <div class="container">
+
+			<!-- magical breadcrumbs -->
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+					  <ul class="dropdown-menu" role="menu">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<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>
+				</li>
+				<li><span class="divider">></span></li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+			</ul><!-- /breadcrumb -->
+
+			<div class="row-fluid">
+	<div class="span4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="span8">
+		<h1>Framework Development Guide</h1>
+
+<p>In this document we refer to Mesos applications as &ldquo;frameworks&rdquo;.</p>
+
+<p>See one of the example framework schedulers in <code>MESOS_HOME/src/examples/</code> to get an idea of what a Mesos framework scheduler and executor in the language of your choice looks like.</p>
+
+<h2>Create your Framework Scheduler</h2>
+
+<p>You can write a framework scheduler in C, C++, Java/Scala, or Python. Your framework scheduler should inherit from the <code>Scheduler</code> class (see API below). Your scheduler should create a SchedulerDriver (which will mediate communication between your scheduler and the Mesos master) and then call <code>SchedulerDriver.run()</code></p>
+
+<h3>Scheduler API</h3>
+
+<p>Declared in <code>MESOS_HOME/include/mesos/scheduler.hpp</code></p>
+
+<pre><code>  /**
+   * Empty virtual destructor (necessary to instantiate subclasses).
+   */
+  virtual ~Scheduler() {}
+
+  /**
+   * Invoked when the scheduler successfully registers with a Mesos
+   * master. A unique ID (generated by the master) used for
+   * distinguishing this framework from others and MasterInfo
+   * with the ip and port of the current master are provided as arguments.
+   */
+  virtual void registered(SchedulerDriver* driver,
+                          const FrameworkID&amp; frameworkId,
+                          const MasterInfo&amp; masterInfo) = 0;
+
+  /**
+   * Invoked when the scheduler re-registers with a newly elected Mesos master.
+   * This is only called when the scheduler has previously been registered.
+   * MasterInfo containing the updated information about the elected master
+   * is provided as an argument.
+   */
+  virtual void reregistered(SchedulerDriver* driver,
+                            const MasterInfo&amp; masterInfo) = 0;
+
+  /**
+   * Invoked when the scheduler becomes "disconnected" from the master
+   * (e.g., the master fails and another is taking over).
+   */
+  virtual void disconnected(SchedulerDriver* driver) = 0;
+
+  /**
+   * Invoked when resources have been offered to this framework. A
+   * single offer will only contain resources from a single slave.
+   * Resources associated with an offer will not be re-offered to
+   * _this_ framework until either (a) this framework has rejected
+   * those resources (see SchedulerDriver::launchTasks) or (b) those
+   * resources have been rescinded (see Scheduler::offerRescinded).
+   * Note that resources may be concurrently offered to more than one
+   * framework at a time (depending on the allocator being used). In
+   * that case, the first framework to launch tasks using those
+   * resources will be able to use them while the other frameworks
+   * will have those resources rescinded (or if a framework has
+   * already launched tasks with those resources then those tasks will
+   * fail with a TASK_LOST status and a message saying as much).
+   */
+  virtual void resourceOffers(SchedulerDriver* driver,
+                              const std::vector&lt;Offer&gt;&amp; offers) = 0;
+
+  /**
+   * Invoked when an offer is no longer valid (e.g., the slave was
+   * lost or another framework used resources in the offer). If for
+   * whatever reason an offer is never rescinded (e.g., dropped
+   * message, failing over framework, etc.), a framwork that attempts
+   * to launch tasks using an invalid offer will receive TASK_LOST
+   * status updats for those tasks (see Scheduler::resourceOffers).
+   */
+  virtual void offerRescinded(SchedulerDriver* driver,
+                              const OfferID&amp; offerId) = 0;
+
+  /**
+   * Invoked when the status of a task has changed (e.g., a slave is
+   * lost and so the task is lost, a task finishes and an executor
+   * sends a status update saying so, etc). Note that returning from
+   * this callback _acknowledges_ receipt of this status update! If
+   * for whatever reason the scheduler aborts during this callback (or
+   * the process exits) another status update will be delivered (note,
+   * however, that this is currently not true if the slave sending the
+   * status update is lost/fails during that time).
+   */
+  virtual void statusUpdate(SchedulerDriver* driver,
+                            const TaskStatus&amp; status) = 0;
+
+  /**
+   * Invoked when an executor sends a message. These messages are best
+   * effort; do not expect a framework message to be retransmitted in
+   * any reliable fashion.
+   */
+  virtual void frameworkMessage(SchedulerDriver* driver,
+                                const ExecutorID&amp; executorId,
+                                const SlaveID&amp; slaveId,
+                                const std::string&amp; data) = 0;
+
+  /**
+   * Invoked when a slave has been determined unreachable (e.g.,
+   * machine failure, network partition). Most frameworks will need to
+   * reschedule any tasks launched on this slave on a new slave.
+   */
+  virtual void slaveLost(SchedulerDriver* driver,
+                         const SlaveID&amp; slaveId) = 0;
+
+  /**
+   * Invoked when an executor has exited/terminated. Note that any
+   * tasks running will have TASK_LOST status updates automagically
+   * generated.
+   */
+  virtual void executorLost(SchedulerDriver* driver,
+                            const ExecutorID&amp; executorId,
+                            const SlaveID&amp; slaveId,
+                            int status) = 0;
+
+  /**
+   * Invoked when there is an unrecoverable error in the scheduler or
+   * scheduler driver. The driver will be aborted BEFORE invoking this
+   * callback.
+   */
+  virtual void error(SchedulerDriver* driver, const std::string&amp; message) = 0;
+</code></pre>
+
+<h2>Create your Framework Executor</h2>
+
+<p>Your framework executor must inherit from the Executor class. It must override the launchTask() method. You can use the $MESOS_HOME environment variable inside of your executor to determine where Mesos is running from.</p>
+
+<h3>Executor API</h3>
+
+<p>Declared in <code>MESOS_HOME/include/mesos/executor.hpp</code></p>
+
+<pre><code>  /**
+   * Invoked once the executor driver has been able to successfully
+   * connect with Mesos. In particular, a scheduler can pass some
+   * data to it's executors through the FrameworkInfo.ExecutorInfo's
+   * data field.
+   */
+  virtual void registered(ExecutorDriver* driver,
+                          const ExecutorInfo&amp; executorInfo,
+                          const FrameworkInfo&amp; frameworkInfo,
+                          const SlaveInfo&amp; slaveInfo) = 0;
+
+  /**
+   * Invoked when the executor re-registers with a restarted slave.
+   */
+  virtual void reregistered(ExecutorDriver* driver,
+                            const SlaveInfo&amp; slaveInfo) = 0;
+
+  /**
+   * Invoked when the executor becomes "disconnected" from the slave
+   * (e.g., the slave is being restarted due to an upgrade).
+   */
+  virtual void disconnected(ExecutorDriver* driver) = 0;
+
+  /**
+   * Invoked when a task has been launched on this executor (initiated
+   * via Scheduler::launchTasks). Note that this task can be realized
+   * with a thread, a process, or some simple computation, however, no
+   * other callbacks will be invoked on this executor until this
+   * callback has returned.
+   */
+  virtual void launchTask(ExecutorDriver* driver,
+                          const TaskInfo&amp; task) = 0;
+
+  /**
+   * Invoked when a task running within this executor has been killed
+   * (via SchedulerDriver::killTask). Note that no status update will
+   * be sent on behalf of the executor, the executor is responsible
+   * for creating a new TaskStatus (i.e., with TASK_KILLED) and
+   * invoking ExecutorDriver::sendStatusUpdate.
+   */
+  virtual void killTask(ExecutorDriver* driver, const TaskID&amp; taskId) = 0;
+
+  /**
+   * Invoked when a framework message has arrived for this
+   * executor. These messages are best effort; do not expect a
+   * framework message to be retransmitted in any reliable fashion.
+   */
+    virtual void frameworkMessage(ExecutorDriver* driver,
+                                  const std::string&amp; data) = 0;
+
+  /**
+   * Invoked when the executor should terminate all of it's currently
+   * running tasks. Note that after a Mesos has determined that an
+   * executor has terminated any tasks that the executor did not send
+   * terminal status updates for (e.g., TASK_KILLED, TASK_FINISHED,
+   * TASK_FAILED, etc) a TASK_LOST status update will be created.
+   */
+  virtual void shutdown(ExecutorDriver* driver) = 0;
+
+  /**
+   * Invoked when a fatal error has occured with the executor and/or
+   * executor driver. The driver will be aborted BEFORE invoking this
+   * callback.
+   */
+  virtual void error(ExecutorDriver* driver, const std::string&amp; message) = 0;
+</code></pre>
+
+<h2>Install your Framework</h2>
+
+<p>You need to put your framework somewhere that all slaves on the cluster can get it from. If you are running HDFS, you can put your executor into HDFS. Then, you tell Mesos where it is via the <code>ExecutorInfo</code> parameter of <code>MesosSchedulerDriver</code>&rsquo;s constructor (e.g. see src/examples/java/TestFramework.java for an example of this). ExecutorInfo is a a Protocol Buffer Message class (defined in <code>include/mesos/mesos.proto</code>), and you set its URI field to something like &ldquo;HDFS://path/to/executor/&rdquo;. Also, you can pass the <code>frameworks_home</code> configuration option (defaults to: <code>MESOS_HOME/frameworks</code>) to your <code>mesos-slave</code> daemons when you launch them to specify where all of your framework executors are stored (e.g. on an NFS mount that is available to all slaves), then set <code>ExecutorInfo</code> to be a relative path, and the slave will prepend the value of frameworks_home to the relative path provided.</p>
+
+<p>Once you are sure that your executors are available to the mesos-slaves, you should be able to run your scheduler, which will register with the Mesos master, and start receiving resource offers!</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2013 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+    </body>
+</html>

Added: mesos/site/publish/documentation/committers-guide/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/committers-guide/index.html?rev=1559850&view=auto
==============================================================================
--- mesos/site/publish/documentation/committers-guide/index.html (added)
+++ mesos/site/publish/documentation/committers-guide/index.html Mon Jan 20 23:10:00 2014
@@ -0,0 +1,200 @@
+<!DOCTYPE html>
+<!--
+
+		 ______                           __                
+		/\  _  \                         /\ \               
+		\ \ \L\ \  _____      __      ___\ \ \___      __   
+		 \ \  __ \/\ '__`\  /'__`\   /'___\ \  _ `\  /'__`\ 
+		  \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\  __/ 
+		   \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\
+		    \/_/\/_/\ \ \/  \/__/\/_/\/____/ \/_/\/_/\/____/
+		             \ \_\                                  
+		              \/_/                                  
+                                                    
+		       /'\_/`\                                      
+		      /\      \     __    ____    ___     ____      
+		      \ \ \__\ \  /'__`\ /',__\  / __`\  /',__\     
+		       \ \ \_/\ \/\  __//\__, `\/\ \L\ \/\__, `\    
+		        \ \_\\ \_\ \____\/\____/\ \____/\/\____/    
+		         \/_/ \/_/\/____/\/___/  \/___/  \/___/     
+		
+-->
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <!-- Le styles -->
+		    <link href="../../assets/css/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/bootstrap-responsive.min.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+		  
+		    <!-- JS -->
+		    <script src="../../assets/js/jquery-1.10.1.min.js" type="text/javascript"></script>
+		    <script src="../../assets/js/bootstrap-dropdown.js" type="text/javascript"></script>
+		
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-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>			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+	          <ul class="nav">
+	            <li><a href="/gettingstarted/">Getting Started</a></li>
+	            <li><a href="/documentation/latest/">Documentation</a></li>
+	            <li><a href="/downloads/">Downloads</a></li>
+	            <li><a href="/community/">Community</a></li>
+	          </ul>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+
+      <div class="container">
+
+			<!-- magical breadcrumbs -->
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+					  <ul class="dropdown-menu" role="menu">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<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>
+				</li>
+				<li><span class="divider">></span></li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+			</ul><!-- /breadcrumb -->
+
+			<div class="row-fluid">
+	<div class="span4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="span8">
+		<p>Committer&rsquo;s Guide</p>
+
+<p>This is an attempt to capture the &ldquo;etiquette&rdquo; that we&rsquo;ve informally
+used with Review Board and committing.  A lot of this is obvious and
+is in no way meant to be patronizing. Instead, we&rsquo;re just trying to be
+comprehensive and pedantic.</p>
+
+<hr />
+
+<p>(1) Wait for a &lsquo;ship it&rsquo;. We often use the original developer or
+current &ldquo;custodian&rdquo; of some particular code to be the reviewer and add
+others to get more feedback or as an FYI. Feel free to explicitly call
+out that you&rsquo;re adding some people just as an FYI in the
+&lsquo;Description&rsquo;. It&rsquo;s worth mentioning that we often reach out directly
+to one another about a particular change/feature before we even start
+coding. A little context goes a long way to streamlining the review
+process.</p>
+
+<p>(2) Resolve issues before committing. We tend to give a &lsquo;ship it&rsquo; even
+when we think there are some issues that need correcting. Sometimes a
+particular issue will require more discussion and sometimes we take
+that discussion to IM or IRC or emails to expedite the process. It&rsquo;s
+important, however, that we publicly capture any
+collaborations/discussions that happened in those means. Making the
+discussion public also helps involve others that would have liked to
+get involved but weren&rsquo;t invited.</p>
+
+<p>If the reviewer and reviewee are having problems resolving a
+particular &ldquo;confrontational&rdquo; issue then both parties should consider
+asking another reviewer to participate. We&rsquo;re all here to build the
+highest quality code possible, and we should leverage one another to
+do so.</p>
+
+<p>(2.1) When an issue is &ldquo;Dropped&rdquo; by the reviewee, the expectation is
+that there is a reply to the issue indicating why it was dropped. A
+silent &ldquo;Drop&rdquo; is very ambiguous.</p>
+
+<p>(2.2) If an issue is marked as &ldquo;Resolved&rdquo;, the expectation is that the
+diff has been updated in accordance (more or less) with the reviewer&rsquo;s
+comment. If there are significant changes, a reply to the issue with a
+comment is greatly appreciated.</p>
+
+<p>(3) Be patient, thoughtful, and respectful when providing (a) feedback
+on reviews and (b) commenting on feedback. This is not meant to be a
+sparring match. A prerequisite to being a good reviewee is
+acknowledging that &lsquo;writing is hard&rsquo;! The reviewee should give the
+reviewer the benefit of the doubt that the reviewer has a real concern
+even if they can&rsquo;t articulate it well. And the reviewee should be
+prepared to anticipate all of the reviewers concerns and be thoughtful
+about why they decided to do something a particular way (especially if
+it deviates from a standard in the codebase). On the flip side, the
+reviewer should not use the fact that &lsquo;writing is hard&rsquo; as a crutch
+for giving hasty feedback. The reviewer should invest time and energy
+trying to explain their concerns clearly and carefully. It&rsquo;s a two-way
+street!</p>
+
+<p>(4) Be explicit about asking for more feedback. Feel free to update
+reviews as often as you like but recognize that in many cases it&rsquo;s
+ambiguous for reviewers when a review is back into a &ldquo;ready&rdquo; state so
+the reviewee should feel free to ping the reviewers via email when
+they&rsquo;re ready.</p>
+
+<p>(5) Follow the format of commit messages. The three important bits are
+(a) be clear and explicit in the commit message and (b) include the
+link to the review and &copy; use 72 character columns. See
+support/apply-review.sh for committing someone else&rsquo;s code (it will
+construct a commit message that you&rsquo;ll still need to edit because it
+pulls in all of the &lsquo;Description&rsquo; which might just be &lsquo;See summary.&rsquo;
+which can be omitted). Note that we don&rsquo;t always have a 50 character
+or less summary because that restriction tends to cause people to
+write poorly.</p>
+
+<p>(6) Never ever commit a merge. Rebase as appropriate. Likewise, never
+&lsquo;force push&rsquo;.</p>
+
+<p>(7) Don&rsquo;t break the build. People use Linux and Mac OS X, be
+thoughtful about doing a &lsquo;make check&rsquo; on both before committing your
+code. In the future we hope to have Jenkins running builds of our
+reviews as well as our commits and not allowing code to be committed
+until Jenkins gives it a &lsquo;ship it&rsquo;. Note that if you do break the
+build, the fixes are often small and inconsequential so don&rsquo;t worry
+about going through a review cycle for that, just fix things (but
+don&rsquo;t take that as a license to &ldquo;wait until the build fails to fix
+things&rdquo;).</p>
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2013 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+    </body>
+</html>

Added: mesos/site/publish/documentation/configuration/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/configuration/index.html?rev=1559850&view=auto
==============================================================================
--- mesos/site/publish/documentation/configuration/index.html (added)
+++ mesos/site/publish/documentation/configuration/index.html Mon Jan 20 23:10:00 2014
@@ -0,0 +1,232 @@
+<!DOCTYPE html>
+<!--
+
+		 ______                           __                
+		/\  _  \                         /\ \               
+		\ \ \L\ \  _____      __      ___\ \ \___      __   
+		 \ \  __ \/\ '__`\  /'__`\   /'___\ \  _ `\  /'__`\ 
+		  \ \ \/\ \ \ \L\ \/\ \L\.\_/\ \__/\ \ \ \ \/\  __/ 
+		   \ \_\ \_\ \ ,__/\ \__/.\_\ \____\\ \_\ \_\ \____\
+		    \/_/\/_/\ \ \/  \/__/\/_/\/____/ \/_/\/_/\/____/
+		             \ \_\                                  
+		              \/_/                                  
+                                                    
+		       /'\_/`\                                      
+		      /\      \     __    ____    ___     ____      
+		      \ \ \__\ \  /'__`\ /',__\  / __`\  /',__\     
+		       \ \ \_/\ \/\  __//\__, `\/\ \L\ \/\__, `\    
+		        \ \_\\ \_\ \____\/\____/\ \____/\/\____/    
+		         \/_/ \/_/\/____/\/___/  \/___/  \/___/     
+		
+-->
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title></title>
+		    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+		    <meta name="description" content="">
+		    <meta name="author" content="">
+
+		    <!-- Le styles -->
+		    <link href="../../assets/css/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/bootstrap-responsive.min.css" media="screen" rel="stylesheet" type="text/css" />
+		    <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" />
+		  
+		    <!-- JS -->
+		    <script src="../../assets/js/jquery-1.10.1.min.js" type="text/javascript"></script>
+		    <script src="../../assets/js/bootstrap-dropdown.js" type="text/javascript"></script>
+		
+			<!-- Google Analytics Magic -->
+			<script type="text/javascript">
+			  var _gaq = _gaq || [];
+			  _gaq.push(['_setAccount', 'UA-20226872-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>			
+			<!-- navbar excitement -->
+	    <div class="navbar navbar-static-top">
+	      <div class="navbar-inner">
+	        <div class="container">
+						<a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a>
+	          <ul class="nav">
+	            <li><a href="/gettingstarted/">Getting Started</a></li>
+	            <li><a href="/documentation/latest/">Documentation</a></li>
+	            <li><a href="/downloads/">Downloads</a></li>
+	            <li><a href="/community/">Community</a></li>
+	          </ul>
+	        </div>
+	      </div>
+	    </div><!-- /.navbar -->
+
+
+      <div class="container">
+
+			<!-- magical breadcrumbs -->
+			<ul class="breadcrumb">
+			  <li>
+					<div class="dropdown">
+					  <a class="dropdown-toggle" data-toggle="dropdown" href="#">Apache Software Foundation <b class="caret"></b></a>
+					  <ul class="dropdown-menu" role="menu">
+							<li><a href="http://www.apache.org">Apache Homepage</a></li>
+							<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>
+				</li>
+				<li><span class="divider">></span></li>
+				<li><a href="http://mesos.apache.org">Apache Mesos</a></li>
+				
+			</ul><!-- /breadcrumb -->
+
+			<div class="row-fluid">
+	<div class="span4">
+		<h4>If you're new to Mesos</h4>
+		<p>See the <a href="/gettingstarted/">getting started</a> page for more information about downloading, building, and deploying Mesos.</p>
+		
+		<h4>If you'd like to get involved or you're looking for support</h4>
+		<p>See our <a href="/community/">community</a> page for more details.</p>
+	</div>
+	<div class="span8">
+		<h1>Mesos Configuration</h1>
+
+<p>The Mesos master and slave can take a variety of configuration options through command-line arguments, or environment variables. A list of the available options can be seen by running <code>mesos-master --help</code> or <code>mesos-slave --help</code>. Each option can be set in two ways:</p>
+
+<ul>
+<li>By passing it to the binary using <code>--option_name=value</code>.</li>
+<li>By setting the environment variable <code>MESOS_OPTION_NAME</code> (the option name with a <code>MESOS_</code> prefix added to it).</li>
+</ul>
+
+
+<p>Configuration values are searched for first in the environment, then on the command-line.</p>
+
+<p><strong>Important Options</strong></p>
+
+<p>If you have special compilation requirements, please refer to <code>./configure --help</code> when configuring Mesos. Additionally, the documentation lists only a subset of the options. A definitive source for which flags your version of Mesos supports can be found by running the binary with the flag <code>--help</code>, for example <code>bin/mesos-master --help</code>.</p>
+
+<h2>Master and Slave Options</h2>
+
+<p><em>These options can be supplied to both masters and slaves.</em></p>
+
+<ul>
+<li><p><code>log_dir</code> : Directory for log files. If unspecified, nothing is written to disk.</p></li>
+<li><p><code>quiet</code> : Disable logging to stderr. [Default: false]</p></li>
+<li><p><code>ip</code> : IP address to listen on. [Optional]</p></li>
+<li><p><code>port</code> : Port to listen on. [Default for master: 5050, Default for slave:5051]</p></li>
+</ul>
+
+
+<h2>Master Options</h2>
+
+<ul>
+<li><p><code>zk</code> : ZooKeeper URL (used for leader election amongst multiple masters). May be one of:</p>
+
+<ul>
+<li>zk://host1:port1,host2:port2,&hellip;/path</li>
+<li>zk://username:password@host1:port1,host2:port2,&hellip;/path</li>
+<li>file://path/to/file (where file contains one of the above)</li>
+</ul>
+</li>
+<li><p><code>roles</code> : A comma seperated list of the allocation roles
+          that frameworks in this cluster may belong to.</p></li>
+<li><p><code>weights</code> : A comma seperated list of role/weight pairs
+            of the form &lsquo;role=weight,role=weight&rsquo;. Weights
+            are used to indicate forms of priority.</p></li>
+</ul>
+
+
+<h2>Slave Options</h2>
+
+<ul>
+<li><p><code>resources</code> : Total consumable resources per slave, in
+                the form &lsquo;name(role):value;name(role):value&hellip;&rsquo;.</p>
+
+<ul>
+<li>NOTE: &lsquo;(role)&rsquo; is optional.</li>
+<li>Ex: &ldquo;cpus(role2):2;mem(role2):1024;cpus:1;mem:1024;disk:0&rdquo;</li>
+</ul>
+</li>
+<li><p><code>attributes</code> : Attributes for the machine. [Optional]</p>
+
+<ul>
+<li>These are free-form in the same style as resources, ex: &ldquo;rack:abc;kernel:2.6.44&rdquo;.</li>
+<li>This information is provided to frameworks.</li>
+</ul>
+</li>
+<li><p><code>work_dir</code> : Directory for the executor work directories. [Default: /tmp/mesos]</p>
+
+<ul>
+<li><code>isolation</code> : Isolation mechanism, one of: &ldquo;process&rdquo;, &ldquo;cgroups&rdquo;. [Default: process]</li>
+<li><code>cgroups_enable_cfs</code> : If using cgroups isolation, this enables hard limits on CPU resources.</li>
+</ul>
+</li>
+<li><p><code>master</code> : May be one of:</p>
+
+<ul>
+<li>zk://host1:port1,host2:port2,&hellip;/path</li>
+<li>zk://username:password@host1:port1,host2:port2,&hellip;/path\n</li>
+<li>file://path/to/file (where file contains one of the above)</li>
+</ul>
+</li>
+<li><p><code>default_role</code> : Any resources in the &ndash;resources flag that
+                 omit a role, as well as any resources that
+                 are not present in &ndash;resources but that are
+                 automatically detected, will be assigned to
+                 this role. [Default: *]</p></li>
+<li><p><code>checkpoint</code> :  Whether to checkpoint slave and frameworks information
+                to disk.</p>
+
+<ul>
+<li>This enables a restarted slave to recover status updates and reconnect
+with (&ndash;recover=reconnect) or kill (&ndash;recover=kill) old executors [Default: false]</li>
+</ul>
+</li>
+<li><p><code>strict</code> : Whether to do recovery in strict mode [Default: true].</p>
+
+<ul>
+<li>If strict=true, any and all recovery errors are considered fatal.</li>
+<li>If strict=false, any errors (e.g., corruption in checkpointed data) during recovery are
+ignored and as much state as possible is recovered.</li>
+</ul>
+</li>
+</ul>
+
+
+<h2>Mesos Configuration Options</h2>
+
+<p>The configure script itself accepts the following arguments to enable various options:</p>
+
+<ul>
+<li><code>--with-python-headers=DIR</code>: Find Python header files in <code>DIR</code> (to turn on Python support). Recommended.</li>
+<li><code>--with-webui</code>: Enable the Mesos web UI (which requires Python 2.6). Recommended.</li>
+<li><code>--with-java-home=DIR</code>: Enable Java application/framework support with a given installation of Java. Required for Hadoop and Spark.</li>
+<li><code>--with-java-headers=DIR</code>: Find Java header files (necessary for newer versions of OS X Snow Leopard).</li>
+<li><code>--with-included-zookeeper</code> or <code>--with-zookeeper=DIR</code>: Enable master fault-tolerance using an existing ZooKeeper installation or the version of ZooKeeper bundled with Mesos. For details, see <a href="high-availability">High Availability</a>.</li>
+</ul>
+
+
+	</div>
+</div>
+
+			
+	      <hr>
+
+				<!-- footer -->
+	      <div class="footer">
+	        <p>&copy; 2012-2013 <a href="http://apache.org">The Apache Software Foundation</a>.
+	        Apache Mesos, the Apache feather logo, and the Apache Mesos project logo are trademarks of The Apache Software Foundation.<p>
+	      </div><!-- /footer -->
+
+	    </div> <!-- /container -->
+
+    </body>
+</html>