Secrets of an ad broker: NoSQL, millisecond auctions and FLASH ARRAYS

Ad-slinger powers up with Big Data flash rocket fuel

By Chris Mellor

Typically a web page featuring online ads is built with space set aside for the ad. A user clicks on the page’s URL and it’s presented to that user in real time and the spaces are populated with pre-built and stored ads. So far so ordinary, only with online ad-broker Tapad the ads are not pre-stored at all. What happens is that a Tapad customer’s web page is requested by a user and Tapad flogs a paid-for ad targeted at that specific user at that specific time by an auction process among a set of potential advertisers. The auction takes place in real time – actually in 100 milliseconds or less – and the ad is displayed as the the rest of the web page is being loaded. An awful lot of data overall is being handled by a simple key:value NoSQL database to perform these tasks.

Tapad settled on flash storage instead, as it was both fast enough and affordable enough. In fact, the ad-serving firm bought an Aerospike NoSQL database running on SSDs with indices held in DRAM.  Aerospike claims that, with its in-SSD database, “it can get 500,000 transactions answered per second on a $2,000 server or 1 million transactions per second on a $5,000 machine.”

Tapad runs a 5-node Aerospike cluster with each server node having six 120GB SSDs. Reads and writes are spread across these SSDs and not one has had to be replaced in 18 months of operation. The operational stats are impressive. It manages more than 150 billion ad impressions a month sent to 2 billion devices, with up to 50,000 queries/sec per server node, “reaching 150,000 ads per second during peak activity.” The total data volume is 3.6TB and still growing. The system spreads work across nodes by monitoring their latency.

Disk drive arrays and RDBMS’ are massive obstacles to the provision of such applications. Once your app uses data in flash it’s very unlikely you’ll want to go back to disk. Tapad certainly won’t.

Read the full article.