We'll respond shortly.
Matt Aimonetti is part of the Merb team.
You need reliability
Every p0rn star needs a trick
Why aren’t you a porn star now? Because of RDBMS
What does RDBMS have problems?
What other kinds of approaches can we use?
Distributed Hash Table
Some other projects:
Project Voldemort, Tokyo Cabinet, Redis
It is a project written in Erlang by Apache. It uses spider monkey.
Can be used as a key/value store.
Can also put data in a schema-less store, format your data as a JSON object and dump the whole thing into the db
CouchDB comes with a nice web interface called Futon that lets you inspect your database and its contents.
CouchDB is de-centralized.
You can do replication between multiple masters.
Optimized for the web, more reads than writes.
Everything is a JSON object.
You can define properties so you get an attribute reader/writer, and do document.attr
There is no SQL in CouchDB, you do queries like Card.first, Card.all, Card.get(’matt_aiomonetti’)
The problem is trying to map documents into Object-Oriented languages, but it doesn’t always work. If you have dependent objects (such as Card and Address), then you tell CouchDB to cast it as something.
property :questions, :cast_as > ['Question']
save_callback :before, :generate_slug_from_title
Relationships can be done, but you have to decide how to do it, and there are a lot of ways.
Q: Can you use couchdb with objects that have attributes that change often?
A: Yes you can use it.
Q: There are many ways to do relationships. Can you give an example?
A: Blog has an article with many comments. You can make one doc that is an article, and you can add comments. Problem is you need to send the whole document that increases risk of conflicts. So you create a new object that is the comment object that just refers to the article. Then, in the view you define the Article as aggregating all comments. Alternately, you can make a query to retrieve all comments for the article.