CouchDb strikes a chord
Apparently the switch to JSON and Javascript is a big hit. Jan writes a bit about the upcoming changes and suddenly CouchDb is attracting lots of attention.
Andrew Tetlaw - Watch out for CouchDb
I also dig the free-form data aspect. In a rdbms it’s often the case you have to be attentive to your schema design so that you can support future query requirements. In CouchDB you just make views whenever you feel like to give you any number of different views on the same data.
Tobias Lütke - Futuretalk: CouchDB
CouchDB uses the concept of views which are essentially javascript methods. It uses map/reduce to find matching records in its global namespace so that at query time the results are available instantaneously. This is a huge performance boost for web applications which generally have many more queries than update/inserts.
Labnotes - CouchDB: Thinking beyond the RDBMS
Here’s the kicker. This simple architecture you can partition and replicate any way you want, map/reduce these computed tables on any scale, and deal with the rest on the client.
Also there are a bunch of comments on Reddit. Here is one of my favorites:
By the by, the flurry of CouchDB articles smell remarkably like freshly mowed astroturf. Color me suspicious.
Me too. No way this many people get it.
If you want to know more about the design and implementation of CouchDb, read the Technical Overview. Also, Jan has been doing a ton of work updating the documentation wiki to reflect the new changes.
Keep in mind that although you can get the source and build it yourself, the CouchDb JSON conversion isn't done yet. The client replication logic hasn't been converted to use the new JSON formats and file attachments aren't tested. Once that's done we'll release the next alpha version.
In the meantime, here is the nascent Javascript based test suite and client library. The cool thing about them is they are run directly from a web browser, making a pimped-out test suite with GUI bling and debugging hotness not only possible, but mandatory.
Posted September 3, 2007 7:46 PM
Comments
This rails junkie gets it and is loving it! I know its not even done yet, but I have compiled the JSON branch and am currently integrating it with one of my experimental projects. Can't wait to see it hit the next alpha version.
Nick Mulder, September 3, 2007 10:45 PM
I get it because I built Lotus Notes driven websites for the better part of 10 years. I understand the strengths of this kind of DB. I'm excited because (a) you are well renown among Notes developers as a pretty clever bloke :) and (b) this style of database (the #1 best thing about Notes) is now gaining support momentum and taken to the next level and beyond. Groovy stuff.
Andrew Tetlaw, September 3, 2007 11:38 PM
Many people do get it for one very simple thing: simplicity :)
JavaScript is ubiquitous as is HTTP. Combining the two to build/access/maintain a database? Brilliant.
Dmitrii 'Mamut' Dimandt, September 4, 2007 7:40 AM
I stumbled upon CouchDB via Simon Willison's link to the Labnotes entry.
I have to say that a database that is all about storing the JSON object model appeals mightily. I say this not as a child of the AJAX revolution, but as soneone who has been working with XML in SQL databases for ten years now and would happily never write a line of SQL ever again.
Using plain HTTP as its network protocol also appeals. Simplicity, Lesscode, AJAX interfaces for free. Nice. I'll have two please!
On the other hand, I might have to wait for it to get a leetle bit past alpha status before trying to sell it to my work colleagues. :-)
Damian Cugley, September 4, 2007 8:47 AM
So far what I get is that CouchDB is a lot more scalable than SQL DBs (no small point there). I also get that we need something in between flat files and RDBMSes.
The part I'm skeptical about is people talking about this as if it's somehow innately superior to the relational model and anyone who knows anything will be dumping SQL for CouchDB very soon now. While I agree the relational model is overkill for an awful lot of stuff, my impression is that CouchDB is trading in a lot of the ad-hoc power of the relational model in exchange for performance and scalability in a certain class of applications. I see this as a great thing--an SQL monopoly doesn't serve anyone--but I find myself very skeptical of some of the hype.
I'll definitely be watching closely and playing around quite a bit with CouchDB since speculation is useless... I want to see how it actually performs.
Gabe da Silveira, September 6, 2007 7:30 PM
I seriously doubt that. Defining that schema and operating in terms of relations allows decades of RDBMS research to be applied. Handwavy "it's all just data, man" claims do not a scalable system make.
I think the biggest draw is that most people don't need RDBMS performance, so they don't need the constraints. The simplicity of moving data in/out is all that's important.
jsled, September 6, 2007 8:02 PM
I'm very interested in CouchDB's replication mechanism, but I'm finding little in terms of either sample code or documentation. Any pointers are appreciated.
vincentk, September 7, 2007 7:36 AM
@jsled So hashtable lookups are somehow slower than multi-table JOINs?
Jan, September 7, 2007 10:23 AM
@Jan: With a 100GB dataset? They're basically possible, let alone faster.
jsled, September 7, 2007 1:50 PM
> Me too. No way this many people get it.
Don't make the mistake of thinking we've all just been sitting around waiting for you to create this thing ;-) Some of us have been using CouchDB's "competitor" for a while now (Hadoop).
Toby, September 7, 2007 2:39 PM
> In the meantime, here is the nascent Javascript based test suite and client library.
The two links in this sentence are broken.
Mike Judge, September 7, 2007 4:38 PM
The JSON branch has been collapsed back in to the main trunk, so those files are now at
http://couchdb.googlecode.com/svn/trunk/dist/common/ht_utils/couch_tests.js and
http://couchdb.googlecode.com/svn/trunk/dist/common/ht_utils/couch.js
Damian Cugley, September 11, 2007 9:56 AM
Great stuff!
One question: the way you're currently doing views doesn't seem to make it easy to build/maintain things like inverted indexes, although I suppose you could hack something with "multi" and "startkey", but it wouldn't be very compact and scalable. Do you have specific plans for that?
Joe Edelman, September 12, 2007 11:23 AM
THIS IS IT FOR DAMIEN - NOW HE WILL BE FAMOUS AND SNEERING AT US LOWLY MORTALS.
Its only a matter of time when the rest of the geeks and IT community picks this up..I have about 30+ blogs I read and 1outof2 have had blogged/coded/played with CoubDB in the past 5 days..
you rock man!
raj
Raj, September 13, 2007 11:15 AM
Post a comment