Pressflow makes Drupal scale

What is Pressflow?

Pressflow is a distribution of Drupal with integrated performance, scalability, availability, and testing enhancements.

Pressflow addresses a long-standing problem: High-traffic sites use stable versions of Drupal, and stable versions of Drupal are ineligible for enhancements to solve performance bottlenecks discovered after widespread deployment.

The Strategy

Leveraging Four Kitchens’ industry-leading experience in scaling high-traffic, Drupal-based sites, Pressflow integrates the most popular enhancements to Drupal core into a single deployable package. All of Pressflow’s enhancements to Drupal core undergo testing by the Four Kitchens team prior to release.

Is Pressflow a fork?

Like Drupal, Pressflow is free, open-source software released under the GNU General Public License, versions two and later, as published by the Free Software Foundation.

Like Ubuntu leverages Debian, Pressflow leverages the success of an existing popular open-source, free software package with enhancements targeting a specific user set. Releases of Pressflow correspond to Drupal core releases and maintain module and theme compatibility.

Following each Drupal core release, Pressflow is “reset,” and all enhancements undergo review. In many cases, new major Drupal releases integrate enhancements that were once exclusive to Pressflow. In such cases, the corresponding Pressflow releases use the standard Drupal implementation to preserve module compatibility. Older major versions of Pressflow continue to support the Pressflow-exclusive implementations.

What makes Pressflow scale

Support for database replication

Replication in MySQL takes the data from a designated master server and copies it out to any number of other MySQL servers. Pressflow can then use these replicated MySQL servers for time-consuming query operations that would otherwise slow down the central database. Pressflow’s replication model (and much of the same software) is currently in use on Drupal.org and numerous large Drupal sites, but similar support for replication won’t be available in standard Drupal releases until version 7, which includes a new database abstraction layer.

Support for Squid and Varnish reverse proxy caching

A reverse proxy cache takes most of the load of anonymous browsing off of Drupal, PHP, Apache, and MySQL by placing a high-performance cache in front of the rest of the web application stack. This cache accelerates static content, like CSS, Javascript, and image files, as well as full web pages for anonymous users. Squid and Varnish are the most popular free, open-source reverse proxy caches, and are used to deliver sites as high-traffic as Wikipedia. The key to effective reverse proxy cache deployment is having the content management system inform the cache what it can and cannot cache. Currently, only Pressflow supports this capability.

Optimization for MySQL

Drupal is designed to run on MySQL, PostgreSQL, and (beginning with Drupal 7) SQLite. While this gives Drupal broad storage support, the vast majority of Drupal sites run on MySQL, especially the largest ones. Pressflow only supports MySQL, which allows it to quickly integrate optimizations that, when proposed for Drupal, often face delays resulting from the need to support multiple database engines.

Optimization for PHP 5

Drupal includes “wrapper” functions to provide PHP 5-style operations on PHP 4. These wrapper functions increase the size of the code and are often dramatically slower than their native PHP 5 equivalents. Because Pressflow only supports PHP 5, it can replace these wrapper functions with their high-performance PHP 5 equivalents.

How to download Pressflow

All of the code for Pressflow is hosted on Github.