Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 9983 invoked from network); 9 Feb 2009 10:29:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Feb 2009 10:29:30 -0000 Received: (qmail 29952 invoked by uid 500); 9 Feb 2009 10:29:26 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 29921 invoked by uid 500); 9 Feb 2009 10:29:26 -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 29910 invoked by uid 99); 9 Feb 2009 10:29:25 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Feb 2009 02:29:25 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of lady.donut@gmail.com designates 72.14.204.238 as permitted sender) Received: from [72.14.204.238] (HELO qb-out-0506.google.com) (72.14.204.238) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Feb 2009 10:29:19 +0000 Received: by qb-out-0506.google.com with SMTP id d11so1139472qbd.3 for ; Mon, 09 Feb 2009 02:28:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=N6WlW7lMaOYUS6BNgCJ44PqOUI3feWQqC1ORLLkpaNA=; b=ahO1F64S/D9escWtTy70cAWgHCA2q+C3z5zZ8dJ9Q/sRZFv7zVlSKLZGx34MfI3kpx hYUQ8d6QA7ECKEjcuDWMNTDcMMj7cjkjmP12ZxNneuIWPoD+0EafZtYJrD/t2BCExjXT C7pASuFabnach819iXVDsHHQJPEfmw3Uqe7Go= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=a8yo2QBTaKcYj8JLbTbs7YgjvePM/abfnsRYIr9wF76mzsgZL2js6cu/Vj4T/HeG+M ReA2pc7pn0CPtTrtFWsKCpgJztW0RKBpuZe6/UoKw+7czsxKiXl6XODFa6STd5jsNYLk lqnECCi7nVnYvhKkbkxgjgbWkkHiMSZuYcPt4= MIME-Version: 1.0 Received: by 10.65.234.18 with SMTP id l18mr2539600qbr.22.1234175338012; Mon, 09 Feb 2009 02:28:58 -0800 (PST) In-Reply-To: <5186956f0902082052m43546a8dmb6d9a3ebf9685034@mail.gmail.com> References: <5186956f0902082052m43546a8dmb6d9a3ebf9685034@mail.gmail.com> Date: Mon, 9 Feb 2009 19:28:57 +0900 Message-ID: <5186956f0902090228p5a6db266l764fde4c82b571d0@mail.gmail.com> Subject: Re: The Blog From: Mister Donut To: user@couchdb.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Hello Patrick, I am writing down thoughts as they come. I would appreciate if you tried to follow. Yes, I realize storing comments inside the entry is a bad idea. I was following an introduction to CouchDB. > Sure, use the view to get all comments and specify count=0. > You can get them in one query, just group comments by post_id in your map reduce query. I don't think you understand my point. Yes, I know. Maybe you should re-read. You still need one lookup for every blog entry on a page. And there is no way you can ever store the comment count inside the blog entry. > startkey, endkey and limit. That sounds so great. But wait. LIMIT. I know that from SQL. It doesn't scale. Jumping to page 1234567 of ten million. Please, no. And you cannot, ever, group items based on a variable criteria. For example in batches of around one hundred. Which solves pagination. A view cannot provide that. But again, there is no way you can "manually" do it. > Anything! I challenge you. Build me a counter! No seriously. Pick one: GROUP BY, LIMIT, _rev to fake transactions. Uh. Oh. Hello SQL? You know something magical that allows you to avoid _rev. So please tell me. What exactly can I use CouchDB for that uses its strengths, and not weaknesses? I am honestly not trying to make a fool of anyone. The CouchDB book seems only to justify the design choices. The Wiki is completely unhelpful. Every time it gets interesting. http://wiki.apache.org/couchdb/How_to_implement_tagging It stops. That second article, that would certainly enlighten me. Yes, how, would you go about implementing that? I don't see how you can make it work but by using an awful lot of merging logic. Isn't that why you use a RDBMS in the first place? > It's already there. You're right, I missed that one. It's even more scary.