Return-Path: Delivered-To: apmail-incubator-couchdb-user-archive@locus.apache.org Received: (qmail 36661 invoked from network); 28 Nov 2008 00:06:46 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 28 Nov 2008 00:06:46 -0000 Received: (qmail 5483 invoked by uid 500); 28 Nov 2008 00:06:56 -0000 Delivered-To: apmail-incubator-couchdb-user-archive@incubator.apache.org Received: (qmail 5454 invoked by uid 500); 28 Nov 2008 00:06:56 -0000 Mailing-List: contact couchdb-user-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: couchdb-user@incubator.apache.org Delivered-To: mailing list couchdb-user@incubator.apache.org Received: (qmail 5442 invoked by uid 99); 28 Nov 2008 00:06:56 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Nov 2008 16:06:56 -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 jchris@gmail.com designates 209.85.198.247 as permitted sender) Received: from [209.85.198.247] (HELO rv-out-0708.google.com) (209.85.198.247) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Nov 2008 00:05:28 +0000 Received: by rv-out-0708.google.com with SMTP id k29so1337876rvb.0 for ; Thu, 27 Nov 2008 16:06:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:from:to :in-reply-to:content-type:content-transfer-encoding:x-mailer :mime-version:subject:date:references; bh=hjtWOVGJJpwbNZehCdP7QIJ50DZEO1fS0KzzdhP97JU=; b=mXIeRjxRuO0by6HGHiql7x/d1G8RG3bF6lL05dyS4sMt54VONyuquIK5Vdz4bsrm17 u3Qrv0dfWB5Dy1hIqZUp7VGRuCjxirpu42rF2YjrUXe+vm3jlCekEawn7y4rSwLlbgsE gK1hAJ5zGkfUylfpobXGTwhgFC9hqPkUF4VK0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:from:to:in-reply-to:content-type :content-transfer-encoding:x-mailer:mime-version:subject:date :references; b=nZveVo6sW4S/ZBIuF/Gww6z2xpt2zVSKz6txrsoXsuLYvGVsLsKRX7yGIbZQdyg7MH sK3rmXVQ59HgNf/ueCfQqNNgp2lFteKjYPWGSyOLfEfUQrM46mqdNSeo3iodi2IjFagT fJQ3b/iZzJw0kcIq5LECanu1/PmWzjbsXdWyk= Received: by 10.114.12.10 with SMTP id 10mr4242049wal.87.1227830774664; Thu, 27 Nov 2008 16:06:14 -0800 (PST) Received: from ?192.168.1.105? (c-76-115-0-4.hsd1.or.comcast.net [76.115.0.4]) by mx.google.com with ESMTPS id q20sm296486pog.7.2008.11.27.16.06.13 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 27 Nov 2008 16:06:13 -0800 (PST) Message-Id: From: Chris Anderson To: couchdb-user@incubator.apache.org In-Reply-To: <948486CF-C31A-4632-8890-3DC46CA57093@gmail.com> Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Mailer: iPhone Mail (5G77) Mime-Version: 1.0 (iPhone Mail 5G77) Subject: Re: partial/diff updates? Date: Thu, 27 Nov 2008 16:06:29 -0800 References: <41DF7DCF-E050-4A02-B6C6-100787592E2D@gmail.com> <492E43E1.6010501@silencegreys.com> <20081127095830.GF6930@tumbolia.org> <20081127114016.GH6930@tumbolia.org> <48E899BC-96E0-4528-BF65-DB0A52998E91@gmail.com> <948486CF-C31A-4632-8890-3DC46CA57093@gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org The question becomes why not just use seperate docs? Sent from my iPhone On Nov 27, 2008, at 1:38 PM, Antony Blakey wrote: > > On 28/11/2008, at 3:29 AM, Timo Isokoski wrote: > >> Is this talk about the "diff" feature related to >> >> a) How CouchDB physically stores the data on disk >> b) How data is transmitted between the client and CouchDB >> >> In case a) I think diffs are the devil and it goes aganist the >> simplicity of >> CouchDB:s inner workings. In case b), wouldn't it be easy to >> implement some >> kind of a prototype of this feature as a "proxy server" on top of >> CouchDB. >> The proxy could route the normal requests directly to CouchDB and >> the actual >> diff requests could be handled like this: >> 1. GET the original document from Couch >> 2. Apply diff >> 3. PUT the modified document back to the Couch >> >> The functionality can then be integrated into CouchDB inself if the >> prototype works well and and people start using it. > > It's case b. Integrating it with CouchDB to test it isn't that > difficult - certainly not difficult enough to justify implementing > it as a separate proxy, which IMO would involve lots of unnecessary > scaffolding. > > Those 3 steps are exactly what you would do as a plugin/extension. > > I think that any real-world application that justifies partial > updates probably also justifies partial gets, and not just a single > access path selection. > > Antony Blakey > ------------- > CTO, Linkuistics Pty Ltd > Ph: 0438 840 787 > > There are two ways of constructing a software design: One way is to > make it so simple that there are obviously no deficiencies, and the > other way is to make it so complicated that there are no obvious > deficiencies. > -- C. A. R. Hoare > >