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