The Artima Developer Community
Sponsored Link

Java Community News
Jacob Kaplan-Moss Reviews CouchDB

4 replies on 1 page. Most recent reply: Oct 23, 2007 4:24 AM by John Zabroski

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 4 replies on 1 page
Frank Sommers

Posts: 2642
Nickname: fsommers
Registered: Jan, 2002

Jacob Kaplan-Moss Reviews CouchDB Posted: Oct 19, 2007 9:18 AM
Reply to this message Reply
Summary
CouchDB is a new, open-source storage engine for document-oriented applications. It provides a schema-free approach to storing objects that can be described as a collection of name/value tuples, and provides a REST/JSON interface, replication, indexing, and querying. Jacob Kaplan-Moss reviews CouchDB in a recent blog post.
Advertisement
CouchDB is a new, open-source document database server that provides a RESTful, JSON-based API to document storage. While it is not meant as a replacement for relational or object databases, its schema-free approach to persistent storage makes it suitable as a replicated, indexable data store for objects that can be described as name/value pairs, including JSON and Javascript objects.

The project's documentation describes CouchDB as:

Unlike SQL databases which are designed to store and report on highly structured, interrelated data, CouchDB is designed to store and report on large amounts of semi-structured, document oriented data. CouchDB greatly simplifies the development of document oriented applications, which make up the bulk of collaborative web applications...

In an SQL database, as needs evolve the schema and storage of the existing data must be updated. This often causes problems as new needs arise that simply weren't anticipated in the initial database designs, and makes distributed "upgrades" a problem for every host that needs to go through a schema update...

With CouchDB, no schema is enforced, so new document types with new meaning can be safely added alongside the old. The view engine is designed to easily handle new document types and disparate but similar documents.

What makes CouchDB especially suitable for Web applications is its built-in replication mechanism:

CouchDB is built from the start with a consistent vision of a distributed document database system. Unlike cumbersome attempts to bolt distributed features on top of the same legacy models and databases, it is the result of careful ground-up design, engineering and integration. The document, view, security and replication models, the special purpose query language, the efficient and robust disk layout are all carefully integrated for a reliable and efficient system.

In a recent blog post, Jacob Kaplan-Moss, a lead developer of Django, tests CouchDB, noting that:

Anything I can poke at with curl is pretty damn cool... Wow, I can just chuck arbitrary JSON objects up at this thing and it’ll store it. No setup, no schemas, no nothing. This is relaxing…

I hadn’t expected CouchDB to look this polished so soon in the game. The web interface is truly awesome, and naturally implemented directly against the regular API.

Nice, there’s already a couchdb-python (built with httplib2, natch). The latest release installed with easy_install doesn’t seem to work, but SVN trunk does... I wonder what it would take to make CouchDB into a backend for Django models? Seems there’s a much lower impedance mismatch between a document database and an object one — a model instance maps much better to a document than to a tuple.

What do you think of CouchDB and its schema-free approach to document storage?


Sandy McArthur

Posts: 2
Nickname: sandymac
Registered: Jun, 2006

Re: Jacob Kaplan-Moss Reviews CouchDB Posted: Oct 19, 2007 10:19 AM
Reply to this message Reply
How is this better than a clustered file system?

John Zabroski

Posts: 272
Nickname: zbo
Registered: Jan, 2007

Re: Jacob Kaplan-Moss Reviews CouchDB Posted: Oct 19, 2007 11:56 PM
Reply to this message Reply
> What do you think of CouchDB and its schema-free approach to document storage?

It's an off-the-shelf weakly structured data store for storing weakly structured data. There's nothing pretentious about that. However, "document database server" is a bit too generic. Some documents are highly structured, such as a Sharps Safe Disposables form a hospital might use to assure sharps are safely disposed of. You wouldn't use CouchDB to store that sort of "document".

Kevin Teague

Posts: 15
Nickname: wheat
Registered: Mar, 2006

Re: Jacob Kaplan-Moss Reviews CouchDB Posted: Oct 23, 2007 2:56 AM
Reply to this message Reply
Schema-free. Ugh - the data modeller in me gets the hee-bee jee-bees. Give me structure, give me constraints! But then the world is a messy place, full of fuzzy data, so supporting ad-hoc and arbitrary data and the applications you could build from it also get me quite excited.

At first I thought perhaps folks were getting over excited about CouchDb because they were drinking too much JSON kool-aid. But the more I played with CouchDb, the more excited I got, until I had no choice but to write my own CouchDb blog posting ...

http://www.bud.ca/blog/couchdb-playing

The fact that you can build rich internet applications using CouchDb as a data store means that you don't even need an application server between you and your database - very interesting stuff indeed.

John Zabroski

Posts: 272
Nickname: zbo
Registered: Jan, 2007

Re: Jacob Kaplan-Moss Reviews CouchDB Posted: Oct 23, 2007 4:24 AM
Reply to this message Reply
@Kevin Teague
@The fact that you can build rich internet applications using CouchDb as a data store means that you don't even need an application server between you and your database - very interesting stuff indeed.

Interesting - but not a new concept. There's been a source forge project in existence for about 3 years (although only up on source forge for a little over a year now) that provides the same functionality for strongly structured data stores - that is why I made my comments above. Calling CouchDB "document database server" is a misnomer because some documents have business rules implicit to them - but as a data modeler you know that. CouchDB has no way to defend itself from data integrity violations. Both CouchDB and Andromeda address different needs, though.

If you want to check out the other project, then see http://www.andromeda-project.org/ and https://sourceforge.net/projects/andro/ . As a disclaimer, the author is a friend and I'm on the mailing list.

Flat View: This topic has 4 replies on 1 page
Topic: Amazon's Architecture and Lessons Learned Previous Topic   Next Topic Topic: Enunciate 1.5 Released


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2017 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us