Couchbase

Couchbase-Server is an opensource, distributed (shared-nothing) NoSQL document-oriented databse. It is desgined for interactive applications involving multiple users and concurrency operations. Couchbase server provides key-value or JSON document access scaled from one single machine to multiple machines. Couchbase server supports the Memcached client protocol and provides extra features like disk persistence, data replication, live cluster reconfiguration, rebalancing and multi-tenancy with data partitioning.

History

In 2010, the origination of Couchbase, Membase, was developed by a company called NorthScale which was founded by developers from Memcached project.

In February, 2011, the Membase project founders and Membase, Inc. merged with CouchOne(a company with many engineers behind CouchDB) as a new company called Couchbase, Inc.

In January 2012, Couchbase Server 1.8 was released and 1.8 was the first version after rename from Membase.

In December 2012, CouchBase Server 2.0 was released. New features like JSON new document store, indexing and querying, incremental MapReduce and replication across data centers are added.

Storage Organization

Sorted Files

Couchbase Server uses Couchstore to store core data operations. Each vBucket is represented as a separate Couchstore file in the file system. Couchstore uses a B+tree structure to quickly access items through their keys. Couchstore uses an append-only write model for efficient and safe writes.

Data Model

Document / XML

The documents stored in Couchbase Server are in JSON or binary format.

Stored Procedures

Supported

"Prepared queries" is supported in Couchbase Server which is close to the Stored Procedures.

Concurrency Control

Optimistic Concurrency Control (OCC)

Couchbase Server offers both optimistic and pessimistic locking to guarantee concurrency.

Compression

Bit Packing / Mostly Encoding

Couchbase Server (Enterprise Edition) applies data compression to documents with open-source library Snappy. It provides three modes of compression.
Off. The Couchbase Server decompresses the document if it is compressed, and stores the uncompressed document in memory but recompresses it when storing on disk. Couchbase server sends the document in uncompressed form. * Passive. When Couchbase Server receives the compressed document, it stores the compressed document in memory and disk. Also, the documents are sent in compressed form.
Active. Couchbase Server stores and sends compressed document even the document is uncompressed when it was received.

Indexes

Hash Table

Views

Materialized Views

Three views are supported by Couchbase Server: MapReduce views, Spatial views and Global Secondary Indexes (GSI) views.

System Architecture

Shared-Nothing

Storage Architecture

Disk-oriented

Couchbase Logo
Website

http://www.couchbase.com/

Source Code

https://github.com/couchbase/manifest

Tech Docs

https://docs.couchbase.com/home/index.html

Developer

Couchbase, Inc.

Country of Origin

US

Start Year

2010

Former Name

Membase

Project Type

Commercial, Open Source

Written in

C, C++, Erlang, Go

Supported languages

C, C#, Go, Java, JavaScript, PHP, Python

Derived From

CouchDB

Compatible With

Memcached

Operating Systems

Linux, OS X, Windows

Licenses

Apache v2

Wikipedia

https://en.wikipedia.org/wiki/Couchbase_Server