Why Couchbase?
So apparently my last entry ruffled some feathers, so maybe I should explain why I think Couchbase is the future?
Simple Fast Elastic.
That's pretty much it. We make it very simple to get started, we are extremely fast (and getting faster), and we really are "web scale", with the ability to add and remove machines from a cluster to rapidly scale your capacity to your workload.
The Membase product was very fast and scalable, but a bit too simple, with no reporting capability or cross-datacenter replication capability.
The CouchDB product has a lot of features, but is too slow, unable to keep up with high loads and inability scale-out on it's own.
The combination of the 2 will hit a sweet spot to allow developers to quickly get their apps up and running, along with the reliability, speed and low cost that make running it in production cheap and worry free.
Our 2.0 product is coming soon, adding CouchDB style views and reporting with a nifty trick for extremely fast failover while maintaining full coherency with the underling distributed data storage (we are calling it our B-Superstar index). We'll of course have lighting fast reads (same as Memcached) but also very fast durable writes. For 2kb docs, we are currently getting sustained random insert/updates rates of 25k writes/sec, fully durable, with compaction in background so it can go all day and all night. We've got some more write work coming soon which we are hoping will give us another performance boost too before 2.0. Stay tuned.
And so right now the focus is on the features and customers that pay, a thing that allow us to build a real sustainable business. And that's REAL DAMN IMPORTANT. It's not enough to build some cool technology, not enough to build a community of excited technologist. You need to cross the chasm and build a real business. A business that provides support, training, documentation and of course a reliable product. A business you can call up when you have difficultly upgrading from an old version, or are getting some weird error you've never seen before at 3am. A business you know will be around to support you for years to come.
And so while we focus on the features and customers that most quickly make us a viable business (and it's growing fast), we are still looking to build the features and technology to expand our use cases and, get customers and developers excited. Future versions are planned to have full CouchDB compatible replication technology, with the ability to support all sorts of mobile and embedded databases, such as our new TouchDB projects for iOS and Android. So with Couchbase you can have fast, scalable database in the cloud that also supports the offline use of thousands, or millions of apps on devices that drop in and out of internet connectivity, and can sync when connected but still completely usable when disconnected.
That's some cool shit. Simple Fast Elastic. And Reliable. And Mobile. That's why Couchbase.
Posted January 10, 2012 10:36 PM

Comments
Good luck with your business!
Do you think the Couchbase product will remain a viable upgrade path for projects that have started out using CouchDB, but has run into performance issues?
David B, January 11, 2012 4:24 PM
I can answer that.
No, Couchbase does not have a REST interface, so existing projects using CouchDB will need to change all the database access calls.
Søren Hilmer, January 11, 2012 5:20 PM
I totally understand your reasons (it's hard to pay the bills with free software) and I'm looking forward to try out CouchBase. I hope that there will be some kind of free unsupported version like there is for MongoDb or at least an evaluation version.
I'm currently preparing a feature comparison of NoSQL databases for a session at the German Entwicklercamp conference (developer camp) in March 2012.
It will be hard to promote CouchDb for any real world usecase if the main developer team works on something else, the code is written in Erlang (I don't know many Erlang developers; may be hard to find someone to fix issues or add functionality) and its inventor says 'The CouchDB product has a lot of features, but is too slow, unable to keep up with high loads and inability scale-out on it's own.' about it.
What's the planned release date for CouchBase?
Karsten Lehmann, January 11, 2012 5:34 PM
All our work is available as free open source packages, is Apache licensed and we are doing all our on public repos and we are accepting contributions. We have no plans to close source anything we produce.
Right now, we are not planning to be a drop-in replace for CouchDB. Though it will be easy to convert many apps with little effort.
We are planning to release Couchbase 2.0 this quarter.
Damien Katz, January 11, 2012 6:04 PM
A few questions: If you are using the best parts of CouchDB, then how is this not a Fork? Will you use any of the code?
Similar query about Memcached / Memebase: What is going on with that code base? How have you merged the two with regards to functionality?
IMHO In order to succeed, you have to provide a bridge from CouchDB to CouchBase, but you said there is no upgrade path. Can you elaborate?
Ric Johnson, January 11, 2012 6:59 PM
Hi Ric. Couchbase can be considered a fork, or a larger project that uses Apache CouchDB. We freely give any changes we make back to the Apache project. It's all Apache licensed.
Memcached is a separate project. We also freely give any changes we make back to that project, but I know less about that.
Membase is our own open source project, and we have merged CouchDB and Membase code together to create Couchbase 2.0. There are already production deployments, though we consider it still only for evaluation purposes.
We will provide a way to replicate data from CouchDB to Couchbase.
Damien Katz, January 11, 2012 8:52 PM
"Though it will be easy to convert many apps with little effort."
Not really, if you are using CouchApp's the missing REST interface forces you to add an extra middle-ware tier, so you end up with 3 tier architecture instead of the beautiful 2 tier possible with CouchDB.
And yes maybe CouchBase scales, but you now need to make this middle-ware tier scale as well, before you can reap that benefit
Søren Hilmer, January 12, 2012 3:21 AM
Damien, my feathers are ruffled indeed. It is perfectly understandable that you tell us about the good points of your new project. What I don't understand is why you do as much as it is in your hand to kill the CouchDB project. With your comments you are scaring everybody out of CouchDB and making the future of those who love and use CouchDB much harder. Besides, if you state that CouchDB is "too slow" and "unable to keep up with high loads" and unable to scale out, please at least tell us what is slow and fast for you, what is a high load and what kind of scalation do you envisage because perhaps for some of us the current performance of CouchDB is more than enough. And last of all. A REST interface really is a feature I would pay for.
Anonymous, January 12, 2012 6:20 AM
I'm really looking forward to see how things develop. In terms of a possible "migration" I have a bit of a more 'exotic' question:
Will there be a possibility to integrate CouchBase into Elasticsearch the way CouchDB was able to? I see there is an ES fork on the CouchBase github repo, but I can't see any commits.
Marc, January 12, 2012 11:49 AM
I've been using the Couchbase 2.0 developer preview for Mac. My whole system grinds to a halt for about 10 - 15 seconds every time I make a change to the database (save a doc, edit a view, etc...). Are there known issues with the performance of this package on Mac? I really like the feature set but I'm not seeing the high speed performance you're talking about :(
Nate, January 13, 2012 2:50 PM
Can I read about this, somewhere else?
drzwi, February 15, 2012 7:41 PM
Post a comment