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

2 comments

Reply

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

JRuby: The Pain of Bringing an Off-Platform Dynamic Language to the JVM

Charles Nutter discusses bringing JRuby to the JVM, why Ruby is hard to implement, JIT compilation, precompilation, core Ruby implementation, Java library access, library challenges and future plans.

Performance Anti-Patterns in Database-Driven Applications

Alois Reitbauer specifies several architectural anti-patterns that one should stay away from and which can downgrade an application’s performance.

Making TDD Stick: Problems and Solutions for Adopters

Teams in large organizations still struggle to adopt TDD. In this article Mark Levison shares problems he uncovered when he surveyed teams, and his own strategy to introduce TDD into an organization.

Testing is Overrated

In this talk from RubyFringe, Luke Francl asks: is developer-driven testing really the best way to find software defects? Or is the emphasis on testing and test coverage barking up the wrong tree?

VM Optimizations for Language Designers

John Pampuch discusses the HotSpot compiler, the history of Java performance, HotSpot development philosophies and challenges, optimization, JVM library improvements, and tips for better performance.

Keith Braithwaite, an Agile Skeptic

In this interview, Keith Braithwaite, an Agile developer, consultant and trainer, says that we should show a good deal of skepticism towards today’s Agile practice.

Workflow Orchestration Using Spring AOP and AspectJ

This article demonstrates how to build and orchestrate highly configurable and extensible yet light-weight embedded process flow using AOP techniques with Spring AOP and Aspect J.

Embrace Uncertainty

Jeff Patton explains why one needs to embrace uncertainty in order to succeed with his/her Agile project and how to avoid some of the common mistakes leading to project failure.