Danga > Perlbal

Perlbal

Perlbal is our Perl-based reverse proxy load balancer and web server.

It processes hundreds of millions of requests a day just for LiveJournal, Vox and TypePad and dozens of other "Web 2.0" applications.

Overview

Perlbal is a single-threaded event-based server supporting HTTP load balancing, web serving, and a mix of the two (see below).

Note: further documentation should be available at google code.

One of the defining things about Perlbal is that almost everything can be configured or reconfigured on the fly without needing to restart the software. A basic configuration file containing a management port enables you to easily perform operations on a running instance of Perlbal.

Here is a basic list of the personalities and features that Perlbal implements at this time.

Role: Web Server

1 Almost. When you enable PUT support, the close() operation is blocking. However, it's generally pretty fast (we've had no problems). Also, directory indexing is a synchronous operation.

Role: Reverse Proxy

Performance

Statistics and Monitoring

The management interface provides extremely detailed and powerful statistics in addition to runtime configuration. For example:

(All statistics are in machine readable form, easy to parse and write scripts that check on the status of Perlbal!)

Plugins (Extensibility)

Perlbal supports the concept of having per-service (and global) plugins that can override many parts of request handling and behavior. We have written custom plugins that send new headers to the backends, promote requests to the fast queue, maintain more detailed statistics, do image header manipulation, and more...

For more information on how plugins work, see the plugins directory in the distribution. They're fairly self-explanatory.

Much more documentation needs to happen...

Downloads at: http://search.cpan.org/dist/Perlbal/. You'll also need:

Further docs, wiki, and issue tracking are available at google code.

The source code is in the SixApart SVN Repository.

Feel free to ask us questions on the mailing list.

Wikipedia entry