Eddie Documentation: Frequently Asked Questions 

  Eddie Mission
  What is Eddie?
  Who Are We?
       White Papers
       Technical Reports
       Basic Configurations

    1. What is Eddie?
    2. Who would use Eddie?
    3. What is load balancing?
    4. What is admission control?
    5. How does Eddie improve reliability?
    6. How does Eddie provide scalability?
    7. How does Eddie help improve the performance of distributed web sites?
    8. Does my web site need to be architected specially to use Eddie?
    9. What operating systems are supported by Eddie?
    10. Which web server software is supported by Eddie?
    11. What are the licensing arrangements with Eddie?
    12. How do I get help with Eddie?

    1. What is Eddie?
    2. Eddie is an open source effort aimed at delivering a commercial grade, quality of service driven web server solution.

      Eddie is a 100% software solution written primarily in the functional programming language Erlang (www.erlang.org) and is available for Solaris, Linux and *BSD. Eddie provides advanced automatic traffic management and configuration of geographically distributed server sites, consisting of one or more Local Area Networks.

      At each site, certain servers are designated as Front End Servers. These servers are responsible for controlling and distributing incoming traffic across designated Back End Servers, and tracking the availability of Back End Web Servers within the site. Back End Servers may support a range of Web servers, including Apache.

      Currently, Eddie consists of two software packages:

      • The Enhanced DNS server, which provides load balancing and monitoring of site accessibility for geographically distributed web sites.
      • An Intelligent HTTP Gateway which provides site based Load Balancing, Reliability, Scalability, Performance Optimisation and Quality of Service.

    3. Who would use Eddie?
    4. Eddie's simplicity and flexibility make it useful to a wide range of potential users, including:

    5. What is Load Balancing?
    6. In distributed computer systems, load balancing is the act of spreading incoming traffic across all computers that can perform a particular function. By spreading traffic across a number of computers in proportion to their capacity, load balancing attempts to ensure that no computer is offered traffic beyond its capacity while others are running below their capacity. This helps to ensure user response times are minimised when the total offered traffic is less than the total capacity of all computers in the system.

      Eddie uses advanced load balancing techniqes to achieve this aim. In addition, Eddie ensures that each request received from a user during a session with the web server is sent to the same computer. This enables Eddie to guarantee that state information, if required, is preserved during the user session. This differs from more simplistic load balancing schemes which may load balance all incoming requests independent of whether or not they are part of an active session.

      Load balancing by itself does not guarantee rapid response time and user Quality of Service. This is the job of admission control.

    7. What is Admission Control?
    8. Admission control is the process of controlling the rate at which new jobs are accepted for processing. The aim of admission control is to ensure that all jobs accepted for processing are processed in an acceptable period of time, in other words, the aim is to provide the user with a better Quality of Service. Typically, this is achieved by monitoring the resource usage of a computer and throttling or rejecting the acceptance of new jobs when the available resources are running low.

      In the context of Eddie, the aim of the admission control is to ensure that each user accepted to the system receives rapid response time for each request that they send.

      The Eddie Intelligent HTTP Gateway creates a virtual session for users accessing the web site. Each request from a user is considered to be part of a single session.

      When a new user comes to the site, the Intelligent HTTP Gateway decides whether sufficient resources exist to process the expected sequence of user requests in a timely fashion.

      If there are sufficient resources, the user is immediately admitted. Once a user has been admitted, each request from the user bypasses the admission control and is immediately sent to a Back End Server for processing. This guarantees that a user, once admitted, will not be thrown out of the system.

      If there are not sufficient resources, Eddie either queues or rejects the user. If queued, the user is held until resources become available and then notfied of their entry to the server.

    9. How does Eddie improve reliability?
    10. Eddie enables multiple forms of reliability to be achieved.

    11. How does Eddie provide scalability?
    12. Scalability in Eddie enhanced web servers is achieved by simply adding a new server and updating the configuration files. The capacity of the new machine will be automatically determined and will be added to the capacity of entire distributed web server.

    13. How does Eddie help improve the performance of distributed web sites?
    14. The Eddie Intelligent HTTP Gateway package allows specialised functions to be allocated to specific Back End Servers. As each user request arrives, it is parsed by the Front End Server which then:

      • Splits multiple requests within HTTP 1.1 persistent connections into a number of individual requests.
      • Sends the individual requests to Back End Servers specialised to those requests.
      This allows a system administrator to, for example, dedicate certain Back End Servers to be CGI processing engines, while other machines may be dedicated to acting as image repositories. The individual machines may then be tuned to optimise their performance to these specific tasks.

      The allocation of functionality and information to Back End Servers is specified by the system administrator in the Eddie configuration files.

    15. Does my web site need to be architected specially to use Eddie?
    16. Logically, Eddie enhanced distributed web servers have three types of servers:

      However, Eddie is entirely software and so each computer within the distributed web server can be configured simultaneously as one or more of the above.

      In order to get the full user Quality of Service benefits of the Admission Control function in the Intelligent HTTP Gateway package, it is recommended that Back End Servers not be combined with the Enhanced DNS and Intelligent HTTP Gateway packages on the same machine.

    17. What operating systems are supported by Eddie?
    18. Eddie currently supports

    19. Which web server software is supported by Eddie?
    20. Eddie supports all web servers which are HTTP 1.1 or earlier compliant that run on supported operating systems. These include

    21. What are the licensing arrangements with Eddie?
    22. We use the Erlang Public License (EPL). EPL is a derivative work of the Mozilla Public License (MPL). It contains terms which differ from MPL, mainly in terms of jurisdiction. The license is constructed in accordance with the laws of Sweden (MPL is not ;-). You may obtain a copy of the license at http://eddie.sourceforge.net/EPL.

      We also provide a text intended to help you understand the legal text. It can be obtained at http://eddie.sourceforge.net/txt/EPL-explained.txt. The legal text is the license, so if you have any doubts, refer to the legal text.

      Do you have questions concerning the license? The FAQs written by Mozilla for MPL also apply to EPL in most cases. The FAQ re for informative purposes only, and do not in any way constitute a legally inding portion of the License.

    23. How do I get help with Eddie?
    24. At present Eddie is open source, User Supported software. In the near future we are hoping that we will be able to announce commercial support for Eddie. Until then the following is available: Mailing Lists There are currently two mailing-lists available.

      The Core Team can be contacted by using these mailing lists. We request that you mail the mailing lists and check the mail archives before mailing the Core team.