Shopping Cart – let the bundling begin!

at March 13th, 2014

Groupon recently spent a year building a shopping cart feature for the website. This feature was first a/b tested on Groupon’s web platform to determine whether users would benefit from its functionality. After starting at 1% and scaling the a/b test to 100%, it was clear in the first month of full functionality that the… Read More

Removing the Ping Sting From Rails DB Connections

at August 8th, 2013

Database-driven web applications often maintain a pool of database connections that can be reused for future requests. Re-establishing a new database connection for every web request can be costly for both the web application and the database server. Yet, an existing database connection in a pool can sometimes be dropped for various reasons. For example,… Read More

Rotating MySQL Slow Logs Safely

at April 18th, 2013

This blog post is part two of two. The first part is here. In my last post, I described a solution for keeping the caches of a MySQL standby server hot using slow logs with long_query_time set to 0. Here are a some lessons we learned when logging a high volume of queries to the… Read More

Is Your MySQL Buffer Pool Warm? Make It Sweat!

at April 16th, 2013

This blog post is part one of two. The second part is here. Thank you to Peter Boros at Percona for contributing to this project and blog post. There are numerous solutions for MySQL high availability. Many rely on MySQL’s asynchronous replication to maintain a warm standby server which is flipped into service if the… Read More