<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<!-- $LastChangedRevision$ -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mod_lbmethod_bytraffic.xml.meta">

<name>mod_lbmethod_bytraffic</name>
<description>Weighted Traffic Counting load balancer scheduler algorithm for <module
>mod_proxy_balancer</module></description>
<status>Extension</status>
<sourcefile>mod_lbmethod_bytraffic.c</sourcefile>
<identifier>lbmethod_bytraffic_module</identifier>
<compatibility>Split off from <module>mod_proxy_balancer</module> in 2.3</compatibility>

<summary>
<p>This module does not provide any configuration directives of its own.
It requires the services of <module>mod_proxy_balancer</module>, and
provides the <code>bytraffic</code> load balancing method.</p>
</summary>
<seealso><module>mod_proxy</module></seealso>
<seealso><module>mod_proxy_balancer</module></seealso>

<section id="traffic">
    <title>Weighted Traffic Counting Algorithm</title>
    <p>Enabled via <code>lbmethod=bytraffic</code>, the idea behind this
    scheduler is very similar to the Request Counting method, with
    the following changes:</p>

    <p><dfn>lbfactor</dfn> is <em>how much traffic, in bytes, we want
    this worker to handle</em>. This is also a normalized value
    representing their "share" of the amount of work to be done,
    but instead of simply counting the number of requests, we take
    into account the amount of traffic this worker has either seen
    or produced.</p>

    <p>If a balancer is configured as follows:</p>

    <table style="data">
    <tr><th>worker</th>
        <th>a</th>
        <th>b</th>
        <th>c</th></tr>
    <tr><th>lbfactor</th>
        <td>1</td>
        <td>2</td>
        <td>1</td></tr>
    </table>

    <p>Then we mean that we want <var>b</var> to process twice the
    amount of bytes than <var>a</var> or <var>c</var> should. It does
    not necessarily mean that <var>b</var> would handle twice as
    many requests, but it would process twice the I/O. Thus, the
    size of the request and response are applied to the weighting
    and selection algorithm.</p>

    <p>Note: input and output bytes are weighted the same.</p>

</section>

</modulesynopsis>
