On 02.10.2008, at 05:07, Ben Bangert <[EMAIL PROTECTED]> wrote:

On Oct 1, 2008, at 8:42 PM, Paul Davis wrote:

I think what you're running into is the CouchDB != SQL impedance
mismatch. Its not overt and I see you're thinking about this, but I
still manage to not see my RDBMS prejudices after working on this for
a couple months.

I'm not a total virgin to non-RDBMS thinking, as I've used XML db's rather heavily, along with Google Datastore.

So in an XML db, or even Google Datastore, I'd store all the comments for a post inside the post itself. No worries about conflicts because I can issue multiple updates to the XML document to insert additional comment nodes. As Chris Lenz mentions on his blog about CouchDB, under heavy load you need to keep comments out of the posts due to conflicts when updating the document and sending the update back to the db. So CouchDB is requiring a level of normalization that other document oriented databases do not (since they can update parts of a document without replacing the entire thing).

As I'm forced to normalize to an extent in CouchDB due to its inability to update individual keys of a document without replacing the entire thing, it seems odd that its so dang hard to get some data together in a single query. It seems like CouchDB should either grow some scheme to let me get more data from separate related docs in one go, or it should allow for atomic updates of individual parts (or insertions of new keys) on a document without affecting the entire document (and thus causing conflicts and the additional normalization the inability caused).

Just a thought, I'm not saying CouchDB can't be improved: If you want to change the core semantics of a given yechnology to "make it work" for you it might be not the right tool for the job.

Cheers
Jan
--



I see that Chris managed to provide a reduce for the first question
which is good. The second answer is missing part of the question. As
in I think Ben was asking "Give me a list of users and their top 5
posts" which != "Give me user and top 5 posts".

Yes, if I wanted to list 20 users and their last 5 posts, that'd be 20 run-abouts to the db. Granted the views are super fast, but the constant round-trip latency will add-up.

So far I think its clear we need better reduce docs. Also, I'm
thinking tomorrow might be a good day to start thinking about view
intersection/union syntax. Anyone that cares feel free to pipe up on
IRC or the ML. I don't see the implementation being difficult given a
decent method for specifying the sub queries.

Yes, that'd definitely help, and more examples of these common things to help others to get their head out of RDBMS-land. ;)

Cheers,
Ben

Reply via email to