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


Reply via email to