Membase

Membase
Membase
Developer(s) Couchbase (merged from NorthScale), Zynga, NHN
Stable release 1.7.1 / July 26, 2011; 2 months ago (2011-07-26)
Written in C++, Erlang
Operating system Cross-platform
Type distributed key/value database system
License Apache License
Website membase.com

Membase (pronunciation: mem-base) is an Open Source (Apache 2.0 license) distributed, key-value database management system optimized for storing data behind interactive web applications. These applications must service many concurrent users; creating, storing, retrieving, aggregating, manipulating and presenting data. In support of these kinds of application needs, membase is designed to provide simple, fast, easy to scale key-value data operations with low latency and high sustained throughput. It is designed to be clustered for single machine to very large scale deployments.

For those familiar with memcached, membase provides on-the-wire client protocol compatibility,[1] but is designed to add disk persistence (with hierarchical storage management), data replication, live cluster reconfiguration, rebalancing and multi-tenancy with data partitioning.

In the parlance of Eric Brewer’s CAP theorem, membase is a CP type system.

Contents

History

Membase was developed by several leaders of the memcached project, who had founded a company, NorthScale, expressly to meet the need for an key-value database that enjoyed all the simplicity, speed, and scalability of memcached, but also provided the storage, persistence and querying capabilities of a database. The original membase source code was contributed by NorthScale, and project co-sponsors Zynga and NHN to a new project on membase.org in June 2010.

As of February 8, 2011, the Membase project founders and Membase, Inc. announced a merger with CouchOne (a company with many of the principal players behind CouchDB) with an associated project merger. The merged project will be known as Couchbase[2]

Design drivers

According to the Membase site and presentations, Membase design decisions are weighed against three non-negotiable requirements. By design, membase is simple, fast, and elastic.[3]

Membase intends to be 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 has wide language and application framework support due to its on-the-wire protocol compatibility with memcached; in fact, membase directly incorporates memcached “front end” source code, leveraging the memcached engine interface, guaranteeing compatibility today and in to the future.

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 with a design for multi-tier storage management model (planned to support Solid-state drive and Hard disk drive media). 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.

Membase claims to scale 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.

Data model

Key Features (persistence, replication/failover, scalability/performance)

Persistence

  • Asynchronously writes data to disk after acknowledging write to client. In version 1.7 and later, applications can ensure data is synced to more than one server, while disk writes are still asynchronous.
    • Tunables to define item ages that affect when data is persisted.[4]
  • Supports working set greater than a memory quota per "node" or "bucket"
    • Tunables to affect how max memory and migration from main-memory to disk is handled.[5]
  • Configurable “tap” interface: External systems can subscribe to filtered data streams – supporting, for example, full text search indexing, data analytics or archiving.[6]

Replication and failover

  • Multi-model replication support: Peer-to-peer replication support with underlying architecture supporting master-slave replication.
  • Configurable replication count: Balance resource utilization with availability requirements
  • High-speed failover: Fast failover to replicated items based upon request

Scalability and performance

  • Distributed object store: Easily store and retrieve large volumes of data from any application, using any language or application framework
  • Dynamic cluster resizing and rebalancing: Effortlessly grow or shrink a membase cluster, adapting to changing data management requirements of an application
  • Guaranteed data consistency: Never grapple with consistency issues in your application – no quorum reads required
  • High sustained throughput
  • Low, predictable latency. When operating out of memory, most operations occur in far less than 1 ms (assuming gigabit Ethernet).

Prominent users

  • Zynga – membase is the key-value database behind FarmVille.[7] They are also an investor.[8]
  • NHN[7]

See also

References

Commercially supported distributions

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Memcached — Developer(s) Danga Interactive Initial release May 22, 2003 (2003 05 22) Stable release 1.4.10 / November 9, 2011; 3 days ago (2011 11 09 …   Wikipedia

  • Memcached — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar al autor pri …   Wikipedia Español

  • NoSQL — (англ. not only SQL, не только SQL), в информатике  термин, обозначающий ряд подходов, проектов, направленных на реализацию моделей баз данных, имеющих существенные отличия от используемых в традиционных реляционных СУБД с доступом к… …   Википедия

  • Heroku — Heroku, Inc. Тип дочерняя компания Год основания 2007 Основатели Джеймс Линденбаум, Адам Уиггинс, Орион Генри Расположение Са …   Википедия

  • Erlang (programming language) — Erlang Paradigm(s) multi paradigm: concurrent, functional Appeared in 1986 Designed by Ericsson …   Wikipedia

  • Distributed hash table — A distributed hash table (DHT) is a class of a decentralized distributed system that provides a lookup service similar to a hash table; (key, value) pairs are stored in a DHT, and any participating node can efficiently retrieve the value… …   Wikipedia

  • In-memory database — An in memory database (IMDB; also main memory database system or MMDB) is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems which employ a disk storage… …   Wikipedia

  • Couchbase — is a Silicon Valley based enterprise software company[1] which offers product Couchbase (a database combining the leading NoSQL data management technologies CouchDB [of the Apache Software Foundation[2]], Membase, and Memcached) [3], plus sells… …   Wikipedia

  • MemcacheDB — Stable release 1.2.1 / December 25, 2008 Operating system Cross platform Type distributed memory caching system License BSD License …   Wikipedia

  • NoSQL — This article is about the class of database management systems. For the specific relational database management software, see NoSQL (RDBMS). Structured storage redirects here. It is not to be confused with COM Structured Storage. In computing,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”