Modified: mesos/site/publish/documentation/mesos-testing-patterns/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/mesos-testing-patterns/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/mesos-testing-patterns/index.html (original) +++ mesos/site/publish/documentation/mesos-testing-patterns/index.html Sat Jul 25 00:39:22 2015 @@ -166,7 +166,7 @@ Clock::resume(); <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -176,4 +176,4 @@ Clock::resume(); <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html>
Modified: mesos/site/publish/documentation/modules/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/modules/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/modules/index.html (original) +++ mesos/site/publish/documentation/modules/index.html Sat Jul 25 00:39:22 2015 @@ -544,7 +544,7 @@ must exist between the various versions: <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -554,4 +554,4 @@ must exist between the various versions: <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/documentation/monitoring/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/monitoring/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/monitoring/index.html (original) +++ mesos/site/publish/documentation/monitoring/index.html Sat Jul 25 00:39:22 2015 @@ -1151,7 +1151,7 @@ the master it is registered with.</p> <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -1161,4 +1161,4 @@ the master it is registered with.</p> <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/documentation/network-monitoring/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/network-monitoring/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/network-monitoring/index.html (original) +++ mesos/site/publish/documentation/network-monitoring/index.html Sat Jul 25 00:39:22 2015 @@ -468,7 +468,7 @@ for each of these elements includes:</p> <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -478,4 +478,4 @@ for each of these elements includes:</p> <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/documentation/operational-guide/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/operational-guide/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/operational-guide/index.html (original) +++ mesos/site/publish/documentation/operational-guide/index.html Sat Jul 25 00:39:22 2015 @@ -139,7 +139,7 @@ <p>As the size of a cluster grows, it may be desired to increase the quorum size for additional fault tolerance.</p> -<p>The following steps indicate how to increment the quorum size, using 3 â 5 masters as an example (quorum size 2 â 3):</p> +<p>The following steps indicate how to increment the quorum size, using 3 -> 5 masters as an example (quorum size 2 -> 3):</p> <ol> <li>Initially, 3 masters are running with <code>--quorum=2</code></li> @@ -152,7 +152,7 @@ <h3>Decreasing the quorum size</h3> -<p>The following steps indicate how to decrement the quorum size, using 5 â 3 masters as an example (quorum size 3 â 2):</p> +<p>The following steps indicate how to decrement the quorum size, using 5 -> 3 masters as an example (quorum size 3 -> 2):</p> <ol> <li>Initially, 5 masters are running with <code>--quorum=3</code></li> @@ -175,7 +175,7 @@ <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -185,4 +185,4 @@ <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Added: mesos/site/publish/documentation/oversubscription/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/oversubscription/index.html?rev=1692599&view=auto ============================================================================== --- mesos/site/publish/documentation/oversubscription/index.html (added) +++ mesos/site/publish/documentation/oversubscription/index.html Sat Jul 25 00:39:22 2015 @@ -0,0 +1,416 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title></title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> + <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml"> + + <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" /> + + + + <!-- 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> + <!-- magical breadcrumbs --> + <div class="topnav"> + <ul class="breadcrumb"> + <li> + <div class="dropdown"> + <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a> + <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> + <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><a href="http://mesos.apache.org">Apache Mesos</a></li> + + + <li><a href="/documentation +/">Documentation +</a></li> + + + </ul><!-- /breadcrumb --> + </div> + + <!-- navbar excitement --> + <div class="navbar navbar-static-top" role="navigation"> + <div class="navbar-inner"> + <div class="container"> + <a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a> + <div class="nav-collapse"> + <ul class="nav nav-pills navbar-right"> + <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> + </div><!-- /.navbar --> + + <div class="container"> + + <div class="row-fluid"> + <div class="col-md-4"> + <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="col-md-8"> + <p>— layout: documentation —</p> + +<h1>Oversubscription</h1> + +<p>High-priority user-facing services are typically provisioned on large clusters +for peak load and unexpected load spikes. Hence, for most of time, the +provisioned resources remain underutilized. Oversubscription takes advantage of +temporarily unused resources to execute best-effort tasks such as background +analytics, video/image processing, chip simulations, and other low priority +jobs.</p> + +<h2>How does it work?</h2> + +<p>Oversubscription was introduced in Mesos 0.23.0 and adds two new slave +components: a Resource Estimator and a Quality of Service (QoS) Controller, +alongside extending the existing resource allocator, resource monitor, and +mesos slave. The new components and their interactions are illustrated below.</p> + +<p><img src="images/oversubscription-overview.jpg" alt="Oversubscription overview" /></p> + +<h3>Resource estimation</h3> + +<ul> +<li><p>(1) The first step is to identify the amount of oversubscribed resources. +The resource estimator taps into the resource monitor and periodically gets +usage statistics via <code>ResourceStatistic</code> messages. The resource estimator +applies logic based on the collected resource statistics to determine the +amount of oversubscribed resources. This can be a series of control algorithms +based on measured resource usage slack (allocated but unused resources) and +allocation slack.</p></li> +<li><p>(2) The slave keeps polling estimates from the resource estimator and tracks +the latest estimate.</p></li> +<li><p>(3) The slave will send the total amount of oversubscribed resources to the +master when the latest estimate is different from the previous estimate.</p></li> +</ul> + + +<h3>Resource tracking & scheduling algorithm</h3> + +<ul> +<li>(4) The allocator keeps track of the oversubscribed resources separately +from regular resources and annotate those resources as <code>revocable</code>. It is up +to the resource estimator to determine which types of resources can be +oversubscribed. It is recommended only to oversubscribe <em>compressible</em> +resources such as cpu shares, bandwidth, etc.</li> +</ul> + + +<h3>Frameworks</h3> + +<ul> +<li>(5) Frameworks can choose to launch tasks on revocable resources by using +the regular launchTasks() API. To safe-guard frameworks that are not +designed to deal with preemption, only frameworks registering with the +<code>REVOCABLE_RESOURCES</code> capability set in its framework info will receive offers +with revocable resources. Further more, recovable resources cannot be +dynamically reserved and persistent volumes should not be created on revocable +disk resources.</li> +</ul> + + +<h3>Task launch</h3> + +<ul> +<li>The revocable task is launched as usual when the runTask request is received +on the slave. The resources will still be marked as revocable and isolators +can take appropriate actions, if certain resources need to be setup differently +for revocable and regular tasks.</li> +</ul> + + +<blockquote><p>NOTE: If any resource used by a task or executor is +revocable, the whole container is treated as a revocable container and can +therefore be killed or throttled by the QoS Controller.</p></blockquote> + +<h3>Interference detection</h3> + +<ul> +<li>(6) When the revocable task is running, it is important to constantly +monitor the original task running on those resources and guarantee +performance based on an SLA. In order to react to detected interference, the +QoS controller needs to be able to kill or throttle running revocable tasks.</li> +</ul> + + +<h2>Enabling frameworks to use oversubscribed resources</h2> + +<p>Frameworks planning to use oversubscribed resources need to register with the +<code>REVOCABLE_RESOURCES</code> capability set:</p> + +<pre><code class="{.cpp}">FrameworkInfo framework; +framework.set_name("Revocable framework"); + +framework.add_capabilities()->set_type( + FrameworkInfo::Capability::REVOCABLE_RESOURCES); +</code></pre> + +<p>From that point on, the framework will start to receive revocable resources in +offers.</p> + +<blockquote><p>NOTE: That there is no guarantee that the Mesos cluster has oversubscription +enabled. If not, no revocable resources will be offered. See below for +instructions how to configure Mesos for oversubscription.</p></blockquote> + +<h3>Launching tasks using revocable resources</h3> + +<p>Launching tasks using recovable resources is done through the existing +<code>launchTasks</code> API. Revocable resources will have the <code>recovable</code> field set. See +below for an example offer with regular and revocable resources.</p> + +<pre><code class="{.json}">{ + "id": "20150618-112946-201330860-5050-2210-0000", + "framework_id": "20141119-101031-201330860-5050-3757-0000", + "slave_id": "20150618-112946-201330860-5050-2210-S1", + "hostname": "foobar", + "resources": [ + { + "name": "cpus", + "type": "SCALAR", + "scalar": { + "value": 2.0 + }, + "role": "*" + }, { + "name": "mem", + "type": "SCALAR", + "scalar": { + "value": 512.0 + }, + "role": "*" + }, + { + "name": "cpus", + "type": "SCALAR", + "scalar": { + "value": 0.45 + }, + "role": "*", + "revocable": {} + } + ] +} +</code></pre> + +<h2>Writing a custom resource estimator</h2> + +<p>The resource estimator estimates and predicts the total resources used on the +slave and informs the master about resources that can be oversubscribed. By +default, Mesos comes with a <code>noop</code> and a <code>fixed</code> resource estimator. The <code>noop</code> +estimator only provides an empty estimate to the slave and stalls, effectively +disabling oversubscription. The <code>fixed</code> estimator doesn’t use the actual +measured slack, but oversubscribes the node with fixed resource amount (defined +via a command line flag).</p> + +<p>The interface is defined below:</p> + +<pre><code class="{.cpp}">class ResourceEstimator +{ +public: + // Initializes this resource estimator. This method needs to be + // called before any other member method is called. It registers + // a callback in the resource estimator. The callback allows the + // resource estimator to fetch the current resource usage for each + // executor on slave. + virtual Try<Nothing> initialize( + const lambda::function<process::Future<ResourceUsage>()>& usage) = 0; + + // Returns the current estimation about the *maximum* amount of + // resources that can be oversubscribed on the slave. A new + // estimation will invalidate all the previously returned + // estimations. The slave will be calling this method periodically + // to forward it to the master. As a result, the estimator should + // respond with an estimate every time this method is called. + virtual process::Future<Resources> oversubscribable() = 0; +}; +</code></pre> + +<h2>Writing a custom QoS controller</h2> + +<p>The interface for implementing custom QoS Controllers is defined below:</p> + +<pre><code class="{.cpp}">class QoSController +{ +public: + // Initializes this QoS Controller. This method needs to be + // called before any other member method is called. It registers + // a callback in the QoS Controller. The callback allows the + // QoS Controller to fetch the current resource usage for each + // executor on slave. + virtual Try<Nothing> initialize( + const lambda::function<process::Future<ResourceUsage>()>& usage) = 0; + + // A QoS Controller informs the slave about corrections to carry + // out, but returning futures to QoSCorrection objects. For more + // information, please refer to mesos.proto. + virtual process::Future<std::list<QoSCorrection>> corrections() = 0; +}; +</code></pre> + +<blockquote><p>NOTE The QoS Controller must not block <code>corrections()</code>. Back the QoS +Controller with it’s own libprocess actor instead.</p></blockquote> + +<p>The QoS Controller informs the slave that particular corrective actions need to +be made. Each corrective action contains information about executor or task and +the type of action to perform.</p> + +<pre><code class="{.proto}">message QoSCorrection { + enum Type { + KILL = 1; // Terminate an executor. + } + + message Kill { + optional FrameworkID framework_id = 1; + optional ExecutorID executor_id = 2; + } + + required Type type = 1; + optional Kill kill = 2; +} +</code></pre> + +<h2>Configuring Mesos for oversubscription</h2> + +<p>Five new flags has been added to the slave:</p> + +<table class="table table-striped"> + <thead> + <tr> + <th width="30%"> + Flag + </th> + <th> + Explanation + </th> + </thead> + + <tr> + <td> + --oversubscribed_resources_interval=VALUE + </td> + <td> + The slave periodically updates the master with the current estimation +about the total amount of oversubscribed resources that are allocated and +available. The interval between updates is controlled by this flag. (default: +15secs) + </td> + </tr> + + <tr> + <td> + --qos_controller=VALUE + </td> + <td> + The name of the QoS Controller to use for oversubscription. + </td> + </tr> + + <tr> + <td> + --qos_correction_interval_min=VALUE + </td> + <td> + The slave polls and carries out QoS corrections from the QoS Controller +based on its observed performance of running tasks. The smallest interval +between these corrections is controlled by this flag. (default: 0ns) + </td> + </tr> + + <tr> + <td> + --resource_estimator=VALUE + </td> + <td> + The name of the resource estimator to use for oversubscription. + </td> + </tr> + + <tr> + <td> + --resource_monitoring_interval=VALUE + </td> + <td> + Periodic time interval for monitoring executor resource usage (e.g., +10secs, 1min, etc) (default: 1secs) + </td> + </tr> + +</table> + + +<p>The <code>fixed</code> resource estimator is enabled as follows:</p> + +<pre><code>--resource_estimator="org_apache_mesos_FixedResourceEstimator" + +--modules='{ + "libraries": { + "file": "/usr/local/lib64/libfixed_resource_estimator.so", + "modules": { + "name": "org_apache_mesos_FixedResourceEstimator", + "parameters": { + "key": "resources", + "value": "cpus:14" + } + } + } +}' +</code></pre> + +<p>In the example above, a fixed amount of 14 cpus will be offered as revocable +resources.</p> + +<p>To select custom a resource estimator and QoS controller, please refer to the +<a href="/documentation/latest/modules/">modules documentation</a>.</p> + + </div> +</div> + + + <hr> + + <!-- footer --> + <div class="footer"> + <p>© 2012-2015 <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 --> + + <!-- JS --> + <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> + <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> + </body> +</html> Propchange: mesos/site/publish/documentation/oversubscription/index.html ------------------------------------------------------------------------------ svn:eol-style = native Added: mesos/site/publish/documentation/persistent-volume/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/persistent-volume/index.html?rev=1692599&view=auto ============================================================================== --- mesos/site/publish/documentation/persistent-volume/index.html (added) +++ mesos/site/publish/documentation/persistent-volume/index.html Sat Jul 25 00:39:22 2015 @@ -0,0 +1,328 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title></title> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> + <link rel="alternate" type="application/atom+xml" title="Apache Mesos Blog" href="/blog/feed.xml"> + + <link href="../../assets/css/main.css" media="screen" rel="stylesheet" type="text/css" /> + + + + <!-- 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> + <!-- magical breadcrumbs --> + <div class="topnav"> + <ul class="breadcrumb"> + <li> + <div class="dropdown"> + <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a> + <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> + <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><a href="http://mesos.apache.org">Apache Mesos</a></li> + + + <li><a href="/documentation +/">Documentation +</a></li> + + + </ul><!-- /breadcrumb --> + </div> + + <!-- navbar excitement --> + <div class="navbar navbar-static-top" role="navigation"> + <div class="navbar-inner"> + <div class="container"> + <a href="/" class="logo"><img src="/assets/img/mesos_logo.png" alt="Apache Mesos logo" /></a> + <div class="nav-collapse"> + <ul class="nav nav-pills navbar-right"> + <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> + </div><!-- /.navbar --> + + <div class="container"> + + <div class="row-fluid"> + <div class="col-md-4"> + <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="col-md-8"> + <h1>Persistent Volume</h1> + +<p>Mesos provides a mechanism to create a persistent volume from disk resources. +This enables stateful services such as HDFS and Cassandra to store their data +within Mesos rather than having to resort to network-mounted EBS volumes that +needs to be placed in a well-known location.</p> + +<p>Persistent volumes can only be created from <strong>reserved</strong> disk resources, whether +it be statically reserved or dynamically reserved. A dynamically reserved +persistent volume also cannot be unreserved without having explicitly destroyed +the volume. These rules exist to limit the accidental mistakes such as: +a persistent volume containing sensitive data being offered to other frameworks +in the cluster.</p> + +<p>Please refer to the +<a href="/documentation/latest/reservation/">Reservation</a> documentation for details regarding reservation +mechanisms available in Mesos.</p> + +<p>Persistent volumes can be created by <strong>operators</strong> and authorized +<strong>frameworks</strong>. We require a <code>principal</code> from the operator or framework in order +to authenticate/authorize the operations. <a href="/documentation/latest/authorization/">Authorization</a> is +specified via the existing ACL mechanism. (<strong><em>Coming Soon</em></strong>)</p> + +<ul> +<li><code>Offer::Operation::Create</code> and <code>Offer::Operation::Destroy</code> messages are +available for <strong>frameworks</strong> to send back via the <code>acceptOffers</code> API as a +response to a resource offer.</li> +<li><code>/create</code> and <code>/destroy</code> HTTP endpoints are available for <strong>operators</strong> +to manage persistent volumes through the master. (<strong><em>Coming Soon</em></strong>).</li> +</ul> + + +<p>In the following sections, we will walk through examples of each of the +interfaces described above.</p> + +<h2><code>Offer::Operation::Create</code></h2> + +<p>A framework is able to create volumes through the resource offer cycle. +Suppose we receive a resource offer with 2048 MB of dynamically reserved disk.</p> + +<pre><code>{ + "id" : <offer_id>, + "framework_id" : <framework_id>, + "slave_id" : <slave_id>, + "hostname" : <hostname>, + "resources" : [ + { + "name" : "disk", + "type" : "SCALAR", + "scalar" : { "value" : 2048 }, + "role" : <framework_role>, + "reservation" : { + "principal" : <framework_principal> + } + } + ] +} +</code></pre> + +<p>We can create a persistent volume from the 2048 MB of disk resources by sending +the following <code>Offer::Operation</code> message via the <code>acceptOffers</code> API. +<code>Offer::Operation::Create</code> has a <code>volumes</code> field which we specify with the +persistent volume information. We need to specify the following:</p> + +<ol> +<li>ID of the persistent volume which needs to be unique per role on each slave.</li> +<li>The non-nested relative path within the container to mount the volume.</li> +<li>The permissions for the volume. Currently, <code>"RW"</code> is the only possible value.</li> +</ol> + + +<pre><code>{ + "type" : Offer::Operation::CREATE, + "create": { + "volumes" : [ + { + "name" : "disk", + "type" : "SCALAR", + "scalar" : { "value" : 2048 }, + "role" : <framework_role>, + "reservation" : { + "principal" : <framework_principal> + }, + "disk": { + "persistence": { + "id" : <persistent_volume_id> + }, + "volume" : { + "container_path" : <container_path>, + "mode" : <mode> + } + } + } + ] + } +} +</code></pre> + +<p>The subsequent resource offer will <strong>contain</strong> the following persistent volume:</p> + +<pre><code>{ + "id" : <offer_id>, + "framework_id" : <framework_id>, + "slave_id" : <slave_id>, + "hostname" : <hostname>, + "resources" : [ + { + "name" : "disk", + "type" : "SCALAR", + "scalar" : { "value" : 2048 }, + "role" : <framework_role>, + "reservation" : { + "principal" : <framework_principal> + }, + "disk": { + "persistence": { + "id" : <persistent_volume_id> + }, + "volume" : { + "container_path" : <container_path>, + "mode" : <mode> + } + } + } + ] +} +</code></pre> + +<h2><code>Offer::Operation::Destroy</code></h2> + +<p>A framework is able to destroy persistent volumes through the resource offer +cycle. In <a href="#offeroperationcreate">Offer::Operation::Create</a>, we created a +persistent volume from 2048 MB of disk resources. Mesos will not garbage-collect +this volume until we explicitly destroy it. Suppose we would like to destroy the +volume we created. First, we receive a resource offer (copy/pasted from above):</p> + +<pre><code>{ + "id" : <offer_id>, + "framework_id" : <framework_id>, + "slave_id" : <slave_id>, + "hostname" : <hostname>, + "resources" : [ + { + "name" : "disk", + "type" : "SCALAR", + "scalar" : { "value" : 2048 }, + "role" : <framework_role>, + "reservation" : { + "principal" : <framework_principal> + }, + "disk": { + "persistence": { + "id" : <persistent_volume_id> + }, + "volume" : { + "container_path" : <container_path>, + "mode" : <mode> + } + } + } + ] +} +</code></pre> + +<p>We destroy the persistent volume by sending the <code>Offer::Operation</code> message via +the <code>acceptOffers</code> API. <code>Offer::Operation::Destroy</code> has a <code>volumes</code> field which +we specify the persistent volumes to be destroyed.</p> + +<pre><code>{ + "type" : Offer::Operation::DESTROY, + "destroy" : { + "volumes" : [ + { + "name" : "disk", + "type" : "SCALAR", + "scalar" : { "value" : 2048 }, + "role" : <framework_role>, + "reservation" : { + "principal" : <framework_principal> + }, + "disk": { + "persistence": { + "id" : <persistent_volume_id> + }, + "volume" : { + "container_path" : <container_path>, + "mode" : <mode> + } + } + } + ] + } +} +</code></pre> + +<p>The persistent volume will be destroyed, but the disk resources will still be +reserved. As such, the subsequent resource offer will <strong>contain</strong> the following +reserved disk resources:</p> + +<pre><code>{ + "id" : <offer_id>, + "framework_id" : <framework_id>, + "slave_id" : <slave_id>, + "hostname" : <hostname>, + "resources" : [ + { + "name" : "disk", + "type" : "SCALAR", + "scalar" : { "value" : 2048 }, + "role" : <framework_role>, + "reservation" : { + "principal" : <framework_principal> + } + } + ] +} +</code></pre> + +<p>Note that in 0.23, even after you destroy the persistent volume, its content +will still be on the disk. The garbage collection for persistent volumes is +coming soon: <a href="https://issues.apache.org/jira/browse/MESOS-2408">MESOS-2048</a>.</p> + +<h3><code>/create</code> (<em>Coming Soon</em>)</h3> + +<h3><code>/destroy</code> (<em>Coming Soon</em>)</h3> + + </div> +</div> + + + <hr> + + <!-- footer --> + <div class="footer"> + <p>© 2012-2015 <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 --> + + <!-- JS --> + <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> + <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> + </body> +</html> Propchange: mesos/site/publish/documentation/persistent-volume/index.html ------------------------------------------------------------------------------ svn:eol-style = native Modified: mesos/site/publish/documentation/powered-by-mesos/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/powered-by-mesos/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/powered-by-mesos/index.html (original) +++ mesos/site/publish/documentation/powered-by-mesos/index.html Sat Jul 25 00:39:22 2015 @@ -180,7 +180,7 @@ <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -190,4 +190,4 @@ <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/documentation/reconciliation/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/reconciliation/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/reconciliation/index.html (original) +++ mesos/site/publish/documentation/reconciliation/index.html Sat Jul 25 00:39:22 2015 @@ -165,10 +165,10 @@ tasks, until an update is received for e <ol> <li>let <code>start = now()</code></li> -<li>let <code>remaining = { T ϵ tasks | T is non-terminal }</code></li> +<li>let <code>remaining = { T in tasks | T is non-terminal }</code></li> <li>Perform reconciliation: <code>reconcile(remaining)</code></li> <li>Wait for status updates to arrive (use truncated exponential backoff). For each update, note the time of arrival.</li> -<li>let <code>remaining = { T ϵ remaining | T.last_update_arrival() < start }</code></li> +<li>let <code>remaining = { T in remaining | T.last_update_arrival() < start }</code></li> <li>If <code>remaining</code> is non-empty, go to 3.</li> </ol> @@ -209,7 +209,7 @@ then the previous reconciliation algorit <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -219,4 +219,4 @@ then the previous reconciliation algorit <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/documentation/release-guide/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/release-guide/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/release-guide/index.html (original) +++ mesos/site/publish/documentation/release-guide/index.html Sat Jul 25 00:39:22 2015 @@ -91,11 +91,18 @@ <ol> <li><p>Ensure that you have a GPG key or generate a new one, e.g., using <code>gpg --gen-key</code>.</p></li> -<li><p>Add your GPG public key to the Apache Mesos dist repository in the KEYS file.</p></li> -<li>Fetch the svn repository <code>svn co https://dist.apache.org/repos/dist/release/mesos</code></li> -<li>Append your public key using one of methods described in KEYS, -e.g., <code>(gpg --list-sigs <your name> && gpg --armor --export <your name>) >> KEYS</code>.</li> -<li><p>Push the commit: <code>svn ci</code></p></li> +<li><p>Add your GPG public key to the Apache Mesos dist repository in the KEYS file.</p> + +<ul> +<li><p>Fetch the svn repository:<br> +<code>svn co https://dist.apache.org/repos/dist/release/mesos</code></p></li> +<li><p>Append your public key using one of methods described in KEYS, +e.g.,<br> +<code>(gpg --list-sigs <your name> && gpg --armor --export <your name>) >> KEYS</code>.</p></li> +<li><p>Push the commit:<br> +<code>svn ci</code></p></li> +</ul> +</li> <li><p>Submit your GPG public key to a keyserver, e.g., <a href="https://pgp.mit.edu">MIT PGP Public Key Server</a>.</p></li> <li><p>Add your GPG fingerprint to your <a href="https://id.apache.org/">Apache account</a>.</p></li> <li><p>Create a Maven settings file (<code>~/.m2/settings.xml</code>) for the Apache @@ -129,22 +136,32 @@ password</a>.</p> <li><p>Go to <a href="https://issues.apache.org/jira/browse/MESOS">Apache Jira</a> and make sure that the CHANGELOG for the release version is up to date.</p> -<blockquote><p>NOTE: You should move all <strong>Unresolved</strong> tickets marked with <code>Fix Version</code> as the - release version to the next release version.</p> +<blockquote><p>NOTE: You should move all <strong>Unresolved</strong> tickets marked with <code>Fix Version</code> + or <code>Target Version</code> as the release version to the next release version.</p> + +<p>PROTIP: Use a JIRA dashboard <a href="https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12326227">(example)</a> + to track the progress of targeted issues as the release date approaches.</p> <p>PROTIP: Use <code>bulk edit</code> option in JIRA to move the tickets and make sure to - <strong>uncheck</strong> the option that emails everyone about the move.</p></blockquote></li> -<li><p>Update and commit the <code>CHANGELOG</code> for the release.</p> + <strong>uncheck</strong> the option that emails everyone about the move.</p></blockquote></li> +<li><p>Update and commit the <code>CHANGELOG</code> for the release. For major releases we like to call +out any major features, API changes, or deprecations.</p> <blockquote><p>NOTE: You should use JIRA to generate the CHANGELOG for you. Click on the release - version in <a href="https://issues.apache.org/jira/browse/MESOS#selectedTab=com.atlassian.jira.plugin.system.project%3Aversions-panel">JIRA</a> and click - on the <code>Release Notes</code>. Make sure to configure the release notes in text format.</p></blockquote></li> + version in <a href="https://issues.apache.org/jira/browse/MESOS#selectedTab=com.atlassian.jira.plugin.system.project%3Aversions-panel">JIRA</a> and click + on the <code>Release Notes</code>. Make sure to configure the release notes in text format.</p> + +<p>NOTE: The JIRA Release Notes will list only tickets with <code>Fix Version</code> set + to that version. You should check for any Resolved tickets that have + <code>Target Version</code> set but not <code>Fix Version</code>. Also check for any Unresolved + or <code>Duplicate</code>/<code>Invalid</code> tickets that incorrectly set the <code>Fix Version</code>.</p></blockquote></li> <li><p>If not already done, update and commit <code>configure.ac</code> for the release.</p></li> <li><p>Update and commit <code>docs/configuration.md</code> to reflect the current state of the master, slave, and configure flags.</p></li> <li><p>Update and commit <code>docs/upgrades.md</code> with instructions about how to upgrade a live cluster from the previous release version to this release version.</p></li> -<li><p>If this is a major release please write and commit documentation for this feature.</p></li> +<li><p>If this is a major release, please ensure that user documentation has been +added for any new features.</p></li> </ol> @@ -153,7 +170,7 @@ a live cluster from the previous release <ol> <li><p>Ensure that you can build and pass all the tests.</p> -<pre><code> $ make -j3 distcheck +<pre><code> $ sudo make -j3 distcheck </code></pre></li> <li><p>First tag the required SHA locally.</p> @@ -169,7 +186,10 @@ It is recommended to use the <code>suppo </code></pre> <blockquote><p>NOTE: This script assumes that you have the requisite permissions to deploy the JAR. For - instructions on how to set it up, please refer to <code>src/java/MESOS-MAVEN-README</code>.</p></blockquote></li> + instructions on how to set it up, please refer to <code>src/java/MESOS-MAVEN-README</code>.</p> + +<p>NOTE: gnu-sed (Linux) requires <code>-i''</code> instead of the <code>-i ''</code> (space-separated) that default OSX uses. + You may need to modify your local copy of tag.sh for it to complete successfully.</p></blockquote></li> <li><p>It is not uncommon to release multiple release candidates, with increasing release candidate version, if there are bugs found.</p></li> <li><p>Update to the <em>next</em> Mesos version in <code>configure.ac</code>: change <code>AC_INIT([mesos], [X.Y.Z]))</code> and commit.</p></li> @@ -185,7 +205,27 @@ the <code>[email protected]</code> (a <pre><code> $ ./support/vote.sh X.Y.Z R </code></pre></li> -<li><p>The release script also spits out an email template that you could use to send the vote email.</p></li> +<li><p>The release script also spits out an email template that you could use to send the vote email.</p> + +<blockquote><p>NOTE: The <code>date -v+3d</code> command does not work on some platforms (e.g. Ubuntu), + so you may need to fill in the vote end date manually. The vote should last + for 3 business days instead of 3 calendar days anyway. Sometimes we prefer a + weeklong vote, to allow more time for integration testing.</p></blockquote></li> +</ol> + + +<h2>Preparing a new release candidate</h2> + +<ol> +<li><p>If the vote does not pass (any -1s or showstopper bugs), track the issues as new JIRAs for the release.</p></li> +<li><p>When all known issues are resolved, update the CHANGELOG with the newly fixed JIRAs.</p></li> +<li><p>Once all patches are committed to master, cherry-pick them on top of the previous release candidate tag. +This is the same process used for point releases (e.g. 0.22.1) as well.</p> + +<pre><code> $ git checkout X.Y.Z-rcR + $ git cherry-pick abcdefgh... +</code></pre></li> +<li><p>Now go back up to the “Tagging the release candidate” section and repeat.</p></li> </ol> @@ -208,8 +248,14 @@ the result of the vote and the release.< <h2>Updating the website</h2> <ol> -<li><p>After a successful release please update the website pointing to the new release.</p></li> -<li><p>It is also recommended to write a blog post announcing the feature.</p></li> +<li><p>After a successful release, please update the website pointing to the new release. +See our <a href="http://svn.apache.org/repos/asf/mesos/site/">website README</a> and +the general <a href="https://www.apache.org/dev/project-site.html">Apache project website guide</a> +for details on how to build and publish the website.</p> + +<pre><code> $ svn co https://svn.apache.org/repos/asf/mesos/site mesos-site +</code></pre></li> +<li><p>Write a blog post announcing the new release and its features and major bug fixes.</p></li> </ol> @@ -226,14 +272,27 @@ the result of the vote and the release.< <h2>Set the release date</h2> <ol> -<li>Find the released Mesos version on https://issues.apache.org/jira/plugins/servlet/project-config/MESOS/versions, and update the release date.</li> +<li>Find the released Mesos version on https://issues.apache.org/jira/plugins/servlet/project-config/MESOS/versions, and “release” it with the correct release date.</li> </ol> <h2>Update external tooling</h2> +<p>Upload the mesos.interface package to PyPi.</p> + +<ol> +<li> Create/use a PyPi account with access to the <a href="https://pypi.python.org/pypi?name=mesos.interface&:action=submit_form">mesos.interface submit form</a>. + You may need to ask a current package owner to add you as an owner/maintainer.</li> +<li> Setup your <a href="https://docs.python.org/2/distutils/packageindex.html#pypirc"><code>~/.pypirc</code></a> with your PyPi username and password.</li> +<li> After a successful Mesos <code>make</code> (any architecture), cd to <code>build/src/python/interface</code>.</li> +<li> Run <code>python setup.py register</code> to register this package.</li> +<li> Run <code>python setup.py bdist_egg upload</code> to upload the egg for this package.</li> +</ol> + + +<p>Update the Mesos Homebrew package.</p> + <ol> -<li>Update the Mesos Homebrew package.</li> <li> Update the <a href="https://github.com/Homebrew/homebrew/blob/master/Library/Formula/mesos.rb">Homebrew formula for Mesos</a> and test.</li> <li> Submit a PR to the <a href="https://github.com/Homebrew/homebrew">Homebrew repo</a>.</li> <li> Once accepted, verify that <code>brew install mesos</code> works.</li> @@ -248,7 +307,7 @@ the result of the vote and the release.< <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -258,4 +317,4 @@ the result of the vote and the release.< <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/documentation/reporting-a-bug/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/reporting-a-bug/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/reporting-a-bug/index.html (original) +++ mesos/site/publish/documentation/reporting-a-bug/index.html Sat Jul 25 00:39:22 2015 @@ -100,7 +100,7 @@ <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -110,4 +110,4 @@ <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/documentation/reservation/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/reservation/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/reservation/index.html (original) +++ mesos/site/publish/documentation/reservation/index.html Sat Jul 25 00:39:22 2015 @@ -391,7 +391,7 @@ We can send an HTTP POST request to the <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -401,4 +401,4 @@ We can send an HTTP POST request to the <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/documentation/slave-recovery/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/slave-recovery/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/slave-recovery/index.html (original) +++ mesos/site/publish/documentation/slave-recovery/index.html Sat Jul 25 00:39:22 2015 @@ -189,7 +189,7 @@ KillMode=process <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -199,4 +199,4 @@ KillMode=process <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/documentation/submitting-a-patch/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/submitting-a-patch/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/submitting-a-patch/index.html (original) +++ mesos/site/publish/documentation/submitting-a-patch/index.html Sat Jul 25 00:39:22 2015 @@ -190,7 +190,7 @@ <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -200,4 +200,4 @@ <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/documentation/tools/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/tools/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/tools/index.html (original) +++ mesos/site/publish/documentation/tools/index.html Sat Jul 25 00:39:22 2015 @@ -120,7 +120,7 @@ <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -130,4 +130,4 @@ <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/documentation/upgrades/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/upgrades/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/documentation/upgrades/index.html (original) +++ mesos/site/publish/documentation/upgrades/index.html Sat Jul 25 00:39:22 2015 @@ -367,7 +367,7 @@ except ImportError: <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -377,4 +377,4 @@ except ImportError: <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/downloads/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/downloads/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/downloads/index.html (original) +++ mesos/site/publish/downloads/index.html Sat Jul 25 00:39:22 2015 @@ -73,8 +73,10 @@ <h4>Previous Releases</h4> <ul> + <li><a href="http://archive.apache.org/dist/mesos/0.23.0/">0.23.0</a> + (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12328728">Release Notes</a>)</li> <li><a href="http://archive.apache.org/dist/mesos/0.22.1/">0.22.1</a> - (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12329855">Release Notes</a>)</li> + (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12329855">Release Notes</a>)</li> <li><a href="http://archive.apache.org/dist/mesos/0.22.0/">0.22.0</a> (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12328650">Release Notes</a>)</li> <li><a href="http://archive.apache.org/dist/mesos/0.21.1/">0.21.1</a> @@ -123,8 +125,8 @@ <div class="col-md-8"> <h1>Download Mesos</h1> <p>Download the most recent stable release: - <a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/mesos/0.22.1/">0.22.1</a> - (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12329855">Release Notes</a>) + <a href="http://www.apache.org/dyn/mirrors/mirrors.cgi/mesos/0.23.0/">0.23.0</a> + (<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12328728">Release Notes</a>) </p> <h4>Getting the code via source control</h4> @@ -147,7 +149,7 @@ <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -157,4 +159,4 @@ <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/gettingstarted/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/gettingstarted/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/gettingstarted/index.html (original) +++ mesos/site/publish/gettingstarted/index.html Sat Jul 25 00:39:22 2015 @@ -266,7 +266,7 @@ <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -276,4 +276,4 @@ <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html> Modified: mesos/site/publish/index.html URL: http://svn.apache.org/viewvc/mesos/site/publish/index.html?rev=1692599&r1=1692598&r2=1692599&view=diff ============================================================================== --- mesos/site/publish/index.html (original) +++ mesos/site/publish/index.html Sat Jul 25 00:39:22 2015 @@ -71,6 +71,9 @@ <div class="col-md-7 nopadding"> <h1>Program against your datacenter like itâs a single pool of resources</h1> <p class="lead">Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.</p> + + <a class="btn btn-lg btn-success" href="downloads/"><span class="glyphicon glyphicon-download"></span> Download Mesos 0.23.0</a> + <p>or learn how to <a href="gettingstarted/">get started</a></p> </div> <div class="col-md-5 text-center download"> <a href="http://events.linuxfoundation.org/events/mesoscon/attend/register"><img src="/assets/img/mesoscon-2015-banner-small.png" alt="MesosCon Registration Banner" /></a> @@ -109,13 +112,11 @@ <div class="col-md-5"> <h3>News</h3> <ul> - <li><em>July 13, 2015</em> - MesosCon pre-conference and social activities announced! See the <a href="/blog/mesoscon-seattle-preconference-and-social-activities/">blog post announcement</a> for more details.</li> - <li><em>July 1, 2015</em> - MesosCon Seattle 2015 keynote speakers announced! See the <a href="/blog/mesoscon-seattle-keynote-speakers-announced/">blog post announcement</a> for more details.</li> - <li><em>May 12, 2015</em> - Mesos 0.22.1 is released! See the <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12329855">0.22.1 release notes</a> and <a href="/blog/mesos-0-22-1-released/">blog post announcement</a> for more details.</li> - <li><em>March 25, 2015</em> - Mesos 0.22.0 is released! See the <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12328650">0.22.0 release notes</a> and <a href="/blog/mesos-0-22-0-released/">blog post announcement</a> for more details.</li> - <li><em>January 20, 2015</em> - Mesos 0.21.1 is released! See the <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12329076&projectId=12311242">0.21.1 release notes</a> and <a href="/blog/mesos-0-21-1-released/">blog post announcement</a> for more details.</li> - <li><em>January 14, 2015</em> - <a href="/blog/mesoscon-2015-earlybird-registration-now-open/">MesosCon Early-Bird Registration Now Open</a> to the first 140 attendees that register for the conference. Join us in Seattle this August!</li> - <li><em>November 17, 2014</em> - Mesos 0.21.0 is released! See the <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12327045">0.21.0 release notes</a> and <a href="/blog/mesos-0-21-0-released/">blog post announcement</a> for more details.</li> + <li><em>July 22, 2015</em> - Mesos 0.23.0 is released! See the <a href="https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb=0.23.0">CHANGELOG</a> for more details. <!--a href="/blog/mesos-0-23-0-released/"-->Blog post<!--/a--> coming soon.</li> + <li><em>July 13, 2015</em> - MesosCon pre-conference and social activities announced! See the <a href="/blog/mesoscon-seattle-preconference-and-social-activities/">blog post</a> for more details.</li> + <li><em>July 1, 2015</em> - MesosCon Seattle 2015 keynote speakers announced! See the <a href="/blog/mesoscon-seattle-keynote-speakers-announced/">blog post</a> for more details.</li> + <li><em>May 12, 2015</em> - Mesos 0.22.1 is released! See the <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12329855">0.22.1 release notes</a> and <a href="/blog/mesos-0-22-1-released/">blog post</a> for more details.</li> + <li><em>March 25, 2015</em> - Mesos 0.22.0 is released! See the <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311242&version=12328650">0.22.0 release notes</a> and <a href="/blog/mesos-0-22-0-released/">blog post</a> for more details.</li> </ul> <h3>Follow Us</h3> @@ -137,7 +138,7 @@ <!-- footer --> <div class="footer"> - <p>© 2012-2014 <a href="http://apache.org">The Apache Software Foundation</a>. + <p>© 2012-2015 <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 --> @@ -147,4 +148,4 @@ <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript"></script> </body> -</html> \ No newline at end of file +</html>
