Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 90939 invoked from network); 18 Nov 2010 04:33:21 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 18 Nov 2010 04:33:21 -0000 Received: (qmail 67137 invoked by uid 500); 18 Nov 2010 04:33:51 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 66776 invoked by uid 500); 18 Nov 2010 04:33:51 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 66765 invoked by uid 99); 18 Nov 2010 04:33:50 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Nov 2010 04:33:50 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of ziggythehamster@gmail.com designates 209.85.161.180 as permitted sender) Received: from [209.85.161.180] (HELO mail-gx0-f180.google.com) (209.85.161.180) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 18 Nov 2010 04:33:43 +0000 Received: by gxk8 with SMTP id 8so1726929gxk.11 for ; Wed, 17 Nov 2010 20:33:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:from:to:in-reply-to :references:content-type:date:message-id:mime-version:x-mailer :content-transfer-encoding; bh=ZiNTpWFWwNT0XORgYdwMwaiYZvS7eu78LNR/eazMfLY=; b=qlvZZ36dbdH5qX5qpgBZh0xCHA2NEDkG2kdN7+0HCO9PNXQIhuGBGwgboqX0WuilmN OfMExvNsV8NrcImKgvhJywkKrs3glhi4PzJbiB1SAZ/++b4njsSPyTJavy68KiI+XBW4 0DVOyIVuLsPUfcafqatqTAGqeNmVDUyXnzTxA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:to:in-reply-to:references:content-type:date:message-id :mime-version:x-mailer:content-transfer-encoding; b=xGJ3N0d5dGXdFNfCTroMgCoq+q1jdyLPCnIVSnRC1uODQwYNA2URHPX1riwIpC7V7K vBQaN8Uvxatnu3TSUPFofSpcrxtS8wqcSTpxwqfJjNquMCBTq1SwdHvUVH5RrhK6yTKr kREuH26XiPu1Wkp3rbvcyk57xJ7f6PGll/LU8= Received: by 10.100.191.3 with SMTP id o3mr66236anf.234.1290054801415; Wed, 17 Nov 2010 20:33:21 -0800 (PST) Received: from [172.16.0.10] (ip68-0-73-133.tu.ok.cox.net [68.0.73.133]) by mx.google.com with ESMTPS id g6sm7211757anh.11.2010.11.17.20.33.20 (version=SSLv3 cipher=RC4-MD5); Wed, 17 Nov 2010 20:33:20 -0800 (PST) Subject: Re: simple use cases for couch db From: Keith Gable To: user@couchdb.apache.org In-Reply-To: References: Content-Type: text/plain; charset="us-ascii" Date: Wed, 17 Nov 2010 22:33:04 -0600 Message-ID: <1290054784.3368.27.camel@keith> Mime-Version: 1.0 X-Mailer: Evolution 2.30.2 Content-Transfer-Encoding: 7bit On Wed, 2010-11-17 at 22:18 -0600, Andy wrote: Without touching the replication or offline/online stuff as I haven't used it yet... CouchDB is useful any time that you would be using a serialized (aka XML aka JSON aka YAML) column in a relational database. It also works better for mainly read situations and situations where your queries can be prewritten and made into Map/Reduce. CouchDB can be used to augment a RDBMS when you do need to store variable amounts of related structured data, and it wouldn't surprise me that if at some point someone actually builds CouchDB into an RDBMS to handle the serialized columns. The biggest hurdle you have to overcome though is Map/Reduce. Many queries can't be done in Map/Reduce without some thought, and you have to think about the startkey/endkey used to query the views as the "WHERE" portion of your query. It's not nearly as flexible as SQL is, but it definitely works and is a tool you can use when appropriate. Apps I'd use CouchDB for: CRM, log aggregator, any app which has relationships between drastically different object types that should be in the same table due to a basic commonality (and/or the fact that JOINing 10 tables together is not fun), MusicBrainz or equavilent, metadata-heavy apps, metadata aggregators. I'm not sure I'd use the attachment functionality for larger files though. But nothing is stopping you from having a "file_uri" property and pointing it at S3 or whatever.