Technical Info

Technical Info: The Mercury Stack

Varnish

Varnish is a world-class reverse-proxy HTTP accelerator. It is designed to cache frequently accessed pages from a dynamic backend (like Drupal) and then serve repeat requests for those pages at levels of concurrency that are orders of magnitude greater than the backend could alone.

Varnish is like a force-field for your website. When Digg or Reddit or Slashdot or Drudge send your traffic spiking, Varnish springs into action, delivering upwards of 2000 requests per second while the rest of the stack continues humming along untroubled.

PressflowApachePHPPressflow

Our web-teir is a rock-solid best-practice configuration of Apache 2.2 utilizing mod_php to power Drupal. We have tuned Apache and PHP, implementing the APC opcode cache to speed page generation times and allow more active threads in availabile memory.

We also implement Pressflow, the high-performance eneterprise Drupal distribution. Pressflow is 100% API-compliant with Drupal core, and contains backported performance enhancemends, Varnish compatibility code, as well as optimized functions for PHP and MySQL 5.

Memcache

Memcache is a distributed memory object caching system, intended for use in speeding up dynamic web applications by alleviating database load. Mercury implements Memcache to accelerate access to application data stores such as the menu tree and theme registry — data that doesn't change often, but needs to be loaded for each dyamic page build.

This allows us to deliver faster logged-in page requests while simultaneously taking stress off MySQL.

Apache Solr

A modern web-stack deserves a modern search engine, and the truth is that PHP and a SQL database are not ideal tools for building one. Apache Solr is emerging as a best-practice replacement for Drupal's built-in search system. Backed by the Lucene engine and run as a Tomcat servelet, Solr delivers better keyword relevance as well as allowing features like faceted "drill down" search and automatic misspelling detection. It is also more efficient query-for-query than searching for matches in MySQL.

Solr search can also be segmented off to another server — or even oursourced as a service to Acquia or another provider — as a scaling measure.

Mysql

Underneath every CMS is a database. Mercury implementes a tuned MySQL 5.0, for which Pressflow is already optimized, and utilizes the InnoDB storage engine. This provides the best of both disaster recovery, and performance.

The database layer ships ready to scale as well: for those ready to move beyond single-server architecture, availability and performance can be increased by adding MySQL slave server(s) to your stack.