Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 31729 invoked from network); 19 Nov 2009 16:23:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 19 Nov 2009 16:23:28 -0000 Received: (qmail 53929 invoked by uid 500); 19 Nov 2009 16:23:26 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 53839 invoked by uid 500); 19 Nov 2009 16:23: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 53822 invoked by uid 99); 19 Nov 2009 16:23:26 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Nov 2009 16:23:26 +0000 X-ASF-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,HTML_MESSAGE X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of awolff@gmail.com designates 209.85.216.202 as permitted sender) Received: from [209.85.216.202] (HELO mail-px0-f202.google.com) (209.85.216.202) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Nov 2009 16:23:24 +0000 Received: by pxi40 with SMTP id 40so1573474pxi.13 for ; Thu, 19 Nov 2009 08:23:03 -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; bh=TLaplwWMylPc/v+VmKrngcrGzeVUkEeRzUiMUXo5Nmc=; b=LV6BIyFBLDY+9KrJMwRzR2JE8m3jprDT4v/MD+IUF3oui/W92V+TcF1eB1kxLaJTjS UoXneGCiM1UJwbztZQYfdCWJNKUlJ+5Wd/N/hz+JAzrnTVWjR3MYAxZPlR90ZrIBtTdM ldAgh+Kbt0X1C72EIa5U6JZvNviiSgOpA3cM0= 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; b=PFpacKoCL/POzPPJDagJh2/VIDnI6r91qJdwMaTCfQJp/keGVbk6lPkwisfGA6Cp7r BQWrp30JB7wnEWjvqgo9Zj9VPLxZXCrE6LFWRFKbUTj/f9MOCQvk9kOBTpUK+uw6M2e/ gx6Jh807EwOzhv9ilSoMWTCWH9cHI9hLh10eQ= MIME-Version: 1.0 Received: by 10.141.52.15 with SMTP id e15mr9444rvk.204.1258647783483; Thu, 19 Nov 2009 08:23:03 -0800 (PST) In-Reply-To: References: <1696307396.20091119121228@mail.ru> Date: Thu, 19 Nov 2009 08:23:03 -0800 Message-ID: Subject: Re: revisions and CouchDB as Temporal database From: Adam Wolff To: user@couchdb.apache.org Content-Type: multipart/alternative; boundary=000e0cd291d4082a470478bbc644 --000e0cd291d4082a470478bbc644 Content-Type: text/plain; charset=ISO-8859-1 If the application just stored the _rev of the document upon commit in a separate field, couldn't you rebuild the revision history in the application? I've been asking for a feature like this too -- but I just want the "compaction/replication preserves revs" part. A On Wed, Nov 18, 2009 at 10:37 PM, Paul Davis wrote: > On Thu, Nov 19, 2009 at 1:12 AM, sftf wrote: > > Why we need to reinvent a revision mechanism at application level, > > instead of using existing built-in one? > > This built-in mechanism is very useful in applications that need > > to maintain revision history of documents (aka Temporal Database). > > > > But now compaction and replication treats older versions of each document > as garbage, > > but not as document's history useful at the application level. > > > > So questions is: > > It may be useful to make this revision mechanism as the temporal feature > (in sense of transaction-time) > > of CouchDB? > > > > And for this: > > a) invent option to compact without removing old revisions from the > database and > > option to removing revisions older than the given timestamp > > b) invent replication option to replicate revisions too > > c) invent optional flexible timestamping of revisions > > Thanks. > > > > > > While CouchDB's MVCC tokens may appear to be a replacement for > revision systems, they are fundamentally not qualified for such a > task. They are only a specific implementation of optimistic > concurrency and are far removed from content tracking as would be > required. > > Attempting to attach a temporal meaning to the MVCC tokens is also a > fairly common reaction. This is generally born out of a misconception > of what these tokens are for. Specifically, MVCC tokens are explicitly > opaque. Applications are not allowed to depend on their format or > implementation defined meaning. Attempting to attach a time based > definition to these tokens violates many assumptions as to what they > represent. > > HTH, > Paul Davis > --000e0cd291d4082a470478bbc644--