Thursday, March 6, 2008

eTech - CouchDB from 1000ft

Presentation by Damien Katz

Website

CouchDB is an EASY database. A simple way to store data.

When designing a relational database, you are designing a large data structure. With CouchDB, you are just storing data.

Documents are complete units of data that is not broken up. Example, business card. This means that documents may be out of date. In a relation db, this is the worst thing that can happen, but in the real world, we deal with it all the time.

CouchDB is in JSON, similar to XML, but easy to read and write.

CouchDB is supported by all major languages and does not require a data access layer.
Communication is across HTTP API.

Indexes are built incrementally with map reduce over the tags.

Data is replicated across machines via peer based replication.
Conflicts are taken care of by the db, a winner and loser change is chooses consistently on all machines.

If you are interested in distributed programming, look into 'Erlang'. CouchDB is written in Erlang because it makes distributed programming a snap.

Read writes can happen at the same time; the reader will get the older value.

20,000 concurrent users running on a laptop. This works because Erlang does not use OS processes, they use their own lightweight process.

Comes with Lucene integration for full-text search. But any search tech could be used.

To access the db, you write javascript/ajax.

Largest replication so far= 5gb, 400,000 documents.

Not yet ready for use in production. But people ARE using it.

If a relational db model is what you need, then use that...

No comments: