Membase – A New NoSQL Database
Membase is the latest NoSQL solution, produced by NorthScale, Zynga and NHN. With the first public beta recently released, JAXenter spoke to NorthScale's senior vice president of products, James Phillips, about what unique features Membase has to offer, and the link between Membase and memcached.....
JAXenter: Can you explain what exactly membase is?
James Phillips: Membase is an open-source distributed, key-value database management system optimized for storing data behind interactive web applications. In the parlance of Eric Brewer’s CAP Theorem, membase is a CA database: It is consistent and available.
JAXenter: How is membase related to memcached?
James Phillips: Membase was founded by committers of the memcached project. For those familiar with memcached, membase provides on-the-wire protocol compatibility, but adds disk persistence; hierarchical storage management; data replication; live cluster reconfiguration and rebalancing; and secure multi-tenancy with data partitioning. Membase directly incorporates memcached “front end” source code, leveraging the memcached engine interface, guaranteeing compatibility today and in to the future.
JAXenter: Co-developers NHN and Zynga are also the first customers of NorthScale Membase Server. What customer base are you targeting with this product?
James Phillips: Membase will appeal to those customers who have had the most to gain from using memcached -- highly trafficked and interactive web applications. These applications must service many concurrent users; creating, storing, retrieving, aggregating, manipulating and presenting data in real-time. Supporting these requirements, membase processes data operations with quasi-deterministic low latency and high sustained throughput. It scales linearly from a single-server deployment to a cluster of thousands of machines. And because membase does not require creation of a schema before storing data, it is a flexible, cost-effective place to Store Lots of Stuff.
Target customers are companies with interactive web apps that serve large numbers of users. Early adopters will be companies like Zynga and NHN, but these types of applications (i.e., interactive web applications with large numbers of users) are increasingly deployed by enterprise companies like financial institutions, health care providers, online retailers and others that must service millions of customers, delivering “snappy” applications that keep those customers happy.
JAXenter: NoSQL is gaining more and more momentum, and solutions like Cassandra, Jackrabbit, HBase etc. are already well known. Is there a certain niche you're aiming to fill with membase?
James Phillips: There isn't a niche per se, but if companies are using memcached already to scale their web apps, we're betting that membase can be a very attractive alternative. The reactions we've seen so far has been positive and indicative of this.
When designing membase, every decision was vetted against three non-negotiable requirements. The software had to be simple, fast, and elastic.
First, simple. Membase is extremely easy to manage, and simple to develop against. Every node is alike in a membase cluster – clone a node, join it to the cluster and press the rebalance button to automatically rebalance data to it. Membase enjoys the widest language and application framework support of any NoSQL database technology due to its on-the-wire protocol compatibility with memcached.
Second, fast. Membase distributes data and data operation I/O across commodity servers (or VMs), replicates data for high-availability, transparently caches data in main memory, persists the data using a multi-tier storage management model (supporting both on- and off-node SSD and spinning disk media), and auto-migrates data to the lowest-latency storage tier in response to observed data access patterns. It is a consistently low-latency and high-throughput processor of data operations. It is multi-threaded, with low lock contention; it automatically de-duplicates writes and is internally asynchronous everywhere possible.
Lastly, elastic. Membase scales elastically, with linear cost. Servers can be added to, or removed from, a running cluster with no application downtime. Employing commodity servers, virtual machines or cloud machine instances, data management resources can be dynamically matched to the needs of an application with little effort.