couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wout Mertens <>
Subject Re: Entity Relationships in CouchDB
Date Tue, 14 Apr 2009 11:43:09 GMT
On Apr 14, 2009, at 5:56 AM, Jason Smith wrote:

> That's cool.  Some thoughts:
> 1. I changed the first sentence a little to better comply with the  
> document's CC-A license.


> 2. Do you think the word "Joins" should be added somewhere to get  
> into Google?  IMO this document is a better way to learn than the  
> slightly more dense ViewCollation page.

Good idea, I sprinkled it around a little where appropriate.

> 3. Couch is different from App Engine WRT (at least) transactions  
> and indexing.  Most people can use App Engine somewhat quickly  
> because there is still a facility for transactions involving several  
> objects.  (It's not a RDBMs but you can still do it.)  Whereas with  
> CouchDB, the unit of atomicity is the document.

Do you think the document should touch on that? In these simple  
examples, there's nothing to transact :-/. Maybe there should be a  
recipe book for transaction avoidance? (like using a running sum on  
bank account transfers)

>  Speaking of documents, I'm not sure there is as big of a  
> performance penalty for large Couch documents vs. large App Engine  
> models.  App Engine indexes every possible combination of attributes  
> that you might ever query against, but in CouchDB, you write your  
> own indexes which, stored separately from the main data.  So you  
> could have a large complex document (for atomic modification), but  
> mostly read its data via various views which cherry-pick the  
> important parts.

I tried to make it clearer that big documents mean slow transfer times  
on writes, feel free to amend if you see a better way to express it.

> In short, I'm not sure Couch has the same performance  
> characteristics as App Engine for data.  Specifically, I would be  
> tempted to use the "list of keys" method for as long as possible  
> since you can get to your data in one view request.  (But I'm no  
> expert.)

Definitely, it's the easiest to use...

> Still, for the large portion of applications which don't have major  
> performance requirements, this is a great document!  I like how it  
> teaches how to do "joins" without using scary words like "view  
> collation" and "map/reduce"!

Thanks :-)


> Wout Mertens wrote:
>> Hi everyone,
>> I made a stab at translating a Google document about modeling  
>> entity relationships into CouchDB lingo.
>> Comments welcome.
>> Wout.
> -- 
> Jason Smith
> Proven Corporation
> Bangkok, Thailand

View raw message