Membase's James Phillips introduced me to the organization and to Membase. Since I was familiar with Memcached, the key value, memory resident database, it was easy for me to understand what Membase was doing. Membase is an open source, key value, No-SQL database designed to be used by itself or in conjunction with a relational database to offer high performance, reliable, and highly scaleable database support for distributed applications. It is available as an open source project from Membase.org and in a supported form from Membase.com.
Who or what is Membase?According to Membase, the Membase open source project began in 2009 as a collaborative effort between Membase, Inc. (formerly NorthScale), Zynga and NHN, extending previous work together on the Memcached open source project. The Membase project was initiated to fill a need inside both Zynga and NHN for a Memcached-compatible database that retained the simplicity and performance of Memcached, while adding data durability, replication and true elasticity (the ability to add servers to, and remove them from, a cluster without application impact).
What does this really mean?Membase and its community have developed software and procedures allowing a high performance, highly distributed, reliable distributed database layer to be imposed between an organization's own relational databases and highly distributed applications. In this environment, data access and data updating can scale in the same way that distributed applications scale by adding instances as needed. As needed, over time, the relational database layer may no longer be needed.
Here's a figure Membase uses present a practical eveolution
Snapshot analysisMembase is among a number of suppliers/communities offering ways to address several issues facing developers of distributed applications including:
- Data for a specific application may not lend itself well to the first normal form typically required by a relational database
- A single database engine, even if it is housed on a mainframe or a huge cluster of industry standard systems, may be a bottleneck in a highly distributed application architecture.
What's interesting to me is that they've developed a practical, step-by-step way to deploy a No-SQL database and have implemented in many places. I'm aware of some of the applications and it is clear that the performance and scalability they've gotten is impressive.
If your organization needs an extensible, scalable distributed database solution for some extreme transactional application, it would be worth getting to know Membase.