This morning we had some database problems. With help from Engine Yard we were able to identify the slower queries and eliminate them.

Here you can see our database exploding:


And the sweet release when we deployed the fix:


Basically, our events table has swelled to over 30m rows taking up 18gb of disk space. We have some solid indexes in place, but saving new events and querying are both becoming problems. As we plan to do more fancy things with the dashboard in the future this needs to be addressed.

Currently the plan is twofold:

  • Split events table into events and events_archive. Older events will go into events_archive, archiving will happen nightly on a cron. This will dramatically reduce the size of the events table.

  • Re-evaluate every query that touches events, make sure it’s using the best possible index.

We’ll update you as we make progress. Thanks!