/dev/null vs. MongoDB benchmark bake-off

We’ve used MongoDB at Wayfair for a subset of our customer data for a while.  But we’re always looking for opportunities to speed up our infrastructure and give our customers a more responsive user experience.  So when we heard about a new database platform called ‘/dev/null’, we became pretty excited.  We can’t post a link, because it’s in a very private beta testing phase, but we can assure you that the stealth-mode startup that’s working on it is supported by a pair of high-class Silicon Valley VCs.  The technology is supposed to be too cutting-edge for stodgy Boston, so we felt pretty lucky to be included.  /dev/null is web scale, we heard, and it supports sharding!  The slashes in the name certainly give it an edgy feel.  IMHO it’s a bold move to name it that, because of the potential for gfail (weird names doing badly in Google search) and unexpected placement in alphabetical lists.  But hey, as an NYC cabbie character said in Taxi Driver, they’re way ahead of us out there in California.

Everything comes with trade-offs, and the word on the street is that /dev/null is so heavily optimized for write performance that ‘read’ reliability can be less than ideal.  But who knows?  Maybe that’s the balance we want for our write-heaviest workloads.

So we got out our testing tools and went to work on a bake-off.  We wanted to simulate real-world conditions as much as possible, so we wrote some PHP scripts that connected to our sharded development Mongo cluster.  On the /dev/null side, configuration of a cluster was pretty easy, as long as you start from a standard posix-style system.

After function-testing the PHP, we wrote a quick Apache Bench script to bake off the two systems.  The results speak for themselves:

Past the upper 90%, MongoDB is a classic hockey stick.  /dev/null starts fast and stays flat, out to the far horizon.  Love it.  I don’t know that we’re ready to switch right away: I’ll be a little uncomfortable while it’s still in beta, and I’ll have to get to the bottom of those unreliable read operations.  But this is looking *very* promising.

For now, I’m going to follow our internal process for new technologies like this, which is to email around a Wayfair Technical Finding (‘WTF’) to all the senior software engineers and architects, so we can put our heads together, evaluate further, and eventually make a plan to roll this out across all our data centers.

Hat tip gar1t on xtranormal.


If this type of thing interests you, please visit our careers page, and join the team!

4 thoughts on “/dev/null vs. MongoDB benchmark bake-off

  1. The proper /dev/null is decades old. Hardly a beta technology. Somebody tricked ya and tried to keep it secret from the rest of the world. We’re using it for high performance data warehousing as with proper data compression we could achieve some performance numbers that people see only in their dreams. By using striping in the /dev/null storage array the numbers can go up even higher, but you may need a proper disk controller from a supported /dev/null vendor.

    You’ve gotta love the web scale technologies.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>