<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Traffic Control</title>

    <!-- Bootstrap -->
    <link href="../css/bootstrap.min.css" rel="stylesheet">
    <link href="../css/home.css" rel="stylesheet">

  </head>
  <body>
    <div class="bkgdWrapper">
    </div>
    <div class="appWrapper">
      <div class="appHeader">
        <div class="applogo"></div>
          <div class="navWrapper">
            <ul>
              <li class="selected"><b>DOWNLOADS</b></a></li>
              <li class="navMain"><a href="https://github.com/apache/incubator-trafficcontrol">GIT</a></li>
              <li class="navMain"><a href="../docs/latest/index.html">DOCS</a></li>
              <li class="navMain"><a href="../ask/index.html">INFO</a></li>
		      <li class="navMain"><a href="../index.html">HOME</a></li></ul>
            </ul>
          </div>
        </div>

      <div class="announce">
	      <p class="relNotesText">Apache Traffic Control-1.8.0-incubating has not yet been released!
	      The artifacts and release notes below are drafts for a proposed release of
	      Apache Traffic Control which has not yet occurred.</p>
      </div>

      <hr/>

	  <div class="relNotesContainer">
	  <h1>Apache Traffic Control 1.8.0-incubating Release Notes</h1>
		The source code for Traffic Control 1.8.0 is available here:
		<table><tbody padding="0 15px 0 15px">
		<tr>
		   <td><a href="https://dist.apache.org/repos/dist/dev/incubator/trafficcontrol/1.8.0/RC5/incubator-trafficcontrol-1.8.0.tar.gz">incubator-trafficcontrol-1.8.0.tar.gz</a></td>
		   <td padding="10px"><a href="https://dist.apache.org/repos/dist/dev/incubator/trafficcontrol/1.8.0/RC5/incubator-trafficcontrol-1.8.0.tar.gz.md5">MD5</a></td>
		   <td padding="10px"><a href="https://dist.apache.org/repos/dist/dev/incubator/trafficcontrol/1.8.0/RC5/incubator-trafficcontrol-1.8.0.tar.gz.sha1">SHA1</a></td>
		   <td padding="10px"><a href="https://dist.apache.org/repos/dist/dev/incubator/trafficcontrol/1.8.0/RC5/incubator-trafficcontrol-1.8.0.tar.gz.asc">PGP</a></td>
		</tr>
		</tbody></table>
	  </div>

	  <div class="relNotesContainer">
		<h2>We're Incubating!</h2>
		<p class="relNotesText">The Traffic Control project has been accepted into the Apache Incubator, and is
		thus now Apache Traffic Control (incubating). Beyond simply moving the website,
		this necessitated a number of changes, including switching to the Apache
		License.
		</p>

		<p class="relNotesText">The 1.8.0-incubating release is Apache Traffic Control's
		first release under the Apache incubator.  This release contains numerous bug
		fixes in addition to the following:
		</p>

		<h3>Traffic Router</h3>
		<p class="relNotesText">Recommendations based on load testing of HTTPS support: </p>

		<p class="relNotesText">It is generally recommended to use the G1 garbage collector for JVM
		applications running on multi core machines. In addition to using the G1
		garbage collector, the InitiatingHeapOccupancyPercent was lowered to run
		garbage collection more frequently.  This improved overall throughput for
		Traffic Router and reduced 'Stop the World' garbage collection. </p>
		<p class="relNotesText">The following example of /opt/tomcat/bin/setenv.sh that
		has been tested on a multi core server running under HTTPS load test requests.
		Note that setting the min and max heap settings in setenv.sh will override init
		scripts in /etc/init.d/tomcat.</p>

			<pre><code>
#! /bin/sh
export CATALINA_OPTS="$CATALINA_OPTS -server"
export CATALINA_OPTS="$CATALINA_OPTS -Xms2g -Xmx2g"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseG1GC"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+UnlockExperimentalVMOptions"
export CATALINA_OPTS="$CATALINA_OPTS -XX:InitiatingHeapOccupancyPercent=30"
			</code></pre>

	<h3>Traffic Stats</h3>
	<ul>
	<li>As of 1.8 Traffic Stats now requires InfluxDB 1.0 or greater.  For support of InfluxDb version &lt; 1.0 please use Traffic Stats 1.7.</li> 
	<li>Traffic Stats now uses its config file to determine which influxdb urls to use. This allows a user to run a single instance of influxdb, an enterprise clustered solution, or a HA solution using influxdb-relay (https://github.com/influxdata/influxdb-relay).</li>

	<li>It is recommended to use the traffic_stats.cfg file provided by the TS 1.8 RPM. This version of the config file contains the new InfluxUrls array and there were some unnecessary variables that were removed.</li>
</ul>


	  </div>
	  <div class="relNotesContainer">
		 Older, non-ASF releases can be found <a href="http://traffic-control-cdn.net/downloads/index.html">here</a>.
	  </div>
    </div>
  </body>
</html>
