Schooner Home Page

Benchmarking Caches and NoSQL Data Stores

You can get great performance from a cache or a NoSQL data store in several ways. In many cases your data fits completely into a modest amount of DRAM (64 GB or less, which is quite affordable on current x86 commodity servers). If your data fits fully in DRAM, you're done — use stock memcached for caching, or Membase, CouchDB, MongoDB, or some other NoSQL solution as a data store.

But things get more complicated when your data doesn't fit in the DRAM on your server.

So then you take your cache or NoSQL data store, run it on multiple servers, and shard your data across them. Or you buy more DRAM. But DRAM is expensive, so keeping large data sets in DRAM is not a good price performer for most organizations. DRAM consumes lots of power, which goes against the desire for green IT. You can get high performance either way, or combining both ways, at the expense of lots of capex, lots of opex, and inefficient utilization of your servers.

Or you can use Membrain™ (the smart memcached, optimized for flash memory).

Membrain is a high-availability memcached and persistent NoSQL key-value store which we wrote for maximum multi-threading. That's how Membrain fully exploits the power of multi-core x86 processors combined with flash memory. Depending on the number of available slots for flash drives and their capacity, it's easy to vertically scale each commodity server to more than 3 TB of flash — and get DRAM-like speeds from all of it. Membrain does I/O against multiple flash drives in parallel and cleverly caches between DRAM and flash. The result: amazingly great performance with amazingly compelling economics.

In fact, Membrain delivers the highest performance of any NoSQL or memcached solution on the market. Check out these benchmarks against CouchDB, Cassandra, and MongoDB, none of which exploit the full power of multi-core processors combined with flash memory. Membrain runs on commodity x86 servers and blades from HP, Dell, or IBM.

Interestingly, our high-availability MySQL product for x86 servers, SchoonerSQL™, is a full ACID-compliant relational database that outperforms all NoSQL alternatives other than Membrain:


Key-value store queries per second on 1 TB data set on server with 64 GB of DRAM

If you have a small cache or data set that comfortably fits into DRAM on a single server or pair of servers, you don't need Membrain. But if you need the highest performance and most efficient and cost-effective NoSQL or memcached, forget the rest and choose the best: Membrain.