CouchCamp

Couchio

Connoisseurs of Fine Database Products

Case Study Interactive Mediums

About Interactive Mediums

Interactive Mediums develops and provides next-generation marketing solutions designed to help companies acquire, retain and develop customer relationships via mobile and other marketing channels. The company’s software-as-a-service campaign management platform enables marketers to rapidly develop, execute and analyze a variety of campaigns using multiple channels, all feeding a common customer database. Used by many leading brands, agencies, professional sports teams and broadcast media, Interactive Mediums processes millions of customer interactions every month.

This project was focused on addressing database related performance issues that we were facing in production. With these issues out of the way, and our CouchDB infrastructure built-out and proven, we will soon be building even more reporting capabilities that would have simply killed our old database. Interactive Medium customers will soon be able to view their data in more ways than they could have imagined.

John Wood, Lead Engineer at Interactive Mediums

Interactive Mediums: A Case Study

As a young rapidly growing company Interactive Mediums was quickly outgrowing their MySQL database tables. Several of their database tables had over a million rows, a handful had over 10 million, and a few had over 30 million. Their queries were taking longer and longer to execute, and migrations were taking longer and longer to run. They even had to disable a few customer facing features because the database queries required to support them were too expensive to run, and were causing other issues in the application.

The nature of their business required them to keep most if not all of this data around and easily accessible in order to provide the level of customer support that they strived for. But, it was becoming very clear that a single database to hold all of this information was not going to scale.

Solution

The team at Interactive Mediums decided to use CouchDB as an archive database and to move “old” data to it once a night. Once the data is moved to the CouchDB database, it is no longer be updated, and is only be used for calculating statistics in the application. Since they are only moving data into the database once a day, they only need to rebuild the views once a day. Therefore, all queries simply ask for (and get) stale data, even when the views are in the process of being rebuilt. Also, by moving all of the old data out of the relational database dramatically reduces the size of the specific tables, improving the performance of the queries that hit those tables.

By moving to CouchDB, they were able to re-activate those features that they had to disable due to database performance, and also add more features and gather more statistics that was impossible with their previous infrastructure.

Results

John Wood, Lead Engineer at Interactive Mediums says, “I really wish we had taken the time to record how long our “troublesome” pages were taking to load before the move to CouchDB. Sadly, we did not. All I can say is that pages that used to occasionally time out were now loading in a few seconds. Since the migration, we have also implemented a few new features that would simply not have been possible without CouchDB due to database performance issues.”