Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 63370 invoked from network); 9 Apr 2011 18:51:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 9 Apr 2011 18:51:49 -0000 Received: (qmail 45454 invoked by uid 500); 9 Apr 2011 18:51:47 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 45414 invoked by uid 500); 9 Apr 2011 18:51:47 -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 45404 invoked by uid 99); 9 Apr 2011 18:51:47 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 09 Apr 2011 18:51:47 +0000 X-ASF-Spam-Status: No, hits=2.2 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.216.52] (HELO mail-qw0-f52.google.com) (209.85.216.52) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 09 Apr 2011 18:51:40 +0000 Received: by qwb8 with SMTP id 8so4542028qwb.11 for ; Sat, 09 Apr 2011 11:51:19 -0700 (PDT) Received: by 10.224.27.145 with SMTP id i17mr3064414qac.286.1302375079432; Sat, 09 Apr 2011 11:51:19 -0700 (PDT) MIME-Version: 1.0 Received: by 10.224.74.72 with HTTP; Sat, 9 Apr 2011 11:50:59 -0700 (PDT) In-Reply-To: <1302338725.29780.6.camel@otto.amantes> References: <1302198233.3064.15.camel@ana.amantes> <1302338725.29780.6.camel@otto.amantes> From: Mark Hahn Date: Sat, 9 Apr 2011 11:50:59 -0700 Message-ID: Subject: Re: change notifications question To: Thomas Vander Stichele Cc: user@couchdb.apache.org Content-Type: multipart/alternative; boundary=bcaec51b176bf952d404a080d340 X-Virus-Checked: Checked by ClamAV on apache.org --bcaec51b176bf952d404a080d340 Content-Type: text/plain; charset=ISO-8859-1 > I might as well build it on top of anything else than couchdb no ? :) If the only feature you care about in your db is versioning then you are correct, all non-versioning dbs are equal. I personally love using couch for the many reasons discussed. I find it so much less painful than a structured db. If you are willing to build the versioning in your app then there is a simple solution, IMHO. Save new versions as new docs, not revisions. Couch doesn't utilize differencing of versions so there is no performance hit. Keep your own ID that is separate from the couch ID. You can create a view that links to the previous "version" and you can pull both docs in one query. Replication will work the same. DB size growth will be the same. You will need to do your own deleting at your leisure but you will have full control with your own algorithm. The coding of this would be trivial compared to changing the erlang implementation of couch and you wouldn't be risking losing support by forking. I think I could do it in a day or so. It would be fun. On Sat, Apr 9, 2011 at 1:45 AM, Thomas Vander Stichele wrote: > On Thu, 2011-04-07 at 11:19 -0700, Mark Hahn wrote: > > You are not even guaranteed the old version will be there. > > I would be ok with that, it doesn't seem to be a big problem in > practice. (Although it's strange to me that all the infrastructure is > there to have document revisions, but we have no control over how much > history we want couchdb to keep. Seems like a relatively > straightforward next step). > > > You need > > to build history into your app. > > Can you be a bit more explicit about what you mean? > > It sounds like you say I should re-write CouchDB's revisioning/history > approach in my app just to get around the fact that couchdb has no > controls for history. I might as well build it on top of anything else > than couchdb no ? :) > > Thanks > Thomas > > > -- Mark Hahn Website Manager mark@boutiquing.com 949-229-1012 --bcaec51b176bf952d404a080d340--