InfoQ

Interview

Damien Katz Relaxing on CouchDB

Interview with Damien Katz by Werner Schuster on Nov 23, 2008 08:51 AM

Community
Architecture
Topics
Database Design
Tags
CouchDB ,
Erlang ,
RubyFringe
Summary
In this interview, Damien Katz talks about CouchDB, a distributed, fault tolerant, document oriented database developed by Apache Incubator. CouchDB is written in Erlang, and the database is accessed through an HTTP/JSON API. The database view engine is run on JavaScript, but other languages have been used like Ruby and Python.

Bio
Damien Katz has worked for Lotus, MySQL, IBM, and is the creator of CouchDB. Damien will be doing this for a very long time to come.
We are here at RubyFringe with Damien Katz. How about you introduce yourself?
So what's this CouchDB thing that we see on your T-shirt?
How would you compare it to other products like Lotus Notes which I think is also document based in a way. Or XML databases which are similar, I think. How would you put it in that area?
So basically CouchDB works by you inserting a lot of unstructured documents. How do you search in them? How do you index them? I think you use JavaScript for it?
How would you do a query in CouchDB? What do you use? What language?
Do these run for every query? Or do they run through all the documents, instance of caching?
You chose an interesting language for implementing CouchDB, Erlang. What's the main reason for that?
How do you integrate JavaScript, is JavaScript runtime in Erlang? Is that the same process?
This protocol that you use over the pipe, that's just JSON messages?
You are using Erlang's features for reliability. I figure you liked that for CouchDB. Do you also use sort of scalability features?
Did you see any benefits from Erlang and SMP versions? Or didn't that make any difference?
One thing you recently or some time ago wrote a blog about what you didn't like about Erlang. So what's your current position on that? Did anything change?
What's your top three complaints: the string handling, Unicode support, something like that?
Well coming back to the document database. What are document databases like Lotus Notes for instance? What are they particularly good for? What is Lotus Notes for instance used?
That's also what Lotus is used for in big companies.
Did it start out this way, or did it start as email?
So would you say that this document database concept, this has been around for some time with Lotus Notes, this has been available in other products, or it seams to be becoming popular with CouchDB.
You want to bring that document model to the open source. It seams to be a lot of other paradigms for databases as a competition to a relational databases like Google's BigTable. What do you think about that?
Do you see it as an alternative to a document based concept or do you see it as a different model do you think?
show all  show all
Lambda the Ultimate by Claudius L Posted Nov 26, 2008 4:14 PM
Re: Lambda the Ultimate by Abel Avram Posted Dec 9, 2008 9:28 AM
  1. Back to top

    Lambda the Ultimate

    Nov 26, 2008 4:14 PM by Claudius L

    I think Damien Katz is refering to "Lambda the Ultimate" not "Land of the Ultimate"

  2. Back to top

    Re: Lambda the Ultimate

    Dec 9, 2008 9:28 AM by Abel Avram

    I think Damien Katz is refering to "Lambda the Ultimate" not "Land of the Ultimate"
    Yes, you are right. Fixed. Thanks.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.