On March, 23 North Scale Solutions publicly announced the availability of the Membase NoSQL database solution. This release sparked a lot of coverage (MarketWire, TheRegister, GigaOM).
It was developed by members of the memcached core team at North Scale, together with engineers from the two
major contributors Zynga and NHN, both big players in the online game and social network space.
Other early adopters are mig33 (mobile applications) and Red Aril (advertisment).
The open source project at Membase.org makes the sourcecode available under the Apache 2.0 license. It is hosted at GitHub. Source tarballs and Linux binaries are available as public beta for download.
Commercial support is provided by North Scale with their dedicated server software that complements the existing support for memcached server.
Besides the press releases there are not many technical facts about the database available. The best insights may be gained by looking at the source code.
The main, hard objectives in developing Membase were: "Simple, Fast, Elastic".
The simplicity is provided by the key value store. There is no additional query capability (yet). Extensions are possible through a plug-in architecture (hooks through filtered TAP interface) which can be used for full-text search, backup or data warehouse dumps. Some other (planned) extensions points are the Data bucket – engine API for specialized container types and the future "NodeCode".
Ease of installation, operation and extension from single nodes to clusters as well as the drop-in replacement for memcached (wire-protocol compatibility) offer a low treshold for developer and operations buy in. Memcached is already widely used as caching solution in many different types of applications (especially high-throughput webapps). Memcached's codebase is partly directly used in the front end to the Membase server.
Through this compatibility bindings for many programming languages and frameworks can be reused for Membase. For managing Membase installations, graphical and programmatic interfaces and a configurable alerting are available.
Membase is designed to scale-out linearly, it contains uniform nodes that can be duplicated for increasing cluster capacity. It is still necessary to initiate a redistribution of the stored data.
One interesting attribute of this NoSQL solution is the promised predictable performance and quasi-deterministic latency and troughput. This should be achieved by:
- Auto-migration of hot data to lowest latency storage technology (RAM, SSD, Disk)
- Selectable write behavior – asynchronous, synchronous (on replication, persistence)
- Back-channel rebalancing [FUTURE]
- Multi-threaded with low lock contention
- Asynchronous handling wherever possible
- Automatic write de-duplication
- Dynamic rebalancing of a live cluster
- Providing high availability by copying data to multiple cluster members and supporting rapid fail-over
Two of the more technical slides of the North Scale presentation:
Alex Popescu pointed out the lack of technical information and referred to Gear6 Memcached solutions which was recently acquired by Violin Memory a company providing large amounts of server side Flash Memory infrastructure.