|Description||Couchbase Server makes it easy to modify your applications without the constraints of a fixed database schema. Submillisecond, high-throughput reads and writes give you consistent high performance. Couchbase Server is easy to scale out, and supports topology changes with no downtime|
|Licensing||Apache Public License ,subscription based support|
|Query methods/options||Incremental Map Reduce,sql like U1QL ( developer preview)|
|Family||Document Store / Key-Vallue Store|
|API/Drivers||Java, C#, PHP, C, Python,Node/JS Ruby,Go|
|Important Features (High Availability, Scalability,Consistency , …)||
Couchbase Server is a distributed, document (“NoSQL”) database management system, designed to store the information for web applications. Couchbase Server provides a managed in-memory caching tier, so that it supports very fast create, store, update and retrieval operations.
First of all , I must say that I am very impressed by its performance during my tests.On a 3 nodes cluster you can see easily 10-20K ops/sec.
Well, I will not publish any performance benchmark result.But you can create one of your own.Just visit https://github.com/couchbaselabs and you can find necessary tools and source codes.
Documentation is very good.You do not get lost in the site.
In production , knowing the limits is the key of success and Couchbase let’s you know its limits.(http://docs.couchbase.com/couchbase-manual-2.2/#appendix-limits)
When I first met Couchbase , I had some doubts because Couchbase uses Couchbd as a storage back-end .If your data changes so often in Couchdb , soon your cluster will suffer storage problems.
But bucket compaction works so good and I am sure it will be much better in future.On thing you must consider, if your bucket gets a lot of crud operations , it will be better schedule the compaction.There are some other tricks as well to be considered. ( http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-admin-web-console-settings-autocompaction.html )
Couchbase is really user/developer/admin friendly. You can see easily what’s going on on your cluster by using web console.When things get wrong , web console is a huge advantage.
The same web console leads you during the installation and while managing your cluster.adding new nodes or removing nodes are one click operations.
You can configure alerts,auto-failover and some of the bucket properties easily trough web-console.If you want you can use the command line interfaces locally or via ssh.
Command line interfaces have really hidden gems for administration. ( http://docs.couchbase.com/couchbase-manual-2.1/#administration-tasks ) data transfer , back-up and restore operations are very easy.
If you have already worked with MongoDb,I am sure you already know that configuring your cluster(sharding,replica-sets,etc..) can be very painful.You do not experience the same in Couchbase.
Incremental map/reduce views save a lot of time if you would like to build real time/near real time aggregations.You can create secondary indexes by views and even,you can query your views by ranges.
Do not try to do a lot of things in one view.Try to keep your views as simple as possible.For example , if you need full-text-search or text based search , just DON’T try.Instead, you can use couchbase – elasticsearch plugin.
Most used objects are kept in the ram.If you have lots of data with long item keys and meta-datas , you may need larger cluster.
Community gets larger day by day.
Sometimes,re-reduce can be confusing for developers.Before start developing , understand the incremental map/reduce views and how to implement re-reduce.
If you are accustomed to sql based systems or MongoDb , you can feel that query options are limited in Couchbase and you can feel it’s not possible to write ad-hoc queries.
It is not possible to create a new bucket during rebalance.
BEST FIT: Distributed persistent caching layer, session store , time series , job distribution system , simple data distribution system
If you need low-latency and high concurrent apps with simple query requirements with easy installation and management , Couchbase is your best friend.
Once you taste Couchbase , you will look other datastores with different eye.
P.S: Please let me know if something is missed or misfit